プログラミング言語への別れのメモ

この記事では、Mathias Nehlsenによる記事の翻訳である「Onegin’s Letter to Tatyana」という詩を Habrahabrコミュニティと共有したいと思います。 著者は、Scalaでの開発経験について「私はあなたに手紙を書いています-なぜそれ以上ですか?」というスタイルで語っています。







翻訳者からの小さな出発:



新しい技術の研究を始めるとき、労働市場におけるこの技術の傾向、複雑さ、関心、インターネットに関する意見などに注意を払おうとしています。 最近、私はScalaに夢中です。 個人的には、Javaで1年以上開発した後、Scalaでコードを記述するアプローチは新しいものであり、心を変えました。



次のプロジェクトの1つでこの興味深い言語を試すために、手はますます傷をつけています。 しかし、このような記事は疑問を投げかけます。 「はい、バージニア、Scalaは複雑です!」「ScalaはJavaよりも悪いです。 少なくともJavaプロジェクトの半分については「OMG Scalaは複雑な言語です!」 マティアスのポストもこのレパートリーからのものであり、感情的な色が大きいだけです。 一般的に、私は苦しみません、私たちは翻訳に渡します。



プログラミング言語への別れのメモ



親愛なるスカラ、


2012年に初めて会ったときのことを覚えていますか? あなたの機能的なアプローチは新鮮で、私には珍しいようでした。 しばらくの間、私たちはお互いのために作られたと信じていました。 私の最初のプロジェクトは成功し、あなたが持っている最高のものを使って快適に仕事をしました。 しかし、Scalaを使用してチームで作業を開始するとすぐに、複雑な構文が私を夢中にさせ始めました。 最初は、あなたが私が好きな方法でタスクを完了するように私に申し出ていることは非常に楽しいようでした。 しかし、しばらくして、私だけでなくこれを提供していることに気付きました。 代わりに、人類に知られているすべてのプログラミングパラダイムを提供しながら、皆さんを喜ばせたいと思います。



これは、経験豊富なJava開発者と作業するときに最もひどいものでした。 はい、もちろん、彼らは非常に長い間OOPをやっていたので、おそらくそれは価値がありました。 しかし、それは、少し少ない定型コードでScalaでJavaを再作成することをお勧めするという意味ではありません。 Scalaを使用してチームで1年以上働いている間、システムを開発する方法または少なくとも問題を解決するための統一されたアプローチについて共通の理解があると感じる日は1日もありません。



これは、人があなたの助けを借りて強力なシステムを作成できないと言うことではありません。 反対の証拠はたくさんありますが、私の心はもはやあなたのものではありません。



去年、ScalaとPlay Frameworkを使用して、もともと仕事の面接時に何かを表示するためだけに作成されたBirdWatchという小さなアプリケーションを作成しました。 しかし、その後、すべてがその意味を獲得しました。 小さくてかわいい野良犬が突然あなたのポーチに突然現れたように見えました。 そして、あなたは彼女をどうするかわかりませんでしたが、彼女はとてもお腹が空いていたので、あなたは彼女を養うことに決めました。 彼女はとどまることに決めました、そして、あなたがこれを理解する前に、あなたはあなたがこの犬との絶え間ない会合を探していると自分の後ろに気づきました。 あなたはそのような物語について知っています、それは素晴らしいです。 しかし、私は不平を言っていません。



しかし、特にScalaでの書き込みに十分な時間を費やしていたため、サーバー側の実装に一生懸命に取り組む義務を感じたことはありませんでした。 さらに、サーバー側の実装は一見シンプルに見えますが、実際には、Iterateeライブラリでの実装が必要なため、すべてを詳細に理解することは困難です。 私の意見では、このライブラリを理解することは困難です。 他の人に説明するのはさらに難しく、ソースコードを理解することはほとんど不可能です。 デューデリジェンスのために、私はよく読んで理解したライブラリのソースコードのみに依存することを好みます。 同じケースで、私は最小のバグさえ修正することができず、それは私にとって赤信号でした。



私は多くの時間をさまざまなクライアントと仕事をしました。 私は最初にAngularJS / JavaScriptのバージョンを使用し、次にReactJS / JavaScriptの異なるバージョンを使用し、さらにReactJS / ScalaJSを使用しました。



この間ずっとClojureに興味を持っていたので、私にとっては、ClojureScriptとOmを使用してクライアントを作成する次の論理的なステップでした。 私はすぐに前のものを放棄しました。 私は彼が好きではなかったからではなく、ClojureScriptを使用した経験が好きだったので、すべてのClojureを支持して、Scalaの皆さんを完全に放棄したかったからです。



したがって、すべてがそうです。 私は自分用に別のプログラミング言語を発見しました。初めて、ソウルメイト、まさにプログラミング言語になり得るものを見つけたように感じました。 申し訳ありませんが、心の呼びかけに従う必要があります。

どうしてここに書いているの? いい質問です。 先日、リクルーターがScalaのプロジェクトについて私に連絡しました。それは頻繁に起こるので、このプロジェクトが誰のためのものなのか見ても気にしません。 しかし、今回は違いました。 これを完全に終了する必要があると感じました。 私のキャリアを考慮して、需要がどれほど高くても、フリーランサーサイトへの賭けがどれほど印象的であっても、Scalaはもはやその一部ではないと判断しました。



Clojureプロジェクトでの作業がより楽しくなります。 これは、Conjで行われた期待はずれの観察につながりますが。 少なくとも家賃を払うためにClojureのコードを書くことができなかったことを残念に思っていると言った人々の数には驚いた。



要約すると、親愛なるScalaは、私たちの間ですべてが終わったと言うことができます。 それはまったく休憩ではありません、私はより良いパートナーを見つけました。 そして、これは他の誰かが盲目的に私の例に従うべきだという意味ではありません。 これはすべて、人々が現在仕事に使用している言語を考えることができるようにするためであり、不幸な場合は自分に適した他の何かを探すことができます。 私は他の人の人生について何も知りませんが、私の人生は短すぎて、好きではないもので仕事をすることができません。



ありがとう、マティアス。




PS


これらの記事の大部分は、Scalaに興味のある人を怖がらせるために著者が書いたものではないようです。 むしろ、単に「異なる構文のJava」ではないと考えさせるためです。 これらは完全に異なるパラダイムとアプローチです。 または、アプリケーションのニッチでさえあります。



%HabraUser% 、これについてどう思いますか?



[UPD]:
habruiser @Vedomirのコメントで翻訳を修正しました。



All Articles