Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad

そのプログラム言 で何が出来る?語
LL でゆるふわプログラミングのスス
メ
@mizchi

Ad

自己 介紹
• id: mizchi
• 人科 学部 4 年 松居研究室
• この勉 会の主催強
• はてな、 Twitter 、 Facebook とか
o めぼしいサ ビスには居ますー
• 最近古典 SF にハマってる
• 意 がない学生識

Ad

プログラミング について歴
• インタ ネットはじめたのがー 8 歳
o エロみてて PC 没収されたのが 13 歳
• プログラミングはじめたのが大学 1 年夏
• 主に Python / Javascript
• ブラウザいじりが趣味 (F...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
目grep入門 +解説
目grep入門 +解説
Loading in …3
×

Check these out next

1 of 39 Ad
1 of 39 Ad
Advertisement

More Related Content

Advertisement

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

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

×