言語選択(Haskell vs Go)

言語選択の問題と複雑さと生産性の妥協に関する記事の翻訳。



警告:これは暴言です。



私は最近、Haskellでの啓蒙の道をさらに大きく前進させました。 最後に、Haskellのモザイクのさまざまな部分がどれだけ調和して調和しているかを確認します。 この時点で、私は前進して有用なプログラムを書く準備ができていると感じました。 Scotty Webフレームワークソースコードを読んだところ、その仕組みが非常によく理解できたことに驚きました。 私はHaskellが大好きです。 彼があなたに考えさせるという事実が好きです。 テキストエディタを開いて、キーを押してHaskellでプログラムを作成するだけではありません。 Haskellが一般化と抽象化を奨励しているという事実が大好きです。 私のパスの「ユーレカ」の瞬間の1つは、a- > aのような関数に実装が1つしかない理由のすべての結果を理解することでした。 私はプログラムを初めて実行し、それが機能することを知っている機会に夢中になりました(長年コンパイラーと戦った後)。 モナドとレンズはとても賢いものだと思います。 多くの基準により、Haskellは理想的なプログラミング言語です。



そして、私はこれに来るのに4年かかりました。



私は彼にがっかりしていましたが、それ以上続けることの意味が分からなかったからといって、数週間から数ヶ月間休憩を取りました。 しかし、私はいつも戻ってきました。 そして今、私はついに自分のいる場所に到着しました。 私は中レベルのHaskellistだと言えます。 もちろん、私はHaskellで動作するいくつかのプログラムを書くことを考えています。これは、サービス指向のアーキテクチャを考えると、非常に簡単です。



また、 Purescriptを使用しました。これは、JavascriptにコンパイルされるHaskellの方言です。 多くの点で、PurescriptはHaskellよりもはるかに優れています。彼はその歴史的な荷物を持っていないからです。 しかし、Purescriptをコードベースで使用する方法についてPurescriptを知らない同僚に話しかけたところ、私は彼に学んでほしいことの厳しさを実感しました。 もちろん、これはすばらしいですね。「Purescriptでこれを書き換えましょう」と言って、週末を経て誰かが戻ってくることを期待してください。



もう1つの優れた例は、オープンソースコミュニティです。 オープンソースプロジェクトにHaskellを選択すると、生産性が向上し、コードを安全にリファクタリングし、少しのコードを書くことができます。



Haskellの友人の多くはGoをからかうことが大好きです。 私自身、これを複数回行いました。 この言語は客観的に非常に貧弱なデザインであることに留意してください。 エラー処理、ジェネリックの欠如、ひどいパッケージマネージャー、不合理な型システム、この事の範囲など。 これはHaskellのほぼ正反対です。



GitHubによると、これらすべての点で、GoはHaskellよりもはるかに人気があります。 突然、GoはDocker、InfluxDB、etcd、consul、prometheus、packerなど、多くの素晴らしいプロジェクトをすでに作成しました。 Haskellとは異なり、ある週末に同僚にGoを学ぶように頼むと、彼らは既に書いた小さなプログラムで戻ってきます。 何らかの理由で、大衆は無条件に悪いツールを使用してクールなものを作成します。



これから何を学ぶべきですか? プログラミング言語の選択は重要です。 プログラミングは社会的活動です。 「機能が少ない」とは「習得しやすい」ということです。 プログラミング言語の一般化と革新は時代遅れになっているようです。 実際の問題を解決するプログラムを作成することは、鋭いaを使用するよりも重要です。 ほぼ間違いなく、最悪のツールを好みます。これは、指示を読む必要なく簡単に使用できます。 プロ用の一眼レフカメラの使用方法を学ぶよりも、スマートフォンで写真をクリックする方が適切です。



All Articles