- ベストアンサー
VisualBasicとJavaの有用性・将来性の比較
- VB.NETとJavaの選択について考える
- VB.NETは短期間で学びやすく、ASP.NETプログラミングを学ぶこともできる。一方、Javaは多機能で奥が深く、ソフト開発において細かな指定が可能。就職においてはVB.NETの需要が少ない可能性もあるが、.NETベースのものは今後増える可能性もある。
- どちらを選ぶかは個人の目標や興味によるが、VB.NETはWebやデータベース関連中心に使われ、Javaは制御や組込みにも使用される。VB.NETは敷居が低く、Javaは学習が難しいが、どちらも一から作り上げる楽しみがある。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
失礼します。 すばらしいご回答が出尽くしている感で、私も『うんうん、そうだよなー』なんて思いながら拝読しました。タイトルのご質問に対しての回答は、他の皆さんのご意見とたいした相違はございません。 ですが、まだ締め切られていないようですし、他の方も仰るように、貴方様自身揺れているような感じがいたしましたので、職業訓練、という観点から。 職業訓練の講師も担当しています。いろいろな分野の初級~中級が主ですが、プログラム言語であれば、Javaを担当する事が多いです。 ツールでペタペタ・・・いいんじゃないですか?^^; ちなみに、同じJava講座でもこれがただの【講座】なら、私もテキストエディタ+コマンドプロンプトで進行しています。でも【職業訓練】の場合、私は開発ツールも併用して紹介しています。 前者は『構文等を覚えるのが目的』に対して、後者は『スムーズに作る事も目的』として加わるからです。 訓練校によってカリキュラム詳細、使用テキスト、開発環境は違います。ですからその辺りに重きを置くのではなく、まずはその言語に慣れる、ということでご検討されてみてはいかがでしょうか? ちなみに先ほど例に挙げた『私の場合、こう進めます』っていうのも、あくまで私が担当する場合なので、参考程度にお聞きいただけたら、と思います。 ・・・ってか、開発ツールを使うことに幻滅する方がいらっしゃる、という点、私自身が大変参考になりました(・_・)(._.) 他の方のご回答への補足より >確かに、ひとつの言語を学べば、他の言語も習得しやすいようですが、文法や、命令ってどれほど差があるのか疑問です。 違っていたらごめんなさい。。。これを拝見し、不躾ながらプログラム未経験とお見受けしました。ならばまずは言語自体に慣れることが先決かと。 そして、時間的猶予があるならば長期の職業訓練、今回の2択の場合で行ったらJavaを受講されるのが得策かなぁ、と。中級レベルまで習得できるようですし。私見ですが。 ちなみに、カリキュラム上で【現場実習】はないですよね?この分が単純に加算されて長期訓練となっているのであれば、この部分はあってないようなものなので、この部分を抜かした期間で考えた方がいいです。 このご時世、訓練校の倍率は1超~10倍超ほどになっています。貴方様がご希望の訓練校に通えるよう、陰ながら応援しています^^
その他の回答 (8)
No5です。 > ・・・ってか、開発ツールを使うことに幻滅する方がいらっしゃる、という点、私自身が大変参考になりました(・_・)(._.) これ、他の方に誤解を与える表現でごめんなさい。 No4様の回答に対しての、質問者様の補足より、 >仰るとおりで、このコースにしても、ツールの使い方がメインになるではやや幻滅という感じがしました。市販の本によっては同じくそうしたものに終始している内容のものもあると思います。 ここから、『あぁ、受講する側はそう感じるのかしら?ちょっと講座内容を見直した方が良いのかしら?』という意味合いでした。 ごめんなさい(・_・)(._.)
お礼
たびたび回答ありがとうございます。
- komi1341
- ベストアンサー率65% (25/38)
迷ったのですが、念のため。 > ・・・ってか、開発ツールを使うことに幻滅する方がいらっしゃる、という点、私自身が大変参考になりました(・_・)(._.) と他の方が書かれていますが、このやりとりの中にそれらしい記述がなく、首を傾げていました。あるとしたら私の > ただ…繰り返しますが講座内容から察するに、VBの方はツールの使い方がメインになりそうです。すでに使える人は多そうですし、すぐ使えるようになる人も多そうです。習得が困難なものほど、「手に職」のイメージが強くなりますね。 この発言くらいですが、これは決して「ツールに幻滅」しているわけではないです。「ツールがなければ開発できない人」よりは「ツールがなくても開発できる人」の方が採用されやすそう、程度の意味合いです。 ただ…プログラマは職人気質な人が多いので、「ツール? んなもんがないと開発できんのか」みたいに言う人もいなくはないです。まあ、そういう変なこだわりを持った人はどの分野にもいるでしょうが。 これだけの書き込みだとなんなので、現場の人間の意見を。 現場に新たに入ってくる人については、とにかくその場その場で必要なことをどんどん勉強してくれる人が好まれます。「私は10の言語を使えます」「これこれの言語の講師をしていました」などと自慢げに言ってくる新人もいますが大抵聞き流されます。例えばJavaで2重のforループをまともに動くように書けるまで3ヶ月かかった「元Java講師」もいましたが、彼はその後、すみやかに開発以外の仕事に回されました。 同じ業界内で別の会社から移ってきた中途採用の人でもない限り、業界もしくはその会社が求めるスキルをピンポイントで持っている人は滅多にいませんので、そこは今から心配しても仕方がないと思います。言語数も、ある専門分野に特化した人は言語を1つしか使えないかもしれないですし、ある日突然、知らない言語やツールでの開発を要求される職場もあるでしょうから、今の段階で気にすることはないです。 むしろここまでのやりとりにおいて、どういう業界を目指しているのか、が曖昧なままのことの方が気になります。組み込み系ではおそらく.NETは使いませんし、組み込み系とWeb系では必要なスキルはだいぶ違うでしょう。プログラマの職場なんて、ゲーム業界からダムの管理ソフト開発から千差万別無数にありますが、よほど好景気でない限り、「これこれのスキル持ってます」という看板を掲げているだけではどこも採用してくれないですよ。どちらの講座を取るかよりも先に、どの業界を目指すかを絞った方がいいのではないでしょうか。 それでもとにかくプログラマを目指したいというなら、VBの本とJavaの本を買ってきて試しに自分で勉強を始めてみてはいかがでしょう。で、本だけでは勉強しづらそうに感じた方の講座を取るとか。要は最終的に、両方の講座を取ったのと同じことにすればいいわけです。いずれにせよ、自分で勉強できない人を現場は必要としていませんから、いい練習になるのではないでしょうか。
お礼
回答ありがとうございます。 どの業界を目指すかを絞った方がいいとの御意見ありがとうございました。 再考させて頂きます。
3度目失礼します^^; こちらこそ、表現が稚拙ですみません。 >だいたい、そうしますと、2言語以上を現役のプログラマーの方は使えたりするのでしょうか。 仰るとおりです! 『あなた、現役PGじゃないでしょ?なんで分かるの?』って話だと思うのですが、私、企業研修も担当させてもらってるんですね。 で、研修先がソフト屋さんだと、新人研修以外は必ず聞くんです。『使用言語と年数教えてください』って。その内容によってカリキュラムを再編成するのが目的で。 キャリアによりますが、2~4言語が多いです。新人さんが、『Cだけです。VBだけです。』ってパターンです。 で、受講生から『必要に迫られる』って話も聞いているし、自分の経験上(昔ですが)からも、短期間で習得に迫られる場面が多いと感じています。 以上のことから、前記のように回答しました。 >確かにどの言語でも、配列であるとか、条件判断とか、繰り返しはありますね。 そうですそうです! 小説で言ったら、『物語の構成をどうするか』が大事なのであって、何語で表現するかは、『まずは自国語でいいじゃん?必要に迫られれば、勉強して他国語に翻訳すればいいしー』ってのと一緒だと思っています。 で、4言語とか操れる方は、『や、子供に読ませるものだから絵本にしよう。最初から絵本を作るのを目的にして、物語を構成しよう』ってことだと思っています。 これが、『興味のある言語から』と申し上げた理由です。 せっかくですから楽しんで受けてくださいね。 ・・・ふりかえってみれば、だんだんとご質問の内容から、私が外してしまっている感がしています。ごめんなさい(・_・、)
お礼
たびたび回答ありがとうございます。 外国語を2言語と言うのは難しいですが、プログラミング言語ならば、通常珍しくもないらしいですね。
再び失礼します。 >日本版デュアルシステムというもので、現場実習あるコースが多いです。頂いた回答によりますと「あってないようなもの」とのことですので多少ショックです(^^;)。 私が乱暴な言い方をした故のことで、本当にごめんなさい(・_・)(._.) 100%『あってないようなもの』ではなく、受入先によって差があるのです。 実践を積ませてくれる受入先もあれば、(あえて濁しますが)そうじゃない受入先もある、ということなんです。 『実践つめればラッキー♪』くらいに構えている方がいいですよー、という意味でお話させてもらいました。 もちろん、未経験の方が業界を垣間見れるという点では【得るもの大】だと思っているし、受講生にもそう伝えています。 >たしかに、JavaやCの入門書ですと、簡単な数値計算の仕方は解説してありますが、VBのようになかなかフォームという形で見えないので、ともするとやや、やる気を失い感があります。 ・・・ん?そんな事無いですよ。 貴方様は、習得したい言語から取り掛かる、というラフな感じでOKだと思いますよ。VBかな?他の皆さん口をそろえて仰ってるように『1つ習得すれば他の習得も難しくない』です。ってか、現役はそれを短期間で求められるはずです。1つの言語に固執する意味が余り無い、という意味ではないでしょうか? 最後に、仮にJavaの場合の基礎(約20h)のカリキュラム概要を。 (応用は会場によって差があるので、大差がない基礎のみ。もちろん多少のちがいはあります) ●作成手順、流れ●データ型、演算●制御文●オブジェクト指向●クラス、インスタンス●継承、インターフェース●例外処理●GUI ご参考いただければ幸いです^^
補足
たびたび回答ありがとうございます。 現場実習のことは了解しました。 わざわざ、すいません。 だいたい、そうしますと、2言語以上を現役のプログラマーの方は使えたりするのでしょうか。 Javaの基礎カリキュラムたいへん参考になりました。 結構、20時間ぐらいでもある程度、基本つかめるようですね。 確かにどの言語でも、配列であるとか、条件判断とか、繰り返しはありますね。
- komi1341
- ベストアンサー率65% (25/38)
ご質問および、他の方とのやりとりを読ませて頂きましたが、質問自体が揺れている感じがありますね。講座内容を伺った限りでも、JavaとVB.NETとの比較というより、言語の文法の勉強とツールの使い方の勉強との比較、のように見受けられます。 VBはコントロールをペタペタ貼り付けるもの、という印象をお持ちのようですが、それはあくまでそういう開発ツールを使うというだけで、細かい動作の記述や調整をするためにさらにコーディングが必要になるケースがほとんどです。また他の方からも挙がっていますが、Javaにも「コントロールをペタペタ」でGUIの大枠を作れるツールがあります。ですので講座内容から言えば、両者の需要・将来性を比較するのはあまり意味がないと思います。 また言語やビジネスの将来性についてこういった場で質問するのも、ご自身の将来を決めるためとなると少々疑問です。新聞やニュースはご覧になっていますか? クラウド・コンピューティングという単語はご存知ですか? どういった業界でWindows系サーバが、あるいはLinux系サーバが多く使われているかは調べてみましたか? 「業界」と簡単に言われますが、コンピュータ関連といってもさまざまな業界があるので、どの言語がよく使われるかや需要がどう変わっていくかなど一口に言えるものではありません。やりたい仕事があるならその業界について調べればよいし、より多く求められるスキルが知りたいということなら求職誌を開けば、欲しい人材のスキルが各社ごとに載っていますから、自分で数えて統計をとればよいでしょう。 .NETについては、基本的にWindows上で動くもの、という認識でよいと思いますよ。 つまり今後Windowsが狙っている業界で主流になっていくと判断されるなら.NETの勉強をするのもよいと思います。 ただ…繰り返しますが講座内容から察するに、VBの方はツールの使い方がメインになりそうです。すでに使える人は多そうですし、すぐ使えるようになる人も多そうです。習得が困難なものほど、「手に職」のイメージが強くなりますね。 それと、JavaでもCでもVBでも、本を買ってきて自分で勉強することは十分可能ですよ。 組み込み系は求められるスキルが高いため、あちこちの会社が人材を欲しがっている感じがありますね。言語だけでなく、コンピュータそのものに関する豊富な知識が必要となる分野です。 使う言語はC/C++か、アセンブラではないかと。ただ、アセンブラは習得が相当大変なので覚悟が必要です。
補足
長文で回答ありがとうございます。 たいへん参考になりました。 確かに私が気になっていたのは、その職業訓練におけるVB.NETコースでの習得度合いです。これは初級に設定されているようでして、これどの程度身に付くのかなと、その辺が気がかりでした。 Javaだとコース内容が中級程度ということでした。 仰るとおりで、このコースにしても、ツールの使い方がメインになるではやや幻滅という感じがしました。市販の本によっては同じくそうしたものに終始している内容のものもあると思います。 組込み系に関する回答も感謝致します。 ハードウェアに関する知識が相当必要になりそうですね。
- OKbokuzyo
- ベストアンサー率43% (130/296)
#2です。 すいません、一部誤解を与えかねない点があったので訂正します。 >(UNIXやLinuxで.NETは使えないので) 一応Linux上で動く.NETもあります。 Monoといいますが、これはNovellという企業が作っているもので MSとはなんら関係がありません。 MonoはGPLやMITライセンス形態を取るOSSです。 従って仕事においてLinuxOSのサーバに.NETを利用することは 通常ありえないので上記回答を致しました。 この場を借りてお詫びと訂正をさせていただきます。
補足
わざわざ、訂正をありがとうございます。 感謝致します。
- OKbokuzyo
- ベストアンサー率43% (130/296)
シンプルに答えると Windowsで使用するデスクトップアプリケーションを作りたい → .NET SIやソリューションをやりたい → Java でいいと思います。 現在SIの主流はWebなので大規模なシステムほど.NETよりJavaが利用されます。 (UNIXやLinuxで.NETは使えないので) どっちが主流になるかは誰にもわかりません。 というか、それぞれに一長一短があるので そんなBlue-rayとHDD-DVDの争いのように どっちかがいきなり蹴落とされるような自体には なかなか成り得ないと思います。 あと、経験的に言うとプログラミングはひとつわかるようになれば それ以外の言語を使ってもすぐ習得できます。 最近の高級言語の基本はだいたい同じですから。 ただ、.NET習得後にJava習得するよりは Java習得後に.NET習得の方が入りやすいように思います。
補足
わかりやすい回答ありがとうございます。 SIとは「システムインテグレーション」でよろしいのですよね。 用語の意味は調べたのでわかりました。 .NETというのがウィキペディアなどでしらべても、素人にはどうもよくわからないのです。LinuxやUNIXで使えないとありましたがWindows上のみで動くプラットフォームのようなものなのでしょうか。 勘違いかもしれませんが、.NETこそ、まさにこれからのWebの需要増大を見込んで考えだされたものであると思えるのに、SIの主流であるWebでは現在、Javaがよく利用されていると。 まだ、.NETは成り行きが不透明なんでしょうかね。 それから、「NET習得後にJava習得するよりは Java習得後に.NET習得の方が入りやすい」というのは、何か理由があるのですか。 あと、参考までお伺いしたいのですが、Web系やアプリ系などと並んで、組込み系の将来性は今後わたっての展望はいかがなものなのでしょうか。 こちらで使われているのは、C言語が主流のようですが。 経済産業省の調査によると、技術者が不足しているようです。 こうお尋ねしますのも、職業訓練で、組込み開発のコースもありましたのでお聞きしました。こちらは、純粋にソフトウェアのプログラミングといいますよりも、ハード面、マイコンや電子回路のことも結構、学習するようです。私、基盤などを使って工作するのも興味がありましたので、こちらも検討しています。
- nagumo2009
- ベストアンサー率50% (1/2)
どちらの言語も得意分野があり、相応の有用性や将来性があるので、 言語自体を単独で比較して考えることについては、あまり大差は無いと個人的には思います。 また何か1つ、プログラム言語やそれを取り巻く要素技術を習得してしまえば、それは他の言語の習得にも応用が利くことが多いです。 たとえばVB.NETやC#.NETなどの、.NET Frameworkを利用できるMicrosoft製の言語なら、Windowsプラットフォームにおいては今後の主流ですし、デスクトップアプリケーションなどを開発するにあたっては、従来のWin32APIやMFCを使うより遙かに効率よく作業を進められます。 ただし、開発の効率性を高めている分、ハードウェア制御やWindows OSの深い部分を操作する場合は、.NETに慣れきってしまうと多少面倒があったりするようです。 パフォーマンスの高くないPCでも快適に稼働させることを考慮して、敢えて.NETを使わずにMFCで開発する開発者さんもまだまだ少なくないようです。 Javaに関しては、サーバサイド・アプリケーション開発においてはまだまだメジャーな存在ですが、従来の「重い、遅い」というイメージが定着してしまっているためか、Javaではデスクトップアプリケーション形式でビジネスアプリなどを開発する向きは少ないようです。最新のJava SDKでは、このあたりのパフォーマンスもほぼ問題無い水準ではありますし、MicrosoftのVisual Studioのように、フォームにボタンなどをドラッグ&ドロップで張り付けて比較的簡単にデスクトップアプリ開発もできます。 いずれにせよ冒頭にも書かせて戴いた通り、何か1つ言語を習得してしまえば、他の言語の習得は難しくありません。もっとも興味が持てる又は、情報を入手し易いと思われた言語を選択すると良いのではないでしょうか。.NET、Javaを問わずです。 言語よりも、ご自身がこれからの将来、例えばIT業界においてどのようなキャリアパスを描いておられるか、数年後にどのような仕事に携わっていきたいかといった観点で見ていかれると良いのではないでしょうか。 公共職業訓練での養成コースを受講なさるということですから、その後はプログラム開発を生業とされるのだろうと想像します。であれば、デスクトップアプリケーション開発よりもWeb系のサーバサイドアプリケーション開発の分野のほうが、求人数は多いかと思います。 その場合に必要となってくるのは、言語よりはむしろ、 ・セキュリティやパフォーマンス調整に関するスキル ・RDBMS(リレーショナル・データベース)の知識とSQL言語 ・Webの技術(動的HTML生成やJavaScript、AJAX等の非同期技術、CSS) ・FlashやFlexなどを用いたWebにおけるリッチ・コンテンツ 等々、他の要素技術のほうかと思います。 Web系のサーバサイド開発の場合は、PHPやPerlといった成熟したスクリプト言語も多用されていますし、Rubyという国産スクリプト言語も選択肢の1つです。 いずれもネット上には膨大な情報がすでに蓄積されておりますし、情報源もコミュニティによって整理されています。開発ツールなどもほとんどが無料で手に入ります。 これらを一通り身につけておけば、IT業界ならどこへ行っても仕事はあると思います。 また、技術者として生きていくのに最も大切なことは、人との円滑なコミュニケーション能力かなと思う点と、次に大切なことは、旺盛な知的好奇心と探求心を技術以外の分野にも併せて持つ、ということではないのかなと思ったりします。 さらに、最新の技術情報は最初は英語だったりしますので、英文読解力や英会話スキルなども身につけるとさらに世界が広がると思います。これらもネット上で勉強できます。身につけておいて損はありません。 1つ言語を身につけたら、他人の書いたプログラムコードを読むようにすると、さらに得るものがあるでしょう。言語毎に、お手本となるコードはネット上に唸るほど存在しています。良いお手本にせよ悪いお手本にせよ、他の人が書いたコードはとても参考になりますよ。 以上、私見ですがご参考まで。
補足
たいへん詳しい解説を回答ありがとうございます。 言語の比較と言うことについては必ずしも大きな差はないというあたりは了解しました。 確かに、ひとつの言語を学べば、他の言語も習得しやすいようですが、文法や、命令ってどれほど差があるのか疑問です。 これだけ、各種の言語があって、各分野の適性に応じて使い分けられているわけでしょうから、それなりに差異がある理由があるのでしょうが。 頂いた回答の中では、今後の発展しそうな分野として、アプリよりもWeb系サーバーサイドのほうが、見込みがあるというところや、データベースなどが需要があるという点が参考になりました。 .NET Frameworkというのも最近聞きますが、要するにプラットフォームで、クライアント側とサーバー側の両方をまとめて開発できるという解釈でよろしいのでしょうか。 ただ、私が迷っているのは、言語はどちらでもよいとしてもコースのその職業訓練のある程度詳細な授業内容の配分、カリキュラムを見たのですが、VB.NETの方は、肝心な文法の学科が基礎・応用と合わせても、30~40時間と、何だか短いんですよね。他に実技として演習が40~80時間ぐらは設けられているようですが。コントロールを貼り付ける様式なので、それほど時間をとらないのでしょうか。 こういいますのも、Javaだとか,Cだとかのコースではもっと時間数が多くて、文法だけでも100時間。演習を含めれば200時間ぐらいも授業時間が設定されている場合が多いんです。VBであれば、本を買って独学でも出来るかなと思って、どうせ講師に教えて頂けるチャンスがあるならそうしたJavaやCのほうを選んだほうが濃い内容を学べるかなと思ってしまったわけです。
補足
回答ありがとうございます。 職業訓練の講師もされている方とのことでたいへん参考になりました。 たしかに、JavaやCの入門書ですと、簡単な数値計算の仕方は解説してありますが、VBのようになかなかフォームという形で見えないので、ともするとやや、やる気を失い感があります。 テキストエディタ+コマンドプロンプトも結構味があっていいと思います。むしろこれを最初に使うことで、統合開発環境の便利さがわかるというものです。 日本版デュアルシステムというもので、現場実習あるコースが多いです。頂いた回答によりますと「あってないようなもの」とのことですので多少ショックです(^^;)。