パスワードを忘れた? アカウント作成
821579 story
プログラミング

ベンチャー企業が選択すべき言語は? 60

ストーリー by reo
情熱プログラマーも読もう 部門より

ある Anonymous Coward 曰く、

Paul Graham らが 1995 年に設立した「Viaweb」というソフトウェアは Lisp で実装されており、そのため競合が新機能を発表した数日後に同様の機能を実装する、といったことができたそうだ (普通のやつらの上を行け) 。

これを踏まえて、Startup で採択すべきプログラミング言語は何 ? という話が挙がっている。そこでは Ruby や PHP を進めているのだが、/.J 読者が (Web 系ベンチャーに対して) おすすめする言語は何だろうか ?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • WEB系ならPHPやRubyあたり
    組み込み系ならCとか

    このへんを抑えておけば無難という感じでしょうか。
    でもその辺は競争が激しそうだからマイナーな言語が使えることを売りにするのもありなんだろうか。

    # 一番いいのはどの言語も使えるのがベストだけど開始早々は何か得意分野を示せる方がいいんだろうな

    • 新卒の頃Fortranの仕事やって以来、Fortranも一応できますってネタで言うと
      本当に仕事が発生するって言うのはあります(苦笑)

      #割と作業量に対しての単価は良かったり

      親コメント
      • by Anonymous Coward

        じゃCOBOLとPL/Iもお願い!

    • 一番いいのはどの言語も使える

      ふと振り返れば、うっかりその言葉を口にしたばっかりに、
      どの言語も使い物にならなくなった多言語趣味者の屍が累々と ……

      親コメント
    • ># 一番いいのはどの言語も使えるのがベストだけど
      開発者としては多様な言語を使えるように、基礎スキルを網羅し、
      かつ異なる数種類の言語経験くらいは持っているべきだけど、

      >>Web 系ベンチャーに対して) おすすめする言語は何だろうか ?
      一企業が使用する言語は1~2種類に絞り込むべきだろう。
      「なんでも使える」なんてのはやり過ぎ。

      ちなみにWeb系で比較的多くなるのはクライアントサイド(=ブラウザ)がJavaScript一択で、
      しかもそれが他では全く使えないからだと思う。CSSも言語に含めると、やはり同じような
      理由で一つ増える。それらを除けば、やっぱり1~2種類なんだろうな。

      親コメント
    • でもその辺は競争が激しそうだからマイナーな言語が使えることを売りにするのもありなんだろうか。

      それ、開発者が覚えるべき言語の話じゃね?この記事は、ベンチャー企業が自社のプロジェクトで使用する言語、の話だと思うけど。

      とはいえ、WEB系ならPHPやRubyなのは間違いないのかな。
      個人的にはJavaみたいにきっちりしてる言語の方が好きだし生産性だって今は悪くないと思うけど、とりあえず始めてみる、ってことではPHPやRubyにかなわないと思った。

      # Javaでちょっと自分用Webアプリ書いてみよう、と思ったら、物が見えてくるまでかかることかかること(スキル不足もあるけど、、、)。
      # フレームワークによってはそうでもないかもしれないけど、とりあえず動かすという点では、PHPやRubyの方が簡単だと感じた。

    • by Anonymous Coward

      Paul Graham「無難だから」、Lispを選んだわけではなく、Lispだったら「何でも出来る」と自信を持っていたからLispを選んだ。
      リソースが少ないとか、システムの制約以外の言語選択の制約が無い時に、「無難だから」なんて理由を持ち出すような人はベンチャーなんてやるべきではない。
      無難な言語を選ぶかどうかによって、金を出すかどうか決めるような人から、ベンチャーは出資を乞うてはいけない。

      ベンチャーではない普通のSOHOとかなら別ね、仕事のある無難な言語を選ぶのは悪い事じゃない。

  • 新機能の実装を短期間で完了させるためには、事前準備が必要です。言語により多少の得手不得手はあると思いますが、個人的には、それよりも開発全体を通しての設計が大事だと思います。

    ソースコードを広範囲に書き換えて機能追加をしようとすると、開発速度が落ちます。作るだけならいいのですが、バグを増やしまくってそのあとが大変なことになります。少なくとも機能を追加するコストが上昇する一方です。

    なので、機能追加に耐えられるように、機能単位でなるべくモジュール化する、拡張点をあらかじめ用意するなどの対策が必要になります。

    テストもだいぶと効率よくやらなければいけませんし。他にもやらなければいけないことがたくさん。

    たぶん、彼らは当たり前のことを当たり前のようにやっただけかと。それがものすごいことなんですけどね。

    話を本題に戻して。

    ベンチャー企業と言ってもいろいろとあるとは思いますが、自分のところでサービスを展開するならいろいろと試してみるのはいかがでしょうか? ベンチャー企業なんだし…。

  • by apt (28270) on 2011年10月18日 12時11分 (#2036234) 日記
    なんだか見覚えの有る話だなと思って探してみました。 SBCL 1.0 Released! [srad.jp]というトピで、krさんのコメント [srad.jp]に書かれていたのを見たのでした。
  • まず日本語。
    解るセールストークを使ってプリーズ。
  • by duenmynoth (34577) on 2011年10月18日 19時19分 (#2036475) 日記
    そもそもベンチャー側に自由なんてなくてクライアントの希望次第でしょう

    というかC++とJava、HTMLとCSSは出来て当たり前みたいな感じ
    あとPHP、Perlは出来たほうがよくて、仕事の幅という事も考えるとCOBOLとVBも出来たほうがいい

    #まあ当然のこととしてまずビジネス用の日本語を勉強するべき
    • by Anonymous Coward

      ベンチャーというぐらいだから、自分で新しいことをしてやりたい!って方々なので、仕事を発注してくるクライアントなんているんでしょうかね?下請け業をベンチャーと呼ぶには。

  • by Anonymous Coward on 2011年10月18日 11時19分 (#2036197)

    というLispもどきでCadence Allegroの開発してたけど、
    Lispだから、ってのは特に感じなかったなあ…
    めんどくせーって思ったことはちょくちょくあるけど

    • by okky (2487) on 2011年10月18日 12時31分 (#2036259) ホームページ 日記

      そのレベルなら、たぶん2つに一つ:

      1) まだまだ十分Lispを使いこなせていない
      2) 他の言語のつらさを十分理解していない

      --
      fjの教祖様
      親コメント
    • by Anonymous Coward on 2011年10月18日 12時45分 (#2036272)

      Lispだから、ってのは単なる一要素で、
      結局その開発者が化け物なだけって気もしますね。

      親コメント
      • by Anonymous Coward on 2011年10月18日 14時11分 (#2036348)

        >結局その開発者が化け物なだけって気もしますね。
        ですよねー、なにしろPaul Graham自身がLispで書かれている [aoky.net]んだもの

        親コメント
        • by Anonymous Coward

          Lispがそんなに優れているのなら
          いまだに成功例としてPaul Grahamしか上がらないのはなぜなんだろう
          他の開発者は何してるんでしょうな

          • by Anonymous Coward

            Googleが買収した米ITAソフトウエアもLispだった気がする。
            # たしかハッカーと画家に書いてあったような記憶があります。
            # Lisperがいるってだけだったかもしれんが

            Lispが選択でき、自分のマクロをすでにたくさん持っているような人じゃないといけないからね。

          • by Anonymous Coward

            各種業界でデファクトスタンダードの地位を得ているAutoCADが古くはマクロとしてLispを使ってたはず。
            あとEmacsも外せないのでわ。

      • by Anonymous Coward

        ですよね。

        もしそれほどLispが凄いなら、もっと開発者人口が増えてもいいと思うのですよ。

        • by okky (2487) on 2011年10月18日 23時36分 (#2036599) ホームページ 日記

          それも違う。
          Lispは「それぐらい化物」でないと使いこなせないのです。
          だから開発者人口が増えないのですが、それで問題ないのです。

          結局、開発用言語というのは、「その人の能力を最大限に投下した時に、それをきっちりと受け止めることが出来る」必要があります。そのキャパシティがないプログラミング言語は、結局プログラマーの足かせにしかならない。逆に、プログラミング言語が提供するキャパシティを使い尽くせるだけのプログラマー以外、その言語の真の実力は出せない。

          プログラマーと言語は、「役者不足」「役不足」のどちらにもならないバランスポイントで平衡させるのが良いのです。どちらかが優れていれば、もう一方が劣っていてもどうにかなる、というものではありません。

          --
          fjの教祖様
          親コメント
    • by Anonymous Coward

      CADで大規模なデータベース(ライブラリ)を直接いじるような仕事をしてたら御利益を感じられるはずですよ
      Lispもいいが『普通のやつらの上』をいくなら、いっそのこと同じなんでもありのSmalltalk

  • by Anonymous Coward on 2011年10月18日 11時50分 (#2036217)

    な言語じゃないかな。ちょっと込み入ったロジックなら

    > そのため競合が新機能を発表した数日後に同様の機能を実装する

    使う言語によって、こういうことができたりできなかったり、というのは考え辛い。

    • 同意。下手にマイナーな言語使って、何やるにも自前で書かないといけなかったら、機能実装は遅れる。
      書きやすさは重要な要素だけど、ライブラリの豊富さも大事。

      ……となると、やっぱり、Perl, Python, PHP, Rubyや、Javaのライブラリが転用できるScalaやら、誰もが挙げるような言語が強い気がする。

      --
      1を聞いて0を知れ!
      親コメント
  • by Anonymous Coward on 2011年10月18日 12時02分 (#2036222)

    取らぬ狸の皮算用で今後のメンテナンス性とかスケーラビリティとか考えてもしょうがないよ。そんなのは成功したらいくらでもどうにでもなる。

    • 御意
      何か商売の種を育てるためにベンチャー企業を起こすのなら、慣れた言語や使いたい言語でいいじゃない。
      そうじゃない言語をわざわざ探したり選んだりするのは本末転倒。
      それとも、ベンチャーじゃなくて、脱サラしてフリーのプログラマになりたい人の相談なのだろうか?

      親コメント
    • by Anonymous Coward

      同意。
      そんなも悩むより、起業の為のネタに頭を絞った方がマシ。
      何処にでも有る『画期的なネタ』を以て、体制ばかり気にするベンチャーってのも沢山有ったが、
      結果はご想像の通り。

    • by Anonymous Coward

      > そんなのは成功したらいくらでもどうにでもなる。
      ところがどっこい。
      少数精鋭でサービスを開発し続けていくパターンなら良いが、マンパワーで事業を広げていくようなパターンだと、最初に選んだ言語/プラットフォームは大きな足枷になる。
      採用プラットフォーム/言語はあくまで手段に過ぎないこと、それは技術的負債との戦い方に影響してくるということ、
      これを最初から会社全体に対してコミットしておかないと、成功して事業が拡大した際に大きな問題になって、会社としてのスピード、フットワーク、柔軟さを殺すことになるよ。

      ソースはベンチャーから一部上場まで漕ぎ着けたブラック企業社員の俺。

      • by Anonymous Coward

        >マンパワーで事業を広げていくようなパターン
        これを選択したからブラックになったというオチではないのですか?
        参考までにどんなプラットフォームと言語を選んだのか聞きたいです。
        そのせいでどんな苦労が発生したのかも。
        結構、真面目に知りたい。

        • by Anonymous Coward on 2011年10月18日 23時24分 (#2036590)

          > これを選択したからブラックになったというオチではないのですか?
          あー、これはまったくおっしゃるとおりです。安易に兵隊を増やして事業を拡大させるとね…

          > 参考までにどんなプラットフォームと言語を選んだのか聞きたいです。
          .NETです。社内にブビ厨が多かったのでVB.NETでASP.NET Webアプリ。

          > そのせいでどんな苦労が発生したのかも。
          あまり参考にはならないとは思いますが…
          ・そもそも消費者向けWebアプリを作ることをあまり考えられていない。
          ・かなり特殊な使い方をしないとガラケー対応で死ぬ、というか普通の使い方しても業務アプリ以外は茨の道。ドキュモ死ね。
          ・仕方ないので特殊な使い方をするよう社内ツールキットを整備→ラーニングコストが増大する。
           (.NETでこんな感じの失敗をしてる会社さん結構多いです)
          ・というかHTTP、css、js、html、セキュリティといったWebアプリの必須技術と.NETの技術を持ち合わせてる技術者がかなり少ないので、ビジネスの拡大に合わせてソルジャーを確保するのが超大変。
           (確保したとしても、ラーニングコストが高くて初速が悪い)
          ・しかも開発ツールが高い。一人あたり13万円ぐらいかかる。仕方なく多くの開発者に無償版を使わせたりするけど無償版はアドオンに対応してないとか諸々の制限があって開発生産性大幅ダウン。
          ・VSSヤバい。
          ・テストコード書くの死ぬ。てかMS純正のCIツールが2010年になってやっと下位エディション(13万)に降りてくるとかイミフ。
           (それまでは50万円ぐらいする中位のエディションが必要だった)
          ・気がついたらScott Guthrie副社長がテコ入れしてかなり良くなったみたいだけど2年ぐらい遅かったわー。2年くらい前に(似たような仕組みを別のプラットフォームで)見たわー。

          …なんかこう書いてると.NETがカスなだけに見えそうでアレですが。(いや事実カスなんですけど)

          まぁでもPHPが広く使われ始めた頃に、技術的負債の対処方法を開発に織り込まないまま開発してったらなまじ利益が出るもんだからどんどん事業拡大しちゃって、
          もう下手にリファクタリングも作り直しも出来ない感じに身動き取れなくなっちゃってる会社さんの話は結構聞きます。

          親コメント
          • ブラックな企業の社員にはなりたくないけど、
            株式を一部上場したのならベンチャー創業者にとっては、羨ましいような成功。

            言語仕様だけでなく、当時の開発環境やら人的資源(そもそも使える人が居たのか、
            簡単に増員できたのか)などを考えれれば、多分妥当な選択だったのだと思う、
            だから成功できた。

            後知恵で、別の選択をしておけばもっと成功できたと言っても仕方が無いことで
            今、色々問題が顕在化しているなら、新しい言語を導入するなり、社内の改革を
            する時期なのだと思う。

            親コメント
  • by Anonymous Coward on 2011年10月18日 12時06分 (#2036230)

    PHPとかRubyとかで「普通のやつらの上をいけ」るの?
    手近な所だと、scalaが人気かなぁ。

    • by Anonymous Coward on 2011年10月18日 12時59分 (#2036285)

      自分たちが選んだんならな。

      普通の奴らは使わされるんだ。

      親コメント
      • by kou1slash (5979) on 2011年10月18日 13時51分 (#2036330)

        多分けっこうこれってあるのではないかと。
        殆どの開発者の場合、自分で言語を選択できる機会って無いんじゃないでしょうか。

        言語はすで決まっているものに自分がどう合わせるかがメインで言語による有利不利ってあんまり考慮されないですよね。
        自社のサービスの構築だと自由は効くんでしょうか?

        親コメント
        • by Ryo.F (3896) on 2011年10月18日 16時24分 (#2036419) 日記

          自社のサービスの構築だと自由は効くんでしょうか?

          自社のサービスか否かではなく、どれだけ上流からコントロールしているかによるんじゃない?
          Startupな企業は、まさしく今決めるところに立ち会ってるわけだから、コントロールしやすいでしょう。
          上流工程を決められた後じゃ、選択の自由は無いわな。

          親コメント
    • by Anonymous Coward

      GoとかDartsとかで斜め上を行こうじゃないか

  • by Anonymous Coward on 2011年10月18日 14時05分 (#2036339)

    開発環境全体で決めたいですね

    夢の言語

     1.強力なエディタ
     2.強力なデバッガ
     3.強力なテストツール
     4.強力なバージョン管理システム
     5.強力なバグ管理システム
     6.機械語に近いローレベルからクラウドまで一貫した記述方法
     7.インテリセンスによる、プログラムのナビゲート
     8.自動リファクタツールによる保守作業の自動化
     9.質・量ともに良くできたライブラリ

    今できなくてもいづれこういう事ができる言語でもいいかも、するとLISPは解の一つとしてアリかなと思ったりする。
    でも分かり難いし・・・

    言語が持つ必要がある要件としては

    1.強力なエディタ
     キー入力マクロでザクザク作ったり、検索する時に色々余計な物に引っかったり、必要な物が検索困難だったりしない事。

    2.強力なデバッガ
     同名の変数定数がある時混乱しない事
     実行してもI/Oなどに無影響な関数などが区別できるなど

    3.強力なテストツール
     テスト用のネームスペースは別途欲しいなと思った。
     開発時にはインテリセンス効率よく機能してもらえるようにする為にも、リフレクションを持つか、LISPの様な簡単にパースできて自分自身を容易に調査できる事。

    4.強力なバージョン管理システム
     今のところ特に思いつかない

    5.強力なバグ管理システム
     今のところ特に思いつかない

    6.機械語に近いローレベルからクラウドまで一貫した記述方法
     マルチスレッドに関わる lock などのキーワードは実装されていないといけない
     inlineアセンブラは最終手段だと思うけど必要。
     安全性レベルで関数単位で呼んではいけない物を設定出来て欲しい、機械語に触るライブラリであっても部分的には安全な事は多いです。
     クラウド側はまだコーディングした事が無いので分からないけれど、何が必要だろうか?

    7.インテリセンスによる、プログラムのナビゲート
     型無し言語は良くない、インテリセンスが機能できるためには、書ける内容が限定されていかないといけない、大量の候補は、候補を挙げていないのと一緒。
     効率よく整理できる namespace で有って欲しい。
     ライブラリの命名規則作りもインテリセンスを意識したものであってほしい。

    8.自動リファクタツールによる保守作業の自動化
     バリアント型の様なものがあると自動リファクタツールが部分的にしか機能しなくなる、バリアント型に○○を書き換えたら、ここも書き換え候補になるというタグ付けができないだろうか?
     C#では#ifで囲っていると、選択されていない方がリファクタ対象にならない、こういう文法ではリファクタリングの作業効率が落ちてしまう。

    9.質・量ともに良くできたライブラリ
     良い言語には良いライブラリができるに違いない

    =======
    その他
    宣言も表的に書けると便利だな等、エディタでその領域をダブルクリックするとExcelの様なものが立ち上がるなど

    int abc 123
    int def 456

    または

    int int
    abc def
    123 456

    定数にはλ式等も

  • by Anonymous Coward on 2011年10月18日 14時06分 (#2036340)

    サーバサイドでなら型のある言語を選んだ方がいいと思うのですが。。。

  • by Anonymous Coward on 2011年10月18日 16時57分 (#2036425)

    選択した、その言語について一定以上のノウハウや経験、知識があれば何でもいい。
    ベンチャーとして成功した会社はその言語を採用したからではない。
    開発言語と社風も、関連は薄いと思うね。

  • by Anonymous Coward on 2011年10月18日 19時02分 (#2036471)

    perlはベテランPGが多そうなイメージ。自社でフレームワークまで作れるような。
    だけど経験によってコーディングに差が出過ぎ。

    PHPは一番無難な感じ。ここ数年で強力なフレームワークが出て来ているので、どれかを使えばいい。
    開発人員も一番集めやすいと思うし、そういう意味では保守もし易い。
    開発環境もライブラリも情報も探しやすい。

    Rubyは触ったことがないので何とも言えない。

  • Paul Grahamって切り出し方であることを考えると、下請け開発のベンチャー企業ではなく、自社サービスを自前で開発・構築・運営するベンチャー企業を想定していると思われます。

    そうなると、初期開発や構築のスピードもさることながら、運営中のスピードが重視されるってことじゃないでしょうか?

    機能追加をするときのモジュールの独立性とか、全体にわたるチューニング要素のコントロールのしやすさとか。

    PHPは画面作りとかしやすいかもしれないけど、運用中の改変にどのくらい耐えられるかな・・・・

  • by Anonymous Coward on 2011年10月18日 20時52分 (#2036513)

    普通にPHP一択だね。人が確保しやすいのであればRubyでも良い。
    PHPなんかは日本じゃWebデザイナ()あがりのゴミプログラマも多いけど、昨今のMVCフレームワークを使えば生産性も保守性も高いから使いやすい。
    利用者が多いから良い意味でも悪い意味でもナレッジが豊富に貯まってるし。
    継続的インテグレーション/デリバリを重視するなら、最近やっとまともになってきたMicrosoft .NETプラットフォームで固めるのも良い。
    が、技術者の確保が比較的難しいのと、ソフトウェアのライセンスにかかるコストが高いあたりがネックだね。
    最初は良くても、人やリソースを増やしてサービスをスケールする際に重くのしかかってくる。そこら辺、最初から覚悟を決めておく必要はある。
    逆に絶対に選択すべきでないのはJava。
    Oracle自体がJavaプラットフォームに対するリスクになってしまっていて、もはやオワコン状態になっているのは誰もが知っているところ。
    スタートアップがメインで選択するにはちとリスクが大きすぎるね。

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...