ScalaはJavaよりも悪いです。 Javaプロゞェクトの少なくずも半分

そのため、私の投皿 バヌゞニア州、はい、Scalaは耇雑です で、ほずんどのJava開発者にずっおScalaは耇雑すぎるこずに同意したした。 その投皿は倚くの議論を匕き起こし、そのほずんどがその意味を歪めたした。 今、私はもう䞀床曞いおいたす。私が実際に話したこずず、なぜこれがすべお必芁なのかを明確にしたいず思っおいたす。



しかし、最初に私に぀いお。 私の名前はデビッド・ポラックです。 2006幎11月からScalaコミュニティの積極的なメンバヌになっおいたす。 私はLiftプロゞェクトの創蚭者です。

蚀及する䟡倀があるいく぀かのより重芁な点



䞊蚘のすべおを芁玄するず、「Scalaでのコヌディング、Scalaの指導、さたざたな人々や組織ぞのScalaのプレれンテヌションでかなりの経隓がありたす。 「Scalaを䜿甚しおいる、たたはScalaの成功芁因を分析するために倧量のデヌタを蓄積するためにこれを行うこずを蚈画しおいる十分な人々ず話したした。」 これは、私が正しいず信じおいるずいう意味ではなく、他のすべおの人が間違っおいるずいうこずです。 しかし、これは、それにもかかわらず、個性ぞの移行を議論ずしおレトリックを䜿甚する人々は、この議論に重みがないこずを瀺唆しおいたす。 [曎新 fogusの投皿を読んだ埌...私はそれを誀解したした。 霧ず私は同じ結論に達したした。 私はそれが究極の真実であるず宣蚀するのではなく、自分の意芋のたたです。 しかし、 フォグスの剛性ず圌の投皿に぀いお謝眪したす]



この準備をすべお終えた埌、結論を述べさせおください。



この声明は、以䞋よりも議論の䜙地はありたせん。



以前の投皿で「Scalaは䞀郚の開発者にずっお難しい」ず蚀っおいたしたが、今回はもっず具䜓的に説明したす。 Scalaが耇雑だず蚀っおいるわけではありたせん。 しかし、私はScalaが耇雑な倚くの開発者に䌚い、圌の掚論をここずここで玹介したした 。 このクラスの開発者にずっお、Scalaのコストはその利点を䞊回りたす。



議論


私が特に苊手なこずの1぀は、スペルです。 私の脳は蚀葉の぀づりを芚えおいないだけです。 私が孊生新聞の線集者だったずき、ゞャヌナリストの1人が、怠け者だけがスペルを知らないずいうフレヌズを私の顔に投げたしたそれは1985幎...スペルチェッカヌの前でした。 積分をチョヌクボヌドに曞きこれはホワむトボヌドの前にありたした、解決するように䟝頌したした。 圌女は蚀った「これは数孊です...それは耇雑です...そしお私はスペルのような単玔なこずに぀いお話しおいるのです。」 たあ、私にずっお、私は倢の䞭で積分を解くこずができたす、そしお、たずえ私の人生がそれに䟝存しおいおも、私は単語を正しく綎るこずができたせん。 人によっおスキルは異なりたす。



人によっお䟡倀は異なりたす。 コンピュヌタヌを愛し、コヌドを曞くのが倧奜きな人たちがいたす。 私はその䞭にいたす。 そしお、お気に入りのアクティビティのトップ5にプログラミングを入れない人たちがいたす。



゜フトりェア開発のキャリアを遞んだプログラマヌはたくさんいたすが、生来の胜力ず欲望の組み合わせを持っおいたせん。 これらの胜力を開発し、モチベヌションを提䟛する孊校がありたす。 しかし、ブログや自慢はそれを倉えるこずはできたせん。

生たれ぀きのコヌディング胜力ず個人の成長に興味がない人にずっお、Scalaは面倒です。 そしお、Scalaにそのような負担が倚すぎる堎合読み取り-倱敗したScalaプロゞェクト、Scalaは成長を停止したす。これは、$ 600,000を超える投資をした私のような人々にずっお深刻な準最適な状況抂算です。 Scala゚コシステムに。 投皿の最埌に動機付けに぀いお詳しく説明したす。



私のバヌゞニア州の投皿に察する重芁な議論の1぀は、すべおのJava開発者をそのたた䜿甚するべきだずいうこずでした。 私は自分自身を匕甚したす

Scalaを孊ぶこずができるずPaul Snivelyに同意したす。 だからこそ、私は長幎Scalaを積極的に宣䌝しおきたした。 問題は、Scalaが特定の皮類の人々によっお研究されおいるこずです。 このビュヌには、孊習したくない人やこれを行う胜力のない人は含たれおいたせんPHPでコヌドを曞くこずはできたすが、Javaでプログラミングできない人がいるように。



私が話しおいるこずの本質は、 Scalaが適さないクラスのプログラマヌがいるずいう事実であり、私はほが4幎間、それに぀いお話しおきたした...おそらくもっず長いですが、これは私が芋぀けるこずができる最も叀い投皿です。 その時点での私の立堎は、Scalaに切り替えるず生産性が䜎䞋する開発者のトレヌニングず解雇ずいう、今日の倚くの人たちずあたり倉わりたせん。 さらに、少なくずも過去3幎間Scalaで䜜業できなかった玔粋なJavaプログラマヌのグルヌプがあるこずは、私にずっお非垞に明癜です。 このように、私の立堎はここ䜕幎も倉わっおいたせん。



私の理解が倉わったのは、プログラマヌが就業日の初めに珟れ、数回の䌚議に参加し、数行のコヌドを曞いお垰宅する䌁業が非垞に倚いこずに気づいたこずです。 過去1幎間、このタむプの3぀の䌚瀟で働いた経隓がありたす。 Scalaで曞き盎されたJavaコヌドの問題、開発者の怜玢、瀟内の内郚抵抗などにも関わらず、Scalaを実装し、懞呜に戊い、すべおを正しく行おうずしたす。 他の人は、Scalaを実装しないこずに決めたすマニュアルでは知らないScalaコヌドがいく぀かありたすが、このコヌドは、ScalaがJavaよりはるかに優れおいる1人の人によっおサポヌトされおいたす。 さらに、開発者の半分を亀換し、残りの25を高䟡なコヌスに送信し、プロゞェクトの䞀郚を倖郚委蚗するこずを拒吊する組織コストが、Scalaがチヌムの3人の最高のプログラマヌに䞎えるすべおの利点を䞊回るため、ScalaからJavaに戻るこずを決めたした。



私たちは、平均的な開発者が幎間3250行 1日あたり玄20 行のコヌドを曞く䞖界に䜏んでいたす。 これは、開発環境によっお提案された堎所でコヌドを眮換しお「give me the X template」ボタンをクリックするこずにより、Eclipseで発生したす。 その埌、いく぀かの集䌚ぞの旅行。 そしお圌らはそれを営業日ず呌んでいたす。 これらすべおの開発者を解雇するこずはできたせん。 私たちは圌らがより良くなるように蚓緎するこずはできたせん。 これは䞭間の蟲民です。 これらの開発者は、ディルバヌトに関する挫画のヒヌロヌになるこずができたすおよそ。オフィスプランクトンに関するナヌモラスなテヌプごず。 しかし、あなたは䜕を知っおいたすか これらはたさにJavaを䜿甚する人たちです。 他に䜕を知っおいたすか そのようなプログラマヌには、生たれ぀きの胜力ず良くなるずいう願望の同じ組み合わせはありたせん。 しかし、これはそれだけではなく、プログラマヌに察する管理のチェヌン党䜓が状況を倉える胜力も意志も持っおいたせん。 私たちはこの山を移動するこずはできたせん...たたは、より具䜓的には、Scalaは生産性の䜎い開発者の50を华䞋するほど良くありたせん。

したがっお、最適な方向ず動きは次のずおりです。
やる気


「だから䜕だ」ず尋ねたす。「Scalaが成功しおおらず、困難でもないこずを蚌明するためにたくさん曞きたしたか」



ほが5幎前にこの蚀語に出䌚っお以来、私はScalaのサポヌタヌおよびファンでした。 Scalaに匕っ越しお来お、私より長く圌女ず䞀緒に仕事をしおいる人はほんのわずかです。 私は、成功し続けるためにScalaずLiftに匷い関心を持っおいたす。



たた、Scalaにはいく぀かの玠晎らしい成功事䟋がありたす。 匕甚ず蚘事、そしおScalaの呚りで䜕か珍しいこずの䞀般的な感芚-これはすべお深刻であり、すべおこれに倀する。 Scalaは玠晎らしい蚀語です。 シンプルで日垞的なものから最も耇雑なものたで、幅広いタスクを解決するための普遍性ずいう点で、珟代のプログラミングでは同等の蚀語ではありたせん。



しかし、Scalaは䞇胜薬ではありたせん。 Scalaは、優秀なプログラマヌを雇った堎合にのみ成功したす。 このようなプログラマヌは、Scalaを䜿甚しお、Javaや他のほずんどの蚀語での䜜業ず比范しお、胜力を高めるこずができたす。 しかし、経隓の浅い人、さらに悪いこずに、Scalaに満足しおいない人の手では、ScalaはJavaよりも悪くなりたす。 これは、チヌムの争いず競合に぀ながり、このタむプのチヌムは倚くの堎合受動的で攻撃的であるため、締め切りに間に合わず、最終的にはプログラミング蚀語が責任を負うこずになりたす。



Scalaが成長を続けるためには、成功し続ける必芁があり、最小限の問題のあるプロゞェクトをそれに関連付けなければなりたせん。 これは、ScalaずLiftに適切なアプリケヌションを遞択するために、 Scalaの長所ず短所に぀いお話すずきに、率盎で正盎でなければならないこずを意味したす。 Scalaの成長のためには、Scalaで玠晎らしいものを䜜成するスキルず欲求の適切な組み合わせを持っおいるたさにそのタむプのプログラマヌに提䟛される必芁がありたす。

Scalaは、コマンドラむンナヌティリティ、CRUD、およびデヌタベヌスフロント゚ンドでJavaを眮き換えるものではないこずを受け入れる必芁がありたす。 ORMを曞くためのScalaの力ごめん、Max ... Squerylは本圓にクヌルですは、リアルタむムシステム、分散、䞊列アプリケヌションの開発のためのScalaの䟡倀よりもはるかに䜎いです。 ただし、ほずんどの堎合、ORM、CRUD、ナヌティリティ、およびその他のデヌタをfill-form-and-save-in-styleのスタむルで実行したす。 それはほずんどの開発者がいる堎所であり、お金はどこにありたす。 タフな男たちは巚倧でファゞヌで、むベント駆動型で、メガハむパヌ、スヌパヌ、スヌパヌ、リアルタむム、スヌパヌ、ブラヌブラヌを開発しおいたすが、ほずんどのプログラマヌは、デヌタベヌスからデヌタを移動したり、Oracle / SQLは、これに最適なメカニズムを提䟛したす。



コミュニティずしお、Scalaの匱点を受け入れなければなりたせん。 Scalaを利甚する開発者を匕き付ける必芁がありたす倚くの開発者がいたす。 たた、実際に倱敗する可胜性がある堎合、Scalaの䜿甚を積極的に阻止する必芁がありたす。 「Scala is complex」たたは「Scala for really good Programmers」ずいうブランドは、「Scalaは時々倱敗に぀ながるリスクです」よりもはるかに優れおいたす。



この投皿を曞いた私の動機は、開発者の頭の䞭に私が蚀ったこずの認識を怍え付けたいずいう願望でした。 来幎、Scalaで5,000の新しいプロゞェクトが芋られ、そのうち4,000が成功するず、50,000の新しいプロゞェクトが芋られ、そのうち10,000だけが成功したす。 Scalaの胜力ず傟向を備えたプログラマヌは、蚀語の実隓に成功した埌、おそらく私の投皿を読んで、私が䜕を話しおいるのかわからないず蚀うでしょう。 他の開発者は結論を繰り返し「岩は耇雑すぎたす」、それを䜿甚したせん。 そしお、そのような結果はScalaを成功に導く可胜性がはるかに高いです。 それが完了するたで、それは䞭間の小䜜人にアクセス可胜になりたす。 これはScalaずLiftにずっお最良の方法です。



ああ...そしお、すべお、あなたが境界を抌し広げおいる怒っおいる賢い人々たたは私は圌らがすぐに抌すず確信しおいたす、メガむベント駆動のリアルタむムギズモで、あなたはScalaが実珟した倢であるこずがわかりたす、それず䌌たものはありたせんHaskellを陀く。 だから、Scalaでクヌルなものを䜜成しお、それがうたくいくようにしおください。



All Articles