プログラミングについて

文系には数式のない量子コンピューター入門書はありがたいです

昨日は関数プログラミングにもモナドという考え方があること、そしてモナドに関連する話題から、最近よく聞くようになった量子コンピュータの話題に行き着いたことを書きました。

実用化はまだ先のようですが、大手IT企業は力を入れ始めているようですので、どういうものか俄然知りたくなりました。

とはいえ相手は「量子力学」です。

物理の数式が載っている本はスルーを決め込んで、Amazonで文庫か新書を探していたら、「量子コンピュータとは何か」(ハヤカワ文庫NF)という本があります。

「1点在庫あり」でしたのでポチッと押しました。しかしカートに入りません。

あれっ、と思って確認すると在庫なしに変わっています。

結局、新書で人気がありそうな竹内繁樹著「量子コンピュータ 超並列計算のからくり」(ブルーバックス)を注文しました。

こちらは数式が出てくるそうですので撃沈するでしょう・・・。

しかしどういう人が私より先に文庫を買ったのでしょう。

文系の人は間違いないでしょうが、数式が載っていないのでコンピュータとは無縁の業界の人の可能性もあります。

関数型プログラミングにも「モナド」があるようです

相変わらずライプニッツのモナドについて気になっていることを検索していたら、関数型プログラミングにもモナドという考え方があることを知りました。

私は関数型プログラミングのことは知らないのですが、つい気になってモナドの入門サイトを二、三覗き見してしまいました。

先日、ライプニッツについては自分なりに内容を消化してからブログに書こう、といっていたそばからまた書いてしまいました。

とはいえ、名前の由来はライプニッツのモナドから来ているのかもしれませんが、哲学のジャンルではないのでまあいいか・・・。

覗いたサイトは入門の入門のような内容なので、サンプルコードは解説を読めば分かるのですが、モナドとは何か、どういうときに使うのかはやっぱり何かを作ってみないと実感できません。

ついAmazonでHaskellの解説本を探して、分かりやすそうな本を注文しそうになってしまいました。

危ない危ない。買っても仕事に使うあてもありませんし、読んで理解する時間もありません。

そう思って他を検索していると、量子コンピューターはモナドで表現できるという内容のサイトを見つけました。

日用品もプログラミングされて驚くような使われ方をするかもしれません

ホームページを使って自社の情報を発信したり、メールフォームで顧客アンケートなどを実施して顧客サービスを行うことも、事務作業でExcelを使うのと同じくらい重要な業務だとは思います。

プログラミングの授業を受けた子供たちが成人して、プログラムを組むことにそれほど抵抗感のない若手社員が増えたならば、ホームページの動きのある表現やメールフォームを使った自動化など、必要だと思ったときに実現できるんじゃないでしょうか。

彼らが社会人になる頃には、Excelのマクロと同じくらいのスキルになっているように思います。

最近体験したのは、ディープラーニングの本を読んでいるとき、見ているだけで頭が痛くなる数式も、Pythonで書いてあるものを見れば理解できたことです。

これはスクリプトをやっていた効用ですね。うれしい驚きでした。

これからは仕事だけでなく、プライベートでもちょっとしたスクリプトを組む機会があるのではないでしょうか。

子供向けのロボットを使ったプログラミング学習キットがあるようですね。

近年いろいろな場面で使われているドローンなども、プログラミングの学習教材になりそうです。

・・・と思い付いて調べてみたらもう商品がありました。

プログラミングの授業を経験した世代はExcelのマクロのように気軽に使うと思います

小学校でプログラミングの授業が必須化されるというお話を、これまで何度か書いてきました。

日々業務をやっていて感じるのは、それはつくづくいいことだなということです。

私はアプリの開発はプログラマーにまかせていますが、それ以外の業務でも簡単なスクリプトならば組む場面はあります。

ホームページの作業をしていて、見る人にとって分かりやすい表現にしたり、使いやすく動作させたりしたいときは、WordPressのようなCMSを利用させてもらいます。

標準の機能でできないことは、ほんの少しPHPを書いてカスタマイズします。

メールフォームなどを使ってメールの自動化やアンケートの集計をしたいときも、Google Driveに用意されているGoogleフォームなどを利用させてもらいます。

標準の機能でできないことも、ほんの少しJavaScriptを書けば済みます。

総務部などで事務をやられている方が、Excelで決まった作業を行うときは、マクロやVBAを使って自動化することはよくあると思います。

そもそも、役所に提出する書類や会議の資料作りにExcelが必要ということになれば、使い方を覚えなければ仕事になりません。

定期的に自分の立ち位置を見つめないと迷子になってしまいそうです

MicrosoftやAmazonなどの巨大なIT企業は、手がけていることの範囲が広すぎて、新製品や新サービスが発表されても、将来何に影響するのか想像することさえ難しくなっています。

私が最初にITに触れたときのことを思い出してみると、MSXパソコンで作曲やシンセサイザーの音色編集をやったり、PC-9801でワープロや表計算ソフトをやっているだけで満足していました。

サーバーやネットワークのようなものもなく、やっていることが小さく独立しているイメージでした。

そのうちに、OSがWindowsになってDelphiのようなソフト開発環境が充実してきたり、インターネットが普及してJAVAやRuby on RailsのようなWEBアプリの開発環境が充実してきて、個人でもアプリやサービスが作り出せる時代になって行きました。

自分では大したものは作れないと分かっているのですが、ついどういうものか触ってみたくなります。

私は何かを作るのが好きで、新しいことに「参加できるのがうれしい」と思ってしまうんですね。

しかし参加している実感を得るためには、環境を整えてHello World!を表示させるようなところまでを、やってみないと分かりません。

ここ数日の間に聞いたニュースに時代の変化を感じてしまいました

なぜTypeScriptやBash on Ubuntu on Windowsのことを書いているかというと、TypeScriptがGoogle社内の標準言語として採用されたというニュースがきっかけです。

そういえば、Windows 10のCreators Updateというニュースもあった、と気付いたのです。

Windows上でLinuxが動くというのも、あらためて考えてみるとすごいことだなと。

それからしばらくして、ChromeとFirefoxの今のバージョンでWebAssemblyというフォーマットが標準で動作しているというニュースを見つけました。

何年か前にプログラマーと、asm.jsという、CやC++で書かれたコードをJavaScriptに変換してブラウザで動かせるようにする仕様について、実現したらすごいねと話していました。

そのバイナリフォーマットであるWebAssemblyというのが動いていたんですね。

そして、その仕様策定メンバーにAppleが参加しているというので、記事を書こうと思ったのです。

WEBブラウザでゲームがサクサクと動くようになるんですよね。

WindowsでLinuxが動いていることにもっと驚いています

昨日は、GoogleがMicrosoftの開発しているType Scriptを、社内標準言語に採用したニュースについて書きました。

ではMicrosoftはどうなのかといえば、昨年からWindows 10でBashが動くようになりましたね。

Bash on Ubuntu on Windowsというようですが、昨日のお話よりこちらの方が画期的なように思います。

Windowsが一人勝ちのとき、OSにLinuxが統合されるなんて誰も予想しなかったんじゃないでしょうか。

今回のCreators Updateでは、WSLというLinux Kernel相当の機能の互換性が大幅に向上したということです。

私は画面を分割して編集したいときなど、Windows 7でEmacsのWindows版であるMeadowを使っているので、Emacsがちゃんと動くというのはうれしいです。

昔MacがOS Xになるとき、子供が家庭で使うこともあるパソコンでFreeBSDが動いているなんてすごいことだ、と話題になったことがありました。

しかし、OSのシェアでいえばWindowsの方が圧倒的だと思います。

Google社内の標準言語にTypeScriptが採用されたことに少し驚きました

TypeScriptがGoogle社内の標準言語として採用されたようですね。

Google App Engineが公開されたときに、最初の対応言語はPythonで、次にJavaが対応したように記憶しています。

どちらもGoogle社内の対応言語でしたので、当然といえば当然なのですが、Pythonは日本ではそれほど普及していなかったようで、この件についてはネット上が賛否両論でにぎやかでした。

それほど、Google社内で使われる言語は、Googleのサービスを使う人にとっては影響があるのですね。

ちなみに、ミュースケはTypeScriptで書いています。

弊社プログラマーは、静的型付けの言語じゃないと不安らしいのですね。なので、App EngineもJavaで書いています。

彼はDelphi使いで、最初のバージョンの頃からとても気に入って使っていましたし、TypeScriptも公開されてほどなく使い始めたので、よほど言語設計者の思想と馬が合うのでしょう。

彼から聞いたのですが、設計者はアンダース・ヘルスバーグという方のようですね。C♯も設計されています。

想像の世界に遊ぶ時間の重要性も忘れないでいて欲しいと思います

何回かにわたって、小学校でプログラミング教育が必修化されることと、それに伴い、子供たちは更に忙しくなるのではないかということを書いてきました。

自分もそうですが、プログラミングをして疲れたら、つい、だらだらとネットサーフィンをしてしまうことがあります。

そのようにして、一日中パソコンの前から離れない子供も出てくると思います。

精神科医の泉谷閑示さんという方が、人間の「頭」はコンピュータ的で効率を求めるのに対し、「心」(=「身体」)は生き物なので、「頭」が「有意義」の名のもとに効率を求め続けると、「心」(=「身体」)は反逆を始める。それが「うつ」の状態である、ということを仰っています。
http://diamond.jp/articles/-/2553

まさに、私がパニック障害になってしまった原因なのではないかと思います。

辰濃和男さんの「ぼんやりの時間」(岩波新書)という本があります。

いろいろな例をあげて、ぼんやりと過ごす時間の大切さを書かれていて、私の好きな本です。

プログラムを書いているとすぐに時間が経ってしまいます

私の場合は、プログラミングといっても、Excelマクロのようなアプリのスクリプトであったり、HTMLのタグであったり、簡単で規模の小さなものです。

それでも、書式を調べたり、エラーを取ったりしていると、すぐに半日や一日が過ぎてしまいます。

小学校で行われるプログラミングの授業が、どういうものになるかは分かりませんが、自主的に何かを調べるとなると、やはりとても時間がかかるのではないでしょうか。

もちろん、プログラミングがつまらないと思う生徒は、自宅に帰ってまでやらないと思いますが、さすがにそれでは授業でやる意味はないでしょうから、とても面白い教材が与えられるのではないかと思います。

私の悪い癖なのですが、インターネットを使って前述した調べ物をしているとき、関係のないことを思いついて、それについて調べてしまったり、ついYahoo! JAPANを開いたりしてしまいます。

そんなことをするから、すぐに時間が経ってしまうんですよね。

子供たちは、ただでさえテレビゲームやSNSや塾などで忙しいのに、パソコンでの作業が加わったら、さらに暇な時間というものを経験しなくなるのではないでしょうか。

PR:カウンセリング・EAP専用チャット管理者となって利用者を見守るチャット