X



【IT】PythonがJavaに迫る勢い - 7月の開発言語ランキング [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001ノチラ ★
垢版 |
2017/07/09(日) 10:03:54.81ID:CAP_USER
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/
0348名刺は切らしておりまして
垢版 |
2017/07/12(水) 11:21:07.90ID:shxa6pY1
pythonの歴史(〜2016年)
2011年 pandas 0.30リリース。pythonはplyr/dplyrを備えたRの競合に。この段階で、現在の状況に至るためのお膳立ては整ったのであった。
[2006] 科学計算(NumPy/SciPy/scikit-learn)
[2005] 数式処理(Sage=セイジ)
[2011] データ整形(pandas)
[2003] 可視化(matplotlib)
[2001] インタラクティブ(notebook)
ところで、私が大学院に入学したのは2008年であった。研究室ではintel C compilerしか使われていなかった。
そして、BLASやLAPACKをCから叩いていた。スクリプティング言語としては、Rubyが使われていたが、Webアプリは誰も書けなかった。
mathematicaやMATLABはよく使われていた。Sageを使ってる人は1人だけいた。
ということで、この後には普及の歴史が続くこととなる。
http://soqdoq.com/teq/?p=2036


なぜ機械学習にPythonが選ばれるのか
日本ではWeb系のLL言語としてはPHP・Perl・Rubyが強く、Pythonは海外では普及しているが日本ではマイナーな言語である。
Google AppEngineの開始当初(2008年4月)にPythonをサポートしていた際には、なんでPythonなんだろうと軽く調べ、教育用として海外では普及しているという認識だった。
2012年〜2013年頃にデータサイエンスがバズワードとなり機械学習する上でR言語と次点でPythonという感じだったと思う。
そして昨今はPython一色になってきている。
なぜ、この分野が強くなったのか疑問を持ち「科学計算|機械学習 Python なぜ」検索してみると2サイトが見つけられる。
要約すると エコシステムが充実&加速
Rで出来たことがpandas, statsmodelでかなりできるようになった 機械学習もscikit-learnで楽に 言語間のデータのやり取りの必要がなくなるメリットが大きい

私としては何故このように科学計算分野のライブラリが作成され強化されるように至ったのかを知りたくなり歴史から調べてみました。

RubyがRailsにより注目されたように、Pythonでは当初数値コンピューティング用に設計されたものではなかったが、リストの概念や関数型言語の基本機能を実装したこと、
Jim Fulton氏(元ZOPE社CTO)が多次元配列・行列ライブラリ「Matrix Object in Python」を開発したことで、早い段階(Python 1.0から1年後)で科学/エンジニアリングコミュニティに注目され「Matrix-SIG」が設立、
後の「NumPy」が紆余曲折(Numeric(1995年)とNumArray(2001)を統合)を経て2005年にリリースされた。
また幾つかの科学計算用ライブラリをパッケージ化した「SciPy」が2001年にTravis Oliphant氏らによりリリースされた。
その後はEnthought社が2001年に米国で設立され、SciPyをベースにツールやパッケージやサポートを提供、また科学技術計算向けの「SciPy Conference」と呼ばれる会議の開催を支援して行く。

Pythonが、科学技術計算で使われるようになるであろう理由のもう一つに着目した。
オープンソースプロジェクトは開発リソース(おもにマンパワー)が限られ、開発の中心メンバーが何らかの理由で参加しなくなった場合、一気にそのプロジェクトが衰退する場合があるが、
特に科学技術計算関係のパッケージについては民間企業が本格的にサポートとしており、オープンソースソフトウェアとして公開する体制が整っている。

民間企業の代表的なのが、Enthought社とContinuum Analytics社である。
Enthought社は科学技術計算用パッケージ群「Scipy Stack」を提供し、科学技術計算向けの「SciPy Conference」と呼ばれる会議の開催を支援している。
Continuum Analytics社はPythonディストリビューション「Anaconda」を提供し、データ分析向けの「Py Data」と呼ばれる会議の開催を支援している。

また、GoogleもPython作者のGuido van Rossum氏を2005年に雇用したり、「Google Summer of Code」というオープンソースの開発に資金を提供するプロジェクトを2005年に作成し、
機械学習ライブラリの「scikit-learn」や多変量回帰分析・時系列分析ライブラリ「statsmodels」がリリースされています。

科学技術計算分野のキーマンは、「SciPy」と「NumPy」の作者でもあるTravis Oliphant氏であろう。
Oliphant氏は、2001年から2007年にかけてBrigham Young University(BYU)の電気・コンピュータ工学の助教授を務め、BYU生物医学イメージングラボを指導し、スキャン・インピーダンス・イメージングに関する研究を行っていました。
その後、前述したEnthought社の社長を2007年から2011年まで務め、2012年1月にContinuum Analytics社を設立しました。
http://qiita.com/yaju/items/5502115d7e3d06e6bbdd
0349名刺は切らしておりまして
垢版 |
2017/07/12(水) 11:22:26.62ID:7acKiR3o
>>330
rustはチンタラしてたら特徴をC++に取り込まれそうなんだよね
0350名刺は切らしておりまして
垢版 |
2017/07/12(水) 11:32:14.49ID:caPwsXM2
>>345
後半違う
MATLABは大学ではすごく安い
キャンパスライセンスで全学ただ同然で使える
スタンドアローン版をインストールして家でも使えるライセンス

pythonの方が柔軟性が高いから増えてる
0352名刺は切らしておりまして
垢版 |
2017/07/12(水) 11:53:19.57ID:7acKiR3o
>>351
> The Computer Language Benchmarks Game
見たけど、どれもCの方が速いように見えるんだけど。。
もしかして、見方を間違ってる?
0355名刺は切らしておりまして
垢版 |
2017/07/12(水) 12:16:37.14ID:7acKiR3o
基本的にPython自体は遅いからね。
重い計算処理をNumPyとかCuPyとか使って高速化すること前提になってる。
0356名刺は切らしておりまして
垢版 |
2017/07/12(水) 12:29:21.81ID:XCGOgV1g
Pythonに性能を求めちゃいかん。C関数の呼び出しが奇跡的に楽なので、性能が必要な部分はCで組むんだ。
その場合はCとPythonの境界がボトルネックになるので、変数やバッファも極力C側に持たせるぜ。
TensorFlowもnumpyもそんな感じだよね。
0357名刺は切らしておりまして
垢版 |
2017/07/12(水) 13:07:01.91ID:QC69CMNj
なんでBASICを熟成させて極めないんだね?
ただの言語だろ

新興宗教のように、既存のトップになれないからって
新たに作っておいしいとこを頂くような社会としか思えない
0359名刺は切らしておりまして
垢版 |
2017/07/12(水) 15:21:31.11ID:QC69CMNj
>>358
拡張して作ったりCOMやDLLに丸投げとか工夫できるだろ
新しいことやるために、新しい言語作ってしかも基本命令まで変えて作ることに意味あんのか?
無駄な派閥競争だろ
0360名刺は切らしておりまして
垢版 |
2017/07/12(水) 15:49:48.48ID:vdnLWXiK
>>359
組む人の哲学の違いが大きいんだろうな

マシン語時代からある、伝統的な手続き型(命令型)プログラミングが好きなやつ
(数学的な)関数を組み合わせてロジックを組む、関数型プログラミングが好きなやつ
マクロなプログラミング構造になるとOOPとかもっとたくさん出てくる

それらの哲学を一つの言語に集約するとカオスになる
Perlなんか最たる例
0361名刺は切らしておりまして
垢版 |
2017/07/12(水) 16:04:55.64ID:XCGOgV1g
VBAでもDLL呼び出しすれば機械制御できない訳ではない
そんな非合理なこともやったことあるけど、評判は良かった
0363名刺は切らしておりまして
垢版 |
2017/07/12(水) 18:53:24.00ID:k/J9glmH
そもそも実行効率でプログラミング言語の序列を決めること自体がナンセンス

むしろシステムの案件に対する実装効率と保守性で決めるべきかと
が、これも主観に大きく依存するし、参考程度にしかならない
0364名刺は切らしておりまして
垢版 |
2017/07/12(水) 18:55:38.94ID:q2IY96ud
必要十分なら実行効率、あるいは冗長化して金で解決できるなら
開発、保守効率の高い言語で実装するべきなんだが
受託の場合選択の余地がなかったりする
0365名刺は切らしておりまして
垢版 |
2017/07/12(水) 18:59:04.46ID:HnnxHcJP
プログラミングって何ができるのか
いまいちよくわからない
みんな何してるの?

自分が学生の頃、初めて買ったのはC言語の入門本だった
そして動かしてみて
ああ、動いたって感じで終わった

次はJAVAの本を買っていろいろ動かしてみて
うん、動いたってだけで終わった

最近はUNITYでC#の本も一緒に購入した
3アクションゲームを作ったけど
それで、その先はどうすんの?って感じで
そのまま終わってしまう

Pythonのクローリングとかいう本を買って
webの文字列をExcelに貼り付けるツールを作ってみたけど
うん、まあ、動いたって感じで自己満足で終わった

いつも、こんな感じなんだけど
プログラミングってこんなもんなの?
0369名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:04:10.66ID:nfu7VZrO
>>352
速いのは無駄にリッチリソースで、ガベコレが発生しない状況に限られる。
速いといっても、スクリプトに比べたらの話でCやC++よりずっと遅い。
Hello Worldレベルの実用度ゼロ、チンケなコードでベンチマークして、
直線番長を気取られてもな。
0370名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:14:07.71ID:7acKiR3o
>>363
序列なんか決めてないよ。
速度が必要な部分には速度が出る言語を使うしかないというだけ。
0371名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:15:48.11ID:7acKiR3o
>>365
>3アクションゲームを作ったけど
>それで、その先はどうすんの?って感じで
売ればいいのに。
0372名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:28:38.68ID:IBHPoxom
>>365
ペンと紙のつかいかたわかっても
書く理由なかったら書かないだろ
そういう事だ
0373名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:30:16.70ID:tdDnSCbt
>>368
普通にデータベース操作すること全般だろうね。
Structured Query Language か。最近ではこう言わないらしいが。

いい設計と悪い設計で、大きくパフォーマンスが違う。なので腕がいいと給料がいい。
あるSQL文を実行させた時に、その中身がどう解釈されて実行されるかまで理解することは難しい。

ストアドプロシージャ組む、組まないといけなくなるのは、どこか上流工程で大きな失敗をしているケースだと思うな。
コミット、ロールバックとかもね。
0374名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:33:37.63ID:hwXO75GQ
今時は複雑なSQLを組んだり高度にチューニングしたりしないんじゃ?
javaでやる(俺は嫌い)
0375名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:38:51.93ID:3R9o1ncz


これから学び始めるなら Python 絶対にイイ。兎に角 アルゴリズムが直観的に書けるし、
関数型だから 配列なんかにラムダ式使えるし、ジェネーレータに MapReduceに 機械学習のアンサンブルも書きやすい。

つまり いま流行りのAIを実装しやすい。Javaと違い 多重継承できるから 初期化に問題が出やすいけど、Mix−IN をうまく使えば
超 書きやすい。
0376名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:41:04.83ID:vxvTLreo
WebはPHPよね
0377名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:43:02.02ID:tdDnSCbt
>>374
何をどうやりたいかなのでしょう。
複雑な SQL 文を組と、SQL解釈のオプティマイザが挙動不審になることがあるから、複雑じゃない方がいい。
しかし簡単なことばかりさせるわけにもいかない。
チューニング、というかおかしな所は直すよ。
0379名刺は切らしておりまして
垢版 |
2017/07/12(水) 19:46:46.89ID:3R9o1ncz
SQLとかぁ
関係ねーだろ? わらた。
0380名刺は切らしておりまして
垢版 |
2017/07/12(水) 20:19:48.00ID:tdDnSCbt
>>378
大雑把の程度がどのくらいかわからないけども、WHERE で絞り込むのはいい方法。ただし、KEYがちゃんと使われる前提で。
おかしな書き方すると、見た目は大丈夫そうなのに、フルスキャンになるとかもあるね。オラクルだとかなり頑張るんだが。
データの転送容量は、DBにとっても受け取る方にとっても少ない方がいいので、少なくしますね。
一般的にかどうかは知らないけど、行はDBで絞り込んで少なく、列は多めに取って後から必要な物を精査かな。
全く使わない列を持ってくるのは無しで。
どうでもいいようなものはNoSQLに置いて、どれを取り出すか大事なものを決めるものをDBに置くのが最近の方式なのかな。
0382名刺は切らしておりまして
垢版 |
2017/07/12(水) 20:43:03.88ID:4Zvbo4zu
次のドカタ言語はピートンで決まりだな
0383名刺は切らしておりまして
垢版 |
2017/07/12(水) 20:46:09.30ID:XVNKAgV2
.
ドコモ本社と、客のバトルが聞ける
でに東芝事件を超えてる、アクセス7,000,000回へ
http://do-como.com
f
0384名刺は切らしておりまして
垢版 |
2017/07/12(水) 21:30:49.91ID:hJ46XiQ+
>>375

R/Python/MATLABだけのスキルで外資(または渡米して現地企業)に入社するなら理系のPhdが無いと厳しい
さらに関連する論文があって当然で、アルゴリズムの設計スキルもかなり高いレベルで要求される

日本では学士でもデータサイエンティストの仕事は見つかるが、外資とは比較にならない低待遇

プログラマーになろうとしても、スクリプト言語よりもJava/JVMの仕事が圧倒的多数でありコンバートに成功する確率は高くない

それを理解した上でPython/R/MATLABを学ぶなら文句はないが、分かった上で他人にプログラミング言語として薦めるのは害悪と断定して良い

スクリプト言語から、プログラマーが使うコンパイル言語に移るのは、数週間スクリプト言語に慣れてから一からやり直すぐらいの手間がかかるので
就職後だと日常に忙殺されて時間が足りるとは思えない
0385名刺は切らしておりまして
垢版 |
2017/07/12(水) 21:50:35.23ID:WQUI7318
だからCとlispをまずやれと。pythonはその後
一見遠回りに見えるが、実力がつく
しかも、lispを機械学習と上手く融合したら何ができるのか
あまり解明されてもいない。pythonに代わるパラダイムの鍵になる可能性すらある
0387名刺は切らしておりまして
垢版 |
2017/07/12(水) 21:56:05.61ID:KKtnhN/X
みんな一体何を作っているんだ?
0388名刺は切らしておりまして
垢版 |
2017/07/12(水) 21:59:24.46ID:tdDnSCbt
https://julialang.org/benchmarks/
こんなのを見つけた。

ベンチマークなんだけども。

詳しそうな人が多そうだから聞くんだけども、PythonのCuPyに相当する物って、他の言語だと何になるの?

結局、あれもこれも覚えないとなのかな。
0389名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:00:00.25ID:hJ46XiQ+
×スクリプト言語よりも
◯Python/R/MATLAB等のスクリプト言語よりも

組み込み系や(Java/Scala/Kotlin等JVM言語)Web系、業務系はコンパイル言語を使うため
理論上コンバート可能に見えるが、現実はそう簡単なものではないと聞いている

これがスクリプト言語からコンパイル言語へのコンバートであれば厳しさは想像に難くない
0391名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:03:10.83ID:nCHF8bzo
>>387
お前が使ってるものの大半にプログラムが入ってる
0393名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:35:31.05ID:tdDnSCbt
>>384
数週間で新しい言語覚えられるなら、両方覚えればいいと思うんだけども。

Javaの仕事は大量にあるけども、安い賃金の外人も大量に専門学校から排出されてるんだよね。
それで、外人ですら、競争相手が多いから、給料上がらないとか言ってる。

https://jp.stanby.com/media/programming_ranking/

Python Perl Ruby C JavaScript php Scala Java Swift Objective-C

ここは日本の求人を集めたみたいだけども、Rの求人多いな。ここ1年で増えたのか。

http://news.mynavi.jp/news/2016/11/30/101/

年収ランキングは合ってるのか合ってないのかわからないが、https://www.paysa.com/ってのはUSの転職サイトなのかな。
ここだと、
Verilog R Perl Python C++ C Ruby Java JavaScript SQL って感じか。SQLの位置低すぎて笑える。

使える人が少なくて、ある程度の需要があるのが、給料高い。
Verilog な、日本じゃ仕事自体がろくでもないだろうな。募集数ほぼなし。
0394名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:35:43.19ID:WQUI7318
>>390
逆にプログラミングでしたいことって一般的に何だと思う?自動化でしょ
自分が実現したいシステムをメタレベルで統合する際に自動化を最大化したいならlisp
強みは一般的なんだよ、初めから
廃れたのではなくて、使いこなすのが難しいんだよ

例えば厳密な型に基づく関数型の認知モデルを作ったとして、
それを部分的に非関数型言語で書かれた識別器と連動させたいとするでしょ
そういうことが自由にできるのは今のとこlispしかない
0395名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:41:23.65ID:ito9Fgay
>>392
いつの時代も
競争の過程はたくさん仕事がある
0396名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:47:49.50ID:WhiEQjce
Pythonのソースコードってネットにあまりないな
Python3系に限るともっと少ない
0398名刺は切らしておりまして
垢版 |
2017/07/12(水) 22:51:22.88ID:WhiEQjce
おい!ソースコードがないと言ってるだろ!
0399名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:01:48.96ID:Dm4jAssg
>>393
SQL なんて出来て当たり前
価値なんてない
0400名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:04:58.17ID:tdDnSCbt
>>389
Python/R/MATLAB等のスクリプト言語

コンパイル言語(Cとか?)

は、多分、前者を先に覚えると、他の言語の不自由さに絶句して覚える気が無くなる。んだと思う。
C言語は、所詮便利なアセンブラだから、アセンブラ覚えるよりは遥かにマシ、だと思うことからはじめれば、多少は苦痛が和らぐかも。

C言語だと、i++ とかで、インクリメントできるじゃないですか。これは、アセンブラにインクリメント命令がある(あった?)から。
R言語だと、i++ って出来なかったんじゃないかな。 i <- i + 1 と書かないと。

何かの言語を覚える際には、その言語の1個下の言語の仕組みも考えると、覚えやすいと思う。
C言語でポインターではまる人が多いんだけども、アセンブラでポインターではまる人はいない。
PHPがわけのわからない動きしてるな、と思ったら、PHPのソースを見ればそこに答えがあると思う。
0402名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:09:27.95ID:hJ46XiQ+
>>393
>数週間で新しい言語覚えられるなら、両方覚えればいいと思うんだけども。

現実はそう簡単にはいかない
スクリプト言語を数週間学んでコンパイル言語も学べるなら、認知バイアスはかからないが、理論と現実は違う

半年でもPython/R/MATLAB等のスクリプト言語を学んだ人間は、コンパイル言語の習得に失敗というより、挑戦さえしなくなる
手順が増えるコンパイル言語を忌避してしまうのもあるが、認知バイアスが高まることで、多言語習得に失敗する可能性は高まる

Pythonだけ学べば高給で未来が約束という過剰広告を信じる人間も問題ではあるが、一旦Pythonにロックインされると職種・業種は限定されてしまい、あぶれる可能性が高い
0403名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:20:31.96ID:hJ46XiQ+
>年収ランキングは合ってるのか合ってないのかわからないが、https://www.paysa.com/ってのはUSの転職サイトなのかな。

まず転職サイト・ヘッドハンターの持っている情報は少ないから、パブリックな情報から得るのは間違いではないが
大企業・ベンチャーは年収要件を公表していない会社が多く、適当なデータが多いのは知っておいた方が良い

そのサイトに書いてあるPythonの職種では、Pythonだけではなく他の言語を知っていると記述があるようだが

What skills do Python Developers have?
Python (87%) Javascript (58%) Linux (44%) Mysql (44%) Java (41%) Sql (38%) Css (36%) Html (35%) Django (33%) C++ (30%)

この中でいうと純粋なPythonはDjango(33%)で、残りはJava(41%)かC++(30%)の補助業務だと読み取れる

54% of applicants have no degree

Python Developersの54%が高卒とあるが、この統計には問題がある
学歴の統計は「応募者」の学歴であり、学歴要件関係なく応募する人間が多いアメリカでは、当然学歴が低い人間が応募する(そして大半は落ちる)
0405名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:23:19.46ID:hJ46XiQ+
>Javaの仕事は大量にあるけども、安い賃金の外人も大量に専門学校から排出されてるんだよね。

給料の安さは日本の全体的なトレンド
USならばJavaプログラマーは高い分類に入る、特に機械学習やPhdが入らない分、平均値を押し上げる異常値は少ない

スキルが上がったなら海外に出る手もあるが、PythonしかできないスクリプトプログラマーはDjangoでWeb系か、CS-Phdの機械学習の二極になることは理解すべきだ

Python/R/MATLABについては、学歴が高くなるので年収は高くなるが、総量が少ないので、あぶれる学生が大量に生まれる
(実際、引用された転職サイトのPython Developerの応募者のうち2%しか博士号をもたず、54%が高卒以下)
0407名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:32:33.93ID:hJ46XiQ+
>>400

> は、多分、前者を先に覚えると、他の言語の不自由さに絶句して覚える気が無くなる。んだと思う。
> C言語は、所詮便利なアセンブラだから、アセンブラ覚えるよりは遥かにマシ、だと思うことからはじめれば、多少は苦痛が和らぐかも。

教育というのは杓子定規な理論が通じるものではない
確かに苦痛を和らげるという考え方は良い着眼点だと思う

>>405
>(実際、引用された転職サイトのPython Developerの応募者のうち2%しか博士号をもたず、54%が高卒以下)

ハッカーであれば高卒であってもアメリカのIT企業なら問題なく入れる
しかしリサーチャーにはどう逆立ちしてもなれないから、なりたいなら40〜50歳代でも大学・大学院に入り直すのがアメリカ流
0409名刺は切らしておりまして
垢版 |
2017/07/12(水) 23:51:32.76ID:tdDnSCbt
>>394
すごく久々に Lisp を読んでみたけど、とてもわかりにくい。

それに、速度が出なさそう。
http://keens.github.io/blog/2016/02/04/common_lispdekousokugyouretsuenzan/
速度を出すのは、多分、Lisp原理主義に反してるんだろうね。
結局、一次元のものを、1個1個丁寧に処理するのがLispであって、型とかが自由とかなのは問題じゃないんだろう。

Java VM のマシンコード見てるような見にくさ。
もしくは、Forth か。
Forth もスタックに積んでどうにかする、という一種の原理主義的なところがあったけども。

大昔のCPUで、メモリもちょっとレジスタも数個というような物で動かすには、時流が合ってたとは思うけども。
Lisp は、一次元のものがメモリに格納されていることを暗に前提にしているよね。
その格納物をレジスタに取り出して、何かして、またメモリに戻すというような、いつもメモリの相手をしないといけない状況が。

C言語でも関数呼び出しの際にスタックに積んでどうにかする方式なんだけども、普通の人の思考に沿った形で表現されていて、剥き出しの状態ではない。
それに、ここから先はアセンブラで書くことにする、というようないい加減さがあって、自由度が高いのかもしれない。
あと、Cの場合は時流に乗って、レジスタがいっぱいあるCPUならレジスタに変数割り当ててしまえ、というような現実的なところがある。

http://d.hatena.ne.jp/masatoi/20160229/1456679056

今でも Lisp でがんばってる人には頭が下がる。
0411名刺は切らしておりまして
垢版 |
2017/07/13(木) 00:19:24.11ID:1sn9Z6GA
>>401
最新版を追いかけると、そうなるね。

なので、仕事に使うには、バージョンアップせずに、バグだけ直してくれるようなのも求められている。
オープンソースでも全員がボランティアでやってるわけじゃなくて、速度が速い版で金取るとか、セキュリティ直すので金取るとかも必要。
例えば、phpの場合、今メンテナンスされているシリーズで古いのは、5.x系だけども、5.0.0 が出たのは、18 Mar 2004だね。
使い物になったのが、例えば、2005年だとして、10年以上メンテナンスされている。
php 5.x というくくりだと、Red Hat Enterprise Linux 7がサポート終了になるまでメンテナンスされるだろうから、30 June 2024までは使える。
最新機能が使えないのは置いといて。
一旦、php 5.x で作り始めたら、20年は使えますよ、という感じになってるね。それ以上に長く使いたければ、どこかで、php7に移行するなりして、
全部のソースコードをメンテナンスしましょうね。ということでしょう。
ちなみに、phpのコア部分を作ってる(作ってた?)連中は、Zend Technologiesという会社を作って、php関連で金の取れる仕事をやってる。

https://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%B3%E3%83%89%E3%83%BB%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E3%82%BA
ゼンド・テクノロジーズの創業者はアンディ・ガトマンズとゼーブ・スラスキーで、彼らはイスラエル工科大学を卒業後、ラスマス・ラードフが生み出したPHPを仲間と共に拡張したことでよく知られている。
1997年、ゼーブとアンディはラスマス・ラードフのPHP-FIのパーサを書きかえ、その成果を PHP 3 としてリリース。1998年、パーサを完全に再設計し、これを Zend Engine と名づけた。PHP 4 はこの Zend Engine を使った最初のバージョンで、大きな成功を収めた。

こういう仕組みが無いと、そうそうオープンソースで安いからと手を出せない。

ちなみに、Zend が最初にやったので金になったのは、phpを一旦実行する前に軽くコンパイルするんだけども、そのコンパイル結果を破棄せずに、メモリーに保持しておくというもの。だったかな。
これで速度が3倍くらいになった。なので、多数のサーバーを使ってた所は、台数節約の代わりに、プラグインを買うメリットがあった。
商用版のプラグインと同じことをするオープンソースのプラグインが登場するんだけども、phpのマイナーバージョンアップ毎に、プラグインもバージョンアップしないといけないから、
Zendが儲けられ続ける仕組みはあった。

今は、
Zend Server - 企業向けWebアプリケーションサーバ。
Zend Studio - PHP用の商用(プロプライエタリ)統合開発環境 (IDE)。
Zend Guard - PHPスクリプトの覗き見を防ぐことができる。
というのをやっているようだね。phpが普及して、彼らも儲かる、その儲けを元に、古いphpを使いたい企業向けにメンテナンスをする。
そして、企業は古いphpを Zend Server で動かす、というようなエコシステムがあるんだと思うよ。
0412名刺は切らしておりまして
垢版 |
2017/07/13(木) 00:31:39.47ID:1sn9Z6GA
>>402
なるほどね。認知バイアスか。
プログラム書いて食べて行こうと思ったら、毎年1個とは言わないが、数年に1個新しい言語を覚えるくらいの人じゃないと難しいかもね。
高給取りになりたければ、他の人が覚えるとか、学校で教え始めるよりも前に覚えないとね。
0414名刺は切らしておりまして
垢版 |
2017/07/13(木) 02:41:07.37ID:26anDASq
python2系のときは日本語の扱いがむずかったが、
3系になって使いやすくなった。

それプラス機械学習ブーム
0416名刺は切らしておりまして
垢版 |
2017/07/13(木) 14:06:58.00ID:uzw3kOmA
>>412
一度複数言語覚えたら、その後の言語を覚えるのはだいぶ楽だと思う。

俺はCとJavaとVBを同時期にいっぺんに勉強して、お互いに移植したりしたから多言語使うのには慣れた
0417名刺は切らしておりまして
垢版 |
2017/07/13(木) 17:56:31.90ID:1sn9Z6GA
>>416
まあ、そうだね。
ただ、CとJAVAはほぼ同じ言語構造。
VBも同じ感じだね。BASICも元をたどるとFORTRAN。

次は、R に挑戦してみてください。
0419名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:09:04.85ID:yPFzcW8q
>>412
>なるほどね。認知バイアスか。

自身の合理主義を過信する傾向が強く、認知バイアスにハマってることを理解しない人間も少数はいるとは思うが
大半は理解してるが、多忙のために修正不可な状況にあるのだろう

> 毎年1個とは言わないが、数年に1個新しい言語を覚えるくらいの人じゃないと難しいかもね。

複数の言語だとアメリカでは厳しい
専門性を一言でまとめるという意味ではなく
一つの言語で行う事を一通りできないとソフトウェア技術者としての要件を満たさないからだ

例えばJavaだけでも習得したと言えるレベルにいくには短期間では難しい

https://www.quora.com/What-are-the-technologies-a-Java-developer-must-know

1. JSF, Playframework, Struts, Spring MVC
2. Hibernate / JPA
3. Dependency Injection (@Resource)
4. SOAP/JAX-WS
5. Ant, Maven, その他
6. JUnit、その他
7. Git(Javaとは関係ないが必須なスキルではある)
8. JSTL
9. WebSphere, Tomcat, JBoss, その他
10. AJAX(Javascriptではなく、Javaサーバー側との連携という意味と理解)

これを一通り理解したら他の言語にいくようにすべきで、単なるJavaの文法だけを学ぶだけではソフトウェア技術者にはなれない
0421名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:24:12.33ID:Y37S0Yq5
COBOLほど単価高くないのがねー
VBの状況に近いかな
0422名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:26:47.52ID:yPFzcW8q
JavaFX、Scala等の異論はあるだろうが、アメリカも新しもの好きばかりではなく、レガシーシステムは普通にある

それと技術や業種にも山と谷、峠はある

本当に珍しい技術で利益を上げている業種では、パブリックな年収要件とは比較にならない高額になることはある

バブル気味の会社の技術者に年収を聞くと(賞与・SOを含めたかまでは聞いていない)5000〜6000万円と回答した技術リード(優秀で経験はあるが傑出してはない)
もいて当時は疑ったが、実際その業界のその時期では複数の人間から普通だと昔話しを聞かされたので、本当だったとは思う

誰にもでも来るチャンスではないから、その水準を想定すると幻滅するだろうが、日本と比べると公開されたものより高い報酬の仕事があるのは逆のトレンドなので興味深い

そういう技術を身につけるには、何らかの技術に特化は必要であり、一年毎に言語を切り替える環境では厳しい
0423名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:28:42.55ID:yPFzcW8q
>>420

今観測してる高報酬の求人で純粋の関数型言語をメインにしたものは無いが
0426名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:38:27.72ID:yPFzcW8q
>>425
>今は関数型言語が熱い

>関数型言語というより、関数型言語由来の技術だな。それぐらいは知ってて聞いてると思うけど。

具体的に何の言語・技術か教えてもらえないか?
0427名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:46:28.01ID:TUazWWI2
0059 名刺は切らしておりまして 2017/07/09 11:34:08
ジャップってUMLツールでプログラミングして爽やかな汗をかきながら触ったこともリファも見たことない言語(rustとかlisp)で熱い激論を繰り広げてそう
0428名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:49:31.20ID:Ho+lX2Uz
流行ってるというよりダウンロードして
pythonインスコせんとディープラーニング試されへんからな(´・ω・`)
0429名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:50:02.92ID:uaaGbF4O
>>426
関数型言語の基本というかそのもののラムダ、クロージャ、MLから来ている型推論、副作用を無くすlet(val)、Optionalなどなど
0430名刺は切らしておりまして
垢版 |
2017/07/13(木) 19:58:23.41ID:aAqD9U/X
>>24
最近、アウトソーシングが多いやろ。
クライアントが貸すPCのセキュリティが高過ぎて、officeとメモ帳くらいしか使えないって場所が多いんや。
そんな場所で業務ツール作るにはVBAしか選択肢がない。
HTML.css.javascriptをメモ帳で書くより効率的でもある…
ワイが知る必然的にVBAが入り込む理由(*´-`)
0431名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:01:31.86ID:aAqD9U/X
>>399
SQLチューニング出来るスキルは需要あるよ

下手くそなSQLならクエリ、BQY使えばアホでも出来るからな…
0432名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:02:01.83ID:8HGDAG/e
使われてる順位じゃなくて
検索された順位だからな

C言語なんて検索することないだろ
0433名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:07:54.43ID:LMv+z4KV
瑕疵担保責任(かしたんぽせきにん)

納品されたシステム、プログラムに不具合があった場合、10年後でも無償で修理してもらうことが可能になった。

民法改正で事実上期限が「無制限」になった
不具合を指摘されたらすぐに行動をとるべし 納品物に不具合があれば損害賠償を請求される可能性もある

http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。

重大な脆弱性が現バージョンから発見されました。こちらでアップデートしたところ、起動ができなくなりました。
至急弊社に来て修正作業をお願いします。なおお金は払わない。また営業に損失が出たので損害請求もする。
0434名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:08:47.96ID:LMv+z4KV
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744

367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/

372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する

Railsはマイナー、メジャーのアップデートが半年以内に必ずある

客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく

気づいてから1年以内に通知すれば、5年間無料保証ゲット

つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな

376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限に直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
0435名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:11:58.70ID:yPFzcW8q
>>429

>関数型言語の基本というかそのもののラムダ、クロージャ、MLから来ている型推論、副作用を無くすlet(val)、Optionalなどなど

最新のC++/Java/C#で実装されていない機能を言ってみて欲しいんだが↓の発言からも知りたい

>>420
>JavaはもはやCOBOLに近い

市場で必須とされてるのは、一昔であれば分散化、直近では並列化の実装力だと理解しているが
シリコンバレーの大企業のバックエンド・機械学習の職種の大半がC/C++/Javaという点からも、同じ世界をみているとは思えないんだが
0437名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:16:47.45ID:uaaGbF4O
>>435
だから既存のオブジェクト指向言語が
関数型言語由来の技術をいち早く取り入れて延命してきたってこと
関数型言語を勉強した者からすると今更感が否めないw
0438名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:23:05.65ID:uaaGbF4O
関数型言語は並列化に強い
副作用が無いから
letなどが積極的に使われると明らかになってくるよ
今後に乞うご期待
0439名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:47:14.23ID:yPFzcW8q
>>436

日本の人月商売は知らないが、海外では今更感はあるのではないか

関数型の基本機能は古くからある言語でも使えるようになっており、純粋な関数型だと過去のコード資産が無駄になるという議論はあったようだ
だが新たに導入された関数型にデザインを変更するプロジェクトは一巡しており、アドバンテージではなく基本教養という印象だ

>>437-438

> 今後に乞うご期待

言うほど、そんなに新しい技術ではない

> 関数型言語は並列化に強い

教科書はそういうだろうが最近は様相が異なる

ブロックチェーン、IoT、自然言語処理、自動運転、機械学習のコアライブラリーもWeb配信のバックエンドもC/C++/Javaが大半な状況

並列化にしてもASIC/FPGA/GPUのメインのインターフェースはVHDL/Cのはずだが、そもそも仕事の総量が多くないし
企業が想定するレベルにある技術者が足りていない、もし山をとりたいなら今はC/C++かVHDL

過去のトレンドからも、その言語がバックエンドに使われてない限りは報酬がスカイロケット化するのは無さそうに見える

ARであればC/Java/Scala/KotlinかSwiftだろうし、C#にもチャンスはあるが、今直ぐに市場を席巻するほどの需要に力強さはないように見える
0440名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:53:05.32ID:uaaGbF4O
>>439
まあ取り入れてはいるが結局は極端に言えばC言語でもオブジェクト指向プログラムができますよという中途半端なレベルだから色々問題が起きている気がするな。非同期処理地獄はその典型な気がする。せっかく状態管理で副作用をなくしてもその先で落ちるとか。
0441名刺は切らしておりまして
垢版 |
2017/07/13(木) 20:57:27.72ID:uaaGbF4O
いくら関数型言語の機能を取り入れてもその意味がわかっていなければ何もならない。COBOLと同じ年代の古い技術でも使わなければ意味がないということ。参照透明性ぐらいは覚えて損はないよ。
0442名刺は切らしておりまして
垢版 |
2017/07/13(木) 21:10:57.32ID:K3ozs42i
むしろCOBOLて関数型というか、OOP通り越して非構造化レベルの命令型言語な認識なんだが
0443名刺は切らしておりまして
垢版 |
2017/07/13(木) 21:15:20.32ID:fOdh9lKT
>>424
6も怪しい
0444名刺は切らしておりまして
垢版 |
2017/07/13(木) 21:25:30.53ID:Y37S0Yq5
>>439
どんな言語を使うかなんてわりとどうでもいい。
機械学習やりたければ機械学習の勉強するしかないし、
ARやりたければARの勉強するしか無い。

それらはいくら言語を勉強しても身につけることができないスキルなんで。
0445名刺は切らしておりまして
垢版 |
2017/07/13(木) 21:43:24.20ID:uaaGbF4O
人工知能で使われる言語はPythonが多いらしい。それを動かすコア部分が
いくらCで書かれていようがPythonの知識無しで作れるわけがない。ChromeブラウザのJavaScriptエンジンはJavaScriptを知らない人間には作
れない。ただそういう人間が、何万人も必要かと言えば、全く必要ない。むしろPythonやnode.jsを知っている方が仕事に就ける確率が高いという
だけの話。
0446名刺は切らしておりまして
垢版 |
2017/07/13(木) 21:56:43.71ID:Y37S0Yq5
>>445
pythonの知識なんて、一ヶ月勉強すれば十分な内容だよ。
用意された人工知能のライブラリ使うだけなら数日勉強するだけでも良い。
0447名刺は切らしておりまして
垢版 |
2017/07/13(木) 22:02:59.99ID:yPFzcW8q
>>444

企業が要求する機械学習もARも大した知識が必要だと聞いたことは無いが
適切なバックグラウンドがあれば半年でキャッチアップできるものという認識

リサーチャーになりたいなら、論文を有名学会で採択されてからでないと厳しいし狭き門
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況