https://jp.quora.com/Ruby-to-Python-deha-dochira-ga-suki-desu-ka
そりゃRubyでしょ。Pythonの刑務作業のようなタブネストが嫌いです。
私「願います、タブがそろいません教官殿」
教官「おまえの使っているエディタがダサいのだ」
私「viのほうがまだ色気があります、子供のおもちゃじゃないんだからプログラムぐらいフリーフォーマットで書かせてください」
教官「お前のようなコーディング規約を守れない馬鹿のための仕様なのだ」
私「了解しました、私はPythonはやりません、Rubyでやります」
私はRuby推しですね。QuoraはPythonの会社だし、Pythonは好きな方の言語ではあるのですが、Rubyと比べてしまうと、セクシーさが足りなくてショボーンってなりますよねぇ。
RubyとPythonって、軽量言語としてのポジション的には兄弟とか表裏一体といっても良いぐらい似ているのですが、言語の思想としてはほぼ真逆なのが面白いですよね。
RubyはPerlの文脈を背負っているので、TMTOWTDIといって「同じことをやるのにも複数のやり方がある」という自由主義的なのに対し、PythonのほうはZen of Pythonに宣言されているように、反TMTOWTDI主義とでもいうべき “There should be one—and preferably only one—obvious way to do it.” (同じことをやる唯一の書き方があるべきだ)という教条主義的な思想があります。
プログラミングとはどういうものか、聖典のように教科書的な定義の正書法が欲しければ、書き方に自由度のないPythonのほうがいいでしょう。実際、プログラミング初学者向けの教育の現場ではPythonがよく使われますね。そして、そのままずっとPythonを使い続ける人も多いでしょう。
ところが、現実世界の日本語、英語などの自然言語はどうでしょう?
「同じことを伝えるのにも、複数の表現方法がある」ほうが普
… (もっと読む)ruby, pythonともに実務で使っていた者です。
どちらの言語も好きですが、しいて順番をつけるとrubyが好きですね。
1. rubyの魅力
私が考えるrubyの魅力は、一貫性と柔軟性ですね。
例えば、rubyには以下のような言語仕様があります。
- プリミティブ型を持たず、すべての値をインスタンスとして扱う。
- すべてのインスタンスのクラスは、Object(正確にはBasicObject)を継承している。
このような仕様に加えて、Objectに対する再オープン(定義済みのクラスの挙動を変える事)が可能な事によって、あたかも言語仕様そのものを変更するような拡張が可能になっています。
上記の性質が、例えばruby on railsの#blankメソッドの実装などに活用されています。
このように、一貫性と柔軟が両立されている点が私が考えるrubyの魅力です。
2. pythonの魅力
一方で、私にとってのpythonの魅力は、一貫性へのこだわりを捨てた事による懐の広さです。
例えば、pythonでにはレシーバーを持たない「関数」もあれば、レシーバーを持つ「メソッド」も存在しており、その使い分けには一貫性がない場合もあります。
参考:
https://docs.python.jp/3/faq/design.html#why-does-python-use-methods-for-some-functionality
… (もっと読む)純粋に Python と Ruby をプログラム言語として比べると、甲乙つけ難いと思います。
しかしながら、Pythonはハッカー御用達のプログラミング言語だったことから、優秀なライブラリーが多いので、ライブラリー等の周辺も含めた開発環境としては、Python の方が優れています。特に、データサイエンスや機械学習のプログラムを作りたい場合には、Ruby には使えるライブラリーが殆どなく、Python を選択するしかありません。
Ruby は言語としては優秀なのですが、ライブラリー開発者への配慮が不足しています。例えば、型アノテーションを加えることを拒否しています ( TypeScriptのような型付けをRubyに実装したら最高の言語になると思いますか? )。Python の場合は、言語仕様に、型アノテーションを追加することにより、型アノテーションが必要となるライブラリでは統一した仕様で型が使えるし、純python でも型アノテーションを付けたコードがそのまま動作します。
言語に、型アノテーションを導入することと、型アノテーションを強制するのとは全く別の話です。型アノテーションが嫌いというのはいいのですが、型アノテーションが必要という人には問題なく使えるようにしてあげることは必要です。
したがって、私個人としては Ruby は好き嫌い以前に、使いものにならない言語です。Python は、非常
… (もっと読む)Rubyは「こう書け」と押し付けられる感じがするのに対して、Pythonは思想を押し付けらない感があって好きです。
ただ、Pythonのインデント強制は大嫌いです。思想を押し付けられる感もありますし、そもそも、コードの切り貼りが自由にできない(コピペ先にインデントをあわせといけない)、さらには、スクリプトの一部をコピーしてちょっとREPLで実行するとかもできない(インデントエラーになる)のはものすごく不便です。
それこそ、機械学習なんかのプログラム開発なんかでは、試行錯誤の連続なわけで、ちょっとずつ実行しながら、いろいろ試しながら開発したいわけですが。。もちろん、一区切りつけば(gitコミットするときなど)ではインデントは合わせるに決まっていますが、その場での試行錯誤中にまでそれを強制するのは本当にやめてほしい。
Rubyですよ! ブロック構文やそれを活用したmapとかinjectとかが大好きです。
Pythonはlist comprehensionをネストすると訳が分からなくなるのが嫌です。なぜlambdaが式しか書けないのか。
私はサラリーマンですので、XXで書けと言われればその通りに書きます。COBOLだろうがLispだろうが、初めての知らない言語だろうが、調べながら書きます。
もちろん趣味で個人的に、ということもあるのですが、そういうときはむしろVBだったりCだったり、つまりはその時の気分や流行りや興味でコロコロ変わります。
で、肝心のRubyかPythonか、ですが、どちらも素人なのでよく分かりません。会社ではあまりRubyで書けとか言われないのですね。ただ、サラリーマン根性からするとPythonの方が好みかも知れません。どうせ会社では結構規則にがんじがらめにされますので、自由度が少ない方が書きやすいというか、マゾっ気があるのでしょうか。
Pythonですね。
2つのヘビがくっついてるロゴがカワイイです。
それは置いといて
RubyはWEB開発に使えそうな機能をてんこ盛りにした感じで少ないコード量で動くから、習得したら使い勝手は良いんだろうとは思う。
Pythonは、英語の文章の様に読めるコードを書きたい人達が育てた言語。
コードが読みやすく、色んなジャンルの人達が使うので、ライブラリーの幅が広いですね。
Pythonかな。
てかRuby書いたことないので比較しようがないわけです。なぜかRubyはいつも素通りしちゃいますね。相性が悪いのか。誰かがRubyは規則を押し付けると書いてましたが、その匂いでもう拒否してるのかもしれないです。
Python好き。
Rubyはまつもとゆきひろさんが設計してきれいなのですが、他の方が書いている利点「書き方がいっぱいある」というのが後で読むのに面倒かなあと思います。
Pythonはインデントでブロックがイヤと他の方が書いていますが、IDEだとそんなに苦にならないし、インデントでブロックというのは卒業研究で考えたことがあるのでPythonの方が好きですね。
#Perlとならどっちも好き。
Pythonですね。
Linuxに標準で入ってるから。 Rubyは入ってないから入れる手間がかかる。
逆に言えばその程度の違いしか無く、開発するに当たってはどっちの言語でも良いです。
私見ですが、
ライブラリの充実度からすると、Pythonかと思います。Ruby on Railsも悪くはないですが、やりたいことをすぐさま出来る、道具がどんどん揃ってく感じ。たぶん数年後を見ると、Pythonが優勢なんだと思います。
息子には、JavaやらPerlやるなら、最初はPythonがいいんじゃね?と云いました。
ただ、このごろQtを使って画面を作るのが多いのですが、情報が日本語にあまりない、ってとこはあるかと。英語でも、C++の情報をPythonに脳内変換して使うような。
でも、そこはそれは私が教えりゃいいか、と思って、という条件はあります。
ぶっちゃけ、Qtで画面ものアプリ作ろう、だったら、C++が一番だとは思うんですが。出来上がり小さく済むし。でもハードル高いと息子がいうので、じゃーPython、でした。
Rubyチームは、よっぽどレベルが高い人が集まらないと、最初にRubyで開発した本人しかメンテナンスや共同開発出来ないので、個人的にはデメリットだらけで、企業にとっては巨大な負債であり、倒産の原因が増え続ける原因だと思います。
Pythonでの開発なら法の秩序に基づいた世界観があり、安心してチームで開発したり、安心して引継ぎが出来るので安心できます。
Pythonで開発するならGo言語のGinフレームワーク並みの高速性のFastAPIフレームワークをSETでご使用になられます事をお勧め致します。
PythonのFastAPIは、元オラクル出身者が作ったSnowflakeとも相性が良いので、
それで、
Tableau(タブロー)のAIのダッシュボードを行政クラウドとして開発して、
それと自分の顔と動画を半透明にして政府間で内政問題、外交問題、司法立法行政府のe-ガバメント化ことデジタルガバメント化による公務員の大幅人員のリストラ問題、
や政府と貿易商社を含む民間、民間同士などでTVチャットで利用しやすい様に、Google検索結果で表示される公式サイトの2番目の候補に、GoogleとAmazonとMicrosoftのAzureが業務提携して連携して
Tableau(タブロー)のAIのダッシュボードによるTVチャットがすぐに開始出来る環境を世界中に広めたいと本気で思っております。営業時間外は、AIロボットがチャットコマースの様に対応して第二のAmazonの様に通信販売も楽しめると良いと思います。
Aon CEO 石塚 正浩
090-7555-5011
norukia.jp@gmail.com
https://aon.tokyo
https://aon.co.jp
準備中
好きなのは断然Rubyです。
Pythonは初心者向けの言語だと思います。オブジェクト指向(や関数型)を使わない手続きっぽい書き方が推奨される場面がC言語について多かったり、メタプログラミング的な高度なことをやる方法がオブジェクト指向的に整理されていなかったりします。
つまり、とりあえずプログラムを覚えた人があまり学習をする必要なくプログラムをすることに最適化され、そのために支障がない範囲でそれ以上の機能も十分にサポートされたという設計になっているため、使いやすいと思う人が多いという点では成功するべくして成功した言語ですが、プログラムそのものを極めたい私としては、Ruby一択です。
0 コメント:
コメントを投稿