トップ «前の日記(2014-05-31) 最新 次の日記(2014-06-05)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2014-06-03

_ Swiftはすごい

朝起きたらTLでSwiftという文字が躍り、まさかのスィフト復権かと思ったらWWDCを受けての話で、どうやらアップルが新しいプログラミング言語を投入したらしいとわかった。

ガリバーの宇宙旅行 [DVD]

たかがアップルの新しいプログラミング言語で何を騒いでいるのだろうとすごく疑問だったが、そんなにみんなObjective-Cが嫌いだったのかと(それにしてはえらく利用されているっぽい)感じたくらいだった。

そうは言っても、とりあえずdeveloper.apple.comを眺めると、SwiftについてはThe Swift Programming Languageという本をiTSで無料で配布しているからiBooksで読めと書いてあるので、とりあえず後で読むことにして昼の仕事に戻った。

で、帰って来てSwift本をダウンロードして読むかと思い、ふと気づくと、MSDNと違って個人ではdeveloper登録していない(勤め先のはある)のでダウンロードできるか不安になった。が、何の問題もなくiBookのストアからダウンロードできて、とりあえず5ページくらい読んだわけだが、最初のページから衝撃的だった。

It is the first industrial-quality systems programming language that is as expressive and enjoyable as a scripting language.

何がって、この書き方だ。

たとえば、Sunが末期にJava6についてEoD(Easy of Development)と大騒ぎしたことがあった。あるいはMSDNでC#の能書きを見てみよう。

C# は、シンプルかつ強力で、タイプ セーフのオブジェクト指向言語です。 C# が備えている多数の革新的な機能を使用すると、C 形式の言語が持つ表現力と簡潔さを維持しながら、アプリケーションを迅速に開発できます。 ( http://msdn.microsoft.com/ja-jp/library/kx37x362.aspx )

こういった能書きって、誰のためにプログラミング言語の説明をしているのだろうか? 一見するとプログラマーのためのように見えるかも知れないけど、それは違う。EoDだとかRapid Developmentというのは、プロダクトマネージャやプロジェクトマネージャを向いた言葉であって、プログラマのための言葉ではない。

当たり前だ。

ソフトウェア製品でビジネスをするにあたって、「enjoyable」をどこのマネージャが気にするのか? でも、EoD(ばかでも開発できる)やRapid Development(猿でもさくさく開発できる)といった説明はマネージャには魅力的だ。

そこでそういえば、「楽しい」が言語の特徴のプログラミング言語を想起する。

たのしいRuby 第4版(高橋 征義/後藤 裕蔵/まつもと ゆきひろ)

プログラマーがプログラマーのためにプログラミングしたプログラミング言語だ。

そういうことか。

アップルは舵をきったのだ。

かってバルマーがダンスを踊ったが、そのダンスはプロダクトマネージャダンスでありプロジェクトマネージャダンスだったに違いない。

ところが、アップルはプログラマーダンスを踊ることにしたようだ。

そりゃ、TLが埋まるはずだ。プログラマーの時代という雰囲気が醸成されているのだ。

さらにhello worldを見て、その徹底っぷりに驚く。

型混交の文字列連結がエラーとなる。

JavaでもC#でも文字列処理がEoDのキーだ(Cから移行して何が楽かって文字列処理だからだ)。

var s = "4 * 4 = " + (4 + 4);

ところがたのしいRubyではエラーとなる。

irb(main):001:0> s = '4 * 4 = ' + (4 * 4)
TypeError: no implicit conversion of Fixnum into String
        from (irb):1:in `+'
        from (irb):1
        from C:/Users/arton/Documents/bin/irb.bat:19:in `<main^gt;'
型混交の文字列連結なんて別に楽しくもなんともないから当然だ。 かわりに埋め込む。
irb(main):002:0> s = "4 * 4 = #{4 * 4}"
=> "4 * 4 = 16"
そしてSwiftは、
prinln("4 * 4 = \(4 * 4)")

別にそこまでRubyみたいにしなくても良いのに。

というのはどうでも良くて、しかもそれが、the first industrial-quality systems programming language だと言い、しかもその直前には「Swift is firendly to new programmers」(初心者大歓迎)と言い切っているのだ。

産業レベルの品質のシステムプログラミング言語で。

かって、MSは開発者を大事にして成功をおさめたが、今は停滞して見える。開発者というのは、プログラマーではなかったから、企業レベルではそうはいってもマイクロソフトは使われていて、(それなりに)愛されている。おれも愛している。

しかし個人の時代なのだ。「パーソナル」コンピュータは真にパーソナルには行き渡らなかったが、スマートフォンは異なる。本気でパーソナルだ。そして、そこではマイクロソフトは覇権を握っていない。

アップルも開発者の重要性に気付いた。しかも、MSが覇権を握っていた時代と今が異なることも知り抜いている。

個人の時代において開発者というのはプログラマーで、できればenjoyableなプログラミング言語でプロダクトを開発したい連中だ(AppStoreのようなマーケットは個人に開かれているからだ)。そして、まだプログラミングを初めてもいない中学生や高校生、もしかすると小学生だったりする連中を取り込めば、10年以上の覇権を掌中に収められる。

もうジョブズはいない。

ならばジョブズを作れば良い。プログラマーを全世界の全年代から山ほど集めれば、一人か二人はジョブズが見つかるかも知れない。

それがSwiftなのだろう。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|

ジェズイットを見習え