私はポールグラハムのエッセイを読んでいました- Beating The Averages(2003) そして彼が言わなければならなかったことはここにあります:
仕事の説明が持つIT風味が多ければ多いほど、会社の危険性は低くなります。最も安全な種類は、Oracleの経験を求めていたものです。あなたはそれらについて心配する必要はありませんでした。彼らがC++またはJava開発者を望んでいると言った場合も安全でした。PerlまたはPythonプログラマーが必要な場合、それは少し恐ろしいでしょう-少なくとも技術面が本物のハッカーによって運営されている会社のように聞こえる
さて、これは時代遅れのエッセイです。しかし、私は一般的ではない言語(C/C++/Java、C#)を使用すると「それほど危険ではない」のように見えません。組織のプログラマーが開発言語に非常に流暢である場合、彼らはコードをまともなペースでクランクアウトすることに等しく熟達しているべきです。実際、あまり一般的ではない言語を使用しても、長期的に見ればプログラマーが多すぎないので、メンテナンス/拡張の問題に直面することはありませんか?
Quick-n-dirtyシステムを作成する場合、一部の言語では、他の言語よりも比較的早く離陸することができることに同意します。しかし、ポールグラハムのエッセイ/コメントは2012年以降も意味があるのでしょうか。スタートアップが典型的なIT言語を開発に使用するのであれば、なぜ競争がそれほど心配されるべきではないのですか?
言語自体がどのように違いを生むのかわかりません。重要なのは開発者の経験であり、特定の言語でコーディングするだけでなく、DRY(自分自身を繰り返さないでください))を実現できるフレームワークの可用性です。
何が欠けているのですか?スタートアップがIT風味のない言語をより適切に選択していることを意味していますか(開発者が非常に熟練している場合でも)。この主張の背後にある(プログラミング)経済的/市場力は何ですか?
PS:「lingua obscura」は、誰かの気持ちを傷つけることを意図したものではありません:)
ツールチェーンは症状です。
企業がOracleを選択した場合、これは次のことを示しています。
企業がPythonを選択した場合、これは次の兆候です。
これら2つが出会うとき、大企業の戦略は、リスクを回避し、その勢いを利用して、競合他社を売り込むことです。小さな競争の戦略は、最初に市場への競争に打ち勝ち、次に優れた製品であり続けることです。中小企業が適切な戦いを選択した場合、彼らはより速く、より反応的になり、リスクを回避するという大企業の傾向を利用するだけで、大企業を簡単に上回ります。
あいまいな言語の選択は、スタートアップの技術的な自信があまりないことを示しています。一般的な知恵を放棄しようとする企業は、ほとんどの企業が知らないソフトウェア開発について何かを知っているかもしれません。それから、彼らはただの欲求不満かもしれません。
PGのコメントは、言語の詳細よりも態度について多く見ています。内部のITの考え方を持つ人々は、それを安全に行います。彼らは低リスク技術を使用し、リスクを最小限に抑え、低リスク戦略を取るプロセスを持っています。彼らは自分の昼食を心配して忙しいので、自分の昼食を食べることができません。
最先端の人々(python 2003)は心配される人です。彼らは空腹です。彼らはリスクを取ります。彼らは知的好奇心が強い。エキサイティングな新しい言語を習得するのに遅れて起きている同じタイプの人は、あなたがそうする前にあなたの業界を混乱させるかもしれないタイプです。
グラハムは、単に危険度が低いだけでなく、競争相手としての彼にとっても危険度が低いことを意味します。彼のポイントはJava(または2003年のC++、または1980年のCOBOL)はそれほど危険ではないということではなく、むしろ通常であり、そのようなスキルを探している企業は単なる平均的な競争相手である確率ですが、あいまいな(正確には、より強力であまり知られていない)言語で強力な才能を探している企業は注目すべき企業です。
そして、はい、それは今日完全に理にかなっています。 Grahamがそれを書くずっと前から、それは完全に理にかなっており、当時はJavaについては話していませんでした。
成功したスタートアップが最初に使用した言語を見てみましょう。私の頭の上にある非科学的なリスト。誰かがエネルギーを持っていれば、適切なランダム化された研究がより良いでしょう。
したがって、おそらく、FacebookとStackexchangeは競合他社に脅威を与えていないと結論付けます。あまり説得力がない。
Paul Grahamが今日それを信じているかどうか見てみましょう。彼は共同で YCominator を設立し、スタートアップに資金を提供している。 homepage は、成功したスタートアップのいくつかをリストしています。私はそれらを順を追って調べ、非常に迅速に、彼らが初期の頃に使用した言語を研究しようとしました。
まあ、比較的あいまいで間違いなく強力な言語を好む兆候がいくつかあります。ただし、Flash、PHPおよびクラシックASPもリストされています。
それはエッセイです。これは彼が愛する比較的あいまいな言語の双曲線ブーストであり、スタートアップは彼らのテクノロジーを愛し、できるだけ早く動くべきであるという根本的なアドバイスもある。けっこうだ。
平均的な開発者は平均的なツールを使用しています。なぜなら、彼はより強力なツールの価値を見失っているからです。
「私たちの架空のブラブプログラマーが力の連続体を見下ろしている限り、彼は自分が下を見ていることを知っています。 Blubよりも強力でない言語は、彼が慣れているいくつかの機能がないため、明らかに強力ではありません。しかし、私たちの架空のブラブプログラマーが逆の方向、つまり力の連続体を見るとき、彼は自分が見上げていることに気づきません。 彼が見るものは単に奇妙な言語です。彼はおそらくそれらをブラブと同等の力と見なしますが、他のすべての毛むくじゃらのものも同様に投入されます。彼はブラブで考えているので、ブラブは彼にとって十分に良いです。」—ポール・グラハム、 平均を打つ 。
(エンファシス鉱山。)
言語が強力であるほど、使用する開発者は少なくなり、一般的ではなくなります。したがって、人気度は、言語の能力が平均からどれほど離れているかを示す良い指標です。言語が曖昧であるほど、その言語を使用する開発者が自分のしていることを知っている可能性が高くなり、ありふれた仲間よりも正当な理由でそれを選択しました。そして、経験豊富な競合他社は危険です。
スタートアップにとって言語の選択は難しい。非常に優れた新興企業の多くは、市場投入のスピード、創業者の親しみやすさ、将来の採用の容易さのために「共通」言語を選択しています。
あまり使用されていない言語を選択すると、良い兆候が見られます。開発を真剣に受け止め、専門のプログラマを雇う準備ができていると書いてあります。ただし、これらは単なるシグナルであり、スタートアップは単なる言語選択ではありません。
一番下の行は、あなたの言語の選択であり、あなたの文脈で適切に評価されるべきです。たとえばFacebookは、一般に非常にスケーラブルな言語とは見なされていないphpを使用して問題ありませんでした
あなたが知っている最高で最悪のプログラマに、好きな基準で、彼らが知っている他の言語を尋ねてください。今、前者を引き付ける求人広告を書いて、あなたはあなたの答えを持っています。アプリがC++で作成されている場合でも、学校で教えられていない言語を知っているプログラマを雇えば、より優れたクラスのプログラマを獲得できます。
競合他社が通常とは異なる言語を使用している場合は、2つの異なる点に注意する必要があります。
これらの両方の利点は、特定の状況では適用されない場合があります。たとえば、新興企業は、「かっこいいから」という言語を、それが正しい選択かどうかを実際に考えずに簡単に採用できます。彼らは簡単に採用ミスをすることができます。彼らは「強力な」言語を悪用することにより、簡単に自分の足を撃つことができます。
しかし、競合他社が変わった言語を選び、それを上手に使用する場合、はい、あなたはあなたの手に重大な脅威を与える可能性があります。
この原則はかなり時代遅れで、2003年と同じように現在も当てはまると思います。特定の言語やパラダイムが出入りする可能性がありますが、一般的で安全な汎用言語よりも、問題の領域に適した強力で表現力のある言語を選択するという考えおそらく常にいくつかの真剣な検討に値するでしょう。
顧客が閉じ込められていない場合は、はいです。強力な言語を使用する競合他社について心配する必要があります。
Java、C#、C++は比較的冗長で、編集/テストのサイクルが比較的遅いです。これにより、最速の開発者でも機能を提供できる速度が制限されます。強力なメタプログラミングが組み込まれており、コンパイル時間がゼロの、より表現力豊かな言語により、専門の開発者は機能を可能な限り迅速に構築できます。市場シェアをめぐって競争している場合、勝者には大きな報酬があり、見つけられる最高の開発者を雇い、彼らが最速で進むためのあらゆる言語を使用することは理にかなっています。後でスケーラビリティについて心配することができます。