ここから本文です

Rubyは初心者向けではない?と、WEB+DB PRESSに載っていたと思うのですが、それが...

hiy********さん

2018/11/2020:27:06

Rubyは初心者向けではない?と、WEB+DB PRESSに載っていたと思うのですが、それが何月号か覚えている人はいますか?
もしかしたら、他の本や雑誌、、、TwitterやSNSか、その他?

公演映像とか?Youtubeとか?だったかもしれません。

Rubyを作った、まつもとゆきひろさん本人の談で、「作った本人がそんなこというんだなー」、と言うのだけは覚えているのですが、それがどこで見たのか、聞いたのかを、思い出せません。

Rubyが、初心者向けではない理由は、5つか、7つあり。

覚えているだけですが、

・Rubyは、趣味で作ったもので、Perl(PHP?)の中級者向けに作った言語なので、初心者向けではない。
・Rubyは、文法が独特なので、プログラマとして仕事をする上で多くの言語に触れる時に、最初がRubyだとそれ以降の学習の妨げになる可能性がある。
・Rubyは、PythonやJavaに世界的なシェアは大きく溝を空けられているので、世界を目指すプログラマは、PythonやJavaを選んで欲しい。

的なことだと思うのですが、いかんせん情報元を失念してしまい、残りのRubyの欠点?が思い出せません。
もちろん、Rubyのいい点やこれからの展望も書いてあったと思います。

まつもとゆきひろさん本人が言ったということは、確実に記憶しているのですが、かんせん情報元を確認できないので・・・、本人が、言いそうなことなんですかね?
確かに、一理ある気もしますが、そんなことは絶対に言わない人ですかね?

でも、確かにまつもとゆきひろさん本人の談という記憶はあるので・・・。

もしくは、残りを覚えているとか、想像だけど、というものがあったら、教えてください。
それがきっかけで思い出すかもしれません。

モヤモヤしているので、よろしくお願いします。

補足ちょっと不安になりましたが、まつもとゆきひろさん本人なのは、記憶違いではありません。
WEB+DB PRESSでないことは、了解です。頼もしいです。
私は、最初「小飼弾の アルファギークに逢ってきた」かと思っていたのですが、久しぶりによんだら違っていたので、WEB+DB PRESSかと思ったのです。

あと、質問は、まとめ過ぎでした。
Rubyのだめな所Top7みたいな形式ではなく、対談形式で、「Rubyの開発の経緯として、すでにプログラミングが出来る人が、気持よく作れる言語をつくろうと思った。」とか、「PythonやJavaの方が、世界的なシェアは上なので、これから始める人は、Rubyじゃない方がいいかもしれない。」という感じでした。
そこから、これからプログラミングを始める人は、必ずしもRubyをとは言わない人なんだなー、と思ったのです。

その点を誤解させてしまったのなら、すいません。
でも、確実に覚えてはいるんですが、そういうことを言わなそうな人ですかね?

閲覧数:
192
回答数:
4
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

編集あり2018/11/2100:34:37

記憶にないですが何年くらいのことですか?
WEB+DB Pressなら全号購入しています。
総集編(全記事PDF化したDVD添付)も持っています。

Twitterは文字数制限があるので可能性低いでしょう。
Youtubeだと発言内容を聞き取って覚えるのが難しいです。

  • nor********さん

    2018/11/2121:39:45

    補足を読んでですが、

    まつもと氏自身「(プログラミング)言語おたく」を自称するような人です。

    「まつもとゆきひろ コードの未来」
    https://www.amazon.co.jp/dp/4822234630/

    他の言語をdisる感じはありませんでした。
    それでも、自分が作ったRubyは愛着している感じです。

    なので「初心者にはRubyより」という発言はピンと来ません。

    「処理速度よりも楽しくプログラミングできることを重視したい」という発言はあった気がします。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2018/11/27 09:14:29

なるほど、そうなんですね。
ありがとうございます。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

2018/11/2318:33:24

当初の出典が取り下げられ、日経Linux?だか何処だか、出典も発言の文脈もあやふやな意見だけが見出しとして目立っていますね。。

それより、公の場で 賛辞されている出典が明らかで
小学生から高校生向けの”スモールビー”という教材の存在や、
”小学生も含めた入門者向け”という要件分析の上で、
「Rubyは、入門向けに良い」と言う結論の方が、
選定アプローチとして適切ではないですか?

また、大規模な統計データでも、
「質問バカリ多いがGithubに公開するようなコードを完成できる人が少ない言語より、
Githubに公開するようなコードを完成できるた件数は同程度だが、他人に聞かなければ解決できないような躓きの余地が少なくて、質問件数が少ない言語」の方が、入門者向けと言って良いでしょう。


ところが、知恵袋のプログラマ・カテゴリには、
玄人向けと入門者向けの要件分析も出来なかったり、
合目的性とか要件分析や、プログラムコード等による
”入門者向け”である証拠を提示できないだけではなくて、
入門者には無縁の”性能最高”とかで、C言語を薦めたり、
実は”普段生活の動きの表現”や、「人が人に対する作業指示の表現”にも有益な、
”マルチスレッド・待機・イベントハンドリング処理”という概念の学習が出来ないJavaScriptを薦めたりする人も要ます。

中には”拡張性のあるFizzBuzzプログラム”ですら書ける能力の無さの証拠をさらした人まで居ます。
スレッドという言葉を知っていても、適用例として”頑健なメインルーチン”の拙作コード(C++とアセンブラ)を見せても、改善コードを作れなかった人も居ます。

そうゆう”伸び悩み”の人達の意見で、プログラム言語を選びたいですか?

ーー根拠ーー
★まつもと氏が、公の複数の場所で、賛辞を表明した、教育向け教材

A:絵本「ルビーのぼうけん」
この絵本は、6歳以上を想定した知育教材です、「小学生の頭で考えて、解けないハズは無い演習課題」が掲載されています。
でも、その演習課題をプログラムで解こうとすると結構難く、トポロジカル・ソートやイベントハンドリング等の、深遠な演習課題が凝縮されています。

・コードや画面の出てこないプログラミングの絵本!?〜『ルビィのぼうけん』
://ict-toolbox. c o m/report/2016/06/1010/
引用「
大切なのは『プログラミング的なものの考え方』であって、
技術や文法を学ぶことはスタートではない。
そういう発想で世界を見られることの方が大切。」

・まつもと ゆきひろ氏の推薦コメント;
://www.shoeisha. co. jp/book/rubynobouken/#commnet
「子どもにもわかるやり方でプログラミングの本質に迫る」


B:小学校中学年以上を想定した、グラフィカルなRubyエディタ=”スモールビー”
文部科学省が『小学校低学年向けには、いわゆるテキスト・スクリプト系プログラミング言語は、不適切である』という見解を出しており」、それに応じた教材の開発競争があり、”スモールビー”が開発されました。

そして、情報処理学会 学会誌 Vol.56 No.12に掲載された座談会でも、

Ruby言語は、Sccrachや文部科学省文部科学省が開発した”プログラミン”のようには、入門者向けではなかった。
”スモールビー”で、Rubyも入門者にも使えるように なってきた

という趣旨を、まつもと氏が発言していました。
さらに、その教材を使った”スモールビー甲子園”は、まつもと氏から賛辞が示され、既に3年以上続いています。

■出典:情報処理学会 学会誌 Vol.56 No.12 (2015.11.15発行)

《特集》プログラミング言語Rubyの最新動向:
[Rubyの広がり]7.プログラミングをスポーツ少年団のように広めたい─スモウルビー開発の経緯とRubyプログラミング少年団の紹介─
(高尾宏治)

[Rubyの広がり]10.大手システムインテグレータにおけるRuby活用事例(三好秀徳)
[座談会]11.Rubyの20年,Rubyのこれから

(松本行弘・加藤和彦・千葉 滋・増原英彦 進行・構成:小野寺民也・笹田耕一・高橋征義)

■参考:スモウルビー
https://smalruby-koshien.jp/flow/step2.html


★要件分析
IT界のSIerには、単なるコンストラクタ=言われたものを構築する人だけではなくて、
目標設定のような上流工程に食い込んで 自社に御仕事を引き込むようなITストラジストや、
「特定目標に到達できる最適解を考えるITアーキテクトも居るものです。

例えば、教育界でありうる課題として、
「小学生から高校生までを対象とした学習塾で、
より広く、多くの生徒を集め続けることができる教材として、
何というプログラム言語が最適か?」
という、選定の評価観点(より広く、多くの生徒を集め続ける)を設定するのが、ITストラジストです。

競合他者である塾が既にScrachを選んで教材開発していたと知り得て、
対抗案を考えるのが、ITアーキテクトです。

顧客たる”塾長”も、文部科学省のような業界標準ルール”を決めている組織の意向には従いつつ、
単たる権威者の言うことを鵜呑みにしたり、宗教的な趣味嗜好で選ぶことを良しとはしないで、、
”最適性の検証”をするでしょう。


① ”小学生”にも適用可能 = GUI
1時間机に座らせ続けるだけでも困難な小学生を飽きさせない為には、
プログラムの入力&編集操作にも、実行にもグラフィカルなインタフェースが必要でしょう。

smalrubyを使った小学生向けの教室では、「事前に本を読みなさい」なんて言われなくて、デモプログラムとして”猫の絵が動く”GUIプログラムが動いているところを見せて、「猫の動きを変えなさい!」と言われるだけで、1日もすれば色々な編み出すそうです。


② ”幅広い生徒”= 教材の連続性
プログラミングの前提の”手続きを考える”という概念は、プログラムコードが全く出て来ない絵本”ルビーのぼうけん”の方が学びやすいです。
その次の段階の教材としては、絵本の演習課題をプログラムで解けるような連続性が無いと、”学んだことが無駄になった”という徒労感を与えてしまうでしょう。

”スモールビー”は、グラフィカルな操作で、イッパシのRuby言語のコードを書くことができるツールです。
ソコが、Scrachという、3輪車のような、園児専門玩具的な、教材との違いです。


③ 高校生が使って便利= 数学の計算問題に使えるライブラリが標準装備

「1からまでの数を分母に変換(map)した数列の間に加算演算子(+)を挟んだ(inject)の式の値」
つまり、合計は、下記の1文です。
「p [*1..100].map{|数| Rational(1,数)}.inject(:+)} 」

また、「2万番目を狙い撃ちしたフィボナッチ数の計算」も、下記の1文です。
「p (Matrix[[0,1],[1,1] ** 2_000)[1,1]」


これらの式は、オブジェクト指向と関数指向とgeneric手続き(template関数とかダックタイピング)等が融合した機能によって、”数学での数式に近い記法”で書けています。

関数指向との融合が足りないPHPでは書けないし、generic手続きの融合が足りないJavaやJavaScriptでも、短くは書けないのです。


④ 文法の簡単さ
「英単語千語覚えなさい」と言われるより「英単語4百語覚えなさい」と言われる方が、簡単だと解るでしょう。

・Ruby言語の文法書は、タッタの4百行です。
・kotrinの文法書は、約9百行。
・Python2の文法は約4百行でしたが、最新のPython3の文法書は約千行。
・JavaやJavaScriptの文法書は、約2千行です。
出典=https://github.com/antlr/grammars-v4/blob/master/

しかも、Rubyの実行者の一員が執筆された資料によれば、
ミニマムとして覚えれば良い文法は、以下の2つの規則のみで、これ以上 簡単な文法は在り得ないでしょう。
しかも、if文やwhile文なんぞ、シンタックス・シュガーで、使うことを避けることすらできるのです。

出典:Ruby言語ミニマム
http://i.loveruby.net/ja/rhg/book/minimum.html

★オブジェクトに対してはメソッドが呼べる。
"content".upcase()
★メソッド呼び出しは連鎖してよい。
"content".upcase().downcase()



⑤ 広範な分野の入門的コードを体験できる;
もし「世界的に4輪車が流行っているから、小学校の校庭で、本物の乗用車の運転練習をさせよう」なんて教員が居たら、反対するでしょう。
それと、「玄人向けにPythonが流行っているから、小学生にもPythonを使わせよう」と言うのは、同じく 非難されるべきことです。

とは言え、「高校生に3輪車的なscrachを使わせよう」という学習塾があったら、生徒側から飽きられてしまうでしょう。

初学者は、最初に10行、次に百行で、壁にぶつかるものです。
百行未満で、下記5分野を網羅的に体験できることは、拙作の過去回答にも、コードを示しています。

A:サーバ系
B:クライアント端末系
C:大量データ処理
D:対話型計算
E:機器組み込みプログラム

これら5分野の体験は、新聞の1面から3面まで全て読めるレベルの、IT界の就職先を選ぶのにも必要となる教養です。


C言語だと、情報処理技術者試験の選択言語にはなってて、玄人はEの分野で使っていますが、百行では、どの分野も体験できません。
また、Pythonの教材は、Cの分野の中のビックデータ処理の中の人工知能分野や、Eの分野に偏っています。

Javaだと、信頼性や頑健性等、情報処理技術者試験等の教科書に出てくる、入門者には不要なまでに高度な概念を幅広く学ぶことはできます。
でも、モハヤJavaが入門者向けではないレガシーなコトは、kotrin言語を後継言語としてGoogle社等が認めた状況等から、証明できます。

そうゆう判断が出来ないのは、「COBOL言語の衰退期に、COBOLを教え続けた愚かさ」の再現でしょう。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

2018/11/2123:58:36

たしか、Rebuild.fmかなにかで、ゲストで出た時に、Rubyは、Pythonと比べて、世界的な開発人口が少ないことや、機械学習や科学技術のコミュニティーも活発でないから、、、とは言っていたな。
初心者向けうんぬんは、言っていたような気もするが、どうだったか。

他のポッドキャストでも、本人はRubyをほとんど使って何かを作ったことがないとか、最初にやる言語がRubyってどうかな?(やや否定的な意味)とか、言っていたような?

俺も、質問のような記事を読んだことがあるような気がするけど、最近は日経Linuxと、IT系のポッドキャストしか聞いていないので、日経Linuxかな?

あと、確か、プログラマは英語こそ最強ツールと言ってるんじゃなかったっけ?
だとすれば、世界を相手にするのなら、PythonやJavaを推すのも、そういう理由なんじゃない?

ただ、当方猫なので、あんま人間のことには、興味がないので、うろおぼえあしからず。(=^・^=)

ubu********さん

2018/11/2111:25:47

rubyの欠点。
GUI、スレッド、遅い、信者がうざい。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる