【IT】PythonがJavaに迫る勢い - 7月の開発言語ランキング [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017年7月の「PYPL PopularitY of Programming Language」が公開された。PYPLはGoogle検索エンジンにおいてプログラミング言語のチュートリアルが検索された回数から、対象となるプログラミング言語がどれだけ話題になっているかをインデックス化したもの。チュートリアルの検索回数を人気度と位置づけてランキングしている。 2017年7月におけるインデックスは次のとおり。 順位 プログラミング言語 インデックス値 推移 1 Java 22.6% ↓ 2 Python 16.4% ↑ 3 PHP 9.1% ↓ 4 C# 8.2% ↓ 5 Javascript 8.0% ↑ 6 C++ 6.6% ↓ 7 C 6.5% ↓ 8 R 3.7% ↑ 9 Objective-C 3.6% ↓ 10 Swift 2.8% ↓ 11 Matlab 2.5% ↓ 12 Ruby 1.8% ↓ 13 VBA 1.4% ↓ 14 VisualBasic 1.3% ↓ 15 Scala 1.2% ↑ 16 TypeScript 1.2% ↑ 17 Perl 0.8% ↓ 18 Go 0.5% ↑ 19 lua 0.4% ↓ 20 Kotlin 0.4% ↑ 21 Delphi 0.3% ↓ 22 Rust 0.3% = 23 Haskell 0.3% = http://n.mynv.jp/news/2017/07/07/053/images/002l.jpg http://n.mynv.jp/news/2017/07/07/053/images/003l.jpg 長期に渡ってJavaが第1位を維持しているが、シェアは徐々に下がってきている。ほかのプログラミング言語ランキングでも同様の傾向を示している。PYPLプログラミング言語ランキングではPythonが高いポイントを獲得しており、そのポイントは徐々にJavaに迫ってきている。Pythonは採用されるシーンを増やしており、このままの傾向が続いた場合はPythonがJavaを超える可能性がある。 http://news.mynavi.jp/news/2017/07/07/053/ >>532 民法は他の法と異なり基底クラスみたいなものなので 契約書というサブクラスを用意してオーバーライドすれば問題なし サーバーだったら普通マルチプロセスだろ。 同時アクセスでプロセスが多く発生するから 個々はシングルプロセッサ動作のほうがいい。 >>534 少し語弊あるので補足。 強行規定というオーバーライドできない規定もある。 瑕疵担保責任の改正部分は任意規定、つまりvirtualがついたメソッドみたいなもんだ。 >>534 コンペで確実に負ける そんな御社とは契約しません! 話の流れを見るとどうでも良い流れになっている 流れを整理する >>469 が排他制御に言及 >>471 が排他制御の流れで唐突にNode.jsに言及 >>473 がNode.jsはC/C++等で実装され、Node.jsがその機能を使う側と指摘 >>502 がカーネル側では古くから非同期実装があり、新技術ではないと指摘 >>524 はサーバーコアをフルに使うべきでないと主張 >>533 はアイドルコアの問題を指摘 >>535 はWeb系の標準慣行であるマルチプロセスに言及 C++とChrome V8(C++)で書かれたNode.jsのシングルスレッド内の並行処理性能とマルチコア並列を厳密に定義するだけで解決する -シングルスレッド並行化 -マルチコア並列化 Java/C++/C#では何れでも高速にできるが、Node.jsではマルチコア並列化はマルチプロセス限定という理解で良いのか? 現在バブル気味な画像処理や自然言語処理といった並列化演算をNode.jsマルチプロセスでの試みは聞いたことがないし、できても大変だろう -レジスタ分割式並列化 -GPU/FPGA/ASIC並列化 並列化技術の中心はGPUやFPGAでありC/C++/VHDLが中心となる そしてUIはPythonを使って呼び出すのが標準慣行だ 組み込みは >528 が指摘してる通りC言語だ >>538 Node.jsはwebの問題。非同期I/Oもwebならではのスケーリングしない問題を解決する方法の1つに過ぎない。 Node.js のマルチコアが生かせない問題 → 2コアのCPUも売ってるから、それ使えば? レンタルサーバーが Core i7なんだけど勿体ない → コア数分だけ複数のサービス走らせれば? Nginx を Node.js のリバースプロキシとして使ってなんとかすれば? どれも取るに足らない話。既に解決済みのこと。 結局、C/C++が最強だね! → 大手がカリカリにチューニングするために雇ってる人材はかなり少ない。某ドワンなんとかでも数人。 チューニングした結果、サーバーの台数が節約できるなら、どこだってするだろうよ。アセンブラだって使うだろうよ。人件費に見合うならな。 C/C++の最大の問題は、生産性が悪いこと。 C/C++で生産性が高ければ、他の言語が流行るわけないだろう。 >-レジスタ分割式並列化 >-GPU/FPGA/ASIC並列化 > >並列化技術の中心はGPUやFPGAでありC/C++/VHDLが中心となる >そしてUIはPythonを使って呼び出すのが標準慣行だ Pythonが活躍しそうなところ。機械学習系、大規模処理系。オフラインでのバッチ処理。 webとは全くの畑違いだね。 生産性のいい言語を使うのと、C/C++の高速なライブラリを早く、お手軽に使える、ことが求められているんだろう。 CUDA に対応した時期を考えると、Pythonは割と早め。Rも早め。 Rubyとか、他のweb系のはほぼやる気なし。 Ruby使ってると、絶望的な気分になるね。もう、言語構造からして古すぎるし、何かをちまちまとループ回して実行するしか出来ない。 それに、まともなライブラリや拡張が無い。Array Hash 手の入れようがあるのに、やる気なし。Vector そんなのもあったっけか。 matrix系の拡張ライブラリ、ほぼやる気なし。使う人もいない。なぜかメモリだけはガバガバ食うし、ガベージコレクションもいい加減。 あえて、Nodejsはシングルコアにしてるんだろ? サーバーでマルチプロセスが発生するから。 はじめてのNode.js:マルチプロセスアプリケーションを作成する | OSDN Magazine Node.jsは原則としてシングルスレッドで動作する。そのため、多くのリソースを消費するプログラムでは、リクエストを受信してからレスポンスを返すまでの遅延が大きくなってしまう可能性がある。 このような場合、複数のプロセスでプログラムを実行し、リクエストを振り分けることでサーバーのCPUリソースをより効率良く利用できる可能性がある。 今回はNode.jsで複数プロセスを利用するための方法を紹介する。 https://mag.osdn.jp/13/04/23/090000 まえおき Nodejsのclusterモジュールのドキュメントを読んでいて、 「ほぉ、並列化って簡単にできるんだなぁ」と感じつつ、関連記事をいろいろ調べてみると、 並列化すればスループットが上がる マルチコアの場合は有用。CPUのコア数と同じにすると良い ワーカーやアプリケーションサーバなどは横に並べとけ 的な記述が色々あり、違和感を感じました。 マルチスレッドができる言語でやる"並列化"と私が調べているものは別物なのでは? と。 https://blog.leko.jp/post/learn-multi-thread-and-multiplexing/ 最近のWeb系ってその辺の基礎知識無くてプログラム書いてる人が多いのかなぁ >>542 その辺がどの辺か知らないけども、基礎知識無くて書いてる人は多いよ。 Ruby on Rails で富豪的プログラミング。 メモリーは何十GBもある前提。 何かが不足しているなら、台数増やせばいいんじゃないの、という発想だね。 小さなテストケースで動かして、動いたから実戦投入して、何万人も来たら、あとは、クラウド代金との勝負みたいなのは、よくある。 AWSが儲かるわけだね。 わしアセンブラとCしか使ったことないけど20年ぶりにJAVA猛勉強中 JAVAて、構造化して簡単にプログラミングすることを目指したもんやと思うけど逆にややこしくなってると感じる アンドロイドのプログラムとか手続きがうっとしいわややこしいわで苦戦中や 今のブラウザ系はサーバサイドにnode.js+Expressやpython+Flask、Ruby+Rails使って、 web側はossとテンプレートとjQueryで力技解決する、みたいな事は割とある。 jQueryの$('#なんとかかんとかのid')とか書くようになったらもうdocument.getElementByIdとか 面倒すぎて書かんしなあ。 >>454 Computer vision engineerいいな しかしどうせやっすい給料なんだろなあ C++は結局高速化・省メモリという用途に限定した「ドメイン特化言語」ということだね。 器用貧乏の慣れの果てとしては皮肉だけど >>540 >C/C++の最大の問題は、生産性が悪いこと。 生産性はその個人のスキル・経験に依って異なる C/C++で他の言語と同じぐらいの短期間に組めるハッカーは世界を見回せばいる 特にアメリカには多くいるが、それでも人材不足な状態ではある 日本にそれらの人材がいないという表現なら半分は正しい 実際は組み込みでは、C言語を使える人材は腐るほどいるはずだが 報酬の低さや多重下請け構造の土方が多くハッカーが生まれる土壌ではない 組み込みの延長線としてソニーの機械学習はC++、クライアントにPythonを使っている 【機械学習】ソニーがディープラーニング用“コアライブラリ”をオープンソース化。 http://egg.2ch.net/test/read.cgi/bizplus/1498529223/ エリック・シュミットの例で言うなら、字句解析器LexとSolaris/SunOS等のOS、それと間接的ではあるが Java仮想マシーンの生みの親と同時期に肩を並べた技術力がGoogleに見事はまったわけだ(当時でさえ古臭い技術ではあったが) Google初期の言語による問題もC/C++によって解決したことからも、その手の人材は国際競争力に直結する シュミットレベルのハッカーは日本には今のところいない ハッカーを褒められるどころか損をするお国柄であり、封建主義的・前近代的な企業文化と経済・雇用構造でハッカーが生まれるわけがない 日本企業は属人的な技術力を嫌うため誰でも使えるツールに拘り、誰もが使いやすい平均的な言語を好む(極端に言えばノンプログラマーでもコードができる言語が理想的となる) そのため個人の能力差が露骨に生まれる言語を嫌う傾向が如実だ 反面、日本のオタク発生率は他国に比べて高い、確実にシリコンバレーよりも高いだろう ハッカーが生まれるベースだけは無駄に広いということだ 日本のソフトウェア開発者がアメリカにいくのであれば、C/C++にこだわる必要は全くないが 最低でもC/C++/Java(この3つはCS学科で使う主要言語のため)の一つで見苦しくないコード設計 でアルゴリズムを組めないと大半の面接で落とされるだろう。選択肢を低く設定するのは挑戦してからでも遅くはない 同時にOOPが出来なくても良いというソフトウェア開発職種の方が少ないということも頭に入れておいた方が良い 初心者なんだけど ともかく なんでもいいから1つの言語で どんなものでも作れるようになるのが上達の近道なんじゃないかなと思うんだけど ちがう? >>554 「どんなものでも作れる」を満たす言語となるとCとかC++とかだけになる。 >>554 頭の回転が早いタイプだと早ければ数日〜数週間で簡単と感じるようになり それで飽きてきた倦怠期で潰れる人間が多いな この資料のページ6にあるのはスタンフォードのカリキュラム http://www.kantei.go.jp/jp/singi/keizaisaisei/miraitoshikaigi/dai8/siryou2.pdf これによると学習は2つに分けている -入門(Unix/オブジェクト指向/言語の基礎)、シェルとC/C++/Javaのどれか -自主学習(ウェブアプリケーションやゲーム等)、好きな言語で好きなものを完成させること つまり好きな言語で学ぶと同時に基礎をつける事が大事 入門は半年以上かけないようにした方が良い(それ以上かけても教育的な効果はでないし必ず飽きてくる) 次の基礎は、アルゴリズム・ソフトウェア・ハードウェアを学ぶべきだが、C/C++/JavaのどれかをCS勉強用言語として一つだけ選択しておくと良い >>554 上達が言語への精通って意味ならそうだね いずれ得手不得手を知ることになる ハッカーになるってならどのように作るのか、が重要 幅広いデザパタを学ぶために人のコードを 読んでパクって実装するのが良いかと やりたいこと次第だね。C/C++だと目的地に到達する前に力尽きる確率が高いw 例えばWEBブラウザならJaveScript一択だけど、最初に選ぶ言語ではない。これは不幸なことだと割と真剣に思う。 >>542 基礎知識って、CGIでのデータ処理がどう通っていくか?ってこと? ゲームだったら C#+Unity...と言いたいとこだけど、言語を学ぶには向かないな。 コーディングしないでも結構なことができてしまう。 純粋に言語を学ぶならCが良いんだけどね。目的があるなら、そこでメジャーな言語を覚えるのが良い。 >>280 テンプレートの仕組みは最強だよね。 なんでJavaでのぞいたのかわからん。 >>562 いや、最初はそれでいい 最小限の学習で作れるものが作れる、が最も良い ただ、プログラマーで食っていく以上、自分のスキルと向き合う必要がどっかで出てくる そこで初めてガチ勉強、でも全く遅くない 日本だとJava!PHP!C#!って感じになるのかな ランキングから世界は業務系が縮小して分析や制御が拡大してるの分かるな 日本だと未だに業務系一辺倒だからなあ IoTをバズワードと馬鹿にしてるうちにまた周回遅れか >>470 JavaなのはBackRustじゃないかな 前身研究のstanford.eduの奴 >>552 何をどう言いつくろおうが、C/C++は生産性が悪い。 C/C++ の需要。 組み込み系 C/C++しか動かないから選択肢がない。 高速化系 他の言語で十分に検証したものを移植するだけ。 どちらも面白い仕事ではない。前者は給料安いし、後者はよほどいい職場じゃない限りやりがいが無い。 第一、学校で教えてるでしょ。ある程度。 大学で教える言語でC/C++が一応出来るって人は大量生産されたけども、他の言語が流行ってるってことは、 新規で新しい言語覚えるコストを払ってでも、新しい言語に利があるということ。 スーパハカーとかの話はしてない。そういう連中はどんな言語だって出来るんだから。 言語の生産性はあんまり変わらない。 C++より面倒なJavaプログラマーが大量に募集されているってことはそういうこと。 Java は実需。 特定業務用に大量に人が必要。 最近は供給が増えすぎてるけどもね。 Java のみでやってきた人に言わせると、一生これで食っていけるから、他の言語覚える必要がないんだと。 言語の生産性を第一に考えるのはエンジニアとしては二流だと思うわ まあ俺みたいな若輩者の言うことは無視してくれて構わんで >>567 ちなみに、大学ではどんな言語でも講義に最低限必要なことしか教えないのが普通なので 大学で◯◯言語使ってましたというのは参考程度にしかならない。 いや、生産性は大事だぞ。何ならアセンブラしかなかった時代を想像してみると良い。 歴史の視点を持つこと、思考を極端に飛ばしてみること。エンジニアでも十分役に立つ。 >>565 そうとも言えんな。 上位5言語で70%くらいある。 つまり、業務系なんやろw 後は制御とゲームやろうね。 機械学習とか分析系は研究職から出ないからな。 エンジニアが幾らRを覚えても、統計学は知らんからな。 統計分かってる奴らの手足になる安月給の助手止まりにもならず、 統計分かってる奴らが自らRを書くやろうし。 生産性においてアセンブラを出すのは極論だと思います。 それに無碍にして良いとは言ってないです。 ならCOBOLならいいのか? エンジニアもサイエンティストの一端だから、その辺りの素養も大切だぞ? COBOLは歓迎できないがエントロピー問題として許容すべきだと思っています。 >>567 ミドルウェアより下は最初からC/C++が圧倒的に多いだろ ブラウザ本体とか >>577 ならアセンブラが極論でCOBOLが許容範囲な論拠を示さないとならないな。そこでは歴史が役に立つ。歴史を学べば我々が巨人の肩に乗った小人に過ぎないことも自ずと解るだろう。 哲学から自然現象を切り出したのが科学で、科学の実利的な分野にフォーカスしたのが科学技術。情報技術はその一分野であり、その実務者が上位の視点を持つ必要は必ずしもないが、役に立つこともある。 >>581 敢えて言われると難しいですね。 知れば自明と感じると思っていたので。 しばし考えているので、極論ではないと考えた理由を聞きたいです。 >>582 自分は生産性が大切とは言ったが、アセンブラが極論でないとは言ってない 。生産性より性能が重視される場面もあるからね。 逆に生産性を第一に考えなければならない場面もある。一刻も早く製品を出さないとならない時とかね。 今のご時世、競合に先を越されたら死活問題になることも少なくない。生産性が大事だと言った論拠の一つがそれ。 >>581 あー強いて言えばcで書けるから、 かなかなあ。 >>583 ならCで書けないか? 実はアセンブラ詳しくないから断言できんが。 >>585 Cの話はしてない。勿論念頭にはあったが、歴史的な観点から出さなかった。 モダンな機械学習フレームワークのフロントエンドがPythonなのも、生産性が重要な論拠の一つだね。 これがC/C++だったらここまで流行ってなかっただろうし、仮にそういうフレームワークがあっても淘汰されてただろうね。 >>578 > ミドルウェアより下は最初からC/C++が圧倒的に多いだろ > ブラウザ本体とか ブラウザ本体を作れる仕事とかレアすぎませんか? 速度重視・メモリ消費量重視・なにもかも重視、ただし開発期間を除く、の仕事だろうな。 ミドルウエアでもいいけども、ライブラリもだね。 何か、面白いことをしようと思った時に、C/C++は第一選択肢になりにくいと思うよ。 逆に堅実すぎる仕事は沢山あるね。しかし、製造業とか平均的に給与が低く納期も厳しいジャンルが多いと思うわ。 linux のカーネルいじりたいとか、元がC/C++で書かれているから、仕方がないジャンルはあるけども。 >>587 性能が必要な部分は今でもアセンブラだぞ。 Cコンパイラが生成するアセンブルコードを見れば分かることだが、熟練者のコードに比べると効率が悪い。だからインラインアセンブルなんて機能がある。 それに機械学習だとCは入り口だけで、中身はハードウェアと言うことも多い。そうなるとVerilogとかの話になる。 >>589 大半はCで部分的にアセンブラでって程度では? アセンブラが極論と言ったのはアセンブラで全て実装と思ったからです。 アセンブラで全て実装するなんて言ってないと言うなら不毛なので寝ます。 >>589 小さいコードで済む問題なら 人間が書いたアセンブリが速いけど コード量が増えると実行プロファイルを 最適化に使えるJIT実行環境が速い >>588 ライブラリはミドルウエアの典型 OpenSSLとかWebKitとか >>591 おやすみ。こちらも寝るわ。 ちなみに上でアセンブラを引き合いに出した時は、全てアセンブラで作るイメージで正しい。COBOLが作られた頃はまだC言語は生まれてなかったからね。 COBOLやFORTRANが作られた歴史を紐解けば、当時から生産性が重視されてたことが解ると思ったんだ。 >>592 上にも書いたが、機械学習だとコア部分はアセンブラを通り越してハードウェアで丸々実装することもある。そこはJITナニソレな世界だ。 今の機械学習はPythonからFPGAを生成するらしい。 C/C++もいらないんだと 機械学習/Deep Learningの仕事が増える2017年、ソフトウェアエンジニアがFPGAを学ぶべき理由 http://www.atmarkit.co.jp/ait/articles/1701/30/news007.html > ──FPGAでディープラーニングを手掛けるのに、Pythonが書ければOKなんですか? > > 中原 OKです。C言語すら書けなくていい。 >>596 それはPythonからFPGAを叩くイメージ。Pythonで論理合成する訳じゃないよ。 仲介するのはC関数なので、C言語が不要になる訳じゃないけど、ユーザは意識しないで良い。 生産性=アウトプット÷生産にかけた人数 @ アウトプット=量 性能関係なく数を増やすと生産性は上がる A アウトプット=利益 性能が競合を圧倒し、コストに関係なく安売りをす必要がないと生産性は上がる 前者が典型的な労働集約型、後者は知識集約型産業に多い >>598 △A アウトプット=利益 ◯A アウトプット=収益-非人件費コスト これであってるかね? アウトプット=収益でも良さそうではあるが >>596 > 今の機械学習はPythonからFPGAを生成するらしい。 > C/C++もいらないんだと > > 機械学習/Deep Learningの仕事が増える2017年、ソフトウェアエンジニアがFPGAを学ぶべき理由 > http://www.atmarkit.co.jp/ait/articles/1701/30/news007.html この手の記事を読むと必ず出る質問。 Pythonで書いたプログラムをそのままハードウエアにできるの? 答:できません Cでx86のエミュレーター作ったんだけど、CPUになる? 答:できません ソフトウェアを書いたらハードになるって話は? 答:嘘です HDLを大真面目に勉強しないと、何が出来るかは理解できない。 ソフトウェアエンジニアがFPGAを学ぶと、その異次元さに付いてこれない。 なんなく用意されているライブラリをなんとなく使うという意味なら、多分使えるんだろう。 その中で何が起こっているかを全く知らなくても使えるんだろう。 これはどんな言語でも同じ。 CUDAのライブラリがあれば、GPUの構造を知らなくても、速く計算できることだけはわかる。 誰でもわかる。 ちなみに、XilinxはFPGAの石を作って売ってるメーカー。そこのPR記事ですね。 FPGAは、Alteraという会社もあって、今はインテルと合併したんだっけか。 多分、Xilinx記事レベルで言ってるのは、こういうこと。 https://www.altera.co.jp/products/design-software/embedded-software-developers/opencl/overview.html https://www.altera.co.jp/content/dam/altera-www/global/ja_JP/video/opencl_tutorial_p1.mp4 OpenCLライブラリを使ったら、速くなりますよ。と。 ものすごく高い石を買ってね、と。 2013年版のが最新なのか。その後新製品出てないんだな。 >>588 > 何か、面白いことをしようと思った時に、C/C++は第一選択肢になりにくいと思うよ。 > 逆に堅実すぎる仕事は沢山あるね。しかし、製造業とか平均的に給与が低く納期も厳しいジャンルが多いと思うわ。 その面白くない仕事はシリコンバレーにも多くある 違いは報酬が高いこと 日本でも最近の製造業はFAやロボティクスに移行してるので、製造業=低報酬ではない ファナックのソフトウェア開発者募集 https://js02.jposting.net/fanuc/u/job.phtml?_ga=2.36320416.1415094715.1500137248-751622389.1500137248 結局、優秀な人材を確保する、それにつきる http://tracpath.com/works/story/high_performance_computing_programmer/ 「優秀な旋盤工の賃金は平均的な旋盤工の数倍だが、優秀な ソフトウェア・プログラマーは平均的なプログラマーの10,000倍の価値がある。」 米大手ITでは週1日は業務以外の事をやらせたら、新言語とコンパイラ、仮想マシーンだらけになったと良く聞くが驚くような話でもない それにアメリカでもC/C++のほうが使い手が少ない分、仕事の需要は安定して高いから、シリコンバレーで職探しをするなら有利ではある >>601 ファナックは(投資家にとって)いい会社なんだろうが、どの職種でも、【想定年収】440万円〜1100万円 は募集がおかしくないか。 それに、勤務地がな。 このレベルの募集なら、スマホゲーム作ってる所でもあるんじゃないかな。 >優秀なソフトウェア・プログラマーは平均的なプログラマーの10,000倍の価値がある これはゲイツが自分自身のことを言ってるんだろう。 いくら人数を集めても、1人にかなわない領域もあるけども、たいていの場合は人数でなんとかなる。 マネージャーが凡人だと、天才がいても、人数がいてもどうにもならんが。 >>567 >第一、学校で教えてるでしょ。ある程度。 その学校で教えたことが面接になった途端にできなくなるプログラマーが多い アメリカのCS学科を卒業してもコーディングできない人材は相当数おり 学校で教えてるから履歴書に有名大学であっても、面接ではかなりの確率で落ちる 逆に学校で学んでないプログラマーが、面接で高い適正を見せることも珍しくない >大学で教える言語でC/C++が一応出来るって人は大量生産されたけども、他の言語が流行ってるってことは、 >新規で新しい言語覚えるコストを払ってでも、新しい言語に利があるということ。 新しい言語が生まれ流行することは論点ではない 新たな言語が出て来るのは歓迎すべき事だ だが皮肉なことに、最新の流行りは過去に持てはやされた言語ではなく性能重視になりつつある ビッグデータの応用と並列化、IoT、ブロックチェーン、その他を基礎アルゴリズムから実装するプロジェクト数からするとプログラマーの人数は全く足りていない C/C++/Javaを新言語が置き換えるなら、ハードウェアベンダーがサポートすることと 同程度の速度とコード資産の両方があることが前提条件であり、それを行えば新言語が使われることもあり得ない話ではない >スーパハカーとかの話はしてない。そういう連中はどんな言語だって出来るんだから。 言語の学習が文法と考えるならそうなるが、現実はそうではない 実在するハッカーの傾向だが、言語に強いこだわりがある人間が多い 少なくともC/C++/Javaの一つはできるが、3つ全てに精通してるほうが少数派であり、何でもできるというのは都市伝説に近い C言語しかできないハッカーもいるし、C++/Javaしかできないハッカーもいる 数時間〜数日で学べる文法はともかく、C/C++/Javaを使う理由は既存のコード資産やライブラリーを活かせるからで新たに作り直す必要がないから 本当に痒い箇所では、生産性は下がるどころか相対的に高まる、その反面、コード資産の量が膨大なため習得には時間がかかる どこでも大歓迎されるのは趣味がコーディングのプログラマーで、この手の人材は学歴関係なくアウトプットを出せる Googleでも他の会社もハッカーと求人に書いたりはしてないが、大なり小なりハッカーの雇用はできている ハッカーは人口百人に一人程度の発現率と考えられており、しっかりとした報酬を払えば雇うことは難しくない オタクが大量にいる日本では、日本でも毎年最大1万人のハッカーを生み出すことも不可能ではないが 日本企業は属人的なスキルに依存することを嫌うために、誰でもできるようなスキルしか使わさせない ハッカーが生まれない原因は、個人の資質や努力以前に、企業文化や多重下請け等の雇用慣行に原因がある >>602 > それに、勤務地がな。 > このレベルの募集なら、スマホゲーム作ってる所でもあるんじゃないかな。 http://nenshuhacker.jp/company/detail/6954/ 平均年収 1,571.1万円 (電気機器 2 位) 30歳平均年収1,179.5万円(電気機器 2 位) 従業員数(単/連)3,042人/6,327人 平均年齢42.9歳 平均勤続年数16.4年 https://job-q.me/articles/9 ガンホー コロプラ 平均年収 632万円 628万円 平均勤続年数 4.8年 1.5年 平均年齢 36.7歳 30.2歳 従業員数 345人 450人 >>602 >これはゲイツが自分自身のことを言ってるんだろう。 文脈から本人のことを言ってるのではなく一般論だと分かるはずであり、その理解は少数派だろう >いくら人数を集めても、1人にかなわない領域もあるけども、たいていの場合は人数でなんとかなる。 平均的とされるプログラマーと優秀なプログラマーには 実際にそれぐらいの差があると思うが 実際、マイクロソフトが雇うプログラマーは、スマホやWeb系の開発者が1万人がかける生産性を超えるものを作れるだろう https://careers.microsoft.com/jobdetails.aspx?ss=& ;pg=5&so=&rw=49&jid=276867&jlang=EN&pp=SS - Major in computer science or related field - 2+ years of experience developing large scale parallel systems - Strong C# and/or C/C++ coding skills - Excellent problem solving, design, coding, and debugging skills - Strong cross-group collaboration skills - NLP, general ML, Image recognition background are preferred. Work location - Tokyo, Shinagawa マイクロソフトなら、C#でも可能ではある >>604 言い過ぎたので撤回する × 実際、マイクロソフトが雇うプログラマーは、スマホやWeb系の開発者が1万人がかける生産性を超えるものを作れるだろう ハイレベルなプラグラマーが雑魚を無双できるのは確かにそうだ。 俺は雑魚なので雑魚なりやり方でやるのだ。 生産性=アウトプット÷生産にかけた人数 @ アウトプット=量 性能関係なく数を増やすと生産性は上がる A アウトプット=利益 性能が競合を圧倒し、コストに関係なく安売りをす必要がないと生産性は上がる 前者が典型的な労働集約型、後者は知識集約型産業に多い 追記だが、ハッカーについても整理しておく ハッカー=ハックする人(プログラムを改変する人) 基本的に何かを違う視点・角度から作り変える能力のある人で、プログラミングに美的意識(趣味)を持ち器用であること In the programmer subculture of hackers, a computer hacker is a person who enjoys designing software and building programs with a sense for aesthetics and playful cleverness. The term hack in this sense can be traced back to "describe the elaborate college pranks that...students would regularly devise" 日本だと単なるプログラミングオタクとして蔑まれるとは思うが、プログラミングを目先の利得から切り離して美意識を持って創作してる人だな 学校のカリキュラムから離れて何かコードを組んでいればハッカーと言えなくもないが、強いていうなら開拓精神が旺盛で 意識高い系のこと(ミニOSを開発したり、ゲームエンジンやフレームワーク、何かのライブラリーを書く等)をやりたがる特徴がある ハッカーは継続的に能力開発が必要なので、10年、20年と経験を積むと価値を上げられる 企業文化的には悪い意味でも使われており、社会面で悪癖を持つことも良くあるが、そういう人材であっても雇えるのがアメリカ企業 >>588 > linux のカーネルいじりたいとか、元がC/C++で書かれているから、仕方がないジャンルはあるけども。 pyhonでカーネル書いたほうが生産性高いと言いたいのかな? >>588 > 何か、面白いことをしようと思った時に、C/C++は第一選択肢になりにくいと思うよ。 何を面白いと思うかは人それぞれじゃね? >>603 >C言語しかできないハッカーもいるし、C++/Javaしかできないハッカーもいる そのままでも通じるとは思うが、念のためにこれもJavaしかできないに訂正する。 >C言語しかできないハッカーもいるし、Javaしかできないハッカーもいる >>597 本当かよ。PythonからC++へ変換(たぶんCython)して、FPGAへ高位合成って もろPythonからFPGA作っていることじゃないのか > Pythonでコードを書いて、ある工夫をしてC++に落とし込んで、Xilinxのツールに入れると動きます。 NNって結局ネットワークの定義が重要なんで、NN定義言語とか出てきそうなんだけども。 >>603 C/C++/Javaを最高に使いこなすのが真のプログラマーの資質、のような話は、昔に見た。 その時は、FORTRANを使いこなすのが本当のプログラマーという論調だった。 主な理由は性能のいいマシンはパラレルFORTRANしかなかった。 FORTRAN使い、というか湯水のごとくCPUパワーを使える人達は確かに高給取りで、需要も高かった。 今、C/C++で同じ歴史を繰り返してる気がする。 パラレル系が、C/C++にも浸透し、湯水のごとくの人たちも使ってる。 でも、速度が遅いから、高速化するニーズはある。 ということなんだろう。 >実在するハッカーの傾向だが、言語に強いこだわりがある人間が多い それはどうだろうね。分野で違うのかもしれないが、知らない事自体を嫌がる傾向にある人は多いね、こっちの界隈だと。 まず、知ってるか知らないか、知ってるとして、どの深さまで知ってるか。 仕事が出来るとかじゃなく、どれだけトリッキーな使い方出来るか、という点で競ってる面もあるな。 >既存のコード資産やライブラリーを活かせるからで新たに作り直す必要がないから そりゃ、そういう場面なら、1からいちいち作るよりも、既存のコードの改造なり、追加なりで済ますでしょうね。 丸ごとリファクタリングなんて、やってられないもの。 >日本企業は属人的なスキルに依存することを嫌うために、誰でもできるようなスキルしか使わさせない 仕事でやる場合は、複雑でアクロバティックなコードは禁止。それが普通。だって、後からメンテする人が理解できないし、 チームでやってるなら、チームの平均水準以下のところで、確実に意思疎通できるようにしとかないと、 なにかあった時に対応できないじゃない。 1人親方みたいに、1人で全部完成させて、後の面倒も一生見るならお好きにどうぞだけど、今はチーム制、分業制。 そして、ややこしいことをして、いつまでもBUG出し続けるのもいる。 ハッカーが生まれないかどうかは知らないが、ハッカーは確実にいたよ。今は何やってるか知らないが。 有名人を1人あげろと言われれば、中村君を推すよ。彼無にはドラクエシリーズ作れなかったんだから。 ファミコンのカートリッジにできるだけ面白いことを詰め込むというのは職人芸でもあり、実際にROMの代金節約してるんだから価値がある。 300万本売れたなら、300万個のROMを節約した代金を払ってもペイするわけだね。 まあ、それ以前に、毎月アーケードゲームを移植するとか、何人かは趣味人がいたよ。 サンマイクロに就職した知り合いは、アメリカの本社に行きたい行きたいと騒いでいたな。 日本じゃ、見れるコードが限定されてるんだと。全部のコードを読みたいと言ってたよ。 個人の能力でこれ以上の人は日本にそうそういないというドリームチーム作ったこともあったけど、扱いずらい。 でも、とんでもない所から解法を持ってくる時は少し感動したな。そういう人達の特徴としては、基本的に高学歴かつ中退。 プログラム作るのが面白すぎて学校行かなくなるんだと。東大・京大・阪大、もったいない、と全く思ってない。 学歴低い系だと、1つのことにのめりこみ過ぎて、全部を知りたくなるタイプ。これは1つのジャンルだけ極めたいのが多い。 前者の場合は、ほぼ起業したかな。3DSやWiiのようなリソースが足りないジャンルで結構仕事があったみたいだね。 日本の場合には、ハッカーの力量に加え、経営センスも必要。ある程度のマネジメントも出来ないといけない。 純粋に技術屋やってるだじゃ、稼げないし、面白いこともできないと思うよ。 >>613 昔から残っているCOBOLプログラムをあっさり解読・改修できる方がよっぽどすごい >>604 機械学習エンジニア 年収:800万〜1100万 インフラエンジニア 年収:800万〜1000万 以下、ゲーム系 サーバーサイドエンジニア(PHP) 年収:800万〜1000万 サーバサイドエンジニア(C#) 年収:800万〜1000万 Unityエンジニア 年収:800万〜1000万 サーバーサイドエンジニア[ソーシャルゲーム領域] 年収:800万〜1000万 バックエンドエンジニア(VR事業)【アーキテクチャ設計から実装まで一気通貫/LAMP(Linux Apache MySQL PHP)or Ruby on Rails】 年収:800万〜1200万 ゲームプログラマー 年収:800万〜1000万 ちなみに、上記のはIT土方求人は除外してあります。 こういうの見ると、田舎の製造業の給与の下限が低すぎるように思える。上限は1000万円程度だけど、製造業の平均年齢考えたら、頑張れば出世できるとか無理だろうね。 難癖付けられて、先送りーかな。 ゲーム業界は儲かっている所は滅茶苦茶儲かっているので、人件費を惜しまないね。福利厚生もMAXレベルで充実してるし。 ま、問題は、使えない奴が入ってきて、速攻辞めていくこと。平均年齢は低いまんま。 >文脈から本人のことを言ってるのではなく一般論だと分かるはずであり、その理解は少数派だろう 記者が欲しそうなネタを供給する役だから。あまり真に受けない方がいいかと。 >>608 > > linux のカーネルいじりたいとか、元がC/C++で書かれているから、仕方がないジャンルはあるけども。 > pyhonでカーネル書いたほうが生産性高いと言いたいのかな? カーネル本体は無理だけど、カーネルモジュールなら、もうあるね。 ある程度実験して、OKになったら、C/C++の出番。 >>600 FPGAでも性能出ないことが解ってきたのと、FPGAじゃ高過ぎて商売にならないと言うことで、ASIC作ろうぜってなったのが最近の流れ。 米Googleが深層学習専用プロセッサ「TPU」公表、「性能はGPUの10倍」と主張 http://itpro.nikkeibp.co.jp/atcl/ncd/14/457163/052001464/ 技術力+資金力が必要なので、今のところGoogleしか作れていないけど、競合も猛烈に追い上げている。 >>600 そんなこといったら、C/C++言語もそのまま動作してるわけでなく、アセンブラ、機械語に翻訳するだろ。 PythonをC言語に変換せず、直にアセンブラ、機械語に翻訳したらどうなるんだ? >>620 インタプリタとコンパイラの違いも判らないガキはすっこんでろ。 魅力的なPython: PsycoでPythonの実行速度をCと同等にする https://www.ibm.com/developerworks/jp/linux/library/l-psyco/index.html PyPy - Wikipedia PyPyは、Pythonに制約を加えたサブセット言語であるRPython (Restricted Python) によって実装されている。 これによってRPythonで書かれたコードは静的型付けされたコードに変換することができる。 PyPyのパッケージには、RPythonで書かれたコードをC言語・Javaバイトコード・CLIなどのコードに変換するためのトランスレータが含まれている。 RPythonで実装されたPyPyはこれによって実行可能バイナリへとコンパイルされる。 JIT PyPyはトレーシング実行時コンパイル(トレーシングJIT)を採用している。 特徴的なのは、実行されるコードにJITコンパイルを適用するのではなく、処理系のコードをJITコンパイルで特殊化することである。 この技法は、通常のJITよりも性能が良いことが実験によって発見されたため採用された。PyPyはこの技法を Meta-tracing JIT と呼んでいる。 要するに機械語への変換ロスなんだから、アセンブリが一位 C言語が次点 素朴な考えでは、間に挟まる変換器(コンパイラやインタプリタや仮想機械)が分厚くなるほど遅くなる pypyは本当に凄い 言語実装のスタイルを変えた Lisoの世界では昔からあった事だけど >>623 それはもう素朴すぎて JITで動的にプロファイルを利用した最適化したプログラムの方が速い逆転現象が起きてる >仕事でやる場合は、複雑でアクロバティックなコードは禁止。それが普通。だって、後からメンテする人が理解できないし、 文脈からそのような事を言ってないのは分かるはずだが 主題はスキルの属人性を日本企業が嫌い排除するため、劣化した品質の金太郎飴人材にしかならないことだ >ハッカーが生まれないかどうかは知らないが、ハッカーは確実にいたよ。今は何やってるか知らないが。 それはいるだろう(いただろう)、定義の広げれば初めはみなハッカーの卵だからな(修練次第では誰でもハッカーになれるという意味では) しかし精神病になってIT引退をするか、最底辺を這い回るケースが多いようだな それはハッカーでいると前近代的で封建主義的な多重下請け構造を持つ日本では罰を与えられるだけのことで、 ハッカーになりたいという人間の成長・発掘が妨害しているのは前近代的で封建的な雇用構造・雇用制度だ >日本の場合には、ハッカーの力量に加え、経営センスも必要。ある程度のマネジメントも出来ないといけない。 >純粋に技術屋やってるだじゃ、稼げないし、面白いこともできないと思うよ。 人月商売派遣屋やSIerで働く三流人材の話のようだが、多重下請け構造と封建主義的慣行を 正当化するいかなる論法も日本型ソフトウェア産業と、デジタル産業・自動化に侵食される伝統産業の衰退で無効だ アメリカ流の大雑把な人口比で試算でいくと ハッカー適正のあるプログラマー(アマチュア・学生含め)は日本には10〜50万人はいると考えている これらのハッカーの卵が、プログラマーになりたいと考える環境を作るだけで、後は勝手に人材や産業が生まれる 現状は、多重下請けや中間搾取で低賃金かつ、終始パワハラに怯える現代式奴隷であり、報われることはないし士気は低く ハッカーの潜在力はあっても底辺と呼ぶにふさわしい生産性だといえる 報酬が米の最底辺以下の給料で長時間働かされ、終身雇用制度下では一旦レールから踏み外すとキャリアが終る事情からシリコンバレーのハッカーでは一般的なギャップイヤーを取り自分の好きなものを 数年かけて開発するようなこともできない、まさしくハイリスク・ローリターンが日本のプログラマー職だ 渡米するプログラマーが増えるのは当然の流れだ 高卒なら片田舎のコミュニティーカレッジ(渡航費・生活費含めて200〜300万円)か 大学院で2年勉強すれば就業ビザは入るし、就業中にグリーンカードのスポンサーになってもらえば最終的にアメリカ国籍も取れるだろう 社会保障の維持はおろか、国自体の存続さえ見通せない日本にいるよりは、渡米は自然な判断だと言える このスレの問題となっている言語についても日本式の属人性排除の言語を基準とするのではなく、シリコンバレーや米企業が人材不足 と考える習得難易度が高い言語を基準としたほうが有利なことは間違いない HTTLは使わず数字?コピー張り付けで ハッカーはちがう、固定回線使わずワイハイしたいだけ俺も 最近新人に「○○君、パールって知ってる?」って聞いたら 「あ、ちんこにいれる奴っすか?」って聞いてくるくらいの知名度になっちゃった >>615 求人があるなら、代表的な求人票を貼らないと情報としての価値はない 年収が高くても学歴要件が理系博士以上で、論文発表歴が年2回が要件の求人といったオチになると思うが 新興企業では大企業に比べると定昇が低く抑えられ、賃金カーブは伝統的な企業ほどの傾斜はないので企業名もないと評価できない >>11 流体計算では今も求人が出てるや FORTRAN95だったかな >>43 気象庁の数値予報Systemに違われてるよ >>616 >ある程度実験して、OKになったら、C/C++の出番。 PythonでモデリングをしてC/C++で実装するのはウォーターフォールを前提とするので、米(ユーザー)企業では少数派だな 自社のコアコンピタンスに関わる部分は、C/C++/Javaで開発の場合では、9割型が何らかのアジャイル方式であり テストと開発、モデリングの改良や、新規機能更新が同時並行で進行し、開発期間を可能な限り短縮する Pythonでモデルしてから、C/C++に落とすというのは理論上は可能だが、他社に先んじてリリースするのは不可能に近くなる モデリングを開発から断絶させると、モデラー・リサーチャーが開発者側に理論を理解させ、数値モデルの実装を考えさせる時間と手間が発生し、これは馬鹿にならないコストとなる 現実問題、開発者はツールを作りこんでるのでPythonよりも高速に実装できることさえある モデルのシミュレーター、エミュレーターの速度も高速のため、モデリングの期間も短縮できる シミュレーターに流す期間が半分にするだけでももとがとれるが、実際はPython比で数十倍、数百倍のシミュレーション効率も珍しくない Pythonを使うのは、開発チームに別ラインのリサーチャーがいる場合だ、彼らは自分の好きなツールでやらせた方が良い だがリサーチャーは他社を出し抜くブレークスルーができないなら不要な存在となるので、雇用できる枠は少数となる このリサーチャー枠をキャリア相談時に薦めるのは、ポスドクや新卒博士、インハウス研究者だけにすべきだ C/C++もPythonも使わない第三の方式としては、考えられる限り抽象化されたC/C++で組んだコアライブラリーと自動にリンクする モデリング言語をC言語で作ることだな、これは社内のライブラリーに使うため社外に出てことはないが、アメリカ企業では広く活用されている ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる