Llでゆるふわプログラミングのすすめ

M
そのプログラム言 で何が出来る?語
LL でゆるふわプログラミングのスス
メ
@mizchi
自己 介紹
• id: mizchi
• 人科 学部 4 年 松居研究室
• この勉 会の主催強
• はてな、 Twitter 、 Facebook とか
o めぼしいサ ビスには居ますー
• 最近古典 SF にハマってる
• 意 がない学生識
プログラミング について歴
• インタ ネットはじめたのがー 8 歳
o エロみてて PC 没収されたのが 13 歳
• プログラミングはじめたのが大学 1 年夏
• 主に Python / Javascript
• ブラウザいじりが趣味 (Firefox/Chrome)
• エディタいじりが好き (Emacs/Vim)
• 研究で Kinect いじってる
• C/C++ レイヤ はわかりません!ー
この勉 会の主旨強
建前
人科のプログラミングぢから高めたい!
本音
自分が ( たぶん ) 院に 学するので進
あと数年 3 年はこのキャンパスにいる
=> プログラミング趣味の人がいないと寂しい
質問
あなたのプログラミングへの
モチベ ションに、ー
明 な目確 標がありますか
?
たとえば………
Windows アプリ がやりたい開発  
Mac の GUI アプリ、 iPhone アプリ がやりたい開発  
Android アプリ がやりたい開発  
3D の派手なグラフィックのゲ ム がやりたいー 開発
ブラウザ向けの がやりたい拡張開発  
etc...
たとえば………
Windows アプリ がやりたい開発  
=> C/Win32API 、 C#/.NetFramework やれ
Mac 、 iPhone アのプリ がやりたい開発  
=> ObjectiveC/Cocoa やれ
Android アプリ がやりたい開発  
=> Java やれ
3D の派手なグラフィックのゲ ム がやりたいー 開発
 => C/C++/OpenGL やれ
ブラウザ向けの がやりたい拡張開発  
=> Javascript やれ
当する人、あなたへの 表は該 発 以上
!
ありがとうございました! 
次の 表をお待ちください  発 (^q^)
今日の 表は………発
とりあえず 味あるよ!とか興
目 あるけど漠然と何やっていいかわからない、とか標
とりあえずプログラミングできたらかっこいいじゃん?
とか
そういう人向けのギ ク入ー 門 座です講
ギ クとはー
コンピュ タやインタ ネット技 にー ー 術
を やし、深い知 を有する者時間 費 識
                         (by wikipedia)
思いつき駆動開発
こういうの欲しいな、と思ったとき、
その で 当にプログラム作っちゃうような、場 適
そんなスキルがあったら嬉しい
それができれば
コンピュ タの中で神になる!ー
手足のように酷使できる言語
を
なにか 1 つ持ちましょう
では、
万能のプログラミング言
語
とは?                 
   ねぇよ、んなもん
同じ 算 源を使う以上、計 資
何かを 牲にして何かを得るわけで……犠
  流行りの言 は語
        お嫌いですか ?
■■■■■■■
人 がある言気 語を使え
ネット上に大量のコ ドサンプルー
ググって解 するという安心感が大事決
俺に くな訊   Google に け訊
大量の公 ライブラリ開
コ ディングのー しさ楽 に直結
• 流行りの言 はどれも似ている語
o 言 はお互いに影 を与えあっている語 響
 どれか えたら他の学 コストは半分以下覚 習
o どうせなら なやつで入 しろ!!!簡単 門
注意 !
もてはやされてる 
≠ 
ノウハウが蓄 されてる積
NodeJS , Scala , Go など、流行る兆しはあるが
繁な仕 更とバ ジョン依存が多くて頻 様変 ー 魔窟
言 本体のソ ス め!な世界 安定稼 で語 ー 読   働 2,3 年は必
要
言 だけじゃなくて「最新フレ ムワ ク」も語 ー ー
Native vs Light Language
プログラム言 は語
( 超大 把には雑 )   二つしかない!
み きしにくい読 書   &  速度が早
い
vs
み きしやすい読 書   &  速度が遅
い
み きしにくい読 書 &  速度が早
い
C /C++ / Java …
 ☓ 速度が早い
コ ディング に最 化せざるを得ない◯ ー 時 適
コンピュ タがー  理解しやすい
 人 を 牲にして間 犠   行速度を求める!実
み きしやすい読 書   &  速度が遅
い
Ruby / Python / Perl / PHP …
         LL (Light Language,   量言軽 語 )
 ☓ み きしやすい読 書  
デ タ 造がゆるふわ◯ ー 構
算速度を 牲にして、最 化しないかわり計 犠 適
「なんかそれっぽいの」を す許
◆ 超大 把な 行速度比雑 実 較
C < C++ < Java <<(LL の壁 )<< Perl, Ruby, Python <  PHP
1  <  1.2  <  2   <                             20                    < 100
※ 装や 境によって なります実 環 異
                 / :::::::::::::::::::::::: ヾヽ 
                . i :::::::://///::::::::::::::::::| 
                 .|::::::/ :://// i.:::::⌒⌒ ノ 
                .|:::::/          |::::| 
                 |::/.   . ヘ   ヘ .|::| 
                . |.-⊥ (=・ ).-.( =・ )-.|⊥     |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄     
                l   .!:;   ⌒ .´ し . `⌒ ::|. l    .|   に仮 100 倍だったとして、何がいけないんでしょうかね 
               ゝ .        ヘ / ィ   _ ノ 
               __,. -‐  ヘ < 二ニ ニ >   / - __─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄     
          _   - ''"‐     /   ! \  ̄ / ! \     ゙̄ー - 、 
        ハ       /.    |  ̄ ̄ヽ /|           ヽ ハ 
        |         く    ヽ ! .  ̄ ̄  !     .>        /   ! 
          |    |       _ >   .|.      .|    < _       /    ! 
        .∧    !          ヽ |      |      /      i    .  ∧
       /  \  |         ヽ i      i     /       |  / ハ 
      ハ   ヽ |          ヽ !     !    /       |    /ヽ 
     /   \   |       ヽ .    |   .    |   /        |   // \ 
    /      \  |        .  ヽ i     i   /          | / - '     ヽ 
    /,   - -──‐ 」        ミ , ''‐ 二二       ⊃、 |/   / ̄ ̄`ヽ ! 
   ′   ̄ ̄ ̄レ ` ─ー --- _、 /  ′二ニヽ '  \ -- ''──┴  ̄ ̄    ヽ | 
だが……
最近のコンピュ タは速いー
!一般的な、何かを操作するようなプログラムは
ナノ秒 (10-9
) からマイクロ秒 (10-6
) におさまる
人 の反 は大したことない間 応
人 が 化を できる間 変 認識 時間 1/60 秒 ≒ 0.017 秒
( 格ゲ のフレ ム数ー ー )
インタ ネットはさらに いー 遅
Web:   通信の 延遅 0.01 ~ 0.5 秒   ( 光速  30 万 km/s の限
界 )
      ......... プログラム自身の 行速度なんて 差では実 誤
速い言語を すべきタイミング検討   
• アルゴリズムに工夫するべきところはないか?
o お前のプログラムが いのは遅 お前の 装が だから!実 糞
   「デ タ 造とアルゴリズム」を学びましょうー 構
 ほとんどの 算爆 は指数 数的に 加する計 発 関 増
• 一回しか使わないなら丸一日かかってもいい
o 寝て起きて わってるなら、終 寝ろ
o だいたいは 行途中でもっといいやり方思いつく実
通信レイテンシや人 の反 速度を超えたときに考えればよくて間 応
しばらくはそんなプログラム かないから書
            安心してメモリを食い せ!!!!潰
=> 材 所が望ましい適 適
ウェブプログラマの では間 LL は流行っている
行速度は通信の 延で できる実 遅 無視
ゲ ム ではー 開発 C/C++
行速度が速いほどたくさんのエフェクトを 算できる実 計
少ないメモリにデ タを して、どれだけ早く 算すー 圧縮 計
るか、という世界
LL が速度を 牲にして得たもの犠
インタプリタ対話
  的に対話 1 行ずつ 行出来るよっ!実
的型付動
  何を代入したかで型が まるなら型の宣言いらなくね決
?
モダンなオブジェクト指向
  後 だけに洗 されたものがほとんど発 練
ガベ ジコレクションー ( GC )
  メモリ管理は言 が 手にやってくれるよ!語側 勝
インタプリタで高速フィ ドバック学対話 ー
習
mizchi-mba:mzi%[~] ipython -cl
>>> 3+5/10
3  # 期待通りの 果じゃない結
>>> 3+5.0/10
3.5 # 小数の割り算であることを明 したので解記 決
>>> obj = ["hoge","fuga"]  # リスト型のオブジェクトを宣言
>>> obj.length # Java では配列 は長 length だったな と思いつつ 行するとー 実
------------------------------------------------------------
Traceback (most recent call last):
  File "<ipython console>", line 1, in <module>
AttributeError: 'list' object has no attribute 'length'  # エラ 理由 「ー list は length の attribute を持たない」
>>> len(obj) # python で配列 が欲しい 合は長 場 len() を使う、などとググるなどして情 を得る報
2
>>> obj.re # ここまで入力して、 e の次に <tab> を入力して 完しようとすると…補
obj.remove   obj.reverse  # obj が持ってるメソッドの候 が!補
コマンドライン上でガンガン 行実
インタプリタで 行対話 実 => コ ドに反映 のサイクルを回すー
「 うより れろ」習 慣
ところで、 LL の
み きしやすさってなんだ?読 書
趣味
史が くコンピュ タに最 化された歴 長 ー 適 C/C++
 
OS の差 を吸 して安定稼 する異 収 働 Java  ………
という み分けに して棲 対
LL には
「 の考えた最 のプログラミング言 」僕 強 語
がたくさんある                     
色々触って自分が好きなのを べばいい選
人 なのは気 Ruby Perl Python PHP
LL の 介紹
◆Ruby
者開発 :まつもとゆきひろ
特徴
「多 性は善」という考えで、自由な き方が出来る様 書
Perl と 数型言関 語 lisp の影 が い。響 強
点が日本で、日本 の情 が多い。日本 籍も。開発拠 語 報 語書
Ruby on Rails というフレ ムワ クが有名ー ー
公 ライブラリ開 : rubygems
インタプリタ   : irb
◆Python
者開発 : Guido van Rossum (Google)
特徴
「多 性は 」 法が で、 が いても似たようなコ様 悪 記 単純 誰 書
ドになる。 果として かつ、可 性が非常に高い。ー 結 簡潔 読
世界的には Ruby より使用者が多い。日本だとマイナ 。ー
「入 自然言 理」「集合知プログラミング」など、オ門 語処
ライリ 出版社のサンプルコ ドはー ー Python が えてきた増
。
公 ライブラリ開   : PYPI
◆Perl
日本で著名な Perl ハッカー:
小飼弾 ( dankogai ) 川 彦宮 達 ( miyagawa )
特徴
テキスト 理に い。処 強 LL としては 史が古く、歴 CPAN と
いう公 ライブラリが有名。ハッカ 文化が根 い。最近開 ー 強
は Ruby と Python に押され 味。気   mixi/Livedoor/ はてな
等、ちょっと前の IT ベンチャ はみんなー Perl だった。
公 ライブラリ開   : CPAN
◆PHP
著名なプロダクト
WordPress ( ブログエンジン )
PukiWiki ( ウィキ )
特徴
ウェブに特化した言 。語 HTML に埋め むような形式で使込
われる。平易な文法で、少しの 定で にウェブ が設 簡単 開発
始められるため人 がある。最近の気 IT ベンチャ でー
は、 PHP の需要が 倒。圧 GREE 等が有名。
公 ライブラリ開   : PEAR
以上、ご清聴
ありがとうございました!
1 of 39

Recommended

目grep入門 +解説 by
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
89.4K views83 slides
目grep入門 by
目grep入門目grep入門
目grep入門murachue
10.9K views57 slides
ほんとはこわくない Gentoo Linux by
ほんとはこわくない Gentoo Linuxほんとはこわくない Gentoo Linux
ほんとはこわくない Gentoo Linuxgion_XY
6.9K views19 slides
Erlangご紹介 websocket編 by
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編Masatoshi Itoh
2.8K views33 slides
Python3でwebアプリ by
Python3でwebアプリPython3でwebアプリ
Python3でwebアプリAtsushi Odagiri
5.7K views44 slides
Retrolambda+bolts by
Retrolambda+boltsRetrolambda+bolts
Retrolambda+boltsTom Sun
269 views25 slides

More Related Content

Viewers also liked

Mature optimization (Carlos Bueno, Facebook) by
Mature optimization (Carlos Bueno, Facebook)Mature optimization (Carlos Bueno, Facebook)
Mature optimization (Carlos Bueno, Facebook)Ontico
1.1K views23 slides
健康報告:德國飲食 by
健康報告:德國飲食健康報告:德國飲食
健康報告:德國飲食Tom Sun
1K views8 slides
Easy Going Groovy(Groovyを気軽に使いこなそう) by
Easy Going Groovy(Groovyを気軽に使いこなそう)Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)Uehara Junji
2K views86 slides
The ruby way ii by
The ruby way iiThe ruby way ii
The ruby way iiDeng Peng
497 views43 slides
Archiving in eZ Publish: What to do with all your content by
Archiving in eZ Publish: What to do with all your contentArchiving in eZ Publish: What to do with all your content
Archiving in eZ Publish: What to do with all your contentPeter Keung
1.2K views12 slides
Kelompok 2 kisah nabi idris as 2011 by
Kelompok 2 kisah nabi idris as 2011Kelompok 2 kisah nabi idris as 2011
Kelompok 2 kisah nabi idris as 2011Sekolah Vokasi UGM
2.1K views10 slides

Viewers also liked(20)

Mature optimization (Carlos Bueno, Facebook) by Ontico
Mature optimization (Carlos Bueno, Facebook)Mature optimization (Carlos Bueno, Facebook)
Mature optimization (Carlos Bueno, Facebook)
Ontico1.1K views
健康報告:德國飲食 by Tom Sun
健康報告:德國飲食健康報告:德國飲食
健康報告:德國飲食
Tom Sun1K views
Easy Going Groovy(Groovyを気軽に使いこなそう) by Uehara Junji
Easy Going Groovy(Groovyを気軽に使いこなそう)Easy Going Groovy(Groovyを気軽に使いこなそう)
Easy Going Groovy(Groovyを気軽に使いこなそう)
Uehara Junji2K views
The ruby way ii by Deng Peng
The ruby way iiThe ruby way ii
The ruby way ii
Deng Peng497 views
Archiving in eZ Publish: What to do with all your content by Peter Keung
Archiving in eZ Publish: What to do with all your contentArchiving in eZ Publish: What to do with all your content
Archiving in eZ Publish: What to do with all your content
Peter Keung1.2K views
Li omm presentation by CALSTART
Li omm presentationLi omm presentation
Li omm presentation
CALSTART1.6K views
So you-wanna-be-a-successful-student1 by raegreen
So you-wanna-be-a-successful-student1So you-wanna-be-a-successful-student1
So you-wanna-be-a-successful-student1
raegreen351 views
Завадівка – наш дім by kilina
Завадівка – наш дімЗавадівка – наш дім
Завадівка – наш дім
kilina230 views
Kritika transpersonální psychologie z pozice tantrického buddhismu by Divinorum
Kritika transpersonální psychologie z pozice tantrického buddhismuKritika transpersonální psychologie z pozice tantrického buddhismu
Kritika transpersonální psychologie z pozice tantrického buddhismu
Divinorum999 views
Ibil aparatua by xarpati
Ibil aparatuaIbil aparatua
Ibil aparatua
xarpati390 views
Find the Funding You Need Through Business Credit Webinar by Laughlin Associates
Find the Funding You Need Through Business Credit WebinarFind the Funding You Need Through Business Credit Webinar
Find the Funding You Need Through Business Credit Webinar
Reputation Management for Social Business by Duncan Connor
Reputation Management for Social BusinessReputation Management for Social Business
Reputation Management for Social Business
Duncan Connor1.4K views
Billboard insurance upload by Ridwan Ichsan
Billboard insurance uploadBillboard insurance upload
Billboard insurance upload
Ridwan Ichsan322 views
Finanses internetā: ekspertīze, tendences, nākotnes prognozes by Swedbank Latvia
Finanses internetā: ekspertīze, tendences, nākotnes prognozesFinanses internetā: ekspertīze, tendences, nākotnes prognozes
Finanses internetā: ekspertīze, tendences, nākotnes prognozes
Swedbank Latvia648 views
פרוטוקול 1 by mmshelomi
פרוטוקול 1פרוטוקול 1
פרוטוקול 1
mmshelomi196 views

Similar to Llでゆるふわプログラミングのすすめ

197x Timer with Your Messages by
197x Timer with Your Messages197x Timer with Your Messages
197x Timer with Your MessagesKuniaki Igarashi
1.2K views63 slides
ゆるかわPhp by
ゆるかわPhpゆるかわPhp
ゆるかわPhpRyota Mochizuki
1.1K views83 slides
OSS奨励賞受賞プレゼン 活動紹介 by
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介Hiromu Yakura
21.2K views23 slides
20060520.tcp by
20060520.tcp20060520.tcp
20060520.tcpKen SASAKI
1.5K views83 slides
2009年のPHPフレームワーク by
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
3.1K views118 slides
【A-5】(招待LT)灘校パソコン研究部とは by
【A-5】(招待LT)灘校パソコン研究部とは【A-5】(招待LT)灘校パソコン研究部とは
【A-5】(招待LT)灘校パソコン研究部とはSatoru Cho
2.2K views87 slides

Similar to Llでゆるふわプログラミングのすすめ(20)

OSS奨励賞受賞プレゼン 活動紹介 by Hiromu Yakura
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
Hiromu Yakura21.2K views
20060520.tcp by Ken SASAKI
20060520.tcp20060520.tcp
20060520.tcp
Ken SASAKI1.5K views
2009年のPHPフレームワーク by Takuya Sato
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato3.1K views
【A-5】(招待LT)灘校パソコン研究部とは by Satoru Cho
【A-5】(招待LT)灘校パソコン研究部とは【A-5】(招待LT)灘校パソコン研究部とは
【A-5】(招待LT)灘校パソコン研究部とは
Satoru Cho2.2K views
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列) by kunihikokaneko1
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列) cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
cs-10. Python の基礎(オブジェクト,メソッド,引数,文字列)
kunihikokaneko1976 views
見える!「IoT」NefryでJenkinsのXFD作ってみた by Tone Blue
見える!「IoT」NefryでJenkinsのXFD作ってみた見える!「IoT」NefryでJenkinsのXFD作ってみた
見える!「IoT」NefryでJenkinsのXFD作ってみた
Tone Blue651 views
蜘蛛の巣から抜け出すには? by Hayato Tominaga
蜘蛛の巣から抜け出すには?蜘蛛の巣から抜け出すには?
蜘蛛の巣から抜け出すには?
Hayato Tominaga2.5K views
ICSをビルドしてみた by kinneko
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみた
kinneko581 views
PostgreSQLとpython by Soudai Sone
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
Soudai Sone14.2K views
Pyconjp2014_implementations by masahitojp
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
masahitojp4.7K views
見える!「IoT」 NefryでJenkinsのXFD作ってみた by Tone Blue
見える!「IoT」 NefryでJenkinsのXFD作ってみた 見える!「IoT」 NefryでJenkinsのXFD作ってみた
見える!「IoT」 NefryでJenkinsのXFD作ってみた
Tone Blue7.4K views
密着!わたしのコンソールアプリ開発環境 by Fumihito Yokoyama
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama3.6K views
音声合成ライブラリ「AquesTalk」の紹介 by K Moneto
音声合成ライブラリ「AquesTalk」の紹介音声合成ライブラリ「AquesTalk」の紹介
音声合成ライブラリ「AquesTalk」の紹介
K Moneto2.5K views
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い by sasezaki
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki9.8K views
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ by Masahito Zembutsu
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよSerf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ
Masahito Zembutsu13K views
Smalltalk との比較で深まる Citrine の理解 by TAKANO Mitsuhiro
Smalltalk との比較で深まる Citrine の理解Smalltalk との比較で深まる Citrine の理解
Smalltalk との比較で深まる Citrine の理解
TAKANO Mitsuhiro939 views
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17 by Yuya Unno
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Yuya Unno5.5K views

Recently uploaded

光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
31 views17 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
36 views36 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
136 views26 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
71 views12 slides
私のMicrosoft Azure 2023 by
私のMicrosoft Azure 2023私のMicrosoft Azure 2023
私のMicrosoft Azure 2023Ryuji Iwata
5 views36 slides
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可 by
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
18 views22 slides

Recently uploaded(6)

光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga31 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
私のMicrosoft Azure 2023 by Ryuji Iwata
私のMicrosoft Azure 2023私のMicrosoft Azure 2023
私のMicrosoft Azure 2023
Ryuji Iwata5 views

Llでゆるふわプログラミングのすすめ

  • 2. 自己 介紹 • id: mizchi • 人科 学部 4 年 松居研究室 • この勉 会の主催強 • はてな、 Twitter 、 Facebook とか o めぼしいサ ビスには居ますー • 最近古典 SF にハマってる • 意 がない学生識
  • 3. プログラミング について歴 • インタ ネットはじめたのがー 8 歳 o エロみてて PC 没収されたのが 13 歳 • プログラミングはじめたのが大学 1 年夏 • 主に Python / Javascript • ブラウザいじりが趣味 (Firefox/Chrome) • エディタいじりが好き (Emacs/Vim) • 研究で Kinect いじってる • C/C++ レイヤ はわかりません!ー
  • 4. この勉 会の主旨強 建前 人科のプログラミングぢから高めたい! 本音 自分が ( たぶん ) 院に 学するので進 あと数年 3 年はこのキャンパスにいる => プログラミング趣味の人がいないと寂しい
  • 7. たとえば……… Windows アプリ がやりたい開発   Mac の GUI アプリ、 iPhone アプリ がやりたい開発   Android アプリ がやりたい開発   3D の派手なグラフィックのゲ ム がやりたいー 開発 ブラウザ向けの がやりたい拡張開発   etc...
  • 8. たとえば……… Windows アプリ がやりたい開発   => C/Win32API 、 C#/.NetFramework やれ Mac 、 iPhone アのプリ がやりたい開発   => ObjectiveC/Cocoa やれ Android アプリ がやりたい開発   => Java やれ 3D の派手なグラフィックのゲ ム がやりたいー 開発  => C/C++/OpenGL やれ ブラウザ向けの がやりたい拡張開発   => Javascript やれ
  • 9. 当する人、あなたへの 表は該 発 以上 ! ありがとうございました!  次の 表をお待ちください  発 (^q^)
  • 10. 今日の 表は………発 とりあえず 味あるよ!とか興 目 あるけど漠然と何やっていいかわからない、とか標 とりあえずプログラミングできたらかっこいいじゃん? とか そういう人向けのギ ク入ー 門 座です講
  • 11. ギ クとはー コンピュ タやインタ ネット技 にー ー 術 を やし、深い知 を有する者時間 費 識                          (by wikipedia)
  • 12. 思いつき駆動開発 こういうの欲しいな、と思ったとき、 その で 当にプログラム作っちゃうような、場 適 そんなスキルがあったら嬉しい それができれば コンピュ タの中で神になる!ー
  • 15.    ねぇよ、んなもん 同じ 算 源を使う以上、計 資 何かを 牲にして何かを得るわけで……犠
  • 16.   流行りの言 は語         お嫌いですか ? ■■■■■■■
  • 17. 人 がある言気 語を使え ネット上に大量のコ ドサンプルー ググって解 するという安心感が大事決 俺に くな訊   Google に け訊 大量の公 ライブラリ開 コ ディングのー しさ楽 に直結 • 流行りの言 はどれも似ている語 o 言 はお互いに影 を与えあっている語 響  どれか えたら他の学 コストは半分以下覚 習 o どうせなら なやつで入 しろ!!!簡単 門
  • 18. 注意 ! もてはやされてる  ≠  ノウハウが蓄 されてる積 NodeJS , Scala , Go など、流行る兆しはあるが 繁な仕 更とバ ジョン依存が多くて頻 様変 ー 魔窟 言 本体のソ ス め!な世界 安定稼 で語 ー 読   働 2,3 年は必 要 言 だけじゃなくて「最新フレ ムワ ク」も語 ー ー
  • 19. Native vs Light Language
  • 20. プログラム言 は語 ( 超大 把には雑 )   二つしかない! み きしにくい読 書   &  速度が早 い vs み きしやすい読 書   &  速度が遅 い
  • 21. み きしにくい読 書 &  速度が早 い C /C++ / Java …  ☓ 速度が早い コ ディング に最 化せざるを得ない◯ ー 時 適 コンピュ タがー  理解しやすい  人 を 牲にして間 犠   行速度を求める!実
  • 22. み きしやすい読 書   &  速度が遅 い Ruby / Python / Perl / PHP …          LL (Light Language,   量言軽 語 )  ☓ み きしやすい読 書   デ タ 造がゆるふわ◯ ー 構 算速度を 牲にして、最 化しないかわり計 犠 適 「なんかそれっぽいの」を す許
  • 23. ◆ 超大 把な 行速度比雑 実 較 C < C++ < Java <<(LL の壁 )<< Perl, Ruby, Python <  PHP 1  <  1.2  <  2   <                             20                    < 100 ※ 装や 境によって なります実 環 異
  • 24.                  / :::::::::::::::::::::::: ヾヽ                  . i :::::::://///::::::::::::::::::|                   .|::::::/ :://// i.:::::⌒⌒ ノ                  .|:::::/          |::::|                   |::/.   . ヘ   ヘ .|::|                  . |.-⊥ (=・ ).-.( =・ )-.|⊥     |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄                      l   .!:;   ⌒ .´ し . `⌒ ::|. l    .|   に仮 100 倍だったとして、何がいけないんでしょうかね                 ゝ .        ヘ / ィ   _ ノ                 __,. -‐  ヘ < 二ニ ニ >   / - __─  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄                _   - ''"‐     /   ! \  ̄ / ! \     ゙̄ー - 、          ハ       /.    |  ̄ ̄ヽ /|           ヽ ハ          |         く    ヽ ! .  ̄ ̄  !     .>        /   !            |    |       _ >   .|.      .|    < _       /    !          .∧    !          ヽ |      |      /      i    .  ∧        /  \  |         ヽ i      i     /       |  / ハ        ハ   ヽ |          ヽ !     !    /       |    /ヽ       /   \   |       ヽ .    |   .    |   /        |   // \      /      \  |        .  ヽ i     i   /          | / - '     ヽ      /,   - -──‐ 」        ミ , ''‐ 二二       ⊃、 |/   / ̄ ̄`ヽ !     ′   ̄ ̄ ̄レ ` ─ー --- _、 /  ′二ニヽ '  \ -- ''──┴  ̄ ̄    ヽ |  だが……
  • 25. 最近のコンピュ タは速いー !一般的な、何かを操作するようなプログラムは ナノ秒 (10-9 ) からマイクロ秒 (10-6 ) におさまる 人 の反 は大したことない間 応 人 が 化を できる間 変 認識 時間 1/60 秒 ≒ 0.017 秒 ( 格ゲ のフレ ム数ー ー ) インタ ネットはさらに いー 遅 Web:   通信の 延遅 0.01 ~ 0.5 秒   ( 光速  30 万 km/s の限 界 )       ......... プログラム自身の 行速度なんて 差では実 誤
  • 26. 速い言語を すべきタイミング検討    • アルゴリズムに工夫するべきところはないか? o お前のプログラムが いのは遅 お前の 装が だから!実 糞    「デ タ 造とアルゴリズム」を学びましょうー 構  ほとんどの 算爆 は指数 数的に 加する計 発 関 増 • 一回しか使わないなら丸一日かかってもいい o 寝て起きて わってるなら、終 寝ろ o だいたいは 行途中でもっといいやり方思いつく実 通信レイテンシや人 の反 速度を超えたときに考えればよくて間 応 しばらくはそんなプログラム かないから書             安心してメモリを食い せ!!!!潰
  • 27. => 材 所が望ましい適 適 ウェブプログラマの では間 LL は流行っている 行速度は通信の 延で できる実 遅 無視 ゲ ム ではー 開発 C/C++ 行速度が速いほどたくさんのエフェクトを 算できる実 計 少ないメモリにデ タを して、どれだけ早く 算すー 圧縮 計 るか、という世界
  • 28. LL が速度を 牲にして得たもの犠 インタプリタ対話   的に対話 1 行ずつ 行出来るよっ!実 的型付動   何を代入したかで型が まるなら型の宣言いらなくね決 ? モダンなオブジェクト指向   後 だけに洗 されたものがほとんど発 練 ガベ ジコレクションー ( GC )   メモリ管理は言 が 手にやってくれるよ!語側 勝
  • 29. インタプリタで高速フィ ドバック学対話 ー 習 mizchi-mba:mzi%[~] ipython -cl >>> 3+5/10 3  # 期待通りの 果じゃない結 >>> 3+5.0/10 3.5 # 小数の割り算であることを明 したので解記 決 >>> obj = ["hoge","fuga"]  # リスト型のオブジェクトを宣言 >>> obj.length # Java では配列 は長 length だったな と思いつつ 行するとー 実 ------------------------------------------------------------ Traceback (most recent call last):   File "<ipython console>", line 1, in <module> AttributeError: 'list' object has no attribute 'length'  # エラ 理由 「ー list は length の attribute を持たない」 >>> len(obj) # python で配列 が欲しい 合は長 場 len() を使う、などとググるなどして情 を得る報 2 >>> obj.re # ここまで入力して、 e の次に <tab> を入力して 完しようとすると…補 obj.remove   obj.reverse  # obj が持ってるメソッドの候 が!補 コマンドライン上でガンガン 行実 インタプリタで 行対話 実 => コ ドに反映 のサイクルを回すー 「 うより れろ」習 慣
  • 30. ところで、 LL の み きしやすさってなんだ?読 書
  • 32. 史が くコンピュ タに最 化された歴 長 ー 適 C/C++   OS の差 を吸 して安定稼 する異 収 働 Java  ……… という み分けに して棲 対 LL には 「 の考えた最 のプログラミング言 」僕 強 語 がたくさんある                     
  • 35. ◆Ruby 者開発 :まつもとゆきひろ 特徴 「多 性は善」という考えで、自由な き方が出来る様 書 Perl と 数型言関 語 lisp の影 が い。響 強 点が日本で、日本 の情 が多い。日本 籍も。開発拠 語 報 語書 Ruby on Rails というフレ ムワ クが有名ー ー 公 ライブラリ開 : rubygems インタプリタ   : irb
  • 36. ◆Python 者開発 : Guido van Rossum (Google) 特徴 「多 性は 」 法が で、 が いても似たようなコ様 悪 記 単純 誰 書 ドになる。 果として かつ、可 性が非常に高い。ー 結 簡潔 読 世界的には Ruby より使用者が多い。日本だとマイナ 。ー 「入 自然言 理」「集合知プログラミング」など、オ門 語処 ライリ 出版社のサンプルコ ドはー ー Python が えてきた増 。 公 ライブラリ開   : PYPI
  • 37. ◆Perl 日本で著名な Perl ハッカー: 小飼弾 ( dankogai ) 川 彦宮 達 ( miyagawa ) 特徴 テキスト 理に い。処 強 LL としては 史が古く、歴 CPAN と いう公 ライブラリが有名。ハッカ 文化が根 い。最近開 ー 強 は Ruby と Python に押され 味。気   mixi/Livedoor/ はてな 等、ちょっと前の IT ベンチャ はみんなー Perl だった。 公 ライブラリ開   : CPAN
  • 38. ◆PHP 著名なプロダクト WordPress ( ブログエンジン ) PukiWiki ( ウィキ ) 特徴 ウェブに特化した言 。語 HTML に埋め むような形式で使込 われる。平易な文法で、少しの 定で にウェブ が設 簡単 開発 始められるため人 がある。最近の気 IT ベンチャ でー は、 PHP の需要が 倒。圧 GREE 等が有名。 公 ライブラリ開   : PEAR