ページ内ジャンプ:

アレゲなニュースと雑談サイト

mhattaによる 2008年06月01日 6時00分の掲載
SNOBOLはいい言語だったんだけどな部門より。

あるAnonymous Coward 曰く、

本家/.に"What Makes a Programming Language Successful?”という質問が投稿されている。

「RubyやPythonとその仲間達がJavaを追いやって死に至らしめる13の理由・・・死因は老衰(13 reasons why Ruby, Python and the gang will push Java to die… of old age)」という記事では、様々なプログラミング言語が普及めざして奮闘する模様の興味深い分析が展開されている。広く使われるようになるプログラミング言語は一体何が違うのだろうか? 「いい」言語とは何だろうか? プログラミング言語が成功するとはどういうことを指すのだろうか? COBOLは成功したといえるだろうか? RubyやPythonなどについてはどうだろう?
/.Jの皆様がお使いのプログラミング言語は「いい」言語ですか? どんな言語が、どのように「成功」していると言えるでしょうか?「いい」と思うのに「成功」していないと思う言語などありますか?/.Jの皆様のご意見を是非お聞かせ下さい。

関連ストーリー

Ruby 1.9.1リリース 16 コメント
この議論は賞味期限が過ぎたので、保存されている。 新たにコメントを書くことはできない。
表示オプション しきい値:
  • Anonymous Coward : 2008年06月01日 6時53分 (#1353886)
    あくまで商売として考えるなら。
    資格ビジネスが成立するようになったら成功。

    初級、中級、上級、その他用途別に細かく別れ、資格の有効期間がありバージョンアップ用の試験も用意。
    もちろん公式のテキストが、それぞれの試験向けに存在し、テキストの公認にも金を取る。
    専門学校では最低でも初級を取るように指導。
    企業では、中級以上で特別手当が出るようになり、資格なんて現場では意味がないと言う人も、
    持ってないことをちょっと気にしちゃう。
    実際どうかというと、初級ぐらいでは確かに意味がなく、バージョンアップが頻繁なので、
    上級の資格もすぐに陳腐化するという状態。
    それでも多くの人が取っているという事実によって、上司から中級以上を取るように地味な圧力が、、、

    これくらいになれば、大成功でしょう。

    #資格ビジネスが成立した後を書くのに夢中になって、成立するまでを書きそびれてしまった
  • …が問題 (スコア:4, 参考になる)

    elderwand (34630) : 2008年06月01日 9時36分 (#1353923) 日記
    元記事の「13の理由」というのを見ると、実は Java は Python や Ruby に追いやられて死に至るのではなく、単に老衰で死ぬ(までしぶとく生き続ける)と言うことのようである。

    「RubyやPythonとその仲間達がJavaを追いやって死に至らしめる^Hない13の理由・・・死因は老衰」とでも訳すのが適当かもしれない。

    13もの理由を全部読む気はないが、最初の理由を読むと「構文が問題」と言って、C で慣れた構文である Java を持ち上げてる。

    要するに、生き残る理由は「慣性」なのであって、それが「いい」かどうかという問題ではないように思う。
  • soltiox (25610) : 2008年06月01日 17時08分 (#1354091) 日記
    これは、非常に大きな要素かもしれません。

    例えばjavaがあれこれ問題を抱えていようとも、
    他にもphpが、セキュリティの面から疑問を持たれていても、
    またc言語自体が、融通の利きすぎる仕様から問題視されていても、
    「cみたいに書ける」というのは、ずいぶん魅力的な言葉に聞こえます。
  • つーかG7。お前が一番うざい。
  • njt (4968) : 2008年06月02日 12時11分 (#1354522) 日記
    Javaの死因は我々の世代の老衰てことか。
  • 難しいです (スコア:3, 参考になる)

    LightSpeed-J (4514) : 2008年06月01日 9時28分 (#1353918) ホームページ
    B777やF22の制御ソフトウェアは、
    Adaで書かれているという話です。

    私の周りには、Adaの使い手というのは、
    過去も現在も一人もいないのですが、
    米国政府機関向けに限って言えば、
    経緯はともかく非常に成功した言語と言えるのかもです。

    B777なりF22に利用されているということは、
    少なくともこれから20年位は使い道があるということですし、
    継続して価値を生み出し続ける訳です。

    成功かそうでないかは、
    難しい。というか、奥が深いかもですね。
    --
    -- LightSpeed-J
  • Re:難しいです (スコア:2, すばらしい洞察)

    firewheel (31280) : 2008年06月01日 12時04分 (#1353981)
    >米国政府機関向けに限って言えば、
    >経緯はともかく非常に成功した言語と言えるのかもです。

    つまり言語そのものの成功だけでなく、
    それを使っている商品の成功が重要だということでしょうか。

    米国の軍事ビジネス/兵器ビジネスが成功しているからAdaが成功している
    と言えるけれど、これが、たとえば日本の兵器にAdaが採用されていたとしても
    日本の軍事ビジネスは風前の灯火ですからAdaが成功したとは言われないでしょう。
  • quililila (23086) : 2008年06月01日 12時22分 (#1353993)
    Adaは米国向けだけとは限らないですよ。航空/軍事だけとも限らない。
    欧州向けの(以下もごもご)

    # 情報公開されてるんだろうけど、どこまで公開されてるか分からないのでもごもご。
  • Anonymous Coward : 2008年06月01日 13時49分 (#1354029)
    Adaといえば盲人プログラマが絶賛していた記事が印象的だったが

    NTTも以前使っていたよ
    今でも使っているかどうかは知らない

    #1353954
    > 実世界に存在する他のものと同じように振る舞うプログラムを書きたかったら、

    こういう気分になることは稀なんだけどね
    シミュレーションでも精度やアルゴリズムの効率の問題があるゆえ
  • Anonymous Coward : 2008年06月01日 22時58分 (#1354211)
    某飛行場にそばにある、某ごにょごにょでは、いまだにAda現役ですからねぇ。
    と、雇われプログラマが書いてみる。はじめて見たときはPascalかと思った。
  • Anonymous Coward : 2008年06月01日 9時35分 (#1353922)
    なぜ関連にこれを貼らない

    髭がある程プログラミング言語は繁栄する?
    http://slashdot.jp/developers/article.pl?sid=08/04/30/0830201 [slashdot.jp]
  • あたしにとっちゃ (スコア:3, おもしろおかしい)

    Anonymous Coward : 2008年06月01日 22時34分 (#1354198)
    /usr/bin/hogehoge に入ってたら成功 /usr/local/bin/hogehoge ならまだまだだね

  • Groovy (スコア:2, おもしろおかしい)

    hiro (96) : 2008年06月01日 6時56分 (#1353887) ホームページ
    あれ?Javaは最近Groovy [slideshare.net]って子を産んだって聞いたけどね。
    まだ、よちよち歩きで、赤ちゃんだから顔も少し親に似てないところもあるみたいけど、もう、ご両親と会話しているらしいよ。
  • Re:Groovy (スコア:1, 参考になる)

    Anonymous Coward : 2008年06月01日 8時00分 (#1353899)
    子を産んでから寿命が尽きるまでの時間が長い生き物(例:人間)は、生物全体のなかでは例外的存在のようです。

    ただ、Groovyが子なのかどうかは微妙だな。どっちかというと子じゃなかったのに後から
    ●実子にみえるように擬態する程度が激しくなった
    ●本家が養子に迎えた
    というような感じがする。

    Groovyはどちらかというと角谷さんとの距離が気になる言語ですね(苦笑)。

    あ。GroovyのGrailsのスキーマ管理 [thinkit.co.jp]なんかはけっこう筋が良いと思う。
    RailsみたいにDBの都合(だけ)考えた方式だと、モデルの属性を宣言的に知る手段が(DBかまして動かすまでは)何処にも無いということになり、ちょっと怖い。
    Railsもプログラム(モデルクラス定義)側からDBへ落としてくふうにすればいいのにな。
  • Re:Groovy (スコア:1, 興味深い)

    Anonymous Coward : 2008年06月01日 9時30分 (#1353920)
    近年のJVM上の言語の多様化は興味深いです。
    理論的にはできる、といわれていたものを、Jythonが実際にできるということを証明し、
    JRuby、Rhino、Groobyなどが続いた、と。
    Microsoftの.NET Frameworkは最初から多言語指向なわけですが、これからの言語は、
    2大VM上での実行ができるか、というのも成功のキーポイントになりそうな。

    Perl6/Parrotは、いまさら感が。言い出したのは早かったんですけどね。
  • ttm (8278) : 2008年06月02日 10時37分 (#1354408)
    JavascriptってVMアーキテクチャでしたっけ?
  • 求人広告が一番多い言語というのも、ひとつの基準になるかと。
    前に、引く手あまたのプログラミング言語は? って記事がありました。
    http://slashdot.jp/developers/article.pl?sid=08/04/06/2313251 [slashdot.jp]

    # 個人的には、ググればすぐにフリーのコンパイラと分かりやすい解説サイトがひっかかるのが成功した言語。
  • ksh2ksk4 (11188) : 2008年06月01日 7時58分 (#1353898)
    二人以上いれば「成功」でいいのでは.これなら会話が成り立つし.

    多くなればなるほど「良い」言語ということでどうでしょう.
  • 元締めがしっかりしていないと話せる人が多くなればなるほど
    勝手に拡張したりして方言が増えるなんて言うのがある気がしますが
    いかがでしょう?
    COBOLなんかは方言いっぱいですし。
  • Re:話せる人が (スコア:1, おもしろおかしい)

    Anonymous Coward : 2008年06月01日 8時54分 (#1353909)
    するとC言語なんて方言だらけだから駄目駄目だってことですね(^^;;

    そういえば、「良い」と「成功」とは微妙にベクトルが違いますね。
    悪い言語でも「成功」してるといえば例えばVBなんかが思いつきますが。
  • ということは、C は成功したといえるが、B までならば成功とはいえない……と。

    # もちろん、BCPL → B → C → …のことですよ。
  • Joe: 我々が暮らすこの世界は並列に動いている。
    実世界に存在する他のものと同じように振る舞うプログラムを書きたかったら、プログラムも並行構造になることだろう。
    にちょっと感動して、世の中がそういう潮流になっていけば「成功」と言えるような気がしました。
  • Anonymous Coward : 2008年06月01日 15時46分 (#1354063)
    が、成功(≒広く普及)するポイントではないかな・・・と。決して「書ける」のが「プログラムとして正しく動作させられる」わけじゃないのがポイントだけど。

    「プログラムとしての信頼性よりも豊富な機能が満載」が最大の市場価値を持つ(と、ベンダーが勝手に誤解してる)昨今のマーケットでは、少数の上級技術者より単純な実装を繰り返しやってくれる大量の人手が必要なわけで、そこにある「プログラマを安く使って使い捨てる」というビジネスモデル維持のためには「バカでも書ける」ことが絶対条件だ。

    だいたい、業界のシェアNo.1が「信頼性は低くてもリリースすることに意味がある」を体現しているので、疑いの余地がない。

    今となっては低級言語になったCにしたって、当時の開発環境の水準では非常に高級な言語なわけで、バカでもそれなりに書ける言語なのでユーザを拡大していけた面が大きいんじゃないかなと思う。それ以降生まれた言語は少なからずCの影響を受けた言語なので、Cほど成功した言語はない。(まぁ、高級言語がCとその派生言語が少数しかなかった頃は、それなりに素養がある層以外は業界に入ってこなかったので、「バカ」より「優秀な人材が煩雑な手続きから解放される手段」としての功績が大きいと思うけど)

    ただ、Javaに関してはオブジェクト指向という新しい概念を強制したことで超バカによる脊髄反射実装をフィルターした反面、一部の天才も理解に苦しむという変な状況を作り出したことは興味深い。そのJavaも、Javaの影響を受けたバカ向けスクリプト系オブジェクト指向言語に少なからず影響を与えたので、Java単独では微妙でも言語グループとしては成功なんじゃないかなと。

    言葉は乱暴だったけど、実際そんなもんじゃなかろーかと。
  • Anonymous Coward : 2008年06月01日 22時33分 (#1354197)
    >Javaに関してはオブジェクト指向という新しい概念を強制したことで超バカによる脊髄反射実装をフィルターした反面、一部の天才も理解に苦しむという変な状況を作り出した

    それはなんか違うだろ。

    ●Javaでもクラスをたった1つしか作らず、かつstaticメソッドのみにすることで、Cとほぼ同じ(ただしマクロなし)書き方にできる。良くも悪くも。よって「馬鹿を排除」は出来ていない。実際そういう馬鹿は時折居る。

    ●上記と全く同じ意味で、非OOP的に(staticメソッドしか使わないんだったらそれは「オブジェクト」指向ではありません)書けるんだから、天才だって迷わないじゃないか?

    そもそもJava程度で「OOを強制」できてるわけがない。RubyどころかSmalltalkですらそういう意味では強制は出来ない。「OOしやすさ」が有るだけだ。あとは敢えて言えば文化が有るだけ。
  • cork (23590) : 2008年06月01日 15時53分 (#1354066)
    Computer Languages History [levenez.com]

    後継の言語が作られるか、その特徴が受け継がれた新しい言語が生まれれば概ね成功と言えるのではないでしょうか。
    歴史の長いFortranやCobolだって不変じゃないし。

    # 知名度が重要?
    --
    愚かさによって説明できるものを悪意のせいにしてはならない
  • paichi (3389) : 2008年06月02日 0時36分 (#1354252)
    1985〜1995くらいまでがごちゃごちゃと入り組んでるのに、2000年以降がシンプルになってきてますね。
    ErlangとかD言語もないようですし、若手(?)がまだその表にのってないだけなのか分かりませんけど。
    ネット普及でコミュニティがまとまりやすくなって、それぞれに集約されてきたとか?

    #後が出てこなかったSNOBOLとか、(OS環境との関係もありそうだけど)打ち捨てられたalefとかは...
  • Anonymous Coward : 2008年06月01日 15時58分 (#1354068)
    というのもありまして
    後世の言語設計に影響を与えた=成功、と見なしていいね

    ここは視野の広い人が多いからわかるよねwww
  • epn (32606) : 2008年06月01日 23時27分 (#1354227)
    LispやSmalltalkとかがその例に入りそうですね。あと、MLとか関数型言語系全般。関数が多言語で生み出されて取り入れられてる考え方は多いですし。(最近だとクロージャ、型推論など)

    個人的にはPerlが後のスクリプト言語に与えた影響は大きいと考えています。アカデミックにと言われるとちょっと疑問もありますがw

    みなさんは、どんな言語が影響があったと思いますか?
  • ここまで"人気の言語を作るには [practical-scheme.net]"への記述なし..?

    視野が狭いのでALGOLとかSimulaなのかな〜と思ったです。Smalltalkはふつうに成功してますしね。
    prologはそういう意味では成功したのかしてないのか。

    不謹慎ながらまつもとさんが以前書かれていたコメント [slashdot.jp]を思い出すとrubyはSimulaの後に続くものだと考えると『Simulaうしろ〜Simulaうしろ〜』とか思うのでAC

  • プログラミング言語としてはほとんどお目にかからないけど、VMの実装モデルには大きな影響を残したFORTHなんてのも。
    PostScriptもFlash(ActionScript)もjavaもスタックマシンだしねぇ。(CLRはどうなのか知らない)
    --
    うじゃうじゃ
  • Anonymous Coward : 2008年06月01日 17時53分 (#1354105)
    コア開発者やその取り巻きといったキモい連中の顔や名前が即座に浮かんでくるうちは、言語として成功とはいえない。

    開発者やコミュニティが増え、個人の色が薄まって、思想やしゅーきょー的な匂いが感じられなくなってようやく成功。
  • Re:顔が見えなくなること (スコア:2, おもしろおかしい)

    tensu (34456) : 2008年06月01日 19時20分 (#1354126)
    アセンブラは顔見えないね。
  • Anonymous Coward : 2008年06月01日 22時48分 (#1354204)
    >コア開発者やその取り巻きといったキモい連中の顔や名前が即座に浮かんでくる

    カーニハン&リッチー@ベル研(C)でしょ、
    Wirth@スイスのどっか(Pascal)でしょ、
    バッカス@IBM(Fortran)でしょ、
    グレースホッパー@レミントンランド社(COBOL)でしょ…

    なんだ、どいつもこいつも名前浮かんでくるぞ。
    ならばみんなキモイってことだな!

    …みんなエジソン(メンロパークの魔術師)を覚えてるから電球はウザイ、とか言うのかねキミは?
  • Re:顔が見えなくなること (スコア:2, おもしろおかしい)

    nekopon (1483) : 2008年06月02日 8時26分 (#1354325) ホームページ 日記

    …みんなエジソン(メンロパークの魔術師)を覚えてるから電球はウザイ、とか言うのかねキミは?

    だからあまりんが「白熱電球は製造中止だ」とか言い出したのか! [slashdot.jp](違

  • >思想やしゅーきょー的な匂いが感じられなくなってようやく成功。

    宗教的なものはともかくとして、思想が感じられない言語で有名だったり
    成功したといえるものってあるの?
  • LISPは? (スコア:2, 興味深い)

    SteppingWind (2654) : 2008年06月01日 12時18分 (#1353990)

    Objective CよりもLISPをまな板に乗せたほうが議論が発散しそう.

    同様にしてラテン語やエスペラント語が成功したかどうかも議論できそうですけど.

  • Re:LISPは? (スコア:1, 興味深い)

    Anonymous Coward : 2008年06月01日 12時39分 (#1353998)
    ラテン語は成功したでしょ。過去形で。
    英語もフランス語もドイツ語も全てラテン語の子孫なんだし。
  • Re:LISPは? (スコア:2, 興味深い)

    ken_non_sum (19466) : 2008年06月01日 17時16分 (#1354094) 日記
    オフトピな上に野暮かも知れませんがひとこと。

    確かにヨーロッパの多くの言語は、
    特に語彙においてラテン語(やギリシア語)の影響を強く受けているのは間違いありません。
    しかしラテン語の直接の子孫と言えるのはフランス語やイタリア語、
    スペイン語などのいわゆる「ロマンス諸語」と呼ばれるものに限られます。

    これに対して英語やドイツ語などはゲルマン語派の西ゲルマン語群に属し
    (ラテン語、ロマンス諸語はイタリック語派)、
    ラテン語とは共通の祖先である印欧祖語を介した遠戚関係にあるというのが現在の定説です。
    そのため、良く似た語があるからといって、それが親子関係にあるとは簡単に断定できないそうです。

    それにしてもプログラミング言語を自然言語からどこまで類比して考えることが許されるものなのか、
    ちょっと私には判断しかねるものがあります。

    ;;;興味がおありでしたら「インド・ヨーロッパ語族」等で検索してみてください。
    ;;;上記の用語法の詳細も検索して出てきたWikipedia の記事 [wikipedia.org]に負っております。
  • nim (10479) : 2008年06月02日 11時39分 (#1354483)
    特に英語は、イングランド国王がフランス人だったり、
    外交官の公用語がフランス語だったり、いろいろいわく因縁があるせいで、
    ラテン語だけでなくフランス語の影響をきわめて強く受けているので、
    ゲルマン系の中では特にラテン系の言語に似て感じられるでしょうね。

    余談ですが、英語は仏語からの借用語が多いので、日本で利用するときには
    発音をどっちかに統一しろと思うときがあります。
    「『コンシェルジュ』に『ボン・ボヤージ』と言われたり」するのが気持ち悪いです。
    「いちごミルクパフェ」とか、「抹茶ラテのプチケーキ」とかは、
    もうどうにでもしてくれというかんじです。
  • Re:LISPは? (スコア:1, すばらしい洞察)

    Anonymous Coward : 2008年06月01日 14時16分 (#1354036)
    全く同様の理屈で、Lispも、その要素の断片は後世の多くの言語に受け継がれてますよね。「関数」しかり、ローカル変数しかり、ガベコレしかり。最近だとクロージャとか。

    で、表面的な最大の特徴である「読みにくい」って点は、もしかしてラテン語にも通じるんでしょうか?私はラテン語は(どっかの魔法漫画で出てくる奴以外)知らないんですが…
  • どこにぶら下げるか迷いましたが、

    ラテン語というと実質、
    現在の欧米の知識階級が覚えている古典ラテン語を指します。
    欧米の新聞なんかを読んでいるとラテン語が引用されることが多々あります。
    学術誌にも論文をラテン語でしか受け付けないものがあるそうです。
    また、アカデミックな人は、外国人と会話に使ったりもするそうです。
    (日本と中国で漢文で筆談したみたいなものです)

    ちなみにラテン語は屈折語で活用形がかなりあります(40くらいだったかな)
    テニヲハにあたる助詞がない(全部語尾変化であらわします)
    その代わり語順は自由できます。
    興味があれば、新ラテン文法(東洋出版)をどうぞ。

    ラテン語がいろんな言語を生み出したのだから・・・というであれば、
    再帰、ガベージコレクションその他を
    他の言語に採用されたLispも成功したことになるような気がするのですが。

    ラテン語とLispってやっぱ似てるなぁ。
  • pee-wee (29602) : 2008年06月01日 14時40分 (#1354044)
    Objective-Cは良い言語だと思いますし、この言語を採用したからMacは成功したと思っている人です。
    なぜ良いかと思うと
    ・C言語とObjectiveな部分が切り離してある
    ・隠蔽がしやすい
    ・かといって、内部仕様はポインタでぶっこぬける
    ・NextStepの進化系であるMacはNextStepの遺産をたくさん使えた。(内部のAPIはNSで始まるクラスばかり)

    言語としての好き嫌いはあると思いますが、なぜ失敗なのか理由が聞きたい。
  • Re:Objective Cは? (スコア:3, 参考になる)

    mynz (23628) : 2008年06月01日 20時05分 (#1354137) 日記
    Objective-Cを選んだAppleの判断はどちらかといえば成功しているといえるでしょう。
    まぁ、それはCarbonとCocoaという2つの選択肢を与えているコトをふまえた上で言えるのかもしれないけど。

    Objective-Cを“言語”として耳にすると、未知のマイナー言語として大きな障害に聞こえるけど、実際Objective-Cの大部分はスーパーセットであるC言語だから、Cを習得している人なら学習コストは少ない。少なくともちょっと大きなC/C++ライブラリやフレームワークを覚えるより全然楽。

    また、Objective-CのLL言語系に近い動的具合はC++やJavaがまねできないし、実際にGUIのフレームワークとしてともて相性がいい。少なくともC+++MFCよりも全然いい感じ。

    iPhoneのSDKはObjective-Cらしく、Apple自身もその優位性を見いだしていると思えるし、Apple製品の好調ぶりと比例して少しずつ認知されていくでしょう。
  • Deasuke (34806) : 2008年06月02日 9時25分 (#1354344) 日記
    一応MacOSXやiPod touchでアプリを作った経験があるのでコメントします。(位置はここが適切かは不明)

    SmallTalkもCもC++も知っている身としては、言語の学習コストはほぼ0でした。AppKit/CocoaやUIKit/Cocoa についてはまだまだ学習コストがたまっていく感じ。

    そもそも実用的にはObjectiveCやCocoaに限らず、「言語の学習コスト << フレームワークの学習コスト」です。C言語についても(アセンブラ知ってれば)3日で覚えられます(演算子順位などはマニュアルを見ながら書けば良い)が、printf()やFILE構造体、fopen()などの標準ライブラリの使い方を覚える方は1月くらいはかかるはず。設計としてはUI側からみた大枠のMVCはCocoa/ObjectiveCで書き、Mの中からロジック部分を抜きだしてそこはtemplateばりばりのC++で書く、というのが私のスタイルになっています。glueになるMのところは ObjectiveC++です。すなわちフレームワークから遠いところはObjectiveCで書く必要はない。

    話は発散しましたが、言語なんてどうでも良くて「フレームワークこそが問題」で、ただしCocoaのフレームワークの場合はObjectiveCじゃないと利用しづらいので(Cocoa javaは失敗作だと思います、もともと無理があった)ObjectiveCである、ということ。そもそもObjectiveCの発生の起源を考えてもNextを動かすために出来た言語だと言っても良いと思います。
    またObjectiveCから見れば、それが成功しているかどうかはおいといて、MacOSXで採用されている事実はその普及にとって非常に大きなプラスであることも事実。

    あと、このツリーでの別の話題について言えば、AppleはObjectiveCを選んだのではなくジョブズがNextを持ち込んだだけでしょう。その際にpostscript→pdfにしたのは一般ユーザから見れば成功だったかも(OS側が「PDF出力できるプリンタ」を用意しているので、どんなプリントできるアプリでもPDF出力が出来る。これがPSだと一般ユーザはうれしくない)。
    --
    Best regards, でぃーすけ