More Related Content
Similar to Llでゆるふわプログラミングのすすめ
Similar to Llでゆるふわプログラミングのすすめ(20)
Llでゆるふわプログラミングのすすめ
- 2. 自己 介紹
• id: mizchi
• 人科 学部 4 年 松居研究室
• この勉 会の主催強
• はてな、 Twitter 、 Facebook とか
o めぼしいサ ビスには居ますー
• 最近古典 SF にハマってる
• 意 がない学生識
- 3. プログラミング について歴
• インタ ネットはじめたのがー 8 歳
o エロみてて PC 没収されたのが 13 歳
• プログラミングはじめたのが大学 1 年夏
• 主に Python / Javascript
• ブラウザいじりが趣味 (Firefox/Chrome)
• エディタいじりが好き (Emacs/Vim)
• 研究で Kinect いじってる
• C/C++ レイヤ はわかりません!ー
- 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 やれ
- 17. 人 がある言気 語を使え
ネット上に大量のコ ドサンプルー
ググって解 するという安心感が大事決
俺に くな訊 Google に け訊
大量の公 ライブラリ開
コ ディングのー しさ楽 に直結
• 流行りの言 はどれも似ている語
o 言 はお互いに影 を与えあっている語 響
どれか えたら他の学 コストは半分以下覚 習
o どうせなら なやつで入 しろ!!!簡単 門
- 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 が持ってるメソッドの候 が!補
コマンドライン上でガンガン 行実
インタプリタで 行対話 実 => コ ドに反映 のサイクルを回すー
「 うより れろ」習 慣
- 32. 史が くコンピュ タに最 化された歴 長 ー 適 C/C++
OS の差 を吸 して安定稼 する異 収 働 Java ………
という み分けに して棲 対
LL には
「 の考えた最 のプログラミング言 」僕 強 語
がたくさんある
- 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