結論から申しますと、プログラミング言語では、
NimとRustが、重要になると思います。理由は、以下に掲載致します。+会計知識を求められるケースも増えると思いますので、企業では、英会話研修、フロントエンド+NimとRust+データーベースによるAI(機械学習)プログラミング研修、簿記会計研修などが重要になると思います。
石塚 正浩の考える優れた理想のプログラム言語とフレームワークの組み合わせについて
1、C10K(クライアント1万同時アクセス問題)に対応する
事。
2、AIと機械学習ライブラリがある事。
3、チームでの開発効率で、コードの視認性と良い意味での
非個性で、良い意味でバラエティ豊かな表現は出来ず、統
一感が出せる事。
4、セキュリティ(脆弱性)の問題が発生しにくい事。
5、マルチコア、マルチスレッド性能が高い事。
6、プログラムが読み書きしやすい事。
7、コールバック地獄対策がされている事。
8、コンパイル言語である事。
9、ポインターの概念が無い事。
10、電子署名周りのための暗号化ライブラリ
※10、JavaとGoでは、電子署名周りのための暗号化ライブラリが実装されている様ですが、他の言語は未確認です。
上記1~3に該当で、有力なのは、Go lang+GinとPython+Cycloneくらいしか知りません。しかしGo言語のフレームワークはまだ色々ありそうです。
Nimは、C言語の次に早いけど、バラエティ豊かに表現できそうで非個性と言うにはどうかな?それと機械学習ライブラリがあるか現時点では分からないと言う点です。
Juliaは、思っていた程、早くなさそうで期待はずれな感じです。
Go言語と機械学習ライブラリについては、以下にまとめてあります。
http://neovisionconsulting.blogspot.com/2018/08/gotensorflow-prediction.html?m=1
Go言語で開発したWEBサイトを動かすときには、メモリ使用量が少なくて済むというメリットがあります。
Pythonは、AIと機械学習ライブラリは一番充実しており、その方面での開発のしやすさは、メリットとなっております。しかしプログラム言語単体の処理速度はPythonよりGo言語の方が早い様です。
Go lang+GinとPython+Cycloneはどちらもクライアント一万同時アクセス問題に対応しておりますので、とても高速です。1秒間に1万件のDATAを処理出来ます。Python+Japrontoフレームワークは、一秒間に百万件アクセスに対応しているらしいです。
上記の1から5の全てと8に対応している理想のプログラム言語は、
Rust(ラスト)になります。
Rustは、JAVAやGoの3倍くらい高速で動作する様ですので、銀行やクレジットカードなどミッションクリティカルな現場でますます重要性が増していくと思われます。
2のAI(機械学習)に関してましては、2020.02.22現在Tensorflowバインディングが公開されている状況です。TensorFlowもどきを作られた方もいらっしゃいますが、GPUには未対応の様です。
Rustで開発する場合のチームでの統一感や統合性を出しやすい仕組みについて
https://neovisionconsulting.blogspot.com/2020/02/rustwebgolang_11.html
上記の1から9対応で、ただし3と4を除いて全て対応しているのは、Nim(ニム)です。
Nimのマルチコア、マルチスレッド性能は現在調査中です。
Nimは、ベンチマークの結果、最適化されたC言語の次に早い様です。
NimはC10K問題にも対応しています。
メリットでもありデメリットなのは、Nimは、Pythonライクな構文でプログラム出来ます。
プログラミングの書き方は、Pythonライクなので読み書きしやすく、視認性も良く、チームでの開発効率は悪くないです。
しかしGolangに比べれば、悪い意味で表現豊かに出来るので、もしコーディングルールがチームでしっかりしていない場合、たいして打ち合わせしないでWEBサイトやイントラネットなどを開発すると、統一感が出すのが大変である。
NimにもPythonやGoの様な厳格なフォーマッターが登場すれば、上記3のチームでの統一感をを出しやすくなり解決するかも知れません。
お互いに予想していたのと違う物が出来てばらばらで、修正の手間が大変だと言う事です。
脆弱性対策とチームでの統一感を出す一定の品質を担保にするには、ユーザー定義したプラグマをコンパイル時に使用して、エラー、ワーニング、ヒントなどを見てチェックすると良い様です。
https://blog.hirokiky.org/entry/2019/06/03/202745
参考情報:
(もうPythonの細かい書き方で議論しない。blackで自動フォーマットしよう)
NimでもRustの様にコンパイル時に厳格に厳密にメモリリークも含む虚弱性診断のセキュリティチェックを行うオプションを付けられるようになるか、将来バージョンアップした時に改善される事を希望致します。
最速<最適化されたC言語 < Nim < Rust < Go < JavaScript < 遅いの順で左側に行くほど早い様です。
http://h-miyako.hatenablog.com/entry/2015/01/23/060000
参考情報:シェアしました。
ーーー
The Nim version is the fastest for Pandas. Rust is the best overall power for websites!(Pandas用にはNim版が最速。WEBサイト用など総合力ではRustが最高!)
0 コメント:
コメントを投稿