Rubyが正しかったこと(またはRailsだったこと)[閉まっている]


13

ほとんどのプログラミング言語には、使用法と適用可能性に影響する設計上の決定事項がいくつかあります。

例えば:

  • Pythonは、コードの保守性/可読性に焦点を合わせ、インデントを言語自体の一部にしました。
  • Javaの意図は、クロスプラットフォームOOPをC ++より「簡単」かつ「使いやすい」ものにすることでした
  • Objective-Cは、当時のC ++の未来を知らないCのオブジェクト指向ラッパーとして構築されました。
  • Erlangは、高度なフォールトトレラントな同時システム向けに設計されています
  • Webページの動的作成を処理するために設計されたPHP
  • Javascript の優れた部分を公​​開し、OOPの構文糖を追加し、JSの「舞台裏」などのニュアンス(グローバルなど)を隠すように設計されたCoffeeScript

各プログラミング言語は、特定のニッチなIMHOを活用して活用しようとしました。上記は、プログラミング言語の創立原理であり、それらの進化と広範な採用可能性を支配したものについての私の見解です。もちろん、もっとたくさんありますが、リストは例としてのみ意図されています

しかし、Rubyの基礎となる人気の原則とその人気の高まりを理解するのに苦労しました。今日人気のあるRubyの設立原則は何でしたか?それとも、Railsフレームワークを設計した一人の男の天才でしょうか?後者が、RubyがRailsの設計をより良く、より簡単に、より速くしたとしたら?どのような意味で?

その作成者による最も一般的に引用された理由は、「...弱く型付けされた楽しいプログラミング言語を望んでいた」です-新しいプログラミング言語を完全に作成する理由とは思いません!プログラミングは言語に関係なくまったく楽しいです(各言語にはいくつかの悪い部分がありますが、それを回避するか、それと一緒に生活します)。

では、現在の言語では活用されていないRubyの活用法はどのようなニッチなのでしょうか?広く採用されているRubyの「強み」(USP)とは何ですか?Rubyは、これまで行われなかった(または非常に困難だった)ことをしましたか?

私はRubyプログラマーではなく、単にRuby初心者であり、それゆえ混乱しています。

免責事項:これはフレーム戦争ではなく、Ruby vsプログラミング言語タイプの回答を探しているわけではありません。私は、Rubyのベースとなっているデザインの決定を探しています。Rubyが人気を博したために満足しているニッチとは何か、それは純粋にRailsに起因するものですか?

回答:


11

Rubyは多くの理由で離陸したと思います。

  • Railsフレームワーク。Railsは、Webアプリケーションの開発を容易にし、開発者の生産性を高めるために、多くの有用なパターンを組み立てました。これを、Javaの冗長で退屈なWeb開発および「ワンマンショー」.NETプラットフォームと比較してください。数分でウェブログWebアプリケーションを作成することはあっという間に終わりました。
    Grails、Play!などの多くの新しいJVM Webフレームワークで「レール効果」を確認できます。とスプリングルー。
  • TwitterやGithubなどの成功事例。スタートアップはできるだけ早く市場に出回る必要がありますが、Railsではこれが可能です。成功事例は証拠でした。
  • Rubyプログラミング言語自体は美しく、強力で、表現力があります。私見、RubyはRailsの成功の秘sauceです。
    きゅうりとシナトラの美しさ、DSLの美しさを正しく見てください。
  • 実験と革新を恐れない熱心で勇敢なコミュニティ。
  • (個人的な意見であり、重大な理由ではない場合があります)日本で作成されています。「日本製」のイメージに勝るものはありません。
    私にとって、さまざまな国で作成されたプログラミング言語を学ぶことは、新しい人々に会うことと同じです。楽しくて教育的です。
    Ruby /日本、OCaml /フランス、Lua /ブラジル、Lisp / Mars :)

5
ワンマンショー .NETプラットフォーム」とはどういう意味ですか、以前聞いたことのないフレーズですか。
Carson63000

2
Lisp / Marsの場合は+1。Haskellはどこにありますか?
アダム

2
Haskellは地球の奥深くから来ており、開発者のような小さなドワーフの軍隊がオブジェクト指向プログラマーを混乱させることを意図して作成した
Daniel Gratzer

1
@Adam「アトランティス文明」
カイロン

13

これはタイトルの質問に直接答えませんが、提起されたいくつかのポイントに対処します(つまり、Rubyが作成された理由)

Rubyの作成者であるYukihiro 'Matz' Matsumotoからの引用。

  • 「Perlよりも強力で、Pythonよりもオブジェクト指向のスクリプト言語が欲しかった」
  • 「Rubyが世界中のすべてのプログラマーの生産性を高め、プログラミングを楽しみ、幸せになることを願っています。それがRuby言語の主な目的です。」

基本的に、Matzはプログラマーの幸福のために設計された非常にオブジェクト指向の言語を望んでいました。


1
それは非常にオブジェクト指向です。私は意味+では、1+1方法です。
-bpromas

5

Ruby(レールと一緒に)により、設定より規約が一般的になりました。

古い(レール上の非ルビー)方法は

  • 「誕生日」という名前のフィールドを持つデータベーステーブル「persons」を定義する
  • プロパティ「誕生日」を持つビジネスクラス「人」を定義する
  • データベースとビジネスクラスの間でデータを転送するためのヘルパークラスを書く
  • リスト内の人がどのようにGUIを作成します
  • 1人のプロパティを編集するためのGUIを作成します

設定より規約このための基本作業は自動的に行われます。

  • コードで人を定義します
  • データベーステーブル、マッピング、GUI要素は、強力なインタープリターまたはコードジェネレーターによって自動的に作成されます

反論:あなたはすべての慣習を学ばなければならないので、最初の走りでレールでルビーを学ぶのは難しいです。

長所:慣習がわかれば、他のRuby on Rails開発者のコ​​ードを理解するのは非常に簡単です。なぜなら、誰もが同じ慣習に従うことを余儀なくされるからです。

一方、設定に関する規約は多くのコーディングエコシステムに入りました


4

まず、Rubyは「現在の言語」です。「1995年にRubyが作成されたときによく使われていた言語」という意味かもしれません。

Perlが好きだったのと同じ理由でRubyが好きです。

  1. パワフルで表現力豊かです。5行のJavaまたはC ++の代わりに、約1行のRubyコードを書くことができます。最小限の手間で因数分解できない繰り返しはありません。

  2. ダイナミックです。メソッドとプロパティは実行時に作成できるため、データベーステーブルなど、外部で定義されたものの定義を複製したり、アプリケーションを再構築したりすることなく、オブジェクトをラップできます。

  3. 読みやすく包括的である言語に関する優れた本(Programming Ruby)があります。

  4. パブリックドメインパッケージ用の単一のリポジトリと、リポジトリへの便利なコマンドラインインターフェイスがあります。

しかし、読みやすいので、RubyはPerlよりもRubyの方が好きです。

RubyとPythonを比較するページは数多くあります。どちらも好きです。私はRubyが好きですが、Pythonの経験は限られています。


Rubyのプログラミングの序文で(Rubyとなるものが)Perlを置き換えるのに十分なものになると期待されていたことを読んだことを覚えています。
リグ

@kevin:これらは言語の機能の一部であり、私はそれらをよく知っています。しかし、「Rubyを作成する理由」を知りたいのですが、「楽しい/弱く型付けされた言語が欲しい」(または、それ自体で十分な大きさですか??
PhD

1
@Nupul:これらのことは委員会によって行われません。Matzは概念を取り入れてRubyを書きました。彼はしばらくして他の人々にそれを見せ、彼らの何人かはそれを気に入った。これが、LISP、Smalltalk、C、C ++、Pascal、Perl、Ruby、およびPythonの作成方法です。ほとんどのプログラミング言語で同じだと思います。委員会または企業イニシアチブによって作成されたものはごくわずかです。
ケビンクライン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.