【IT】Javaではもうからない、新言語を学べ
■ このスレッドは過去ログ倉庫に格納されています
どんなプログラミング言語を習得すれば、年収アップにつながるのか――。コードを書く技術者なら誰もが一度は考えたことのあるテーマだろう。世の中には数百種類のプログラミング言語があり、時代ごとにはやり廃りがある。それでは、現在学んでおくべきプログラミング言語は何だろうか。
その1つの答えになりうるプログラミング言語と年収の関係を示した調査結果が発表された。それが、ビズリーチが公表した「プログラミング言語別年収ランキング2018」だ。
https://cdn-tech.nikkeibp.co.jp/atcl/nxt/column/18/00138/082900134/ph1.jpg
このランキングは、ビズリーチが運営する求人検索エンジン「スタンバイ」に掲載されている正社員の求人情報(約324万件)から、プログラミング言語名が含まれる求人情報の提示年収の中央値を集計したものだ。調査では、1位が「Go」、2位が「Scala」、3位が「Python」という結果だった。
1位のGoは、米グーグル(Google)が開発したプログラミング言語だ。並列処理などを記述しやすいため、これまでC言語で記述していたWebシステムのバックエンド処理の高速化などに利用される。ビズリーチによれば、求人数は昨年比で1.9倍になっているという。
2位のScalaは、Java仮想マシンで稼働するいわゆるJVM言語の1つだ。関数型言語だがオブジェクト指向言語の特徴も備え、Javaをはじめとする従来のプログラミング言語に比べて、コーディング量の削減やバグを埋め込みにくいプログラミングスタイルを実現できる。
3位のPythonは、最近のAI(人工知能)ブームが関係している。AIを開発する際に利用する有名ライブラリの多くは、Python向けに提供されている。例えば、TensorFlowやscikit-learnなどのライブラリだ。そのため、Python開発者の年収も高くなる傾向にあるのだろう。ビズリーチの調査結果では、求人数が昨年比で1.7倍になっているという。
Javaは求人数は多いが年収は14位に
ランキングを見ると、システム開発で多く利用されている「Java」がランクインしていないことに気付く。調査結果では、Javaの求人数は3万4000件と多いものの、昨年比では3割減少しているという。年収の中央値は500万円で14位にとどまる。つまり、Javaを学べば職はあるものの、高額な年収は期待できないということだ。
現在は人手不足の時代なので、Javaエンジニアなら職に困ることはないかもしれない。しかし、Javaしか書けないというのはリスクになる。いつまでもJavaだけで完結するシステムを開発できるわけではないからだ。Webフロントエンド開発が全盛の現在では、突然JavaScriptで開発しろ、と言われることもあるだろう。
しかもエポックメイキングな技術を実装するには、それに合ったプログラミング言語を学ばなければならない。その最たる例がAIの普及で注目されたPythonだ。日本発のスクリプト言語であるRubyとよく比較されていたPythonは、国内ではややマイナーな存在だった。しかし、最近のAIブームによって、「AIを使ったシステム開発ならPythonを学ぶべき」という認識が広がり、最も重要なプログラミング言語の1つになっている。
ビズリーチが公表したプログラミング言語と年収の関係は、これから学ぶプログラミング言語を選定する良い指標になるだろう。もはやJavaだけを習得しても収入は頭打ちになる可能性が高い。新しい技術を使ったサービスを実装し、高い収入を得るためにも、エンジニアには新たなプログラミング言語の習得が求められている。
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00138/082900134/ KotlinなんてJavaから変換ツールで一発だろ。
これで4位に上昇や。 >>364
きょうび、新人どころか、C言語ならできますというふれこみで配属された大卒の
30代中途採用ですら『Cって変数宣言しただけじゃ、0に初期化されないんでし
たっけ?』なんて言っちゃんだぞ? >>371
それに対して、君がなんて答えたか、気になるw >>371
半年とかスパンあったら、そんなん忘れてるわ
まぁ聞く(口に出す)前にさすがにググるけどな 結局よくわかってない連中同士で煽り合ってるだけで草 鵜になるよりも、鵜飼になって丸投げが最強ってことですよね〜。 派遣営業とか。 >>371
これを聞いたから何って話だけどね
Cに長いこと触れてなきゃ、他のいろんな言語に触れてたりしたら覚えてないこともあるからな
こんなんで出来る出来ない言ってるの、やたらと正規表現を使いたがる奴と同じ臭いがする >>366
C++どころか、今の自分がまともにメモリ管理できる気がしない… アホ「初期化されんことも知らんのか」
バカ「そんなもん忘れる」 >>366
Effective C++を読んだら
C++でのプログラミングに自信を無くすよ
至る所に罠がある >>371
お前の実力試されただけじゃね?
大卒「何だエラソーな割には口先だけじゃん w」 >>383
Effective C++はC++初期の本で
学習向けの本とは言い難い
知識自慢の支離滅裂な内容 〇〇言語は「儲かる」だの「儲からない」だの、アホだろw
何かしたい事が有って、その目的に合う言語を使うんだよ。時には複数の言語を使う必要が有る。
「必要になった時ちょっと勉強すれば大体使いこなせる」程度の能力が無いと話にならん。
「言語が先に有って仕事が後」とか本末転倒も甚だしいわw >>387
退化して飛べなくなったヤンバルクイナみたいな例を除けば、飛び方を忘れる鳥がいないように、本物の
プログラマは、何年離れていても、Cに限らずコンパイラ言語では宣言しただけでは変数が勝手に初期化
されないことを知ってる。
口先ばかりで、かじっただけのヤツは、どんな規約を作ったところで読まないし、バグトラッキングツール
を導入したところで、使わない。
昼間は、時間をつぶしを兼ねて、ウンコするふりしてトイレに篭ってアフィ稼ぎのブログ更新に余念が
なく、定時後に、無駄に残業して忙しいと演出しつつ、ボクがんばってますアピールして小銭を稼ぐ。 >コーディング量の削減やバグを埋め込みにくいプログラミングスタイルを実現できる
こんなのはOSのシステムコールがどれだけカプセル化されてるかと
ソースのステップ実行、変数値の表示などデバッガの仕様に拠るのであって
新言語の仕様とは無関係 >>17
マイクロソフトのC++は糞
MSC++のソースをC++Builderでコンパイルすると
エラー出まくり
MSC++のソースチェックと掛けて能年玲奈と解く
その心は「甘ちゃん」 >>387
定数は仕様変更のメンテに効率的に対処するために
#defineで定義するとコーディング規約作っても部下が遵守せずに
社員旅行の前日にバグが発覚して旅行費用が返金されなかった苦い思い出 >>391
>>395
規約が読まれないのはその通りだけど
実際ダメなプログラマに当たるほうが多いから、ルールで縛って仕事させるしかないでしょ >>1
> つまり、Javaを学べば職はあるものの、高額な年収は期待できないということだ。
> 現在は人手不足の時代なので、Javaエンジニアなら職に困ることはないかもしれない。
> しかし、Javaしか書けないというのはリスクになる。
> いつまでもJavaだけで完結するシステムを開発できるわけではないからだ。
> Webフロントエンド開発が全盛の現在では、突然JavaScriptで開発しろ、と言われることも
> あるだろう。
> しかもエポックメイキングな技術を実装するには、それに合ったプログラミング言語を
> 学ばなければならない。
> その最たる例がAIの普及で注目されたPythonだ。
それは、その調査結果をどう読み取るかの問題だろ?
・Java仕事は安いかもしれないが、それはここ十数年で積み上げてきた人と
アプリケーションがたくさんあるということであり、それはすぐになくならない。
一時代を築いたCOBOLが、いまも確実に飯が食えているのが証拠。
Javaならこの先も確実に飯が食えて安定しており、学習することについての
リスクが少ない
・新しい言語は、使える人が少ないから希少価値で高給なのであって、
逆にそれはその言語で作られたアプリケーションも少ないということも意味しており、
その言語のブームが下火になれば、あっという間に職を失うリスクも大きい
・新しい言語に手を出す前に、まずJavaをマスターすることで安定した
生活の基盤を作り、そのうえで改めて流行りモノに手を出すべきである
と逆に読むこともできる >>396
2倍の金額出して優秀な人に依頼した方がいい。 >>361
仕様によるだろ。
アプリ終了させるとか、デフォルト値で動くとか、初期値を書き込んだ設定ファイル作成するとか。
いずれにせよアプリの異常終了は無いわ。 >>371
0に初期化される場合もあるしそうで無い場合もあるからなぁ。
>>375 >>379
コンパイラやリンカ/ローダの動きを把握してれば言語仕様暗記してなくても
大体想像つく話ではあるんだけど。 >>391
> Cに限らずコンパイラ言語では宣言しただけでは変数が勝手に初期化
> されないことを知ってる。
少なくとも、C言語を常用してるエンジニアはそうとは言い切れないことを知っている。
初期化がどうやって行われるかも含めてね。 >>396
ダメなプログラマ上がりの、ダメな管理者あるある。
タダ同然の報酬で、働いてくれるエスパー求む! ただし、30歳以下。
係わるとロクなことがない、「技術者大量募集中!」「20代活躍中!」 >>400==401
もしかして、電源投入時に回路構成でRAMが多くの場合0クリアされるから初期値が
0になるとか、そんな言語仕様とは無関係の偶然レベルの話を言ってるの?
それとも、スタートアップルーチンでBSSセクションを0クリアしてくれるから
とかか? エクセルとVBSを極めてないやつは
マジで仕事のレベルが低い 新しい言語を作るときは既存の単語とかぶらない固有の名前をつけて欲しい。できれば5文字以上で。
goって名前じゃweb検索したときに無関係なサイトが大量にヒットしそう。 >>365
だから、ガーベッジコレクションの機能以外の、実装での意味や工夫があるのか
ってこと。 >>403
> そんな言語仕様とは無関係の偶然レベルの話を言ってるの?
ぐうぜんレベル w
言語仕様も読んだことないのがバレバレ
X 3010:2003 (ISO/IEC 9899:1999)
5.1.2実行環境
(…中略…)
静的記憶域期間をもつすべてのオブジェクトをプログラム開始処理以前に初期化(initialize)(それらの初期値に設定)しなければならない。
http://kikakurui.com/x3/X3010-2003-01.html >>407
stdlib.hのmallocが割当領域のゼロクリアを保証しないのは、初心者でも知ってる話。 知ってるだけ
で採用してくれるから
ぜんぜん問題なし
あとは残業でがんばる >>42
だよな
Windowsからは足を洗って
iOSに切り替えるべきだよ >>367
初期化されてない変数を使う事が許されてないから、
宣言時にとりあえずnull入れるから。 >>403
.bssセクションの話。
言語仕様的なところは >>407が提示した通り。 JavaもC#もヌルポは出る出る
でももうOracleに仕切られてるからJavaはバイバイ案件受けません >>397
Java仕事がなくなることは当面無いと思うけど、
若くて安くてJavaが使える労働者の提供はまだまだ続くことも考えたほうがいいよ。
これがC/C++だと若い子の供給がだいぶ減ってるからコボラーのように生きていくことは
可能だと思うけど。 >>415
C++はコンシューマー機のゲーム開発で若い子もバリバリ使ってると思ってたらそうじゃないのか。 Cobol、Fortran、C、C++、Java
どれが最初に絶滅するかな? >>417
oracleみたいな変な虫がついたからJavaかな JAVAはレガシーとなったが、これ以上人増えないだろからずっと食っていけるんじゃねーの?
COBOLとか誰も使えないからそこそこお金あるらしいから、Javaも10年後とかに高くなるかもw
GoとかScalaとか使える人は少ないけど、これからも需要上がらなさそうだし少し触るくらいでいいと思う。 >>419
Javaは大学のプログラミング演習でけっこう使われてるから、今後もプログラマは供給されると思うぞ >>420
そうなんだ。しらなんだ。
きっちりしたとこはC、おしゃれなとこはpythonとかだろなと思ってよ。
じゃ単価あがるの20年後くらいだなw Fortranプログラマの供給って、無くなる?
困る研究機関出てくるんじゃない? ちゃんとロジックの組み立て出来れば言語なんてどれでも出来るだろ。 >>316
そもそもエラーでるような処理をコンストラクタやデストラクタに書くな >>416
若い子のうち、C++でコンシューマゲームを開発できる子の割合はかなり小さいから大丈夫。 >>424
絶対にエラーにならない処理って難しいよーw
特にコンストラクタはリソース確保するケースも多いと思うけど
リソース不足だとエラーとするしか無いし >>426
リソース不足にならんように設計するだろ
それでも発生したらそれは設計ミスや設定ミス
設計ミスや設定ミスは間違いなく想定外なのだから
それを例外で処理するのは問題ないよ >>427
戻り値がないコンストラクタやデストラクタ内でエラーが発生したら、例外をスローするしか無いと。 >>428
例外を使うなということじゃないよ
例外でもないのに例外を使うなというだけ 例えば、設定ファイルを開こうとしたけれどその設定ファイルがないのは例外にはするなって事? 違った。設定ファイルがないのは、設定ミスだから、例外にして良いって事だな try catch は相当便利なんだが。
goto と同じとかいってる人は、使い方間違ってるわ。
でも、phpは例外とエラーの両方があるのは不便。エラーがcatchできない。 >>417
エンジニア人口が増えずに減るCOBOLだろ
Javaは普及率が高いので廃れはしないがエンジニアが減少傾向
Fortranはバイナリが小さくなるしスパコンでの趣味レーションなどの特定分野で欠かせないので減らない
CはLinuxカーネルが採用し続けるし、IoT機器のファームなどで絶滅しないが増えない
C++はミドルウェアやゲームなど、複雑だがコンパクトなバイナリが必要な用途だが、
素人には難解でコンパイルに時間がかかるので、上位層は多言語に浸食されているので増えない >>434訂正
× 趣味レーション
○ シミュレーション >>434
COBOLは未だに使ってる所の規模が規模なだけに保守やってるのも
大手メーカー系だから心配せんでも後継者は育成し続けてるよ。
その代わり、その部署に配属された奴はそこでしか使えない人材になるけどな。 親父が就職した当時でもCOBOLはオワコン扱いだったと言ってたが、
俺がCOBOLやってるの聞いて大笑いしてた もうかるためには他の言語より管理職になったほうが良いだろ。
ツールはエクセルパワポだけで良いし、学習コストも低い。
Javaもそこそこ良い言語だと思うし、こらからもお世話になるよ。最近だとローカル変数にvar使えて地味に嬉しい。
JAVAの有料化でC#の仕事が増えたりしないのかな… >>424 だよな
エラーが出ない前提のサブルーチン(関数)なら戻り値必要ないが
エラーが出るような自作関数なら戻り値はbool型で
エラーの場合関数からFALSEを返すのが常道 Javaではもうからない→X
ジャップ企業で働いてはもうからない→○
だろ?
ズレすぎだよ >>424
バグのないコードを書け
というのと同じぐらい無意味なルール
よくわかってない老害が悦に入って言ってそう w Java歴15年、Javaこそ世界を取る言語だと信じてCOBOLを捨てた
パイオニアマンだけど
みーんなしてJavaやるから価値が下がったよな・・・
そしてSoringBootがあまりにも酷いのでJavaを捨てようと思うわ
しかしGo言語はGoでクソだし、Pythonでもやるかなぁ・・・ ・
検査例外と実行時例外、そしてエラー
区別が出来てない
奴ら、大杉。
コンストラクタで発生する奴って 検査例外で処理できる。
だから ちゃんと補足して 処理するのが当たり前。
例えば フィールドにNULLが入ったオブジェクトを作るとき。
その時は そのクラスの中で Throwして Main関数で使うときに Try〜Catchで
拾う。
その他、検査例外としては、ファイルの入出力やデータベース操作など。
DI関係は 実行時例外だから、関係ない。 >>443
Spring Bootはましでしょ
Javaの世界では画期的な使いやすさ
他の言語の人からするとプギャーだと思うけど >>446
thymeleafを使った開発では期待した工数、保守性は得られなかったよ
FWやらORマッパーやらが乱立して、各プロジェクト毎にガラパゴス化してしまい
変な形で属人化してしまっているのがJava開発の実情だ
手前味噌のFWやORMappeを一掃して新しい開発標準となるのが
SpringBootだと思っていたんだが・・・自分が期待した程ではなかっただけさ Thymeleafは JSPだろ。
ORMapperじゃない。それはJPA. nodeをプログラミング言語みたいに書いてるやつ気持ち悪い 電脳屋は、つぎから次へと生み出される人工言語を習得し続けなければならないから大変やな〜
自然言語なら、世界は間違いなく広がっていくが、シリコン石の世界相手じゃ世界は広がりそうにないな 別の言語っていっても
方言みたいなレベルで、わりとすぐに順応できる
単語は英語だし >>443
PythonはAI系のライブラリが充実してるってだけで、俺含めて仕方なく使ってる人が多い気もする
言語仕様の完成度で言えばRubyの方がだいぶ上だと思うわ >>440
FALSEと例外が同じ頭はオカシイから取り替えろ、お前の頭 >>348
その何々exceptionを網羅できなかったらどうなるの?落ちちゃうの? >>444
無意味に全角スペース使う奴は、仮に正しいこと書いてても信用できん >>459
わからない例外が出たのに動きつづけたら
まずいだろ >>459
throws ◯◯exception は関数やメソッドがどんなexceptionを返す可能性があるかだから検査例外なら、網羅してなければコンパイルエラーになるだけ。実行時例外はthrowsに書かなくてもそのまま返すだけだし。 自然言語は、地理条件と深くリンクした世界
人工言語は、所詮、機械の世界でして意味がない
こんな虚しい言語を幾つマスターしてもバカだと思う
時間の無駄使いとしか思えません pythonがMLや解析系に強いのはあれはプログラムのお約束みたいなのを知らない人たちでもかける言語だからだと思う
開発者にとってはやっかいな言語だけどね。 >>3
Javaの弱点ってオラクルが金の亡者なことだろ?
解決できるか? ■ このスレッドは過去ログ倉庫に格納されています