8 ポイント 投稿者 GN⁺ 2023-12-19 | 1件のコメント | WhatsAppで共有

プログラマーの幸福を追求する

  • Rubyはプログラマーの幸福を追求する言語であり、そのためしばしば他のコミュニティからからかいの対象にもなる。
  • Rubyを使うことは楽しさをもたらし、それは言語、gemエコシステム、コミュニティ全体に内在する価値である。
  • Rubyのコードを書くとき、たとえよくない部分であっても楽しさを感じる。

表現力を奨励する

  • Rubyはおそらく地球上で最も表現力豊かなプログラミング言語だろう。
  • メタプログラミング機能と文化的なイディオムを通じて、プログラマーは意図を明確に表現できるコードを書くことができる。
  • たとえば、RSpecのDSLは、テストしたい内容がまるで人が話しているかのように読めるようにする。

自分のために作られた言語

  • 多くのRuby開発者は、RubyとRailsが自分の頭脳にぴったり合っていると感じている。
  • メソッド名やシグネチャを直感的に推測でき、間違っていたときには引数の順番を入れ替えてみることができる。
  • ドキュメントを読む前に、直感に基づいて何かを試してみることをすぐに学ぶ。

コミュニティと価値

  • Rubyコミュニティは、この言語が何であるか、そしてその言語を使う感覚を形作るうえで重要な役割を果たしている。
  • ケント・ベックは「ソフトウェアデザインは人間関係の練習だ」と言ったが、これはコミュニティと価値にも当てはまる。
  • Rubyコミュニティは、歓迎的で、親切で、互いを支え合う素晴らしいグループである。
  • Rubyは喜びとコミュニティという主要な特徴を持っており、それは卓越した長所である。

GN⁺の意見

  • Rubyという言語の最も重要な特徴は、プログラマーの幸福と表現力のあるコードの記述を可能にする点である。
  • Rubyコミュニティの強い結束力と相互支援的な文化は、この言語を使う開発者に大きな誇りと満足感を与えている。
  • この記事は、Rubyを愛する開発者の視点からRubyの魅力を伝えており、プログラミング言語が単なる道具を超えてコミュニティと文化を形成しうることを示している点で、興味深く魅力的である。

1件のコメント

 
GN⁺ 2023-12-19
Hacker Newsの意見
  • Ruby言語の表現力については意見が分かれている

    Rubyはエコシステムの内側で、あるいはエコシステムが想定する作業をするときには素晴らしいが、非標準的な作業をしようとすると非常に扱いづらい。補助的なメソッドが5段階ほど深い抽象化のどこかで定義されていることがあり、ときにはあるライブラリのメタプログラミングの一部だったりして、LSPが参照先を示せないこともある。Rubyは暗黙的なものを称賛するエコシステムで、これは時に気が狂いそうな感覚を与える。完成したコードが美しく読みやすいとしても、それで全ての問題が解決するわけではない。

  • 開発者体験の重要性は認めつつも、Rubyが最高というわけではないという意見

    開発者体験が多くのプログラミング言語やフレームワークで過小評価されているという点には同意するが、Rubyがこの分野で最高だとは思わない。文法は最初こそ良く見えるかもしれないが、型情報の欠如とメタプログラミングによってRubyは扱いにくくなる。また、プログラミング言語を選ぶ際に考慮すべき要素は他にもあり、たとえばランタイム性能などがある。静的型付けの不在やこうした理由から、Rubyは流行から外れたのだと思う。個人的には、Kotlinがプログラミング言語における理想的な着地点だと考えている。Kotlinは簡潔で読みやすく、世界トップクラスのツール支援、静的型付け、JVMの優れた性能、そしてJavaエコシステムのすべてを提供する。

  • Ruby言語への愛着を表しつつ、Pythonを好む理由を説明する意見

    Rubyは好きで、PythonよりもRubyのほうを好んでいる。特に関数型演算の連鎖がとてもすっきりしていて表現力が高い。JavaのStreamに似た点が気に入っている。ライブラリエコシステムも素晴らしく、Pythonと同じようにライブラリが非常に実用的だ。ただし、保守が必要な作業にはPythonを、少しでも性能を気にする必要があるときはJavaを選ぶ。RubyとPythonのあいだでは、漸進的型付けへのアプローチの違いから結局Pythonを選び続けている。Python 3は型をプログラムの一部として含められるが、Rubyでは型を別ファイルに置く傾向がある。これは主にライブラリ向けのようで、JavaScriptライブラリがTypeScriptの型定義ファイルを同梱するのに似ている。しかし個人的には型を直接使いたい。もちろんSorbetというツールはあるが、それがgemであること、そして文法の一部ではなく言語の中で動く形であることが気に入らない。Stripeでうまく機能しているのは見たが、個人的には好きではなく、組み込みの型ヒントを持つPython 3のほうがRubyより型を適用しやすいと感じる。Rubyはとても好きだが、型ヒントの部分が改善されてほしい。

  • さまざまな言語の経験を共有しつつ、Rubyへの好みは低いという意見

    さまざまな言語を試してきて、かつてRailsを主に使っていた頃にはRubyに深くのめり込んでいた。しかしRubyは、おそらく最も好きではない言語だ。Rubyを独特なものにしている機能の多くは、むしろ機能的な楽しさを求めるならF#へ、冒険したいならC++へ、動的言語が欲しいならScheme/Racketへ向かわせる。プログラミング言語の表現力について、一般に認められた定量的な定義があるのか気になる。ここでの筆者は、表現力を自然言語に近いことと同一視しているように見える。経験上、Rubyコードは書きやすいが、コードベースやそのイディオムに慣れていないと追いかけるのが難しい。理解に必要な多くの情報が暗黙のコンテキストを通じて伝えられる。

  • Rubyに強い反感を示しつつ、現在は主に使っている言語でもあるという意見

    Rubyは心の底から嫌いだが、今も主に使っている言語だ。Rubyそのものが不合理な言語だというより、エコシステムで一般的なパターンが問題だ。コード共有のための継承の利用、グローバルな可変状態の蔓延、メタプログラミングの乱用などが問題として挙げられる。こうした問題は言語が強制するものではなく、コミュニティでまれに見られる慣習だ。

  • Ruby保守の難しさを嘆き、他言語への移行を試みているという意見

    Rubyの保守は悪夢だと感じており、その地獄から抜け出そうとしている。個人プロジェクトではRubyが好きだが、他人と一緒に作業するとより速く混乱し、その結果「あなたのやり方を邪魔しない」というRubyの利点が失われる。コードにおける局所的推論能力を破壊してしまうことが問題だと指摘されている。

  • RubyからRustへ移行した経験を共有しつつ、Rubyへの愛着も示す意見

    10年間Rubyを使った後、4年前にRustへ移行し、それ以来振り返るつもりはない。それでもなおRubyへの愛着はある。優れた型システムなしではもうやっていけないと感じており、Rustに慣れてしまったのだと思う。しかし、Rubyの強力なリフレクション機能は恋しいという。

  • 楽しいプログラミング言語ほど雇用市場が小さいことが多いという皮肉を指摘する意見

    最も楽しいプログラミング言語ほど、しばしば最も小さな雇用市場しか持たないというのは、プログラミングの皮肉の一つだ。もし一日中Elixirをプログラミングできるなら、プログラマとしての仕事はずっと良くなるだろうが、TypeScript、Python、Javaに比べるとElixirの求人はほとんどない。Rubyはその例外だったが、今ではRailsを基盤にする人はほとんどおらず、その代わりReactやNextJSを基盤にする人が増えている。これはフルスタックアプリケーション市場全体の話であり、システム向けのRust利用者やデータ/AI向けのPython利用者には当てはまらないかもしれない。

  • Rubyのエコシステムと文化がプログラミングに与える影響を強調する意見

    言語そのものについての議論は多いが、Rubyのエコシステムと、それが育む文化こそがRubyにとどまり続ける理由だ。記事でもこの点が指摘されている。Rubyの周辺にあるプログラミングコミュニティほど、励みになり親切なコミュニティはまだ見たことがない。

  • Rubyを楽しんでいる筆者への好意的な反応と、個人的な経験を共有する意見

    筆者がRubyを楽しんでいることを嬉しく思うし、Rubyについての経験が限られている人間として、これらの引用が印象に残った。言語は使っていて楽しいものであるべきこと、よく書かれたRubyコードは自然言語のように読めること、プログラミングする言語の中で承認を感じられることの力強さなどが重要だと強調している。ソフトウェア設計は人間関係の練習だというKent Beckの言葉にも同意する。コンパイラ、ドキュメント、標準ライブラリ、サードパーティライブラリ、パッケージマネージャ、フレームワーク、フォーマッタ、プロファイラなど、言語を支えるあらゆる構成要素がとりわけ重要だ。