Slide 1

Slide 1 text

RuPy RuPyの流れ の流れ Nobsuzumura @yahhonob 東京 東京 Crystal Crystal 勉強会 勉強会 #1 in #1 in 五反田 五反田

Slide 2

Slide 2 text

2 自己紹介 自己紹介 愛知県の車載組み込み専門会社 アイシン・コムクルーズ(株) 4ビットマイコンの時代から、 パソコンオタク、コンパイラマニア、 古代歴史マニア アセンブラでのソフト作成が一番おおきい 特殊マニア CP/M1.4、ISIS(intel)、LSI-80を移植 Z80ワンボードマイコンで動かす CP/M2.0、ADTEK IDS-8000Zを移植PC8000で動かす

Slide 3

Slide 3 text

こんな気持ちを持っています こんな気持ちを持っています C言語だけでの開発の現状を打破しよう! “プロトタイピング-詳細設計-C言語実装 の 反復設計” が開発の本来あるべき姿。 3 2014-8-29 第16回組み込みシステム技術に 関するサマーワークショップ SWEST16

Slide 4

Slide 4 text

4 車載組込みから見た 車載組込みから見たRuby/ Ruby/mruby mruby アイシン・コムクルーズ㈱ [email protected] 鈴村延保 2015-7-23 軽量Ruby普及・実用化促 進ネットワーク設立記念講演会

Slide 5

Slide 5 text

5 急変しつつあるプログラム言語 急変しつつあるプログラム言語/ / モデリング モデリングMBD MBDの近況と変遷 の近況と変遷 - -なぜ提案が最近活発になったのか? なぜ提案が最近活発になったのか? その課題背景を現場目線で共有しよう その課題背景を現場目線で共有しよう- - アイシン・コムクルーズ㈱ [email protected] 鈴村延保 2015-8-28 第17回 組込みシステム技術に関するサマーワークショップSWEST17

Slide 6

Slide 6 text

RuPy RuPy ? ?

Slide 7

Slide 7 text

(Ruby+Python)/2 (Ruby+Python)/2 ? ?

Slide 8

Slide 8 text

RuPy RuPy Conference Conference 2007 2007- -2013 2013 Strongly Dynamic Conference. RuPy is a unique conference that brings together communities from different state-of-the-art programming languages Ruby, Python, JavaScript, Clojure and related technologies. RuPy is now PolyConf RuPy evolved into PolyConf, we are expending to include more programming languages.

Slide 9

Slide 9 text

RuPy方向? RuPy方向?

Slide 10

Slide 10 text

10 RuPy C C++ Javascript Java C++/11 Coffescript C/1x Scala Ceylon OPA Go C# M R Modelica PYModelica SciPy F# 総ての言語が 総ての言語がRuPy RuPy方向へ 方向へ (自然、簡潔、高級、会話的=読みやすい=コミュニテイに好まれる) Lua Ecmascript mruby RuPy: Ruby/Python Kotlin Julia CLang SciRuby Erlang Elixir HAXE DART KL CLing Groovy Koka RubyMotion JRuby Noop RUST Zinc Copper Swift JRuby SciRuby JRuby Mirah SciRuby JRuby BRICK Crystal ECMAScript Nim OPAL

Slide 11

Slide 11 text

11 RuPy RuPy Direction Direction RuPy RuPy Conference since 2007 Conference since 2007 people twitting as follows in the Internet people twitting as follows in the Internet Crystal is Ruby inspired Systax Elixir is Ruby like Erlang Swift(Apple) for Rubyist (Ruby like Objective-C) Rust(Mozila) is Ruby like C++/Java/C Coffeescript is Ruby like Javascript, into Ecmascript2015 SCALA is Ruby like Java (More Functional) Groovy is Ruby like Jacascript Julia is Ruby/Python like Matlab, R C++/11 is RuPy like C++ (More By Boost) JVM7.0 finally Invoke Dynamic ◦ Easy to Read, Easy to Learn, Easy to think ◦ Less Noise, Less Cellemony, Less Magic Spelling ◦ Comfortable, like, Love , so Community love Ruby/Python ◦ Computer Scientists respect Ruby ◦ Small Talk &LISP communities respect Ruby

Slide 12

Slide 12 text

12 時代の流れ 時代の流れ デジタル技術・ネットワーク技術 グローバル企業間取引コストの激減 オープン国際分業化 ビジネス・モデル エジソン フォード ATT ベル研究所 IBM ワトソン研 XEROX パロアルト研 産官学連携 クラスタ コンソーシアム 100年単位の時代変化 天才 一人が 時代を変えた 天才が集まった 会社(研究所)が 時代を変えた コミュニテイしか、 時代を変えられない 激変 JARI 海外電子化 動向調査より 行き詰り 考える背景

Slide 13

Slide 13 text

13 図 ヨーロッパにおけるイノベーション政策の発足と経緯 ヨーロッパにおけるイノベーション政策の ヨーロッパにおけるイノベーション政策の 発足と経緯 発足と経緯 JARI 海外電子化 動向調査より コミュニ テイー 指向 東京大学 小川紘一先生

Slide 14

Slide 14 text

14 シリコン 革命 ネット ワーキング 革命 コミュニテイー、 Socio 指向が 始まっている 1950年代トランジスタ発明以降 マイコンの発明(‘71年)により 80年代から 加速 イントラが’93年頃より 21世紀 2000年代 2010 年代 静かなるパラダイムシフト 私の時代認識 私の時代認識 2012/6時点

Slide 15

Slide 15 text

15 オブジェクト 指向言語 c++ Java アーキテクチャー 指向言語 ADL、 UML2.0、sysML Matlab/Simulink コミュニテイー、 Socio 指向言語 Ruby Python ? 80年代~ ‘97~ ネットワークの普及 と共に、もう始まっ ている 静かなる 第2のパラダイムシフト ソフトウェア開発で例えると ソフトウェア開発で例えると 静かなる パラダイムシフト 従来の パラダイムシフト F#, Swift、 Julia 2012/6時点 2014/10 Elixir Crystal 2015/7

Slide 16

Slide 16 text

車載開発を席巻! 車載開発を席巻! モデルベース開発 モデルベース開発MBD MBD マスワークス社(Mathworks社)の Matlab/Simulinkは ◦ シミュレーションが容易(システム) ◦ プロトタイピングが゙容易 ◦ モデリングからそのまま、Cプログラム コード生成、製品化 16

Slide 17

Slide 17 text

Matlab/Simulink Matlab/Simulink ソフトウェアを絵で書いてプログラム生成 17

Slide 18

Slide 18 text

Matlab Matlab ( (M M言語) 言語) function ret = get(hm, key) if hm == types.nil ret = types.nil; else if hm.data.isKey(key) ret = hm.data(key); else ret = types.nil; end end end 18 ・ダイナミック言語 ・Matlab/Simulink内部で動き、 変換機(トランスパイラ) が C言語を生成する。

Slide 19

Slide 19 text

Ruby/ Ruby/mruby mruby def find(key) if @data.key? key return self elsif @outer return @outer.find(key) else return nil end end 19 Matlabが受け入れられて、 Rubyが受け入れられない、 言語としての理由が みあたらない。

Slide 20

Slide 20 text

RuPy RuPy Ru RuPy Py

Slide 21

Slide 21 text

RuPy RuPy Ru RuPy Py Ruby Ruby風味 風味

Slide 22

Slide 22 text

RuPy RuPy Ru RuPy Py Ruby Ruby風味 風味 Crystal Crystal Elixir ( Elixir (Erlang Erlang Factory) Factory) Swift (Apple) Rust ( Swift (Apple) Rust (Mozilla Mozilla) ) RubyMotion RubyMotion Mirah Mirah OPAL OPAL Emscript Emscript

Slide 23

Slide 23 text

Crystal fans worldwide Crystal fans worldwide Rubyist Rubyist Haskeller Haskeller Pythonista Pythonista Crystallian Crystallian? ?

Slide 24

Slide 24 text

Crystal fans worldwide Crystal fans worldwide Matz Matz “ “Crystal Crystal すげー すげー” ” 6月7日 6月7日

Slide 25

Slide 25 text

Crystal fans worldwide Crystal fans worldwide Rubyhero2014 Rubyhero2014 Erik Michaels Erik Michaels- -Ober Ober @ @sferik sferik ・ ・“ “Writing Fast Ruby at Writing Fast Ruby at Baruco Baruco” ” 2014 2014 ・ ・“ “An Introduction to Crystal An Introduction to Crystal” ” at at PolyConf PolyConf 2015 2015

Slide 26

Slide 26 text

Crystal fans worldwide Crystal fans worldwide Rug:by Rug:by Berlin Berlin Crystal Crystal- -jp jp Tokyo Tokyo Crystal Lang SF Crystal Lang SF Crystal Crystal- -lang.slack.com lang.slack.com # #Crystallang Crystallang

Slide 27

Slide 27 text

自動車組み込みで仕事していますが 自動車組み込みで仕事していますが Ruby/ Ruby/mruby mruby/Crystal /Crystalを を 応援しています! 応援しています! Crystal? Crystal? Matz Matzさんの今日 さんの今日7/23 7/23の のTweet Tweetを見てください を見てください e-ZUKA Tech NightでPR

Slide 28

Slide 28 text

Crystal Crystalプログラム言語 プログラム言語 Ruby Ruby- -inspired syntax. inspired syntax. Statically type Statically type- -checked but without having to specify the checked but without having to specify the type of variables or method arguments. type of variables or method arguments. Compile to efficient native code. Compile to efficient native code. http://crystal http://crystal- -lang.org lang.org/ / https:// https://github.com/manastech/crystal github.com/manastech/crystal https://github.com/nob https://github.com/nob- -suz/Crystallian suz/Crystallian Twitter Twitter: :# #Crystallang Crystallang Crystal Crystal- -jp jp 東京 東京Crystal Crystal勉強会 勉強会#1 #1 in in 五反田 五反田 7/31 7/31( (金) 金) Sake Driven learning Crystal Sake Driven learning Crystal e-ZUKA Tech NightでPR

Slide 29

Slide 29 text

Crystal fans worldwide Crystal fans worldwide Rubyist Rubyist Haskeller Haskeller Pythonista Pythonista Crystallian Crystallian? ? nob nob- -suz suz/ /Crystallian Crystallian https://github.com/nob-suz/Crystallian @yahhonob

Slide 30

Slide 30 text

愛知に来たら 愛知に来たら 遊びに来てください! 遊びに来てください! 名古屋駅前、 名古屋駅前、 刈谷 刈谷( (愛知)、 愛知)、 盛岡 盛岡( (岩手)、 岩手)、 博多 博多( (福岡)、 福岡)、