やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Ruby3.0学習まとめ

 一旦これにて終了。

まとめ

未学習

 リファレンスマニュアルのうちライブラリ関連は未学習である。組み込みライブラリはクラスだけはすべて学習した。しかしモジュールや例外は一切やっていない。また、標準添付ライブラリC APIその他の項も未学習。

おすすめの学習方法

  • 構文(条件分岐、くりかえし)
  • 組込クラス(Array、Integer、String)

 構文は一行で短く書ける記法を学ぶと楽しく書ける。クラスに関しては基本的な型についてのみ学習すると効率がよい。特に配列(Array)や連想配列(Hasy)、文字列(String)や数値(Integer)だ。それらを知っておけば基本を押さえられる。あとは必要になり次第、学習すればいいと思う。

所感

 RubyBashの上位互換という印象。

Bash

 RubyBashの上位互換である。という印象を受けた。Bashと比べてクラスが使えたりヒアドキュメントが使いやすい。シェルコマンドもRuby内部で使いやすい。配列や連想配列(ハッシュ)もありBashより使いやすい。関数の戻り値にそれらを使えるのも大きい。

 反面、複雑で難しく面倒なところもある。文字コード周り、ブロック、スレッドなどだ。はたしてわざわざRubyという新たな言語を覚えてまでBashから乗り換えるべきか。そう問われると疑問が残る。少なくとも最強のスクリプト言語とは言い難い。

 Rubyの設計思想は「書いていて楽しい言語」らしい。たしかに3.time {|i| p i}などは楽に書けて楽しい。けれどend, beginなど見た目もやぼったかったり、書くのも面倒なところがある。さらに例外などはbeginからはじまり可読性が低い。

Python

 Pythonと比べるのは難しい。私としてはどちらも長所と短所があるように思える。それぞれ短く書ける所が異なるし、可読性に関してもそれぞれわかりやすい所もあれば、わかりにくいところもある。end不要なPythonが好き。でもselfがウザくて嫌い。どちらがいいかでは語れず、それぞれ良し悪しがある。

 ライブラリに関しては圧倒的にPythonが強いと思う。特にコマンドライン引数を解析するときなどに顕著。けれど私はまだRubyのそれらをちゃんと学習していない。さらにサードパーティ製ライブラリまで調査すると、逆転する可能性もある。

 なんとなく、スクリプトといえばRubyよりもPythonのほうがよく使われている気がする。Rubyを学習しているときもググった感じではブログなどの記事がPythonと比べて少ない印象を受けた。公式ドキュメントに至っては圧倒的に少ない。もっとも、Pythonの公式ドキュメントは自画自賛したりして冗長で詐欺的なところがあるなど気に入らないところも多いが。

最強のスクリプト言語は?

 私的にお気に入りの言語ランキングは以下。

順位 言語 印象
1 Bash 愛すべきクソ言語。闇と罠にあふれており知るほど深みにハマる。一向にマスターできないが「こんな黒魔術をこなせる俺カッコイイ」感に浸れ、書いてて楽しくなる。狂気のマッドエンジニア御用達。
2 Python 憎たらしいクソ言語。クラスを使うと一気に冗長化する。特にself祭りでイラつく。公式ドキュメントの自画自賛ぶりとPEP8の「心の狭さ」などブチギレ案件多数。よって学習にはアンガーマネージメントが必須。情報とライブラリが充実している。
3 Ruby 小さくまとまっている印象。if修飾子など一行で短く明瞭に書ける工夫がすばらしい。だが例外はbeginではじまるなど可読性の低い所や、endで終了せねばならないなど冗長なところも多くて残念。OSによって文字コード問題が生じうるため、クロスプラットフォーム性が信頼できない。erbirbrakeriなどサブコマンドが充実しているのが素敵。

 噂のRuby on Railsは未学習。Rubyの真価を発揮するにはそれを知らねば語れないと思われる。けれど今どきはGoのマイクロサービスもあるようだし、Pythonだってサーバ処理が書けるはず。Node.jsなどもある。Ruby on Railsにこだわる必要も理由もないのでは?

 まだGo言語を学習していないが、おそらく最下位だろう。

対象環境

$ uname -a
Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux