2020年2月23日日曜日

今プログラマーに求められている物

結論から申しますと、プログラミング言語では、
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が最高!)

ーーー

2020.02.02現在、

Python2&3では、グローバルインタプリタロック(訳注:LL言語のスレッドが持つ排他ロックの仕組み)の問題が解決されておりません。


代替え方法として、

他の真のマルチコア、真のマルチスレッド対応のプログラム言語を使用するしか方法は無いと思います。

-----------

Rustにはポインターと所有権と言う少し難しい概念が御座いますが、学習してクリアーするとその少し難しいデメリットを上回るメリットと言う安全なマルチコア、マルチスレッド、脆弱性問題をクリアしながらもベンチマーク結果は、最適化されたC言語の次のNimの次と3番目と、とても早くGoやJavaの3倍速く、速度は十分です。19インチラックの中のメインフレーム(汎用機)上のLINUX上で、世界中からアクセスのあるクレジットカードシステムの処理、世界中からアクセスのある銀行の勘定系のミッションクリティカルなどにも十分耐える事が出来ます。

-----------

Rustの所有権に親しむ

https://qiita.com/cactaceae/items/2c70a9947364c60ec100

ーーーーー

なぜ私達は Python から Go に移行したのか

https://frasco.io/why-we-switched-from-python-to-go-19581e27de7c

シェアしました。

ーーー

この頃 流行りの 言語たち(他)でベンチマーク (Dart, Go, Julia, Nim, Python, Rust 他)

http://h-miyako.hatenablog.com/entry/2015/01/23/060000

ーーーーー

さようならPython、こんにちはGo

https://yakst.com/ja/posts/5253

シェアしました。

----

GoからRustに変更してパフォーマンスを改善しました

https://www.atmarkit.co.jp/ait/articles/2002/10/news038.html


■Spanner(Google) DATABASE

Google検索結果はこちら

https://www.google.com/search?sxsrf=ALeKk02AMOqDbwLwyqk5NyM89j-yZAGK2Q%3A1583816172122&source=hp&ei=7B1nXoOkBdGNoASBgrr4CA&q=Spanner%EF%BC%88Google%EF%BC%89&oq=Spanner%EF%BC%88Google%EF%BC%89&gs_l=psy-ab.3..0i30l7j0i8i30.2912.2912..6486...2.0..0.82.82.1......0....2j1..gws-wiz.....10..35i362i39.wemX0KXGBw4&ved=0ahUKEwiDys6Cj4_oAhXRBogKHQGBDo8Q4dUDCAg&uact=5

■高速なACID対応NewSQL DATABASE

CockroachDB正式版 Ver1.0リリース。

Google Spannerクローンを目指した「CockroachDB」正式版 Ver1.0リリース。

VoltDB

オープンソース VoltDBとは

FoundationDB、ACIDの条件も満たす。& NoSQLを超えるSQLデータベース「VoltDB」。Cassandraとベンチマーク対決!

毎秒1400万回のライト(write)を行うNoSQLデータベースFoundationDB、ACIDの条件も満たす。& NoSQLを超えるSQLデータベース「VoltDB」。Cassandraとベンチマーク対決!

0 コメント:

コメントを投稿