Google
ブログ(iiyu.asablo.jpの検索)
ホットコーナー内の検索
 でもASAHIネット(asahi-net.or.jp)全体の検索です。
 検索したい言葉のあとに、空白で区切ってki4s-nkmrを入れるといいかも。
 例 中村(show) ki4s-nkmr

ウェブ全体の検索

Interface(インターフェース)2020年6月号はPythonで科学技術計算とJulia、Interface(インターフェース)2020年5月号はRustとGo2020年05月03日 12時28分24秒

ASAHIネット(http://asahi-net.jp )のブログサービス、アサブロ(https://asahi-net.jp/asablo/ )を使っています。
---
 お買い上げありがとうございます。
 2020年6月号は、いま、ベストセラー1位 - カテゴリ コンピュータ・モバイルの雑誌。
https://www.amazon.co.jp/exec/obidos/ASIN/B086PN128S/showshotcorne-22/
Interface(インターフェース) 2020年 06 月号 (日本語) 雑誌 – 2020/4/25
マイコンからクラウドまで新時代到来中
科学計算とPythonの研究[科学ソフト事典付き]

 Python自体は、とても遅い言語で、科学技術計算には向いてない。
 世の中には、統計処理、データサイエンスや機械学習、ディープラーニング、深層学習、深層強化学習などの大量の科学技術計算にPythonが使われているので、Python自体が高速な実行ができる言語だと勘違いしている人が多くて、びっくりする。
 ではなぜ、それらにPythonがよく使われているかというと、非常にカリカリにチューニングされた、主にCやC++で書かれたライブラリのラッパー、グルー言語(糊の役目をする言語)として、Pythonが使われているから。
 この号、Juliaが出てるね。ご祝儀で買おうかな。Julia本は、Packtの洋書を中心に何冊も持ってるんだけど。

 私、5月号を買おうかと思ってた。
 Rustの特集なんですよ。あと、Goがちょろっと。
https://www.amazon.co.jp/exec/obidos/ASIN/B084QLBNS6/showshotcorne-22/
Interface(インターフェース) 2020年 05 月号 (日本語) 雑誌 – 2020/3/25
 CQ出版社に行って、PDFのサンプルをみたら、C++は、型がない言語だという表があって、こんなバカなことを書いているようじゃ、こりゃ、だめだと思って買わなかった。
 何をもってC++に型がないといってるのか知らないが、少なくともこの人、Modern C++を知らないことは確実に思える。
 あった、今井健男のこれ。
https://interface.cqpub.co.jp/wp-content/uploads/if2005_022.pdf
第1章
注目の道具を押さえておく
モダン・プログラミング言語の世界

 今井健男が書いているのは、これだけみたいだが、こういうのをみちゃうと、全体の信用が落ちるし、編集部の力のなさを思ってしまう。

 以前も書いたが、個人的には、C++20をみてしまうと、ネイティブコードにコンパイルする言語としては、C++の後継としてのRustもGoも要らんという気がしている。

 Goは、結局、オブジェクト指向プログラミング(OOP)ができず、OOPを入れたC++に移れなかったC言語のプログラマ向けにヒットしたと思っている。
 何をOOPと呼ぶかは置いとくとして、GoはOOP向け言語とはみなされてないから。言語仕様はC++に比べて簡単だけど、今後、ジェネリクスを入れたりしていくとどんどん複雑化していくので、だったら実績が長いC++、特にC++11以降のModern C++の機能で書く世界から移行するメリットがどんどんなくなっていきそうに思っている。
 個人的にはRustはGoより好きな言語(マルチパラダイム言語であることが大きい)だが、C++の生ポインタや配列を使わず、Modern C++のスマートポインタ、ムーブセマンティクス、コンテナと標準アルゴリズム、ラムダ式を使っていれば、Rustに移行するメリットはかなり減るし、C++20になれば、FP(関数型プログラミング)指向になって、ConceptsやRangesで、ほとんどHaskell的に書けるから、もっと楽になりそうと思っている。

https://ja.wikipedia.org/wiki/Rust_(プログラミング言語)
をみると、Rustの方が、Goより学習コストが高い、学習難易度が高い言語と思われているのね。
 Cの代わりに単純なGoを好むという感じね。Rustは、メモリ安全かつ低水準プログラミングも可能かつOOPもFPもジェネリクスも可能だからね。

 これも何度も書くが、C++は、手続き型(命令型)、OOP, FP(関数型プログラミング)、テンプレートプログラミング、TMP(テンプレートメタプログラミング)ができるマルチパラダイム言語で、しかもModern C++以前の古いC++やC言語まで一応互換性を考えてサポートしているから、複雑で巨大な言語仕様だけど、Modern C++の世界で書けば、PythonやRubyに近いくらいには楽に書けるし、実行スピードは数10倍も速い。
 C++プログラマは、Cや古いC++で固まっている考え方、スキルを捨てて、Modern C++の考え方、スキルを身につける方が、GoやRustに移行するより、移行コストが低いと思っている。
 しかし、Modern C++を中心にした本や解説がないから、どうやってModern C++の考え方、スキルを身につければいいのかわからない人(C++プログラマや、C++に興味がある非C++プログラマ)が多いのが問題だよね。
 以前も書いたように、日本のC++の入門書籍、「やさしい」とか「かんたん」とか題名に付けているようなレベルの本でも、C++11から約10年経っても、最初に生ポインタや配列をやるんだもんね。

 GoやRustを習得するのが悪いといってるわけではないよ。
 仕事で書いているC++コードや、日常的にC++で書いている会社が、GoやRustで移行するのは、Modern C++より得なのかなと疑問に思っているというだけ。
 実際に移行してみたら、なんだ、楽勝じゃんということもあるからね。

 そういえば、以前、Microsoft(MS, マイクロソフト)が、Rustを拡張した言語を研究しているといった話が流れていた。
 あった。
https://japan.zdnet.com/article/35146475/
マイクロソフト、Rustベースのセキュアなプログラミング言語を探求中
Liam Tung (Special to ZDNet.com) 翻訳校正: 村上雅章 野崎裕子 2019-12-23 06:30
https://japan.zdnet.com/article/35148191/
マイクロソフト、「Rust」に基づくプログラミング言語プロジェクト「Project Verona」がGitHubに
Liam Tung (ZDNet.com) 翻訳校正: 編集部 2020-01-21 14:03

Julia関連:
http://iiyu.asablo.jp/blog/2020/01/13/9201782
オライリー・ジャパンから、プログラミング言語Juliaの日本語の本が出てた。Juliaプログラミングクックブック\(^O^)/
http://iiyu.asablo.jp/blog/2019/07/11/9127246
WEB+DB PRESS Vol.111は、科学技術計算のための新言語Julia特集\(^O^)/ Rails 6も
http://iiyu.asablo.jp/blog/2018/05/12/8849316
基礎からわかる時系列分析 ―Rで実践するカルマンフィルタ・MCMC・粒子フィルター、Rで楽しむベイズ統計入門、統計ソフト「R」超入門 実例で学ぶ初めてのデータ解析 (ブルーバックス)、Rで統計を学ぼう! 文系のためのデータ分析入門、社会科学のためのデータ分析入門
http://iiyu.asablo.jp/blog/2018/04/29/8835798
ハイパフォーマンスなデータサイエンス向けプログラミング言語Juliaのこと、また続き。 Beginning Julia Programming
http://iiyu.asablo.jp/blog/2018/04/27/8834314
ハイパフォーマンスなデータサイエンス向けプログラミング言語Juliaのこと、続き。
http://iiyu.asablo.jp/blog/2018/04/18/8828910
ハイパフォーマンスなデータサイエンス向けプログラミング言語Julia:Juliaデータサイエンス、Beginning Julia Programming, Learning Julia, Julia Cookbook, Julia for Data Science, Mastering Julia, Getting Started with JuliaなどJulia本

Go, Rust関連:
http://iiyu.asablo.jp/blog/2019/05/28/9077905
実践Rust入門[言語仕様から開発手法まで]、プログラミングRust
http://iiyu.asablo.jp/blog/2019/04/29/9066138
入門Goプログラミング。Erlangの父、Joe Armstrong亡くなる。プログラミング言語Go、スターティングGo言語、改訂2版 基礎からわかる Go言語、Goならわかるシステムプログラミング、ソフトウェアデザイン2019年5月号はGo特集
http://iiyu.asablo.jp/blog/2018/09/04/8955805
プログラミングRust、Go言語でつくるインタプリタ、作って動かすALife
http://iiyu.asablo.jp/blog/2017/11/01/8718707
ラムダノート(LamdaNote)社の新刊「Goならわかるシステムプログラミング」「定理証明手習い」。テスト駆動開発(TDD)の限界、Formal Methods(形式仕様記述、形式手法)のことも。
http://iiyu.asablo.jp/blog/2016/10/01/8207327
プログラミング言語Go、みんなのGo言語、改訂2版 基礎からわかる Go言語
http://iiyu.asablo.jp/blog/2016/04/06/8066132
Effective Python, Pythonチュートリアル第3版, Go言語によるWebアプリケーション開発, スターティングGo言語
http://iiyu.asablo.jp/blog/2016/01/14/7990070
Go言語によるWebアプリケーション開発
http://iiyu.asablo.jp/blog/2014/08/28/7423307
プログラミング言語Go, Mastering Concurrency in Go
http://iiyu.asablo.jp/blog/2013/04/21/6786485
Googleは新レンダリングエンジンBlink, Samsung/Mozillaは、新言語RustでServo

コメント

_ 石川直太 ― 2020年05月04日 13時55分32秒

ご無沙汰しております。かつて「プロフェッショナルXML」を翻訳した者です。現在はHPC業界でプログラミングしています。さて、新しいプログラミング言語は、日本製のコンパイラを通らないのが難点です。業界裏情報によると、Pythonを京で動かすために、Cコンパイラのバグを修正しながら、1年間かかったとか、東大グループがC++で書いたプログラムを京で動かすためにFortranで書き換えたとか。「Effective modern C++」の節ごとに、京で動くか、動かない場合の代替方法を書き加えたいと考えましたが、京のマニュアルと制限事項は、アカウント所有者だけの秘密なので、断念しました。残念。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
一富士、二鷹、三は? ひらがなで。

コメント:

トラックバック

このエントリのトラックバックURL: http://iiyu.asablo.jp/blog/2020/05/03/9242233/tb

_ ホットコーナー - 2020年05月18日 08時03分46秒

ASAHIネット(http://asahi-net.jp )のブログサービス、アサブロ(https://asahi-net.jp/asablo/ )を使っています。
---
 技術評論社とアマゾンから通知が来ていたが、ソフトウェアデザイン(Software Design)