JavaがC++を追い抜く日 97
ストーリー by kazekiri
ハヤリスタリ 部門より
ハヤリスタリ 部門より
vladobossdog曰く、" ITmediaに記事が出ているが、 世界最大のオープンソースソフトウェア開発サイトである SourceForge.netにおいて Javaがプロジェクト数において初めてC++を追い抜いたとのこと。 実際にSoftware Mapを見てみると、Javaが16,906 projects、 C++が16860 projectsと確かに追い抜いているが、それどころか C++どころか16030 projectsのCも追い抜いているようだ。 ちなみに SourceForge.JPでもJavaがトップのようである。 Javaが世に出てから10年ほど経ったが、SF.netという オープンソース(フリーソフトウェア)の世界においてこれだけ広まるとは 思いもよらなかった。"
プログラマがこれから憶えるべき言語 (スコア:4, すばらしい洞察)
「これから憶えるならどの言語ですか?」
「それは全部だね。全部。必要になった言語を、その場でちゃっちゃっと憶えて、一応の仕事はできるようなポテンシャルがないとダメ」
この回答だけは非常に納得いくものがあった。
「Beyond Java」 (スコア:3, 興味深い)
本ではJavaからどんな言語に変更すべきか、みたいな事も書いてあるそうです。
http://www.oreilly.com/catalog/beyondjava/
Re:「Beyond Java」 (スコア:3, 参考になる)
彼は軽快なJava [amazon.co.jp]で「SpringやHibernateなどの軽量フレームワークがJavaを変える!」なーんて言ってたわけです。ところが最近は「Javaで軽量な開発をやろうと思ったら、SpringやらHibernateやら、いろいろとおぼえなくちゃならなくて大変だよ [webservicessummit.com]」なんて言い出している。なんなの、この無責任な一貫性の無さは。
「利に聡い」人なんだろうなぁ、とは思います。
Re:「Beyond Java」 (スコア:4, すばらしい洞察)
いやぁ、あなたのコメントを読んでいるとむしろ
Tate 氏は一貫しているように見えるなぁ。
「軽量さ」を求める、ということでね。
もし言語として Java を使うことが避けられないのであれば
その中で軽量な手法を選ぶべきだし、
もしそもそも Java 以外の言語を選べるのであれば、
より軽量なものを選ぶのがよい、と。
#該当の書籍を読んでないのであくまであなたの
#コメントからの判断ね。
# mishimaは本田透先生を熱烈に応援しています
Re:「Beyond Java」 (スコア:1)
実際のところ、利用する言語云々までお客様が決定することはよくある話ですので。
制約のある中で、軽量を求めるスタイルは今後我々も考えていかねばならないでしょうね。
#僕も読んでないので、早速購入手続きをしてみました。
>もし言語として Java を使うことが避けられないのであれば
>その中で軽量な手法を選ぶべきだし、
>もしそもそも Java 以外の言語を選べるのであれば、
>より軽量なものを選ぶのがよい、と。
- Sparklegate, Yam.
Re:「Beyond Java」 (スコア:1, すばらしい洞察)
「フラフラと腰の据わっていない」はちょっと可愛そうです。
フラフラとしているように見える程、(特にWeb周りの)業界の変化や進化が早いのでしょう。
たしかに、そのまま鵜呑みにしてつき従うと、トレンドの最前線を突っ走りつづけるのでとんでもないことになりそうですが、それを取捨選択出来るのが技術者に求められるセンスですよね。
Re:「Beyond Java」 (スコア:1)
Re:「Beyond Java」 (スコア:1)
知っていたので
> その中で軽量な手法を選ぶべきだし、
と書きましたよ。
ついでにちょっと与太話。
> 近年のソフト開発の要望は、それだけ複雑化しているともいえる。
ここにはちょっと否定的。
というのは、「Java のような手続き型、マルチスレッド志向、
フレームワーク志向の言語では複雑にならざるを得ない」
だけのパターンが多いんじゃないかと思っている。
たとえば(本当にたとえばの話だよ?)、
重量級のサブシステムに対しては Facade パターンを
利用して丸ごと一個のコンポーネントにしてしまい、
普段操作することのないようなパラメータを隠蔽することで
複雑性を減らすべきだと思う。細かい操作が必要なら、
そういう状況でだけ Facade の内部にアクセスすればいい。
しかし、フレームワークを利用している場合には
(フレームワークという枠組みが大きすぎて)隠蔽が
難しい。だから複雑に感じる。
なんで Java にフレームワークが多いかといえば、
これは「なんでも Java で済ませよう、そうすれば
学習する言語は Java だけでいいんだから」という
考え方があるからだ(と俺は思ってる)。
この方針を用いれば、言語学習については容易になる。
でも…フレームワークを学習する煩雑さで結局は台無しだ。
もし、フレームワークでなくてコンポーネントならどうか?
コンポーネントにすることができれば、
Java の実行系も含めて隠蔽できる。そうなれば、
設定ファイルの文法だけを覚えればいいだけになる。
さらにもし、この設定ファイルが言語の形をとって
いたら…それって、軽量の言語を学習することと
何にも違わないんじゃないか?
そういう意味で Tate 氏はいい線いっていると思う
(氏の嗜好はメタプログラミング方面っぽいが)。
言語相対性 [hokusei.ac.jp]とかから類推して考えると、
あるプログラミング言語やパラダイムを思考の中心に
すえることで、かえって複雑になってしまう問題領域が
あるんじゃないかと推測できる。Java の難しさは
そういうところに来ているように思う。
問題領域に適した言語を選ぶべきであり、必要なら
別の言語を使うべきだと思うが、
一神教というか、一言語教とでもいえるものを、Java
関係のプロダクト(特に Tomcat とか)に感じるんだよな。
ちなみに、一言語教の否定という意味では、
データ格納に SQL を使うのはいい考えだと思う。
# mishimaは本田透先生を熱烈に応援しています
Re:「Beyond Java」 (スコア:2, 興味深い)
Re:「Beyond Java」 (スコア:0)
実行環境・コンパイラはオープン? (スコア:3, 興味深い)
JAVA実行環境、コンパイラはGCJ [gnu.org]、Kaffe [kaffe.org]とか使っているのでしょうかねぇ。
オープンソースに力を入れているSunは今のところJAVAを手放す気は無いみたいだし。(参照:japan.linux.com | オープンソースへの関与を深めるSun [linux.com])
なんか足元すくわれそうで怖いんだよなぁ。
Re:実行環境・コンパイラはオープン? (スコア:1, 興味深い)
サブジェクトの部分に対して「実行環境・コンパイラはオープン?」といえばオープンでしょ。
仕様だって、ソースコードだってずっと前から公開されてるし。
大学の実験でjavaコンパイラを作ったりもしますよ。
(昔だとCコンパイラを作るのが定番だったと思うけど)
Re:実行環境・コンパイラはオープン? (スコア:1, 興味深い)
もちろん仕様をSunに握られているっていう部分はオープンでは無いね。
Re:実行環境・コンパイラはオープン? (スコア:4, 興味深い)
http://www.jcp.org/ja/home/ja
この程度SUNが影響力を持つこともNG?
It's not who is right, it's who is left.
Re:実行環境・コンパイラはオープン? (スコア:0)
Re:実行環境・コンパイラはオープン? (スコア:1)
それはともかく、オープンソースという意味で言えば、かなり利用されていると思いますけど?
一番わかりやすい例でいえば、業務システムをAPサーバとブラウザで構築する場合、Strutsを利用するケースは(経験上)かなり多いです。
他にStrutsをリプレースするような、有力なフレームワークがなかった、というのが大きいのだと推測します。
実行環境でも、コンパイラでも導入する価値があると判断できる根拠さえ明示でき、他に代替案がないのであれば可能ではないでしょうか?
『一技術者のモチベーション』では企業は動かせませんよ。
Re:実行環境・コンパイラはオープン? (スコア:1, すばらしい洞察)
Re:実行環境・コンパイラはオープン? (スコア:1)
具体的なことは何も考えてないっす。
C,C++だったらgccが多そうだなぁ、でもJAVAは? という素朴な疑問から入ったので...
Sun JAVAのライセンスに関しては全く詳しくないので杞憂だと思うのですが、jpegやgifの様なことがあったら嫌だなぁと思ったのです。
全然期待に沿えなくて申し訳ない。
Re:実行環境・コンパイラはオープン? (スコア:1)
たしかにそうですね。
以後気を付けます。
ただ、私はSunやJAVAを悪く言いたかった訳でも不安を煽りたかった訳でもないことは付け加えておきます。
すらどの過去コメントに (スコア:2, 参考になる)
RubyForgeのストーリーの時ですらど的に既出。
/.configure;oddmake;oddmake install
登録数だけ競ってもなぁ・・・ (スコア:2, すばらしい洞察)
実際に動いているところや、成果物が出来たところでの割合ってどうなんだろ?
Re:登録数だけ競ってもなぁ・・・ (スコア:2, 興味深い)
Re:登録数だけ競ってもなぁ・・・ (スコア:2, すばらしい洞察)
Re:登録数だけ競ってもなぁ・・・ (スコア:2, 参考になる)
# Activity Percentile 50というのが適切かどうかはわかりませんが、一つの目安として
死んでるプロジェクト (スコア:1)
屍体メモ [windy.cx]
Re:死んでるプロジェクト (スコア:4, おもしろおかしい)
#それだけだけどID
Re:死んでるプロジェクト (スコア:2)
Re:登録数だけ競ってもなぁ・・・ (スコア:0)
Re:登録数だけ競ってもなぁ・・・ (スコア:2, すばらしい洞察)
「だいたい追い抜いたんだ〜」
くらいにはなりますね
# baysideさんがMonaカーネルにJavaを導入していたりと,まだまだ活発です
M-FalconSky (暑いか寒い)
Re:登録数だけ競ってもなぁ・・・ (スコア:3, すばらしい洞察)
「入門者の多いJAVAと、熟練者の多いC++では、お蔵入りになる率もかなり違ってくる」
という仮説は立てられそうな気がします。
Re:登録数だけ競ってもなぁ・・・ (スコア:2, 興味深い)
だったらJavaの方がプロジェクト成功する確率高いかも。
ただ違う言語で書き直しているだけなんだから簡単でしょ。
It's not who is right, it's who is left.
AJAX (スコア:1, すばらしい洞察)
Asynchronous Javascript and XMLじゃなかったんかい。
#もしかして、AJAX2.0?
Re:AJAX (スコア:1)
の
C++はCを含んでいる (スコア:1, 興味深い)
CとC++を合わせたら 32,890 projects
それに比べてJavaは16,906 projects
C++はCの拡張なのだから、こういう比較をするときは合わせて考えた方が良いのでは?
Re:C++はCを含んでいる (スコア:3, すばらしい洞察)
LAN内LAN稼働中
Re:C++はCを含んでいる (スコア:1)
Re:C++はCを含んでいる (スコア:2, 参考になる)
Cはプロフェッショナルのための言語 (スコア:1)
文字列型もなくプロセス内の好きな領域にアクセスできるような過激な言語を、自称プロの素人達が使わされていた事がおかしい。
CはOSやVM作るとか、相応しい仕事に使えばいいやん。
Re:Cはプロフェッショナルのための言語 (スコア:1)
Re:FORTRANこそはプロフェッショナルのための言語 (スコア:0)
Re:FORTRANこそはプロフェッショナルのための言語 (スコア:2, 興味深い)
> 本物のプログラマは仕様を書かない。
とあるが、すると今ワタシがやってるPJは
「本物のプログラマ」とやらを雇うべきなんだろうか
# たのむから仕様ぐらい書いてくれ
# あたしゃ本物でも神様でもないんだよ
影も形も無いC#の立場は? (スコア:1)
なぜなんでしょう?
Re:影も形も無いC#の立場は? (スコア:1)
# この人 [autumn.org]にすら見放されつつあるというのは……。
Re:影も形も無いC#の立場は? (スコア:1)
その上で、技術としての素性の良さとか企業の誠実さとか設計者のパーソナリティとかが問われるのだと思います。
Viva Java - でも用途次第 (スコア:1)
ハリスコム
Re:じゃあ (スコア:1, すばらしい洞察)
Re:実行速度 (スコア:1)
私自身は試したことは無いので、無責任な発言です。要注意。
Re:Javaほど (スコア:1)
最近仕事で使って驚いてるんだけど、これだけOOPとしての自由度を高くしておいて、それでいてSECUREな仕様のサーバサイドの言語はそんなにはないんじゃないかな。
# サニタイズのしくみが標準でないのは痛いけど、JAVAも同じ訳で。
JSPで書くのの半分以下の労力で同等の物がかけますからね
…勿論、言語以前にプログラムの構造設計が重要ですけど:-)
Re:Javaほど (スコア:1)
が、もう少し小さい規模の物になると、PHPのDB方向のAPIや言語自体がもう少し成熟すれば置き変わりは雪崩式で進むような気がします
…DHTMLなどを書くのに工数がJSPの半分以下で済むのは、予算の厳しいプロジェクトでは特に魅力的だと思いますよ。
まぁ、言語としての向き不向きはどっちにもあるからどっちかが一方的に押さえるということはないでしょうけど、
JSPやASPやPerlでぐだぐだになってるのをPHPですっきりさせる事が出来る程度のプロジェクトは多いんではないかと…。
Re:よく見ると (スコア:1)
同意します。