Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
耕谷
Uploaded by
耕平 谷口
2,254 views
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
2016/02/12にe-ZUKA Rails拡大号で使った資料です。
Engineering
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
PDF
Swiftで、かなり微妙な型クラス
by
Nobukazu Hanada
PPT
Start!! Ruby
by
mitim
PDF
Rubyのエラーをちょっと整理(初級者向け)
by
universato
PDF
詳解! Decimal
by
Tadashi Saito
PDF
「愛されたい!」と思ったときにJavaで書くRubyクラス
by
Koichiro Ohba
PDF
JavascriptでRubyの作り方
by
Shuyo Nakatani
PDF
すいすいSwift
by
karupanerura
PDF
とあるFlashの自動生成
by
Akineko Shimizu
Swiftで、かなり微妙な型クラス
by
Nobukazu Hanada
Start!! Ruby
by
mitim
Rubyのエラーをちょっと整理(初級者向け)
by
universato
詳解! Decimal
by
Tadashi Saito
「愛されたい!」と思ったときにJavaで書くRubyクラス
by
Koichiro Ohba
JavascriptでRubyの作り方
by
Shuyo Nakatani
すいすいSwift
by
karupanerura
とあるFlashの自動生成
by
Akineko Shimizu
What's hot
PDF
きつねさんでもわかるLLVM読書会amagasaki.rb第5章
by
Takayuki Kurosawa
PDF
名古屋Ruby会議02 LT:Ruby中級への道
by
Shigeru UCHIYAMA
PDF
Clojure
by
Uehara Junji
PDF
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
by
LINE Corporation
PDF
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
PDF
リテラル文字列型までの道
by
Satoshi Sato
PDF
こわくないScala
by
Kota Mizushima
PDF
Scala is-unscared
by
Kota Mizushima
PDF
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
by
tsudaa
PDF
AWS Amplify XRを動かしてみたら、、、
by
Tsuyoshi Yamamoto
PDF
Ruby でつくる型付き Ruby
by
mametter
ODP
app-c.odp
by
Makoto Kishimoto
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PPTX
Jjug ナイト・セミナー くわっちょ 20140822
by
くわっ ちょ
PDF
マニアックなRuby 2.7新機能紹介
by
mametter
PDF
ゴースト・と・で・の・お話
by
wizstargaer
PDF
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
by
parrotstudio
PPTX
C# コンパイラーの書き換え作業の話
by
信之 岩永
PPTX
ES6,7で書ける JavaScript
by
Shin Sekaryo
PDF
No skk, no life.
by
digitalghost
きつねさんでもわかるLLVM読書会amagasaki.rb第5章
by
Takayuki Kurosawa
名古屋Ruby会議02 LT:Ruby中級への道
by
Shigeru UCHIYAMA
Clojure
by
Uehara Junji
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
by
LINE Corporation
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
リテラル文字列型までの道
by
Satoshi Sato
こわくないScala
by
Kota Mizushima
Scala is-unscared
by
Kota Mizushima
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
by
tsudaa
AWS Amplify XRを動かしてみたら、、、
by
Tsuyoshi Yamamoto
Ruby でつくる型付き Ruby
by
mametter
app-c.odp
by
Makoto Kishimoto
磯野ー!関数型言語やろうぜー!
by
Ra Zon
Jjug ナイト・セミナー くわっちょ 20140822
by
くわっ ちょ
マニアックなRuby 2.7新機能紹介
by
mametter
ゴースト・と・で・の・お話
by
wizstargaer
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
by
parrotstudio
C# コンパイラーの書き換え作業の話
by
信之 岩永
ES6,7で書ける JavaScript
by
Shin Sekaryo
No skk, no life.
by
digitalghost
Viewers also liked
PDF
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
by
Amazon Web Services Japan
PDF
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
by
Amazon Web Services Japan
PDF
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
by
Amazon Web Services Japan
PDF
スタートアップのエンジニアに求められる 働き方・マインドとそれを支える会社の取り組み
by
Yasuhiro Horiuchi
PDF
AWS OpsWorksのご紹介
by
Amazon Web Services Japan
PPTX
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
by
ToshiakiArai
PDF
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
by
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2017 AWS OpsWorks
by
Amazon Web Services Japan
PPTX
DevOps Practices:Configuration as Code
by
Doug Seven
PDF
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
by
Amazon Web Services Japan
PDF
【AWS初心者向けWebinar】AWSのプロビジョニングからデプロイまで
by
Amazon Web Services Japan
PDF
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
by
崇之 清水
PDF
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
PDF
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
by
Amazon Web Services Japan
AWS Black Belt Tech シリーズ 2015 - AWS Elastic Beanstalk
by
Amazon Web Services Japan
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
by
Amazon Web Services Japan
スタートアップのエンジニアに求められる 働き方・マインドとそれを支える会社の取り組み
by
Yasuhiro Horiuchi
AWS OpsWorksのご紹介
by
Amazon Web Services Japan
JJUG CCC 2015 Spring 「新人エンジニア奮闘記 - Javaって何?からwebサービスを公開するまで -」発表スライド
by
ToshiakiArai
AWS Black Belt Tech シリーズ 2015 - AWS CodeCommit & AWS CodePipeline & AWS CodeD...
by
Amazon Web Services Japan
AWS Black Belt Online Seminar 2017 AWS OpsWorks
by
Amazon Web Services Japan
DevOps Practices:Configuration as Code
by
Doug Seven
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
by
Amazon Web Services Japan
【AWS初心者向けWebinar】AWSのプロビジョニングからデプロイまで
by
Amazon Web Services Japan
AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪
by
崇之 清水
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
by
Justin Ryan
Javaはどのように動くのか~スライドでわかるJVMの仕組み
by
Chihiro Ito
Similar to C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
KEY
Rails基礎講座 part.1
by
Jun Yokoyama
PDF
2011年10月21日
by
nukaemon
PDF
Summary of Ruby
by
Tamotsu Furuya
PDF
Rubyとプログラミング言語の潮流
by
Kazuhiko Kato
PPTX
Ruby講座一回目
by
Masayuki Matsumoto
PPTX
Ruby講座一回目
by
Masayuki Matsumoto
PPT
第1部「一時間で覚えるruby」
by
Hiromu Shioya
PDF
Ruby勉強会@札幌 "Rubyist入門講座"
by
Koji SHIMADA
PDF
JavaとRubyのすてきな関係
by
garden_tree
ODP
プログラミング言語Ruby 1章 イントロダクション
by
Ryo Maruyama
PDF
Ruby 2.5
by
Masahiro Tomita
PDF
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
by
Tomoya Kawanishi
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発
by
Koichi Shimozono
PDF
PHPer のための Ruby 教室
by
higaki
PPT
何でRuby
by
Ngoc Dao
PDF
現実世界のJRuby(ショートバージョン)
by
Hiroshi Nakamura
PDF
Ruby初級者向けレッスン KOF2015 出張版
by
higaki
PDF
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
by
Kenta USAMI
PDF
2015 07-04-ruby rails
by
Hiroshi Oyamada
PDF
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
by
Tadashi Saito
Rails基礎講座 part.1
by
Jun Yokoyama
2011年10月21日
by
nukaemon
Summary of Ruby
by
Tamotsu Furuya
Rubyとプログラミング言語の潮流
by
Kazuhiko Kato
Ruby講座一回目
by
Masayuki Matsumoto
Ruby講座一回目
by
Masayuki Matsumoto
第1部「一時間で覚えるruby」
by
Hiromu Shioya
Ruby勉強会@札幌 "Rubyist入門講座"
by
Koji SHIMADA
JavaとRubyのすてきな関係
by
garden_tree
プログラミング言語Ruby 1章 イントロダクション
by
Ryo Maruyama
Ruby 2.5
by
Masahiro Tomita
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
by
Tomoya Kawanishi
Ruby on Rails を用いたWEBアプリケーションの開発
by
Koichi Shimozono
PHPer のための Ruby 教室
by
higaki
何でRuby
by
Ngoc Dao
現実世界のJRuby(ショートバージョン)
by
Hiroshi Nakamura
Ruby初級者向けレッスン KOF2015 出張版
by
higaki
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
by
Kenta USAMI
2015 07-04-ruby rails
by
Hiroshi Oyamada
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
by
Tadashi Saito
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
1.
Ruby入門
2.
谷口耕平 @ran_tan ハウインターナショナル でRuby on
Railsを使って 大学向けの教育サービスを 作ってます。 自己紹介
3.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。
4.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。
5.
!Rubyとは? • 島根県松江市在住の まつもとゆきひろ
さん (通称 Matz)を中心に開発されているOSSのプ ログラミング言語 • Rubyは今年で23歳くらい • 最新バージョンは v2.3.0 • 日本人のコミッターが多く、国内のRubyコ ミュニティは非常に活発。
6.
Rubyを動かそう! • RubyInstallerを使う (僕が普段windows使ってないので、詳しいことはわかりません><) •
RubyInstaller http://rubyinstaller.org/ • 自分でビルドする場合は以下の電子書籍が参考になるらしい。 • Ruby環境構築講座 Windows編 http://tatsu-zine.com/books/winrubybuild " $ Windows OS X Linux • 最初から入ってる。 • 本格的に使うなら rvm や rbenv の様な Ruby のバージョン管理ツールを使ってインストールす るのがオススメ。複数バージョンの Ruby をインストールし、切り替え可能。 • 日本だと rbenv の方がよく使われている印象。僕も rbenv 使ってます。 • rbenv https://github.com/rbenv/rbenv • rvm https://rvm.io/ • OS X と同様に rbenv や rvm を使ってインストールするのがオススメ。 参考: Rubyist Magazine - Rubyの歩き方 http://magazine.rubyist.net/?FirstStepRuby
7.
Rubyのここが好き Rubyは楽しい!
8.
Rubyは 「読みやすい」かつ 「書きやすい」ので 「作りたいものに集中出来る」 そして、作る事は楽しい。 短く言うと「Rubyは楽しい」
9.
「Rubyは楽しい!」を支えるもの • 全てが「オブジェクト」である • 充実した組み込みライブラリ •
ブロック構文 • 黒魔術(メタプログラミング)
10.
全てが「オブジェクト」である • 数値も文字列も配列もオブジェクトなので直感 的なコードが書ける 10.times do puts
'Hello, World!' end 'Hello, World!'.upcase # => "HELLO, WORLD!" # 1文字ずらすシーザー暗号の例 'Hello, World!'.each_char.map {|c| c.next }.join # => Ifmmp-!Xpsme" ['Ruby', 'Matz', 'eZUKA Rails'].select do |i| i.include?('R') end # => ["Ruby", "eZUKA Rails"]
11.
充実した組み込みライブラリ • ドキュメント http://docs.ruby-lang.org/ja/ •
特に、String, Array, Hashなどよく使うクラ スのメソッドが充実しているので、いろんな処 理がさくっと書ける。
12.
Rubyで使えるライブラリ ! Ruby 組み込みライブラリ 標準添付ライブラリ Rubyをインストールすると入るもの + + RubyGems OSSの
gem を gem コマンドでインストール可能 RubyGems.org には様々なライブラリ( gem )がある z z 沢山ある https://rubygems.org/ で探せる。 https://www.ruby-toolbox.com/ で探すのもオススメ。
13.
ブロック構文 • こういうの。 • メソッドの引数に処理の固まりを渡すことが出 来る。 •
Cだと関数ポインタ使うと似たような事できる けど、冗長になる。JavaでもLambda使うと 良いけど、比べると若干冗長。 10.times do puts 'Hello, World!' end
14.
Cの例 #include <stdio.h> void times(int
times , void (*func)(int)); void myfunc(int i); int main() { times(10, &myfunc); return 0; } void times(int times , void (*func)(int)) { for(int i = 0; i < times; i++) { func(i); } } void myfunc(int i) { printf("%i: Hello, World!n", i); }
15.
Javaの例
16.
黒魔術(メタプログラミング) • 下手に使うとダークサイドに落ちてしまうので、 通常の構文に慣れるまでは置いておきましょう。 • Rubyに新しい仕様を追加しているかのように 見えるほどの、非常に強い拡張性をRubyに与 えている。便利な分、使い方を誤ると暗黒面に 堕ちてしまう。 •
DSLの作成にもよく使われるテクニック
17.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done!
18.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done!
19.
ここからはRubyの基本構文 を見ていきましょう。
20.
Hello, World! class Hello
{ public static void main(String[] args) { System.out.println("Hello, World!"); } } #include <stdio.h> int main() { printf("Hello, World!n"); return 0; } puts 'Hello, World!'
21.
変数宣言 int num =
1; num = 1 • Rubyの変数には型がない。整数を入れた変数 に、後から文字列を代入することも出来る。
22.
条件分岐 # if if num.even? puts
'偶数だよ' elsif num.odd? puts '奇数だよ' else puts 'ほげー' end # unless unless num.even? puts '奇数だよ' else puts '偶数だよ' end # 後置 puts '偶数だよ' if num.even? puts '奇数だよ' unless num.even? if (num % 2 == 0) { printf("偶数だよn"); } else if (num % 2 != 0) { printf("奇数だよn"); } JavaはCとほとんど同じなので省略
23.
ループ array = [1,
2, 3, 4, 5] array.each do |i| puts i end int array[] = {1, 2, 3, 4, 5}; for(int i : array) { System.out.println(i); } int array[] = {1, 2, 3, 4, 5}; int array_length = sizeof array /sizeof array[0]; for(int i = 0; i < array_length; i++) { printf("%in", array[i]); }
24.
Rubyのループ • while, for,
loopといった構文もあるが、余り 使われない。 • eachメソッドを使うのが基本。 • Arrayなどの繰り返し処理の対象となるクラス はEnumerableモジュールがmixinされており、 mapやreduceと言ったメソッドも使える。 (長くなるので、割愛)
25.
ここからはOOPに関して、 RubyとJavaを比較していきます。 RubyとJavaはどちらもオブジェクト指向プログラ ミング(OOP)言語だけど、微妙に違ったアプローチ を取っている。
26.
型へのアプローチ ここにRubyとJavaの思想の違いが現れている。 Rubyはプログラマの書きやすさを壊さない範囲で性能面の最適化をやっている。 Javaははじめからパフォーマンスを考慮して、プリミティブ型を導入し、オブ ジェクト指向の世界を歪めている。 ! % 純粋なオブジェクト指向言語とは言いがたい • 全てがオブジェクトというわけではない • プリミティブ型がある Ruby Java 純粋なオブジェクト指向言語 •
全てがオブジェクト
27.
型付けへのアプローチ ! % 静的型付け • 変数やメソッドの宣言時に型を宣言する Ruby Java 動的型付け •
変数やメソッド作成時に型を宣言しない。 • ダックタイピング • 外から見た振る舞いが同じなら、同じ型と 見なす
28.
多重継承へのアプローチ ! % Interface • APIが宣言された Interface
をクラスに追加 し実装することで、クラスを拡張する。 • Java8からインターフェースが実装を持てる ようになったため、RubyのMixinと同じこ とが出来るようになった?? • 参考: http://equj65.net/tech/java8mixin/ Ruby Java Mixin • 機能が定義されたそれだけではインスタンス を生成できないModuleをクラスに追加し、 拡張する。
29.
private, protectedの違い ! % • クラス内のみアクセス可能 •
クラス内、同一パッケージ、サブクラスから アクセス可 Ruby Java • レシーバ無しでしか呼び出せない • そのメソッドを持つオブジェクトが self である コンテキスト(メソッド定義式や instance_eval )でのみ呼び出せる 参考: Ruby ¦ Ruby の private と protected 。歴史と使い分け - Qiita http://qiita.com/tbpgr/items/6f1c0c7b77218f74c63e 違うと言う事だけは覚えておきましょう。
30.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done! done!
31.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done! done!
32.
Ruby入門書籍 たのしいRuby • 他のプログラミング言語の経験やOOPへの理解 に自身が無い方にオススメ。 • 丁寧な説明でじっくり学べます。 初めてのRuby •
他の言語の経験があり、OOPも理解されている 方にオススメ。 • 簡潔な説明で、厚みも薄いので読みやすい。 パーフェクトRuby • 網羅的で良いらしいです。(僕は読んでないです、、) • rubyの構文や組み込みライブラリはもちろんメタプログラ ミングからgemの作り方までおさえてあります。
33.
もっとRubyを使いこなすための書籍 まつもとゆきひろコードの世界 • Rubyの思想的なところが理解できます。 • オブジェクト指向の話も多い。 プログラミング言語Ruby •
Rubyの仕様がわかる本。詳細に書いてある。 • 手元に1冊あると心強い。 メタプログラミングRuby • メタプログラミングの理解は脱Ruby初心者の条件!? • 1週間でメタプログラミングをマスター出来る構成になって ます。Rails内部のメタプログラミングについての解説もあ ります。
34.
もっとRubyを使いこなすための書籍 Effective Ruby • Rubyをもっと効果的に、効率的に使うための ノウハウが詰まってます。良書。 •
こちらも脱初心者のための必読書。 Rubyのしくみ • Rubyの中身が解説してある数少ない内の1冊 • 知的好奇心を満足させるためにも良い本。 (僕はまだ読めてないんですが、、)
35.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done! done! done!
36.
発表の内容 • CやJavaと比較しながらRubyを紹介します。 • 前提:どの言語を使うかは適材適所。利用シー ンの定義無しに言語の優劣は語れない。 •
最初にざっくりとRubyの特徴を説明します。 • 次にC、Javaと比較しながら基本的な構文を紹 介します。 • 最後にRubyの書籍を紹介します。 done! done! done!
37.
楽しいRubyistライフを お過ごしください!
Download