全てMicrosoft社製にした方が開発効率、メンテなどが楽なような
気がします。しかもJavaはよくわからない技術が次から次へと
でてくるのでわけがわかりませんです。全てMicorosoftにすると
MSが潰れたときにMSと心中するつもりか!?と言われることが
ありますが、MSが潰れるなら先にSUNが潰れるような気がします。
Javaの魅力ってなんですか?
エンジュニアどころか紅茶屋ですがF57PBの意見を支持。
MSだけで他が動いているならJavaなんか使わないほうがぜんぜん楽チンだし開発効率もメンテナンスも上がると思いますよ。
ただ、OSをはじめ何もかもが高い!
特に接続クライアントやWebになるとCPUとかで値段が動くからとてもじゃないけれどいっぱいぶら下がるシステムや安く上げたいシステムでは不向きになる。
堅牢だとか堅牢じゃないとかっていうのはそれぞれの意見であまりJavaを選択する理由にはならないと思いますけどね。
ActiveDirectoryとかですでに管理されたものがあるのであればMSでやったほうがいいですし、逆にLDAPとかになっちゃうんだったらMS使うほうが難しい。
一般ユーザーに使ってもらうようなクライアントアプリつくるのにJavaでつくったものを配布して…、なんて、ちょっとこれは考えたくないですね。Oracleのインストーラが頭をよぎります。
あくまで何に使うかだと思いますけどね。
ネット周りでシステムを組むのだとしてもExcelとかそういうものとくっつけるのだったらMS周りでくみ上げたほうがぜんぜんいいと思いますよ。
依存するのはあくまでその作る社内外のシステムでどこが重たいかだとおもいます。
Windowsで業務が回っているところにJavaしかできないからとJavaをムリクリ乗っけるのもヘビーな話です。逆にメールサーバーとかそういう通信系がくっついてくるんだったらどうせLinuxとか通るんだからJavaでやったほうが後々楽チン。
結局のところ値段だとは思いますけどね。
Javaのプログラマもここ数年で相当に量産されたので単価がずいぶんと下がったというのもあると思いますよ。
Monoで移植されてるのは、CLR+αだけで、FCLは移植されていないので、GUIアプリをどれでも走るようにするのは難しそうな気がします。
といいつつJavaの時代がずっと続く気もしません。Java6以降の仕様をみるとだんだん崩れてきてるようにも見えるし。
お初に御目文字いたします。Lucreziaと申しますわ。
そうですわねぇ。質問者さんご自身が「UNIXでCをゴリゴリとやりきった」上でおっしゃるのであれば、まだしももう少し検討の余地のあるご質問だとは思うんですけれども。
正直、わたくしが存じ上げているかぎりでは「MSの世界観しか知らない井の中の蛙」な方がこういった発言をなさるケースが散見されるわね。
VBは、仕様が最低なので論外なんですけれども。C#も、ほとんどJavaとはいえ、その上にのっかるライブラリ「.net framework」がかなりよろしくない出来なのが気になるわね。
もちろん言語以外の製品も、うざったいくらいに余計な機能が盛りだくさんな一方で必要な機能が欠落しているのがとても気になるわ。
そうねぇ。きちんとセキュリティ周りとかをお勉強なさるともう少し見えてくるものもあるんじゃなくってかしら?
MS製品でなくJavaとなるわけです。Javaなら汎用機でも使えますし。
最近はマイクロソフト系の言語もずいぶん開発しやすくなってきたので、
あまりJavaじゃないと駄目と言う感情はなくなってきているのですが、
やはり1社が独占的に提供している事への不安感がぬぐえないですね。
(メーカーの方針がそのまま開発言語に影響する)
また、仕様が完全にオープンでないため、深い技術を要する案件の時
自分で機能を作ろうとしても作れない場合が出てくるのではないかと言う不安もあります。
(これは技術者ならではの「全部知ってないと気がすまない」感情かもしれません)
あと、サーバのOSをLinux系にしなければいけない仕事を受けた時、
MS系言語が一切使用できないという恐怖感もありません。
Mono(http://en.wikipedia.org/wiki/Mono_development_platform)はCLR(Common Language Runtime)をWindows以外のOSで走らせられるものですが、ライセンス違反じゃないと思いますよ(実際に.NET用に開発したアプリケーションをMonoで動かして商用に耐えられるのか知りませんが)。
Javaエンジニアですが、moonhappyさんの意見も一理ありますね。
Java開発は自由度が高い反面、さまざまな技術が乱立していて一貫性に欠ける面があるのは事実だと思います。
全てM$製品で固められるのであれば、M$製品を選択したほうが良いと思います。
ただ、よく聞くのはWindowsサーバの堅牢性やセキュリティへの不安、
他ベンダー製品との愛称の悪さなどから、OSにUnix/Linuxを選択する
ことが多いと思います。
となると、.NETは使えず、.NETと同等にエンタープライズシステムを
構築できるしっかりしたプラットフォーム。。。となるとJavaに
なってくると言う事だと思います。
# 最近は、PHPなんかのスクリプト言語も多いですが、エンタープライズ
# システムに使うにはまだやや力不足だと思います。
と前置きが長くなりましたが、Javaの魅力は、
「Unix/Linux環境でエンタープライズシステムを構築するプラットフォーム
として仕様拡張・整備され、多数の実績がある」
だと思います。
# プラットフォームなのがポイントです。既に一プログラム言語の域を超えていますから。
JavaはVM上で動くので、実質全てのOSで動きます。
しかしMS印開発のものはWindowsでしか動きません。
.NETFrameworkを他のOSにインストールできれば、もしかしたら動くのかもしれませんがライセンスに違反します。
JavaはSunが最初に作ったものですが、Sunだけのものではありません。
すでに、ISO標準やJIS規格にもなっているものです。
よって、SunがつぶれてもJavaは存続する可能性が高いです。
WindowsのAPIは、公開されていないものも多く、またOSのマイナーバージョンアップのたびに仕様が微妙に変更されその対応に苦労させられるなど、個人的にいいものとは思えません。
また、標準規格でもありません。
されにいえば、Javaは下位方面へのスケーラビリティに優れます。
下位プロファイルで作られたプログラムは(ほぼそのまま)上位プロファイルで動作します。
>Javaの魅力ってなんですか?
(1)オープンソース
Javaだとオープンソース(Tomcatとか、Strutsとか)の技術蓄積
がプロジェクト(自分)以外にも適用可能です。
MSだとソースがクローズドにならざるえないので、
どうしても、そのプロジェクトで使用した技術は、
プロジェクトでしか使用できない可能性が高いです。
Javaと比較して、の話ですが。
(2)サーバ環境の選択肢
クライアント関係はMSで決まりですが、
サーバは必ずしもMSではありません。
ということで「どっちも」
と言われる可能性があるならJavaにしておきます。
言語仕様とかは、、VB.NETとかC#だとあまり変わらないからなぁ。