ベンチャー企業が選択すべき言語は? 60
ストーリー by reo
情熱プログラマーも読もう 部門より
情熱プログラマーも読もう 部門より
ある Anonymous Coward 曰く、
Paul Graham らが 1995 年に設立した「Viaweb」というソフトウェアは Lisp で実装されており、そのため競合が新機能を発表した数日後に同様の機能を実装する、といったことができたそうだ (普通のやつらの上を行け) 。
これを踏まえて、Startup で採択すべきプログラミング言語は何 ? という話が挙がっている。そこでは Ruby や PHP を進めているのだが、/.J 読者が (Web 系ベンチャーに対して) おすすめする言語は何だろうか ?
職種によるんじゃなかろうか (スコア:2)
WEB系ならPHPやRubyあたり
組み込み系ならCとか
このへんを抑えておけば無難という感じでしょうか。
でもその辺は競争が激しそうだからマイナーな言語が使えることを売りにするのもありなんだろうか。
# 一番いいのはどの言語も使えるのがベストだけど開始早々は何か得意分野を示せる方がいいんだろうな
Re:職種によるんじゃなかろうか (スコア:2)
新卒の頃Fortranの仕事やって以来、Fortranも一応できますってネタで言うと
本当に仕事が発生するって言うのはあります(苦笑)
#割と作業量に対しての単価は良かったり
Re: (スコア:0)
じゃCOBOLとPL/Iもお願い!
危険が危ない!(Re:職種によるんじゃなかろうか (スコア:1)
ふと振り返れば、うっかりその言葉を口にしたばっかりに、
どの言語も使い物にならなくなった多言語趣味者の屍が累々と ……
Re:危険が危ない!(Re:職種によるんじゃなかろうか (スコア:5, おもしろおかしい)
なんでもできますと言うと、自分が持っている中で一番いやなスキルを使った一番いやな仕事が回ってくるの法則。
VC++6.0 とか、Pro*C とか.。しかもそんな仕事は長く続くんだ....。
#存在自体がホラー
Re:危険が危ない!(Re:職種によるんじゃなかろうか (スコア:1)
>VC++6.0 とか、Pro*C とか.。しかもそんな仕事は長く続くんだ....。
更にそれでCGIの仕事とか...
#昔やらされて泣きそうになった。
Re:危険が危ない!(Re:職種によるんじゃなかろうか (スコア:1)
あと、VB6とか。(正確にはVB6→VB.NETの仕事)
.NETじゃないASPとか、いや、ASP.NETもどうかと思うが。
PHPは本当にできないんで助かってるのかな。
上記の仕事で厭なのは、希少価値があるわけじゃないから金額的にも割に合わない事が多い事。
#存在自体がホラー
Re: (スコア:0)
何でもできる人は仕事を選べません。誰もやりたがらない仕事をやらされます。
だって、あなたしかできないんですから、あなたに頼みますよね。
何かしかできない人は、すでに仕事を選んでいるんだと気づきましょう。
# 10年後に気づくと、まわりの人は一貫したキャリアが積み上がっています。
Re:危険が危ない!(Re:職種によるんじゃなかろうか (スコア:1)
目的のために多様な手段(=言語)が選べる人だといいんですよね。
言語使用が目的になっている人だと,いろいろな言語のことをこまかく知っていても作ったものがおかしなことになるケースが散見されます。
Re:職種によるんじゃなかろうか (スコア:1)
># 一番いいのはどの言語も使えるのがベストだけど
開発者としては多様な言語を使えるように、基礎スキルを網羅し、
かつ異なる数種類の言語経験くらいは持っているべきだけど、
>>Web 系ベンチャーに対して) おすすめする言語は何だろうか ?
一企業が使用する言語は1~2種類に絞り込むべきだろう。
「なんでも使える」なんてのはやり過ぎ。
ちなみにWeb系で比較的多くなるのはクライアントサイド(=ブラウザ)がJavaScript一択で、
しかもそれが他では全く使えないからだと思う。CSSも言語に含めると、やはり同じような
理由で一つ増える。それらを除けば、やっぱり1~2種類なんだろうな。
業種によるんじゃなかろうか (スコア:0)
でもその辺は競争が激しそうだからマイナーな言語が使えることを売りにするのもありなんだろうか。
それ、開発者が覚えるべき言語の話じゃね?この記事は、ベンチャー企業が自社のプロジェクトで使用する言語、の話だと思うけど。
とはいえ、WEB系ならPHPやRubyなのは間違いないのかな。
個人的にはJavaみたいにきっちりしてる言語の方が好きだし生産性だって今は悪くないと思うけど、とりあえず始めてみる、ってことではPHPやRubyにかなわないと思った。
# Javaでちょっと自分用Webアプリ書いてみよう、と思ったら、物が見えてくるまでかかることかかること(スキル不足もあるけど、、、)。
# フレームワークによってはそうでもないかもしれないけど、とりあえず動かすという点では、PHPやRubyの方が簡単だと感じた。
Re: (スコア:0)
Paul Graham「無難だから」、Lispを選んだわけではなく、Lispだったら「何でも出来る」と自信を持っていたからLispを選んだ。
リソースが少ないとか、システムの制約以外の言語選択の制約が無い時に、「無難だから」なんて理由を持ち出すような人はベンチャーなんてやるべきではない。
無難な言語を選ぶかどうかによって、金を出すかどうか決めるような人から、ベンチャーは出資を乞うてはいけない。
ベンチャーではない普通のSOHOとかなら別ね、仕事のある無難な言語を選ぶのは悪い事じゃない。
新機能の実装を短期間で完了するのは設計 (スコア:2)
新機能の実装を短期間で完了させるためには、事前準備が必要です。言語により多少の得手不得手はあると思いますが、個人的には、それよりも開発全体を通しての設計が大事だと思います。
ソースコードを広範囲に書き換えて機能追加をしようとすると、開発速度が落ちます。作るだけならいいのですが、バグを増やしまくってそのあとが大変なことになります。少なくとも機能を追加するコストが上昇する一方です。
なので、機能追加に耐えられるように、機能単位でなるべくモジュール化する、拡張点をあらかじめ用意するなどの対策が必要になります。
テストもだいぶと効率よくやらなければいけませんし。他にもやらなければいけないことがたくさん。
たぶん、彼らは当たり前のことを当たり前のようにやっただけかと。それがものすごいことなんですけどね。
話を本題に戻して。
ベンチャー企業と言ってもいろいろとあるとは思いますが、自分のところでサービスを展開するならいろいろと試してみるのはいかがでしょうか? ベンチャー企業なんだし…。
関連トピ (スコア:1)
オールドタイプの戯言 (スコア:1)
解るセールストークを使ってプリーズ。
ビジネス英会話 (スコア:1)
というかC++とJava、HTMLとCSSは出来て当たり前みたいな感じ
あとPHP、Perlは出来たほうがよくて、仕事の幅という事も考えるとCOBOLとVBも出来たほうがいい
#まあ当然のこととしてまずビジネス用の日本語を勉強するべき
Re: (スコア:0)
ベンチャーというぐらいだから、自分で新しいことをしてやりたい!って方々なので、仕事を発注してくるクライアントなんているんでしょうかね?下請け業をベンチャーと呼ぶには。
SKILL (スコア:0)
というLispもどきでCadence Allegroの開発してたけど、
Lispだから、ってのは特に感じなかったなあ…
めんどくせーって思ったことはちょくちょくあるけど
Re:SKILL (スコア:1)
そのレベルなら、たぶん2つに一つ:
1) まだまだ十分Lispを使いこなせていない
2) 他の言語のつらさを十分理解していない
fjの教祖様
Re:SKILL (スコア:1)
Lispだから、ってのは単なる一要素で、
結局その開発者が化け物なだけって気もしますね。
Re:SKILL (スコア:1)
>結局その開発者が化け物なだけって気もしますね。
ですよねー、なにしろPaul Graham自身がLispで書かれている [aoky.net]んだもの
Re: (スコア:0)
Lispがそんなに優れているのなら
いまだに成功例としてPaul Grahamしか上がらないのはなぜなんだろう
他の開発者は何してるんでしょうな
Re: (スコア:0)
Googleが買収した米ITAソフトウエアもLispだった気がする。
# たしかハッカーと画家に書いてあったような記憶があります。
# Lisperがいるってだけだったかもしれんが
Lispが選択でき、自分のマクロをすでにたくさん持っているような人じゃないといけないからね。
Re: (スコア:0)
各種業界でデファクトスタンダードの地位を得ているAutoCADが古くはマクロとしてLispを使ってたはず。
あとEmacsも外せないのでわ。
Re: (スコア:0)
ですよね。
もしそれほどLispが凄いなら、もっと開発者人口が増えてもいいと思うのですよ。
Re:SKILL (スコア:2)
それも違う。
Lispは「それぐらい化物」でないと使いこなせないのです。
だから開発者人口が増えないのですが、それで問題ないのです。
結局、開発用言語というのは、「その人の能力を最大限に投下した時に、それをきっちりと受け止めることが出来る」必要があります。そのキャパシティがないプログラミング言語は、結局プログラマーの足かせにしかならない。逆に、プログラミング言語が提供するキャパシティを使い尽くせるだけのプログラマー以外、その言語の真の実力は出せない。
プログラマーと言語は、「役者不足」「役不足」のどちらにもならないバランスポイントで平衡させるのが良いのです。どちらかが優れていれば、もう一方が劣っていてもどうにかなる、というものではありません。
fjの教祖様
Re: (スコア:0)
CADで大規模なデータベース(ライブラリ)を直接いじるような仕事をしてたら御利益を感じられるはずですよ
Lispもいいが『普通のやつらの上』をいくなら、いっそのこと同じなんでもありのSmalltalk
使えるライブラリが豊富 (スコア:0)
な言語じゃないかな。ちょっと込み入ったロジックなら
> そのため競合が新機能を発表した数日後に同様の機能を実装する
使う言語によって、こういうことができたりできなかったり、というのは考え辛い。
Re:使えるライブラリが豊富 (スコア:1)
同意。下手にマイナーな言語使って、何やるにも自前で書かないといけなかったら、機能実装は遅れる。
書きやすさは重要な要素だけど、ライブラリの豊富さも大事。
……となると、やっぱり、Perl, Python, PHP, Rubyや、Javaのライブラリが転用できるScalaやら、誰もが挙げるような言語が強い気がする。
1を聞いて0を知れ!
メンバーが使いたい言語 (スコア:0)
取らぬ狸の皮算用で今後のメンテナンス性とかスケーラビリティとか考えてもしょうがないよ。そんなのは成功したらいくらでもどうにでもなる。
Re:メンバーが使いたい言語 (スコア:1)
御意
何か商売の種を育てるためにベンチャー企業を起こすのなら、慣れた言語や使いたい言語でいいじゃない。
そうじゃない言語をわざわざ探したり選んだりするのは本末転倒。
それとも、ベンチャーじゃなくて、脱サラしてフリーのプログラマになりたい人の相談なのだろうか?
Re: (スコア:0)
同意。
そんなも悩むより、起業の為のネタに頭を絞った方がマシ。
何処にでも有る『画期的なネタ』を以て、体制ばかり気にするベンチャーってのも沢山有ったが、
結果はご想像の通り。
Re: (スコア:0)
> そんなのは成功したらいくらでもどうにでもなる。
ところがどっこい。
少数精鋭でサービスを開発し続けていくパターンなら良いが、マンパワーで事業を広げていくようなパターンだと、最初に選んだ言語/プラットフォームは大きな足枷になる。
採用プラットフォーム/言語はあくまで手段に過ぎないこと、それは技術的負債との戦い方に影響してくるということ、
これを最初から会社全体に対してコミットしておかないと、成功して事業が拡大した際に大きな問題になって、会社としてのスピード、フットワーク、柔軟さを殺すことになるよ。
ソースはベンチャーから一部上場まで漕ぎ着けたブラック企業社員の俺。
Re: (スコア:0)
>マンパワーで事業を広げていくようなパターン
これを選択したからブラックになったというオチではないのですか?
参考までにどんなプラットフォームと言語を選んだのか聞きたいです。
そのせいでどんな苦労が発生したのかも。
結構、真面目に知りたい。
Re:メンバーが使いたい言語 (スコア:1)
> これを選択したからブラックになったというオチではないのですか?
あー、これはまったくおっしゃるとおりです。安易に兵隊を増やして事業を拡大させるとね…
> 参考までにどんなプラットフォームと言語を選んだのか聞きたいです。
.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が広く使われ始めた頃に、技術的負債の対処方法を開発に織り込まないまま開発してったらなまじ利益が出るもんだからどんどん事業拡大しちゃって、
もう下手にリファクタリングも作り直しも出来ない感じに身動き取れなくなっちゃってる会社さんの話は結構聞きます。
Re:メンバーが使いたい言語 (スコア:1)
ブラックな企業の社員にはなりたくないけど、
株式を一部上場したのならベンチャー創業者にとっては、羨ましいような成功。
言語仕様だけでなく、当時の開発環境やら人的資源(そもそも使える人が居たのか、
簡単に増員できたのか)などを考えれれば、多分妥当な選択だったのだと思う、
だから成功できた。
後知恵で、別の選択をしておけばもっと成功できたと言っても仕方が無いことで
今、色々問題が顕在化しているなら、新しい言語を導入するなり、社内の改革を
する時期なのだと思う。
上? (スコア:0)
PHPとかRubyとかで「普通のやつらの上をいけ」るの?
手近な所だと、scalaが人気かなぁ。
いけるさ! (スコア:1)
自分たちが選んだんならな。
普通の奴らは使わされるんだ。
Re:いけるさ! (スコア:2)
多分けっこうこれってあるのではないかと。
殆どの開発者の場合、自分で言語を選択できる機会って無いんじゃないでしょうか。
言語はすで決まっているものに自分がどう合わせるかがメインで言語による有利不利ってあんまり考慮されないですよね。
自社のサービスの構築だと自由は効くんでしょうか?
Re:いけるさ! (スコア:1)
自社のサービスの構築だと自由は効くんでしょうか?
自社のサービスか否かではなく、どれだけ上流からコントロールしているかによるんじゃない?
Startupな企業は、まさしく今決めるところに立ち会ってるわけだから、コントロールしやすいでしょう。
上流工程を決められた後じゃ、選択の自由は無いわな。
Re: (スコア:0)
GoとかDartsとかで斜め上を行こうじゃないか
言語は総合力で選択したい(WEB関係無いです) (スコア:0)
開発環境全体で決めたいですね
夢の言語
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
定数にはλ式等も
ここまで関数型言語についての話題なし。。。 (スコア:0)
サーバサイドでなら型のある言語を選んだ方がいいと思うのですが。。。
なんでもいい (スコア:0)
選択した、その言語について一定以上のノウハウや経験、知識があれば何でもいい。
ベンチャーとして成功した会社はその言語を採用したからではない。
開発言語と社風も、関連は薄いと思うね。
無難にPHPかな (スコア:0)
perlはベテランPGが多そうなイメージ。自社でフレームワークまで作れるような。
だけど経験によってコーディングに差が出過ぎ。
PHPは一番無難な感じ。ここ数年で強力なフレームワークが出て来ているので、どれかを使えばいい。
開発人員も一番集めやすいと思うし、そういう意味では保守もし易い。
開発環境もライブラリも情報も探しやすい。
Rubyは触ったことがないので何とも言えない。
Re:無難にPHPかな (スコア:1)
自社サービスに関しての開発、構築、運用・メンテ・拡張観点 (スコア:0)
Paul Grahamって切り出し方であることを考えると、下請け開発のベンチャー企業ではなく、自社サービスを自前で開発・構築・運営するベンチャー企業を想定していると思われます。
そうなると、初期開発や構築のスピードもさることながら、運営中のスピードが重視されるってことじゃないでしょうか?
機能追加をするときのモジュールの独立性とか、全体にわたるチューニング要素のコントロールのしやすさとか。
PHPは画面作りとかしやすいかもしれないけど、運用中の改変にどのくらい耐えられるかな・・・・
みんな言うようにPHPかRubyでしょ (スコア:0)
普通にPHP一択だね。人が確保しやすいのであればRubyでも良い。
PHPなんかは日本じゃWebデザイナ()あがりのゴミプログラマも多いけど、昨今のMVCフレームワークを使えば生産性も保守性も高いから使いやすい。
利用者が多いから良い意味でも悪い意味でもナレッジが豊富に貯まってるし。
継続的インテグレーション/デリバリを重視するなら、最近やっとまともになってきたMicrosoft .NETプラットフォームで固めるのも良い。
が、技術者の確保が比較的難しいのと、ソフトウェアのライセンスにかかるコストが高いあたりがネックだね。
最初は良くても、人やリソースを増やしてサービスをスケールする際に重くのしかかってくる。そこら辺、最初から覚悟を決めておく必要はある。
逆に絶対に選択すべきでないのはJava。
Oracle自体がJavaプラットフォームに対するリスクになってしまっていて、もはやオワコン状態になっているのは誰もが知っているところ。
スタートアップがメインで選択するにはちとリスクが大きすぎるね。
Re:みんな言うようにPHPかRubyでしょ (スコア:1)
ついこの間、Tiwtter社は今まで以上にJavaプラットフォームを活用しますと表明したばかりですけどねー
TwitterがJava標準化プロセスのJCPに参加表明
http://www.publickey1.jp/blog/11/twitterjavajcp.html [publickey1.jp]
もうちょっと前には、RoRからJavaプラットホームへの移行を表明しています。
Twitterが、Ruby on RailsからJavaVMへ移行する理由
http://www.publickey1.jp/blog/11/twitterruby_on_railsjavavm.html [publickey1.jp]
Re:みんな言うようにPHPかRubyでしょ (スコア:2)
やはりスタートアップの最初期は、後の事なんか考えずに創業者が一番素早くハックできる言語を選ぶべきだと思う。
大規模になった時の事を考えて、最初から得意でない言語でノロノロ書いてるようなベンチャーは、
大規模になる前に競合にやられて死ぬんじゃないかな。