GoogleのDartプログラミング言語に再びスポットライトが…その高い生産性にまず社内で人気が盛り上がる

3351037214_1fabfbe31d_o

昔々、GoogleのDartプログラミング言語は、今すぐにもJavaScriptに置き換わって、Webのデフォルトの言語になる、と思われていた。Googleは同社のブラウザーChromeで、JavaScriptと同格の扱いをしたほどだ。しかしDartがそうやってスターになりつつあったときでも、JavaScriptと、それを取り巻く分厚いエコシステムは、すでに数マイル先を走っていた。ほぼ1年前にGoogleは、DartをJavaScriptの直接的なコンペティタと見なすことをやめ、位置づけをJavaScriptへコンパイルされる言語と変えて、TypeScriptやCoffeeScriptなどと同列に置いた。

                       [クリックすると文字を大きく表示]
screenshot-2016-10-25-at-18-37-54

その後、Dartの周辺は静かになった。しかし今、それが変わろうとしている。Googleは今週ミュンヘンでDartデベロッパーカンファレンスを開催し、Dartに再び、ステージのライトを当てた。Googleの内部でも、Dartは大きく成功している。今ではAdWordsとAdSense(Googleのメインの収益源を駆動)、およびGoogle Fiberのチームが、消費者向けのWebアプリケーションをDartで書いている。AdSenseのアップデートはすでに本格稼働し、AdWordsの次世代インタフェイスは目下テスト中だが、近い将来には前よりも広範囲にローンチされる。GoogleのこれらDart愛用チームは、開発スピードが25〜100%アップした、と報告している。Google内部で今いちばん急成長しているプログラミング言語は何か、といえばそれはDartだ。コードの行数で言うと、Dartで書かれたコードの量は昨年比で3.5倍以上になっている。ただし3.5倍と言っても絶対数はそんなに大きくないから、びっくりするほどの数値ではない。

Google以外では、Wrike, Workiva, Blossomなどの企業がDartで製品開発をしている。つまりGoogleの外にも、Dartユーザーのコミュニティは確かにある。

Dartの協同ファウンダーKasper Lundは、最近のDartの巻き返しについて、“最初が頑張りすぎだ。Dartのランタイムをブラウザーに組み込んで今日的なWebの全体を狙うなんて、とてもついていけなかったな”、と、言語の初期を回想する。しかしランタイムがChromeに載ることがなかったとしても、言語自体とそのツールは大成功だった。それはDartからJavaScriptへのコンパイラーをすでに彼らが作っていて、Dartで書いたコードがChromeの外でも動く、という状態が確立していたからだ。Dartコードがいちばん速く動くのは、Chrome上だったけれども。

そこでチームはランタイムの開発を断念し、DartからJavaScriptへのコンパイラーおよび関連ツールの開発に専念した。

DartとJavaScript両方のランタイムがChromeにあると、二つの言語間の対話がかえって困難になった、とLundは述べる。ランタイムを放棄した今では、その問題もなく、最初そのために苦労して作り出した依存性も、すべてなくなった。逆に今のDartは、サードパーティツールとの協働が容易だ。チームが今とくに力を入れているのがAngularで、それはWebアプリケーションとモバイルアプリを作るためのGoogleのJavaScriptフレームワークだ。

Angular 2.0はデフォルトでMicrosoftのTypeScriptを推奨言語としている。でも今日ベータを終了したAngularDart 2.0では、当然ながら推奨言語はDartだ。今週のミュンヘンのイベントでは、たくさんの、AngularDartによるMaterial Designのコンポーネントがデベロッパープレビューとしてリリースされた。それらの、データピッカー等々は元々、Googleの社内チームのために開発されたものだ。

Dartにはstrong modeというオプションがあって、そのモードではDartが強い型付けのある言語になり、ジェネリックメソッドも使える。なお、JavaScriptへのコンパイル速度は、今や多くの場合1秒未満だそうだ。〔本来のJavaScriptは型付けが厳格でない言語…楽だけどある意味危険。〕

ひとつのアプリのiOSバージョンもAndroidバージョンも書くコードは一つでOK、というGoogleのプロジェクトFlutterは、今プレビューの段階だが、使う言語はDartだ。Flutterのウィジェットは、関数型反応型フレームワーク(functional-reactive framework)を使っている。reactive?!、そう、その基本的な考え方はFacebookのReactと同じだ(Flutterのチームもそれを認めている)。今のところは、Reactが相当前の方を快調に走っているが、Googleの基本的な考え方は、デベロッパーに完全なDartツールキットを提供して、多くのユースケースに対応していただくことだ。

というわけでDartは今、Google内部で人気が盛り上がっているが、Googleは社内で終わらせたくないからこそ、今週のミュンヘンのイベントを開催したのだ。でも、その歴史が歴史だけに、多くの外部デベロッパーをその気にさせるためには、今後なお一層の努力が必要なことは、今からすでに明々白々だ。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

MicrosoftとHackerRank、Bingの検索結果ページに実行可能コードを挿入

quick-sort-java

遅かれ早かれ、どのプログラマーもコードの断片やアルゴリズムを検索することになる。しかし殆どの検索エンジンは、コード検索に特化していないので、いくつかのリンクにたどりつく(その一つはStackOverflowである可能性が高い)。このたびMicrosoftは、HackerRankと協力してBingの検索結果ページに直接コード片を挿入する ― しかも、そのページ内でコードを編集したり実行したりできると。

2016-04-07_1108これを見るためには、例えば“string concat C#” や似たような質問を検索すれば、Bingがエデェターを開く。ウィジェットを使って、別の言語に切り替えることもできる。探しているアルゴリズムによって、C、C++、C#、Python、PHP、およびJavaのオプションがある。

HackerRankの共同ファウンダー、Vivek Ravisankarは、現在同プロジェクトでは最も頻繁に検索される項目に焦点を絞った80以上のコード片を用意していると私に語った。

Microsoftはこれを、生産性向上および学習、両方のためのツールと位置づけている。
「あるアルゴリズムやコードが、対象の言語でどう書かれているかを学習できるだけでなく、ユーザーは同じ解が他の様々なプログラミング言語でどう作られているかを知ることができる ― プログラミング言語のロゼッタストーンを提供したい」と BingのUX機能および共有ツール担当グループ技術マネージャー、Marcelo De Barrosは言った。

Visual Studioユーザーなら、MicrosoftのDeveloper Assistantプラグイン(以前はBing Code Searchアドオンと呼ばれていた)を試す価値がある。IDEの中から2100万件のコード片とサンプルを再利用できる。

[原文へ]

(翻訳:Nob Takahashi / facebook

子どもがプログラミングを覚えながら遊ぶ(操作する)ロボットVortexは複数で対戦ゲームもできる

image-2

DFRobotは、教育市場向けのロボットを2008年から作っている。今週同社は、対話的でプログラマブルで、6歳以上の子ならどの年齢の子どもでも遊べるロボット、Vortexを発売した。このVortexロボットは、AndroidやiOSのスマートフォンやタブレットに搭載したアプリとBluetoothで通信し、子どもたちはこのアプリの画面をタップして命令を伝え、ロボットをコントロールする。このアプリには無料のゲームが4つ(サッカー、ゴルフなど)、最初からついていて、それらのプレイ体験を子どもたちがカスタマイズできる。

DFRobotのCEO Ricky Yeによると、子どもたちがロボット工学を楽しく学べることが、Vortexの開発動機だ。同社はこれまで学校や教師のためのロボットキットを数多く作ってきたので、クラスでどんなことに人気があるか、よくわかっている。また、競合他社に負けないためのデザイン要素も、よく理解している、とYeは語る。Vortexは学校でも採用できるが、DFRobotとしては初めての家庭用消費者製品でもある。

“勉強は、楽しくなければ身につかない。すぐに遊べるゲームを含めたのもそのためだ。そして子どもたちが、自分でもゲームを作りたいな、と思うようになったら、ロボットをプログラミングする学習が始まる”。

vortex

Vortexのセットアップは、単三電池を4つ入れるだけだ。アプリストアからVortexbotアプリをダウンロードすれば、プレイを始められる。ゲームの中には、サッカーのような対戦ゲームもあるから、複数の子がVortexを持ってた方がよい。もちろん、一人遊びのゲームや、コンピュータと対戦するゲームもある。

子どもたちがロボットをプログラミングすることに興味を示したら、親または教師がチュートリアルのWhenDoアプリをダウンロードするとよい。そこに書かれている指示にしたがって子どもたちはプログラミングの基礎を学び、ゲームをカスタマイズしていく。WhenDoはドラッグ&ドロップで簡単に使えるアプリだが、内容的には、低学年児童には親や教師が付き添った方がよいだろう。

Vortexはオープンソースで、ArduinoやScratchと互換性がある。だから子どもたちは、VortexをPCやMacからプログラミングすることもできる。

このロボットは自分で障害物を避(よ)け、ラインを検出し、赤外線とグレースケールとスピーカーを使って壁などから折り返すことができる。

Vortex

DFRobotは今Kickstarterで、Vortexを製造するための資金を募集している。前にも同社は、Kickstarterを使って3DプリンタOverlordの資金を集めたことがある。それは無事に、発売にこぎつけたそうだ。

今のKickstarterキャンペーンでは、部品などの最少発注数量を満たす初期ロット2000体の製造を目指して50000ドルの目標額を掲げている。もちろんヨーロッパ向けにはCE、合衆国ではFCCのテストにも合格しなければならない。

vortex-kids2

Vortexの実動プロトタイプはすでにあり、アプリもすでにアプリストア上にある。

発売は、10月末を目標にしている。

Kickstarterで出資する者は、2体のVortexを131ドルで入手できる。また、3体、4体、6体、10体のセット価格もある。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa

プログラミング学習サイト「ドットインストール」がスポンサードレッスンを提供開始

1本当たり3分と短い動画でプログラミングを学べる初心者向けプログラミング学習サイトの「ドットインストール」がネイティブアドとも言える新サービスを開始した。これまでの学習コンテンツに加えて、企業か提供する開発者向け製品やサービスを紹介するレッスン動画を掲載する「スポンサードレッスン」で、第1弾はニフティによる「超速アプリ開発!ニフティクラウド mobile backend 入門」で、ニフティが提供するモバイル向けのBaaSサービスを紹介する動画となる。

dotinstall01

dotinstall02

ドットインストールは現在、約15万人を超えるプログラミング学習者を抱えていて、企業が提供する商品やサービスの内容を3分動画で分かりやすく訴求できるという。ドットインストールではこれまで、スクリーンキャストと呼ばれる画面で実際にコーディングの様子を見せながらテンポ良く解説する動画コンテンツを提供してきた。2011年11月の創業以来提供してきたレッスン動画は3200本、動画再生総数は約2250万回となっている。上位人気コンテンツとしては、HTML入門(全24回)、CSS入門(全22回)、JavaScript入門(全24回)、PHP入門(基本編)(全32回)、Ruby入門(全23回)、CSS3入門(全18回)、jQuery入門(全20回)などがあるが、最近はモバイル開発のコンテンツにも人気があるという。

2013年からはプレミアムレッスンや文字起こしテキストなどが利用できる月額880円のプレミアム会員サービスを開始(有料会員数は非公開)。また2014年4月からは1ユーザー当たり月額1880円の法人向けライセンスの販売も開始している。法人ライセンスはヤフーやドワンゴで導入例がある。

新しく提供する動画サービスは、このドットインストールで提供されている3分動画のフォーマットを踏襲する。ドットインストールは創業者で代表取締役社長の田口元氏による解説で知られているが、スポンサードレッスンを制作は、オープンソース紹介ブログ「MOONGIFT」の執筆、運営で知られるエンジニアの中津川篤司氏が担当する。

スポンサードレッスンの価格は、動画制作とコンサルティング、3カ月からの掲載、運用費用を入れて税別280万円から。依頼企業はドットインストール上での露出するだけでなく、レッスン動画を自社サイトやセミナー、営業資料などで利用することもできる。

ところでドットインストールといえば、人気ブログ「百式」のブロガーとしても知られる代表の田口元氏が、ドットインストールのシステム開発もこなす福永康司氏と2人体制でコンテンツを作ってきたが、自己資金だけでなく、外部資金を調達してスケールさせる道を選ぶことはないのだろうか? 市場規模が違うので英語圏との直接比較は意味がないが、例えば海外では1995年創業のオンライン学習サイトであるLynda.comが合計350億円ほどを資金調達して、2015年4月にLinkedInに1840億円(15億ドル)で買収されるというダイナミックなことが起こっていたりする。

田口氏はTechCrunch Japanの取材に対して「(外部からの資金調達は)どこかのタイミングではするかも」としながら、今のところはノウハウの蓄積に注力したいと話す。物量でコンテンツを増やすことによるクオリティ低下を懸念していて、むしろ進化の激しい技術にキャッチアップしてコンテンツを更新することの重要性などを過去3年ほどの運用で感じているそうだ。

子どもたちにプログラミングを教えるTynkerが、これからはロボットやドローンなどのデバイスも教材に

tynker-drone-training-puzzle

子どもたちにゲームを作らせながらプログラミングを教えるTynkerが、今度はゲームを作るだけでなく、デバイスをコントロールするプログラミングの教程を加えた。デバイスは、ドローンやロボット、照明器具のような“スマートホーム”製品など、さまざまだ。同社はこの新しい教育課程を、今週サンマテオで行われたBay Area Maker Faireで発表し、またiPadとAndroidタブレットのアプリケーションの提供も開始する。

同社はこれまで、子どもたちがドラッグ&ドロップでキャラクターを動かしながらプレイするゲームを作り、それによってプログラミングの基本概念を習得するための、ツールやチュートリアルを主に作ってきた

過去3年間で、Tynkerでプログラミングを始めた子どもたちは2300万名を超え、合衆国とカナダとイギリスとオーストラリアで計2万あまりの学校が同社のカリキュラムを利用している。各月に100万から200万のユーザがTynkerにログインし、同社のユーザベースは1か月に50万ずつ増加している。

同社のiPadアプリはAppleのストアの展示商品にプレロードされていて、子どもたちが遊べるようになっている。Androidのアプリも、Googleの今度のDesigned for Familiesでローンチする。CEOのKrishna Vedatiによると、今年の同社の決算は黒字になりそうだ。

これからは“物のインターネット”へのプログラミングが加わるので、子どもたちはこれまでのように純粋にソフトウェアだけのプログラミングではなく、ドローンを飛ばせたり玩具をコントロールしたり、ロボットに命令するなど現実世界のオブジェクトの制御を体験することになる。立ち上げにあたってTynkerが協力を求めるのは、ドローンのParrotやロボットのSphero、照明システムHue/LuxのPhilips、などの企業だ。協力企業は今後さらに増える、と同社は言っている。

tynker-sphero-training-puzzle-clue

子どもたちがTynkerのビジュアルなインタフェイスから、これらのオブジェクトをコントロールするプログラムを作れるために、新たなコードブロックが導入され、いくつかのサンプルコード的なテンプレートも提供される。たとえば”Flappy Drone”は、ドローンを障害物をよけながら飛ばせるプログラミングの例だ。人気のモバイルゲーム”Flappy Bird”に似ているので、この名前がつけられている。このほか、ロボットのレーシングゲームRobo Race、ドローンに曲芸飛行をやらせるStunt Pilot、インターネットに接続されている照明システムのコントロール、などが用意されている。

Vedatiによると今後Tynkerは、もっと多くの機種のドローンや、リモートコントロール玩具などをサポートし、AppleのApple HomeKitやParrotのFlower Powerなどとも統合し、またLegoやArduino、Raspberry Piなどのためのシンプルなプログラミングインタフェイスも提供して行く。

新たなコードブロックと学習用のパズルは、Google PlayiTunesで入手できる。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa

エディタもコンパイラもデバッガも何も要らない…ブラウザ上で完全な開発サイクルをサポートするSourceLair

コードの編集(エディット)なんて簡単だ。Vimをちょっと使えて、PHPをちょっと知ってて、あと、そばに缶ビールでもあれば、分からないことはGoogleの検索で調べながら突っ走れる。でも自分の(or会社の)サーバ使えないプロジェクトや、コードを書く環境がないときはどうするか? その答の一つが、SourceLairだ。

このフリーミアムのサービスを使うと、ブラウザの中に居たままでプロジェクトを作れる。言語はPythonとRubyとHTML5とJavaScriptとPHPとC++をサポートし、ブラウザ上でLinuxのシェルも使える。プロジェクトの実行も簡単にできるし(たとえばこれはぼくのプロジェクト)、バージョン管理にはGitやをMercurial使える。

ファウンダは全員ギリシャのアテネ大学の出身で、これまでにいくつもの大きなプロジェクトや、大企業のdev部門を経験している(Warp.ly、ARM、Niobium Labsなど)。彼らはこのほどNational Bank of Greeceから25万ドルを調達し、今は約1000名のユーザを抱える。

協同ファウンダのParis Kasidiarisは次のように語る: “SourceLairは既存のソフトウェア作成ツールをブラウザ上にポートしたわけではない。むしろメインのコーティングツールであるIDE(これもブラウザ上)の中へGitHubやJIRAやHerokuなどなどのサービスを統合して、より強力な開発体験を作り出しているんだ。 SourceLairは大学の研究課題から始まった。ぼくらは全員、プログラムを書くことが好きだけど、デスクトップやラップトップに大量のソフトウェアをインストールしてからでないと何も始められないのは、かったるい。そこで、何もインストールしなくても、ブラウザ上であらゆるツールを使えたら、どんなプログラミングでもすぐに初められるのに…、と思ったんだ。

たしかに、こいつは使える。ブラウザ上でIDEが使える状態になるまで1〜2分、その後はずっと快調だ。プロジェクトを一つ作るだけなら無料だが、1ヶ月にプロジェクトを10個開発するなら月額8ドルを払う。ソースを保存するためのファイルシステムやフォルダも使える。プロジェクトの本格的なテストランにはDigital OceanやAWSを使うべきだろうが、毎回のビルドが終わったらすぐに動かしてみる、というプログラミング過程における実用目的のためなら、これで十分だ。

これまでは、新しいプラットホームでIDEが使えるようになるまで30分ぐらい、何度もapt-get(Ubuntuのパッケージインストールコマンド)をする必要があった。このSourceLairのようにすぐにコマンドプロンプトが出て、(使い方を知るための)デモページも見られるツールは、とくに初心者の負担を大幅に軽減してくれるだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


GoogleのDartプログラミング言語がやっとApp Engineでサポートへ

Googleの今年のI/Oデベロッパカンファレンスで、DartプログラミングをApp Engineでサポートする、という計画があまり目立たぬ形で発表された。そして、意外と長く待たされたあげく、今日(米国時間11/7)からやっと、Dartで書いたサーバアプリケーションをGoogle App EngineのManaged VMs(管理サービス付き仮想マシン)で動かせるようになった。

Dartは、Googleの“モアベターな”JavaScriptだとよく言われるように、基本的にはブラウザ上で実行されるクライアント言語だ。でもDartを発明したLars BakとKasper LundがI/Oのときに語ったところによると、Dartはあくまでも汎用言語として作ったのである、ということだ。

Dockerを利用してGoogle Compute EngineでDartを展開することは、すでに行われていた。でもデベロッパにとって機能が多いのはApp Engineの方だ。GoogleのData Store、キャッシングサービス、モニタリング、ロギングなどのツールが使える。デベロッパがやることは、アプリケーションを(たとえばDart言語で)書いてアップロードするだけ。あとはApp Engineがスケーリングやデータのストレージなどの面倒を見てくれる。トラフィックが急増すれば、自動的にスケーリングをやってくれるのだ。

Googleは、App EngineにおけるDartのサポートを、今後も続ける、改良していくと言っているから、たとえばApp EngineのもっといろいろなAPIがサポートされるのだろう。

この新たなサービスは今のところベータで、詳しい情報はここにある。

 

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


ビデオと実習を併用するプログラミング教育Code SchoolがiOSアプリをリリース

デベロッパのためのお勉強サイトCode Schoolは、ファウンダGregg Pollackの長年の知識共有努力から育ってきたが、このほどモバイルも対象にすることになった。そのiOSアプリからデベロッパは、CodeSchoolの300本を超える教材ビデオを視聴でき、JavaScript、HTML/CSS、Ruby、iOS、Gitや人気のデベロッパツールChrome Dev Toolsなどについて学べる。

CodeSchoolの多くの教材は無料だが、有料会員になるとそのほかのビデオも見られる。ただしモバイルアプリでは、デスクトップのようにブラウザ上で実際にコードを書きながらビデオや静止画から学ぶ、という勉強の仕方はできない。

コミュニティ優先、ビジネスは二の次

Code Schoolは8年前に、デベロッパのための教育的なコンテンツを作りたいというPollack自身の関心から生まれた。当時は、そのころまだ比較的新しいフレームワークだったRuby on Railsを取り上げた。“生まれたばかりの技術は、ドキュメンテーションがお粗末だからね”、とPollackは説明する。“だからぼくは、ブログでもポッドキャストでもカンファレンスの講演でもそればっかり書いたり喋ったりした。ひまなときには、ビデオも作った”。

Pollackの仕事はコンサルタントで、彼のコンサルタント会社は5年ほど前に”Envy Labs”という名前になった。そのころから彼が作る教材の評判が、多くの人たちに広まっていったが、彼にそれを独立のビジネスにする気はなかった。

しかし、2010年にリリースした”Rails for Zombies”が、大人気になった。それはビデオコンテンツとブラウザ上のコーディングを組み合わせる初の試みだった。今ではそんなプログラミング独習サイトがいろいろあるけど、当時はその後競争相手となるCodecademyすらまだ存在していなかった。

“当時でも、ブラウザ上でコーディングを勉強するサイトはいくつかあった”、とPollackは認める。“でも、ぼくのやり方は新しかった”。つまりそのRailsのコースでは、デベロッパはビデオを見て学んだことを、実際にブラウザ上でコードを書いて練習する。それを、納得するまで何度も何度も繰り返す。このやり方が大人気になったため、Pollackはもっと本格的にやろう、と思い始めた。

そして2011年の3月に、ビジネスとしてのCode Schoolが立ち上がり、そのときのコースはRailsの無料コースが一つ、有料コースが一つだけだった。今では前記のように、いろんな言語やツールをカバーする40あまりのコースがあり、完全な初心者と、自分のスキルを磨きたいと考えているベテランのデベロッパ両方を対象にしている。

今のアクティブユーザ数は常時だいたい40000名、登録ユーザの数は100万に達している。ユーザ調査によると、ほぼ15%が、昇進や有利な転職などがCode Schoolのおかげ、と答えている。ユーザを技能のレベル別に、上級、中級、初級、ビギナーの4段階に分けると、それぞれ29%、33%、14%、24%となる。

今回リリースしたiOSアプリで、外出〜移動時でも勉強したいという層をねらっているが、上に書いたようにモバイルでは実際にコードを書くという実習ができない。だからむしろモバイルは、Web上で実習したことの復習用に適しているのではないか。

今社員35名のCode Schoolはフロリダ州Orlandoにあり、最初から有料コースがあるので最初から黒字だ。Pollackが明かす、そのほかのネット上のプログラミング学習サイトとの差別化要因は、コースと教材の制作にかける手数だ。だいたい5時間のコースを、6人の社員が3か月かけて作る。スケーラビリティという点では不利なようだが、ファウンダは、これこそうちの特長、と胸を張る。“スクリーンキャストの寄せ集めではなく、一本のゲームを作るように念を入れて作っている”、と彼は語る。

なお、このiOSアプリでは有料会費は月額29ドルで、無料ユーザには見れないビデオも全部見られる。料金の団体割引もある。今ではAccentureやBooz Allen Hamilton、Zendesk、Fandangoなどが社員教育のために、Code Schoolの団体割引を利用している。

Code SchoolのiOSアプリの無料ダウンロードはここから。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Webアプリケーションのヴィジュアルな構築からプログラミングに入門するEveが$2.3Mを調達

テク業界の誰もが、プログラミングを取っ付き易いものにしようと努力しているようだが、これまで登場したそれらの取り組みの多くは、既存の言語にあるコンセプトの組み換えだったり、プログラマが日常的に使用している論理の要約だったりして、実際にソフトウェアを作ることのできるスキルには、縁遠いものが多かった。

EveのファウンダChris Grangerは、そんな状況を変えたいと願っている。MicrosoftのVisual Studioのチームでプロダクトマネージャだった彼は、2012年に新しいIDEを作る資金をKickstarterに求め、しかもそこで30万ドルあまりを集めたという、稀有な人物だ(プログラミング環境製品でクラウドファンディングして数十万ドルを集めたのはたぶん彼一人だろう)。彼はこれまで、プログラミングが簡単にできると称するツールをいろいろ見てきたが、しかし、彼自身の前の作品ですら、“既存のプログラマの生産性を高めるけど、記号だらけのテキストファイルを何年も見つめたことのない人たちに、プログラミングの門戸を開くものではなかった”。

EveでGrangerは、目標のバーの高さを上げた。彼が構想しているのはExcelみたいなWebアプリケーションで、インタフェイスをお絵かきしたり、データの入ったボックスをドラッグしてロジックを指定する、という方法で誰もがソフトウェアを作れるツールだ。そのアプリケーションは、友だちなどにリンクを与えるだけで共有できる。そのツールの楽屋裏では、いろんなAPIを提供するサービスに接続しているから、Eveで作ったアプリケーションはFacebookやTwitter、Google Mapsなどなどと自然に統合できる。それは、プロのプログラマがWebアプリケーションを作るために使っているIDEとおんなじだ。Grangerは曰く、2015年の早い時期にデビューできると思うけど、“ふつうの人がKickstarterのような複雑なサイトを作れる”ツールになる、という。

Eveは、初心者だけでなく、プロのプログラマでも十分に使える。足りないものがあったら、JavaScriptで必要なファンクションを書けばよい(EveもJavaScriptで書かれている)。そのファンクションはほかの人たちと共有できるし、いろんなグリッドを並べてアプリケーションを作る。ファンクションやアプリケーションを共有し、ディスカッションもできるような、GitHub的なソーシャルなプラットホームを、作る予定だ。

Eveのマネタイズはどうするのか。Grangerのプランでは、開発プラットホーム本体はオープンソースにしてユーザのサーバの上でも使えるようにするが、コラボレーションやバージョニング(バージョン管理)、ホスティング、コンピュテーション(計算処理のための計算機利用)などは有料化する。

すでの数社の大物投資家がEveを支えている。最近の230万ドルのシード資金は、Andreessen HorowitzのパートナーChris DixonとY Combinatorの社長Sam Altman、Google検索の個人化を担当したSep Kamvarらが提供した。Eveには、Grangerのほかに協同ファウンダがあと二人いる。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Code.orgのCode Studioは、子供たちにプログラミングを教えるためのツールとカリキュラム


創設以来、Code.orgのミッションは、プログラミングを全米の教育カリキュラムに組み込むことだ。今日(米国時間9/11)、NPO団体はKindergarten(幼稚園年長)から高校までの生徒に、ガイド付レッスンを通じてプログラミングの基本概念に興味を持たせる、ツールとカリキュラムを合わせたセット、Code Studioを公開した。

子供たちにPythonやJava等の言語を教える(大学等のコンピュータサイエンスの授業のように)のではなく、Code Studioは、ロジックのブロックを操作させることによってプログラミングの基本概念を教える。適切な順番に並べることで、キャラクターを動かしたり、図形を描いたりできる。インターフェースは、MITのScratchによく似ているが、Code.orgの製品担当ディレクター、Mona AkmalがGoogle Hangoutで私に話したところによると、Code Studioには、MITのものとはいくつか重要な違いがあると言い、中でも、HTML 5を使っていること(このため殆どのブラウザーで動作する)と、K-12(Kindergartenから高3まで)生徒向けにパズルベースのレッスンプランがあることを挙げた。

ユーザーインターフェースそのもの以外でも、Code.orgはその大義(“Hour of Code” キャンペーンに後押しされた)にまつわる認知度を利用して、概念を紹介するビデオにMark Zuckerberg、ビル・ゲイツといったビッグネームを登場させたり、Angry Birds等の人気ブランドのキャラクターをレッスンで利用したりしている。

もう一つCode Studioの大きな特徴は、教師が生徒の進捗をモニターできるインターフェースがあることだ。教師が自分のクラス経営を行ったり、司書やコンピュータ室スタッフが様々な学年の生徒向けにカリキュラムを組むためには、当然必要な機能だ(Code.orgはこうしたカリキュラムを学校に浸透させることが目的)。

Code.orgは、学校が生徒にCode Studioを紹介することを期待すると同時に、子供たちが学年に見合ったレッスンを修了した後、自分たち独自のゲームやアプリを作ってシェアするための環境を提供したという認識を持っている。そんなシェア活動を促進するために、近々Code Studioは、プロジェクトへのリンクを生成してSMSやソーシャルネットワークを通じて、友達や家族に自分の作品をプレイしてもらえるようにする予定だ。

[原文へ]

(翻訳:Nob Takahashi / facebook


Bashよりもずっと便利で多機能なコマンドインタフェイスXiki/xshが抜本的大改造を目指して資金募集中

このところ眠っていた(かもしれない)、あなたのおたく魂の出番だ。このたびは、MemorizeのファウンダCraig Muthが作ったXikiの偉業を、たっぷりと共有しよう。Xikiとそれをシェル化したxshが提供するコマンドラインのすばらしい自動補完機能と対話的なコマンドラインを見ると、bashの名人でもよだれを垂らすかもしれない。Xikiの今のバージョンは今でも入手できるが、Muthは機能のより充実した新バージョンのためにKickstarterで資金を募集している

Muthは語る: “Xikiは最初、自分で使うために作った。13年前にオハイオで銀行や保険会社のための退屈なソフトウェア開発のようなことをしていたとき、これを作り始めた。自分のノートパソコンから直接コマンドを動かしたり、ファイルをナビゲートしたいと思ったんだ。実際に作ってみると、もう、これなしには仕事ができなくなった。今では、あらゆることにこれを使ってるね”。

開発資金として8万ドルを募集しているMuthは、次のように言っている:

この資金募集に成功したら、Xikiの徹底的に改良された次期バージョンをみんなに提供できる。要望の多かったSublimeとVim用のプラグインも作る。インストールの過程と、初心者のユーザ体験が大幅に改良される(コンテキストメニュー…そのときの状況に応じたメニュー…があちこちにあるからね)。シェルとの統合(xsh)も改良される。今後いろんなアプリケーション向けのXikiプラグインを作りやすいように、Xikiのコアをリファクタリングする。面倒なことを全部コアがやるから、プラグインの負担が軽くなる。

非常に斬新なシェルだから、慣れるためには時間を要する。従来のシェルでももちろんコマンドラインの編集はできたが、それをもっともっとテキストエディタ的にしたのがXikiだ、と言えるかもしれない。それに、パイプ機能は何でもパイプできる。別の言い方をすると、シェルのインタフェイスをGUI的にした(マウスも使える)、とも言える。ビデオでお分かりと思うが、ぼくが実際に使ってみても、すごいパワフルであることが分かる。

“xshはフレンドリなコマンドインタフェイスとして、GmailやTwitter、Bootstrapなど何百もの現代的なツール、それにデータベースの閲覧やWeb開発などでも、対話的な利用ができる。テキストのアウトラインやスペース2個ぶんのインデントなど、共通的なUIのパラダイムに即しているから、どんなツールやAPIとも対話できる。また、従来のシェルのようにコマンドラインからコマンドを使うだけでなく、テキストエディタやWebブラウザからでもコマンドを取り出せる。それに自分が新たに作ったxyzコマンドも、’xsh +xyz’でxshに登録できる”。

“xshは、怖くないコマンドインタフェイスだ”、とMuthは語る。でもビデオで、彼が複数のディレクトリを操作したり、新たなコマンドを作ったりしている様子を見ると、このプラットホームの奥の深さが、実は怖いかもしれない、と思った。Kickstarterの出資者は、Tシャツなどをもらえるだけだ。だからそれは、単純な寄付行為だ。でも完成した新バージョンこそが、出資者にとっての最大の報酬だろう。オープンソースで無料だから、あなたがさらに改良することもできる。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


Appleの新プログラミング言語、Swiftを使って半日くらいでFlappy Birdのクローンが書けた

AppleがiOS向け新プログラミング言語を公開した翌日、あるデベロッパーはこのSwift言語を利用してわずか4時間で大人気のゲーム、“Flappy Birdのクローンを作ってしまった。もっともRedditTechHiveで報じられているところでは休憩や食事の時間も入れれば開発には全部で9時間近くかかったらしい。

開発者のNate MurrayはHacker Newsに「Swiftでのプログラミング経験はまだわずか4時間なので(デモプログラムに)間違いがあれば教えて欲しい」と書いている。

Murrayは以前はインターネットでの情報収集を自動化するサービス提供しているIFTTTでエンジニアでとして働いていたが、現在はプログラミングのオンライン・スクール、Fullstack.ioの共同ファウンダーだ。MurryはSwiftを利用したゲーム・プログラミング講座を開く準備をしているという。

もっともMurrayはこのプログラムをiTunes App Storeに公開するつもりはないと語った。「Flappy Birdのクローンを書くのは新しいゲーム開発フレームワークの入門として最適だ。このゲームは比較的シンプルでありながらプレイして面白いという点で非常にバランスがいい」とMurrayは説明する。

Swiftで書かれたMurrayのFlappy BirdクローンはKotakuのようなゲーム中心のサイトからMashableのようなメインストリームのテクノロジー・ニュースブログまでネットのあちこちで反響を呼んでいる。優秀なプログラマーが新言語を使いこなすスピードの速さにも驚かせれるが、以前の開発言語、Objective-Cに比べて、Swiftに新たに備えられた高度な機能デベロッパーの生産性を大きく向上させるだろうという予測が実証されたかたちだ。

Murrayは実際に使ってみて「新しくiOSアプリの開発に取り組むプログラマーに対してハードルを下げる「というAppleの目標は達成されたと考えている。Murrayによれば、Swiftの大きなメリットの一つはPlaygroundsと呼ばれる機能だという。ここではコードを編集しながら、それが実際にどう動作するかをリアルタイムで見ることができる。

さてSwiftでFlappy Birdクローンを作るのに本当はどのくらい時間がかかったのだろう?

われわれの取材に対して、Murrayは「4時間よりはかかったが9時間まではかかっていない。ログによると空のフォルダーからデモが作動するようになるまで9時間近くかかっているが、その間に食事もしたし、子供を寝かしつけたりしていたのでね」と語った。

[原文へ]

(翻訳:滑川海彦 Facebook Google+


「プログラミングは簡単に学べる」なんてことはない―女性CTOが体験からのアドバイス

編集部: 寄稿者のKate Rayは最近Wordpressに買収されたビジュアル・ウェブページ制作ツール、scroll kitの技術担当共同ファウンダー。

私の経験によると、これからプログラミングを始めようという人間にとってもっとも危険なことは「プログラミングなんて簡単だよ」と聞かされることだ。

このときあなたの頭の中では次のようなプロセスが進行する。

〔下は筆者のイラスト〕

プログラミングは第2の識字能力だ! 子供だってプログラミングできる。 誰だってできる。
それに私は頭がいい!
…なんでプログラミングがさっぱり学習できないんだ?

簡単だって言われたのに。
私は向いてないのかも。
それとも私は本当は頭が悪かったの?

お断りしておくが、私のプログラミングはイラストよりマシだ。

ほとんどの場合、プログラミングには特別な能力は必要ない。しかしプログラミングというのは他のあらゆる仕事に比べてはるかに苛立たしく、めちゃくちゃな作業だ。スマートですっきりした効率的なプログラミングが学べると約束するブログ記事、教室、アプリが溢れている。

そういうバラ色の約束には、プログラミングを始めるにはまず第一にそれに適した環境を設定するという大事業が必要だという注意が抜けている。はっきり言っておくが、どんなに親切なプログラマーの友人でもこの点では助けにならないはずだ。というのもこの作業は頭がおかしくなりそうなほど苛立たしい上に、一旦終えてしまえば誰も細かいこと覚えていないからだ。

誰も教えてくれない秘密は他にもいろいろある。たとえば、プログラミング能力の非常に重要な部分はGoolgeに正しい質問をし、発見したコードのうちどの部分をコピー&ペーストしたらいいか見分ける能力だ。プログラミングには「これで免許皆伝」などというレベルなどないことも誰も教えてくれないだろう。迷子になったような、自分がバカに思えるような精神状態はプログラミングに必然的に付随する。

この冬、私はiOSを勉強することにした。私は夏休みに独学でプログラミングを学んだので、新しい言語を習得する能力にはいささか自信を持っていた。問題は、それがどんなに辛いか忘れていたことだ。まずXcodeに面食らった(これ、なによ? 子供向けの絵本じゃあるまいし、こんなの本当のプログラミングじゃない)。その後で始めたいくつかプロジェクトはどれも私のレベルでは手に負えないものだとわかった。iOSはウェブ・アプリの開発とはまるで違うことが次第にわかってきた。私が「これは難しいだろう」と思う部分はやさしくて、やさしいはずの部分に際限なく手間取った。

私が忘れていたのはプログラマーの生活には「準備不足感」が付き物だという点だった。プログラマーが学ぶべきことには際限がない。一つの言語なりフレームワークなりに習熟することはできるかもしれないが、何か役に立つものを作りたかったら常に新しいツールが必要になる。絶えず自分の不慣れな分野に踏み込んでいかねばならない。自分がバカに思えるという状態に慣れておく必要がある。

著名な心理学者、ミハイ・チクセントミハイは学習過程を、退屈と不安の間のジグザグの歩みとして巧みにグラフ化した(どんな分野の学習にも当てはまるだろう)。

Adapted from an image in “Flow: The Psychology of Optimal Experience”

私がプログラミングを学んだ過程を思い出してみるとまさにこの通りだった。

  1. ステップバイステップのチュートリアルをよくわからないところがあっても忠実にフォローしていく。作家志望者が巨匠の文章を丸写しにタイプして勉強するようなものだ。これで言語/フレームワークがどう働くのか感じがつかめてくる。この段階は比較的やさしいが退屈である。[楽観的状態。進歩は速い]
  2. チュートリアルで作ったサンプルを少し変えてみる。すると分からないことだらけだと分かる。 [恐れが忍び寄る。進歩は遅くなる]
  3. ごくシンプルだが自分が作りたいものを作ろうとする。すると自分がほとんど何も理解できていなかったことを知る破目になる。 [絶望の海に投げ込まれる]
  4. 自分のプロジェクトにより関連の深い別のチュートリアルを見つける(うまくいけば背景となる学んでいる言語の知識を増やしてくれる)。またステップバイステップで学ぶ。[少し理解できた気がしてくる。多少の自信]
  5. サンプル・プロジェクトを少し変える。 [また恐怖]
  6. 新しいプロジェクトを始める。 [また絶望]
  7. 1に戻って繰り返す。

私はチュートリアルの大ファンだ。上記のプロセスを繰り返すうちに、私は推薦するプログラマーをベースにベストなチュートリアルをリストするアプリを作った。このアプリが自分に合ったチュートリアルを見つける手助けになればよいと思う。

フラストレーションに耐えて努力を続けていれば、やがて見晴らしのいい場所からそれまで登ってきた道を振り返ることもできるだろう。理解できないことが多くてもかまわない。自分が進歩しているのかどうか分からなくても、進歩していると信じて進もう。焦りは禁物だ。 幸運を祈る。

Teach Yourself To Codeで学ぶことを可能にしてくれた Shuttleworth Foundationとこの記事を書くのを助けてくれたCody Brownに深く感謝する。

Kate Ray – Scroll Kit from WeWork on Vimeo.

[原文へ]

(翻訳:滑川海彦 Facebook Google+


50歳を迎えたBASIC

50年前。すなわち1964年の今月、新しい世代のコンピュータ言語が生まれた。

そういうと、多くの人がUnixの誕生や、今でも人気のコンピュータ言語のことかと思うかもしれない。しかし今日の話題はそうではない。1964年5月1日に、BASICというプログラミング言語がダートマス大学で産声をあげたのだ。この日から、歴史の流れは大きく変わることとなった。

新言語を生み出したのはジョン・ジョージ・ケメニーとトーマス・E・カーツ、そして学生プログラマのグループだ。Beginner’s All-Purpose Symbolic Instruction Code(BASIC)という言語を生み出したのだ。コンピュータの仕組みを学習させるのに最適で、メインフレームコンピュータでは必要な制御機能などが無用となっていた。「EBCDIC ARRAY E [0:11]」といったコマンドは無用となり、単純に「HELLO」と開始の挨拶を送れば「READY」と応えてくれるものだった。

BASICは、確かに誕生当初より初心者に親切な言語であった。分かりやすい言語構造を持ち、プログラムの各行には行番号が付される。言語構造的にリニアな思考を促すようにもなっていた(最近は流行らないのかもしれないが)。最近ではBASICの人気はなくなってしまい、初心者用ということでは他の言語が使われるようにもなっている。しかしダートマスがその後に生まれた何百万というプログラマにさまざまな影響を与えたことは間違いない。

初期のBASICにはいろいろな不備もあったが、徐々になんでもできる言語へと発展していった。最初期のホームコンピュータは標準でBASICを搭載しており、筆者自身もダートマスBASICをフェラーリ化したようなTurbo Basicでいろいろとプログラムを組んだものだった。ウェブ時代になってBASICを見ることも少なくなったように感じるが、しかしまだまだOS Xでも、Windowsでも、あるいはLinux上にても現役の処理系だ。ほとんどの人が知らないかもしれないが、AndroidiOSで動作するものもある。

多くのプログラマーが以下のコードを打ち込んで実行した経験があるのではないかと思う。最初に触れた言語がBASICだったという人も非常に多いのだ。

10 PRINT “HELLO WORLD”
20 GOTO 10

「HELLO WORLD」の部分をお下品な言葉にして叱られたりしたこともあった。PRINT行でセミコロンを付ける付けないまた出力結果が変わって面白さを感じさせられることもあった。

BASICについて、もう少しく淡しい記事がこちらにある。また、ダートマス大学もこちらに記念ページを解説している。さらにオリジナルのマニュアルも公開されている。

原文へ

(翻訳:Maeda, H


オンデマンドでプログラミング指導が受けられるウェブサービスのHackHands

CodecademyStack Overflowなど、オンラインでサポートを受けながらプログラミングの学習を行うサイトというのは数多く存在する。この世界にHackHandsというサービスが参入してきた。設立者たちによれば「人がリアルタイムに疑問点を解説してくれたりコードを見てくれたりするという点で画期的なサービスなのです」とのこと。

共同ファウンダーのひとりであるForest Good曰く、サービスをひと言でいえば「Uber for programming」なのだそうだ。すなわち、必要な時にすぐにプログラミングについてのサポートを受けることができるという意味だ。プログラミングについて詳しい人々のネットワークを利用して、困ったことがあるときはいつでも問題を投稿して、すぐに解決策を教えてもらうことができる。回答者を探すのにかかる時間は最大でも15分で、ビデオチャット(TokBoxを利用)で繋がり、また双方の画面に双方向で使えるテキストエディターや作業している画面などが表示され、そこで問題の解決に向けて作業していくことになる。

「こうしたサービスを利用したいと考えている人は多いはずです」とGoodは言う。たとえばコーディングをしたこともない人が、参考書を片手に勉強をしている場合など、本をいくら読んでも何のことやらわからないことがある。あるいはプログラミング学習サイトを活用している人でも、そもそもいったい何がどうなっているのかがわからず、オンラインコミュニティに質問を投げることもできないケースがある。そういうときに、直接的な会話を通じて問題解決にあたるのが有効なケースは多いだろう。

現在のところHackHandsが対象としている言語プラットフォームはRuby on Railsのみだ。Good曰く、指導係(サイトではメンターと呼ぶ)はコミュニケーション能力およびプログラミング能力の双方を有する人を選別しているとのこと(曰く、現在のところはメンターとして活動している人は個人的に知っている人ばかりです。もちろん今後は規模を拡大していく予定です)。

共同ファウンダーのGeraldo Ramosは必要な時に確実に役立つサービスを、利用しやすい額で提供していきたいのですと述べている。HackHandsの料金は1分あたり1ドルだ。課金はセッション単位で行われる。ちなみに5分間のお試しタイムんも用意されていて、相談者の方からもメンターの方からも有料セッションを取りやめることができるようになっている。すなわちメンター側からは懸案となっている問題が解決できなさそうな場合などに有料モードへの移行を停止することができるわけだ。相談結果に大いに満足した場合は、決められた料金の他にチップを渡すこともできる。メンター側にインセンティブをもってもらうため、最も多くの相談に応じている人や、あるいは最も感謝され、収入が多くなっている人などを示すリーダーボードも設置することにしている。

HackHandsは6PS Groupのプロダクトだ。6PS Groupはインキュベーションに重点をおいてウェブサービスの開発を行っている。HackHandsについても、成功の見込みがたてば独立させていく予定にしているのだそうだ。

原文へ

(翻訳:Maeda, H


「コーディング教育など無用だ」。そう主張する人に伝えたいこと

久しぶりに、オバマ大統領が2つの話題でTwitterを賑わした。ひとつはもちろん追悼式典会場における自分撮り記念写真の可否問題で、もうひとつは「皆にコーディングを学んで欲しい」という発言だ。

Computer Science Education Week関連イベントの一貫として、オバマ大統領は「アメリカ人全員にコーディングを学んで欲しい」旨を訴えかけるビデオを投稿した。

「コンピューター関連のスキルを身に付けることは、皆さん自身の未来に係るだけではないのです。アメリカという国にとっても非常に重要なことなのです」と大統領は言う。「アメリカが最先端の国家であり続けるために、皆さんのような若いアメリカ人に、これから大きく変化していくコンピューター関連ツールおよび技術をきちんとマスターしてもらう必要があるのです」とのことだ。

前にもこういう話は出た。ニューヨーク市の市長であるマイケル・ブルームバーグが、2012年の抱負としてCodecademyを使ってコーディングを学ぶことにしたとツイートしたときだ。これはかなりの反論を招いた。

たとえば「コーディングの知識を持つことと、配管の知識を持つことの意味に大差はない」とDiscourseの共同ファウンダー兼CTOのJeff Atwoodは意見を表明し、標準的な教育シーンでは、少なくともコーディングと同程度くらいにはコミュニケーションスキルの学習が重要なはずだと述べている。コンピューティングの時代だからコーディングを学べという風潮に対し、多くの人がエンジンの作り方を知らなくても車は運転できると反論した。

今回も、たとえばSlateのMatthew Yglesiasは、アメリカには読み書きのできない人もまだ多くいて、コードリテラシーを高める云々よりも、本当のリテラシーを高める努力の方が必要なのだと主張している。

いろいろな意見があるが、しかし個人的には、やはりできるだけ多くの人がコードリテラシーを身につけるべきだと考えている。起きている時間のほとんどの時間を蛇口の前で過ごし、議会が将来的な蛇口の多様性に関する法案を熱心に審議しているような世の中なのであれば、確かに配管の知識を学ぶことが重要になるだろう。車の例で言うのなら、Program or be Programmedの著者であるDouglas Rushkoffの意見に与する。曰くコーディングのことを全く知らないというのは、車を運転できないということを意味するのではなく、目隠し運転をするようなものだとのこと。エンジンの組み立て方を知らなくても運転はできるという人がいるが、しかしエンジンの物理的な仕組みや内燃機関の動き方については、ほぼ全ての人が学ぶようになっている。車の世界とテックの世界を比較して言うのなら、確かに多くの人にとってFacebookを独力で構築するようなコーディングスキルをマスターする必要はないだろう。しかしどのように作られているのかといった知識程度はなるべく多くの人が知っておくべきことであると思う。

もちろん、プログラミング教育によって、読み書きや算数など、他の教科学習を犠牲にすべきだなどとは考えていない。そもそも他の教科学習を犠牲にする必要など全くないのだ。コーディング関係の知識というのは、他の教科学習と平行して身に付けることができるものなのだ。

たとえば算数や数学がコンピュータープログラミングと親和性の高いものであることは、誰もが認めるところだと思う。たとえばStephen Wolframの弟であるConrad Wolframは、算数・数学教育に、もっとコンピューターを持ち込むべきであると強硬に主張している。自ら運営するComputerbasedmath.orgでは、繰り返し学習で手順を暗記するようなことはやめて、計算はコンピューターにまかせて、手順の背後にある概念に思いを巡らせることをもって算数・数学教育とすべきなのだとしている。

「なぜコンピューターがはるかにうまく行えること(計算)ばかりを生徒にやらせるのでしょう。現在はまだコンピューターにまかせることのできない創造的思考や分析、問題解決のための方法などを学ぶようにすべきなのではないでしょうか」とブログでも書いている。またエストニア政府に協力して、同国の統計確率についての教育カリキュラムを新規に策定することになっているのだそうだ。この分野をコンピューターなしで行うのは馬鹿げたことだとも言っている。但し、話をこういう国家規模の話にもっていく必要もない。算数や数学の授業に、ちょっとしたプログラミングを伴う演習を入れるのははるかに簡単に行うことができる。

アメリカの高校教育で選択科目として人気なのは経済学だが、プログラミング講座の開講を真剣に検討すべきだろう。またプログラミングは他の科目との連携して学習することもできる。カレッジレベルの生物学や物理学を学ぶのに、プログラミングを通じて行おうとする本はいくつも出ているし、そうした内容を高校レベルに導入することもさほど難しくないはずだ。

もちろん算数/数学や理科といったいわゆる理系関連科目のみが、プログラミング技術との親和性を示すものではない。たとえば音楽理論の習得にSuperColliderPureDataを使っているところもある。音楽理論自体の学習も楽しくインタラクティブに行うことができ、同時にプログラミングについても学ぶことができるのだ。またNew York UniversityのAdam Parrishはプログラミングを通じた創造的文章講座を開設している。学生にPythonの基礎を教え、Twitter APIを使ってコンピューターに現代詩を生成させるといったことを行っているのだ。

さまざまな教科は、コンピューター科学などと融合させることで一層面白く学べるようになる。プログラミング、電子工学、数学、物理、そして音楽を教え、最終的にArduinoを使ったシンセサイザーを制作するコースなどといったものも面白そうではなかろうか。

学生たちに、学んで何かを実現する楽しみを教えるという意味もある。たとえばあるブログに「People Feel Dumb: That’s Why They Don’t Code」(プログラミングは頭の良い人にしかできないのだと諦める人々)というタイトルの記事があった。これは面白い論考で、確かに自分はもっと優秀になれるのだと考えている生徒こそが良い成績を残すという調査結果もある。自分は愚かだと考える生徒が、どんどん落ちこぼれていくことになるという話だ。これは個人的にもよくわかる話だ。作文や絵画など、創造性を問うような授業にて、自己否定してしまえばまったく良い成果を残せなくなってしまうのだ。

「ぼくには無理」とか「才能がないんだ」という諦めの気持ちを持たせないためには、なるべくはやい段階での成功体験を与えることもひとつの方法だ。プログラミングなどという、難しいものと考えられがちのことが「できる」喜びを伝え、音楽を作ることが出来ると体験させ、算数が楽しいものであることを経験させる。こうした体験は、その後の教育成果に繋がっていくはずだ。

すべてがうまくいきそうなスキームに思えるが、最も困難な問題は教師側にあるだろう。エストニアは昨年、小学校段階からコンピューター科学を教えていくことを決めた。このためにまず行っているのは、やはり教師側のトレーニングだ。アメリカにおいても、こうしたことを念頭において前に進んでいくべきだろうと思う。

Photo by Michael Himbeault

原文へ

(翻訳:Maeda, H


プログラミング教育用トイ・ロボットのPlay-i、140万ドルを調達していよいよ来夏より出荷開始

これからは世の中にさらにテックの要素が増えていき、そして仕事でも一層テック系の素養が必要となってくる。それであってみれば、子供たちにコンピューターサイエンスやエンジニアリングを教えていくことが大切だ。と、そういう考えを当然のことだと考える人も多い。しかしアメリカでは10校のうち9校までがプログラミングの授業を行っていない。コンピューターサイエンスやテクノロジーに親しませ、積極的に関わっていくことができるようにするためには、たとえば他の言語を学ぶのと同様に、早期に始めることが非常に大切なことなのだ。もちろん、内容は楽しいものでなければならない。

コーディングのスキルを身に付けるのには時間もかかり、大人になってからではかなり難しくなってしまう。但し、子供を椅子に縛り付けてコーディングの勉強をさせるのもまた難しいことだ。もちろんコンピューターサイエンスの理論を覚えこませようなどというのも無駄に終わる可能性が高い。これに対処しようと動き出したのが、GoogleでConsumer Payments部門の長を務めた経験をもつVikas Guptaだ。子供たちが楽しくプログラミングを学ぶことのできるPlay-iというプロダクト(プログラムでロボットを動かす)を生み出したのだ。

共同ファウンダーにAppleでiPodソフトウェアチームを率いていたSaurabh Guptaおよび,
Frog Designでエレクトロニクスプロダクトおよび玩具のデザインおよび製造を行っていたMikal Greavesを加えて、Play-iの開発を行った。開発にあたっては、子供たちが「遊べる」ものを作ることを心がけたのだそうだ。こうした考えに沿って生まれてきたのがBoとYanaという2つのロボットだ。プログラムで制御できる、インタラクティブなトイ・ロボットだ。

Play-iは昨年、Google Ventures、Madrona Venture Groupなどから100万ドルの資金を調達してプロトタイプの開発を行った。現在もまだ細部を詰めている段階ではあるが、全体的な学習システムはほぼ完成し、ついに商用リリースの目処がたつところまでやってきた。来年には販売を開始する予定で、そうなればiPadで動作するPlay-iを使って、BoやYanaと一緒に遊ぶことが出来るようになるわけだ。

iPad用アプリケーションには、アクションシーケンスや、簡単なコマンドが用意されていて、それを並べてロボットを動作させることができる。たとえば手のようなパーツを叩いたり、あるいは手を振るように動かしたり、握手するような動きを行うことができる。3つのタイヤを備えたBoは部屋の中をあちこちに動きまわることができるし、ライトを点滅させたり、木琴を演奏したり、あるいはYanaを揺らしてライオンのように吠えさせたり、さらにはロボット2台を対話的に動かすことなどができる。実際に動いたり音楽を奏でたりするおもちゃを通じて、自分のプログラムがいったい何を引き起こしているのかということを学習していくことができるのだ。

また、単にロボットが動くのを見て愉しむ段階をこえて成長しても、このPlay-iを楽しめる仕掛けが用意されている。すなわちPlay-iで使うことのできるコマンドは、JavaやPythonなどといったプログラミング言語を用いて作成されたものなのだ。こうしたプログラミング言語を活用して、自分だけのコマンドを作ることもできるわけだ。これにより、さまざまな年齢層でBoおよびYanaとのコミュニケーションを愉しむことができるようになっており、いろいろなレベルでプログラム開発を行っていくことができる。

おもちゃを使ってプログラミングを学ぼうというコンセプトは、このPlay-i以外にも昔から存在するものだ。Play-iについての以前の記事でも指摘されているように、この分野にはCargo-Bot、Move the Turtle、あるいはBee-Botなどの先輩プロダクトがある。比較的新しい分野だとはいうことができ、いろいろなプロダクトが今後も参入してくることとなるだろう。こういうプロダクトに対するニーズも、最近になって生まれてきたものだ。教育会全体としてもSTEM教育に関心があつまりつつあり、それもあって若年層に対するテック教育のためのツールが探し求められるようになった背景もある。この分野は、今後ますます発展していくことになるのだろう。

もちろん共同ファウンダーたちは、このBoとYanaのことをとても気に入っている。しかし一般の消費者が興味を持ってくれるのか、あるいは商品を手にとってみたいと思ってもらえるのかについては慎重な姿勢ももっていた。すなわち11月半ばにクラウドファンディングでのプロジェクトを立ち上げて、一般の人の反応を探ってみたのだ。反応は上々で、しかもアメリカ以外の国の人も関心を持っていることが判明した。

Kickstarterでの31日間のキャンペーンにて、Play-iは目標の5倍となる140万ドルの資金を調達した。また、そのうちの2万6000ドルは、学校や経済的に恵まれない子供たちを対象とした施設に対してPlay-iを寄贈することを目的とした寄付として出資された。出資者はイギリス、カナダ、ドイツ、オーストラリア、インド、フランスなど多数の国にわたり、全体の30%以上がアメリカ国外からのものだった。

プレオーダーの件数も1万を超え、出荷は来年の夏から開始される見込みだ。それまでの期間は、製品の最終仕上げと、販売パートナーの獲得を行っていく予定なのだそうだ。Gupta曰く、Play-iをサイトおよび実店舗の双方を通じて販売していきたい考えであるとのこと。但し詳細についてはまだ決まっていないらしい。

今後もまだまだ新しい情報が出てきそうなPlay-iのホームページはこちら。またファウンダーのインタビュー動画を下に掲載している。

原文へ

(翻訳:Maeda, H


プログラミングを学校の必須科目にするためのキャンペーン”Hour of Code”と国の”コンピュータ科学教育週間”が同時期に

今年の1月にAli/Hade Partovi兄弟が立ち上げたCode.orgのミッションは、単純だった: プログラミングとコンピュータ科学を、アメリカ人がこれらに対してこれまで持っていたイメージを変えて、大衆化すること。

ほぼ1年たった今、Code.orgはどうなっているだろうか。そして多くのアメリカ人が、STEM*を国家的最優先事項にする必要があることを、認めるようになっているだろうか。その答えが、今週、ある程度分かるだろう。今週(12/9-15)行われるコンピュータ科学教育週間(Computer Science Education Week)の幕開けの祝辞としてオバマ大統領と共和党の下院院内総務Eric Cantorがそれぞれ、合衆国の児童生徒学生はプログラミングの学習を全員必須とすべし、とメッセージする、ビデオによる声名を発表した。〔*: STEM, science, technology, engineering, mathematics; 理数系~理工系教科。〕

一方Code.orgも今週、数か月かけて準備したキャンペーン”Hour of Code“(1時間のプログラミング)を立ち上げる。コンピュータ科学教育週間と同じ週にこのキャンペーンは、合衆国の教師たち全員に、児童生徒にコンピュータ科学とプログラミングを教える時間を1時間確保するよう、求める。全員だから、英語や歴史の先生も対象に含まれる。

Partovi兄弟がCode.orgを立ち上げた動機も、今のアメリカの学校におけるコンピュータ科学やプログラミング教育の乏しさにある。だいたい10校のうち9校は教科にコンピュータ科学が含まれない。今は少しずつ変わり始めてはいるが、それでもコンピュータ科学とプログラミングが選択科目である学校が多い。つまりそれらは、成績証明に含まれない。Partovi兄弟とCode.orgは、カリフォルニア州に対してはこれまで積極的にロビー活動を積み重ね、徐々に状況を変えつつある。

Hadi Partovi(元Microsoft、MySpace、iLikeなど)によると、Code.orgの最初のミッションは、各州がコンピュータ科学を必須学科にすることだ。官僚主義とのたたかいは容易ではなかったが、彼らの説得に耳を傾ける州も少しずつ増えつつある。“ロビイスト活動の中では、むしろ、それほど苦労しなかった方ではないか”、とHadiは言っている。

そして今度は、州に次いで国が腰をあげる。また、”Hour of Code”キャンペーンに参加するのは合衆国の学校だけでなく、世界167か国の33000のクラスの500万人あまりの児童生徒の参加が期待されている。Hadiの“500万人あまり”とは、1000万のことだ。

Code.orgのその目標達成を助けるために、AppleとMicrosoftは全世界の小売アウトレットで”Hour of Code”のクラスを行う。Appleは、各店で”Hour of Code”のクラスを展開することを、専用のWebサイトで公示している。同社によると、‘きわめて対話的な’状況および雰囲気の中でプログラミングの基礎を教えるそうだ。こうやって、自社の店舗などでこのキャンペーンを助けるという企業は、100社近くある。その中には、テクノロジ系でない企業もある。

Googleの検索ページは、右図のようなGoogle Doodleでコンピュータ科学教育週間を祝っている。この絵に登場する女性は、女性プログラマの元祖でCOBOLプログラミング言語を作ったGrace Hopperだ。絵の下には”Hour of Code”へのリンクもある。このほかCode.orgは、Yahoo、Youtube、Apple、MSN、Bing、Disney、 有力政治家たち、映画などのスターやアスリートたちにも、キャンペーンの宣伝への貢献を求めている。

現在協力を表明している俳優やミュージシャンはShakira、Ashton Kutcher、Angela Bassettら、アスリートはChris Bosh、Warren Sapp、Dwight Howardら、テクノロジ世界のリーダーの中からは生前のSteve Jobs、Bill Gates、Mark Zuckerberg、Susan Wojcickiらだ。全国レベルの政治家では、民主党、共和党の両派が協力を表明し、オバマ大統領と共和党下院院内総務Eric Cantorのほかに、上院議員Cory BookerNewt Gingrich、教育大臣Arnie Duncanらが、”Hour of Code”を支持するビデオを掲出している。

Code.orgは、”Hour of Code”キャンペーンに協賛してチュートリアルを提供する企業や大学、非営利団体などのリストと、 Mard Zuckerbeg、Chris Bosh、Bill Gatesらが登場するビデオチュートリアルを提供している。この前の”Learn to Code”キャンペーンのビデオは2週間で1200万回見られた。

また10月には、LinkedInのCEO Reid Hoffmanが、なぜ全アメリカ人がプログラミングを学ぶべきか、その実利的な理由を本誌の記事で語っている。

下のビデオは、オバマ大統領のメッセージと、Code.orgによる、多くの有名人が登場する”Hour of Code”の立ち上げビデオだ。

さて、これからのアメリカはどうなるか。全国民がプログラミングを学ぶだろうか? まずCode.orgのページを見ながら考えてみよう。〔*: 日本でも現安倍政権の構想では、“いずれ”義務教育からプログラミング教育が導入されるらしい。〕

〔訳注: Code.orgに関する過去記事: (1)(2)(3)。〕

〔Code.orgのビデオの大阪弁バージョン。〕

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


遊びを通して子供たちにプログラミングを教えるArduinoロボットのPrimo

子供たちを遊ばせるのに、単に面白おかしいということ以上のものを求める親が多いようだ。Kickstarterに登録されたDan ShapiroのRobot Turtlesというボードゲームを以前紹介した。これは2万5000ドルの資金調達を目指して登録されたものだが、なんと63万ドル以上の資金を調達することとなった。そちらも遊びながらプログラミングの基礎を教えてくれるものだった。どうやらギーク系の親たちはお金に余裕があり、教育への投資には非常に積極的である様子。

Kickstarterコミュニティの反応を見る限りにおいて、プログラミング系教育系玩具の評判は非常に高いものであるようだ。本日取り上げるPrimoも、Arduino制御のロボットを動かすためのプログラミング作成を、積み木を組み合わせることにより行っていく玩具だ。

Primoのエレクトロニクス系要素はすべて木製のボックスの中に隠されている。これは子供たちにシンプルな木製ブロックで遊んでいるのだと思わせるためだ。ロボットも、プログラミングを行うタイルも、双方ともに普通の木製ブロックに見える。しかしカラーブロック(命令用ブロック)をボードにセットすると、実はプログラミングを行っていることになるのだ(フィジカル・プログラミングインタフェース)。こうしてプログラムを作成し、最後に大きな赤ボタンをクリックすると、プログラム通りにタイヤのついたロボットが動き出す。作ったプログラムにしたがって、ロボットが部屋の中を動き回るわけだ。

命令用ブロックは4つの色で分類されている。ロボットを前に進めるための「前進」ブロックをはじめ、「左」「右」、そして緑色の関数ブロックもある。サブルーチンのようなもので、呼び出すと制御はいったん関数ブロックの中に移り、ブロックの処理が終わると本体に制御が戻ってくることんある。これにより、少々複雑なプログラミングを愉しむことができる。

関数を使うことにより、より長いコマンドを扱えるようになるとともに、プログラマ側には一層の論理的思考力を要求することとなる。遊びを通じて、思考能力の向上などにも役立つものを提供したいというのが、本プロダクトの狙いだ。

先日紹介したKickstarterプロジェクトのKano DIYコンピュータにくらべれば遥かに基本的なものではある。こちらの方は、4歳から7歳くらいの子供たちを対象に、ごく単純なところからスタートさせようとするものだ。

「スキルというのは徐々に身についてくるものです。山に上るのに一歩一歩進んでいくのと同じことです。Primoはプログラミング教育の最初の第一歩となるものなのです。言わば、プログラミング教育のいろはを提供するものなのです」と、イギリスに拠点をおく(イタリア人の)クリエイターは述べている。

このキットを市場に送り出すため、3万5000ポンドの資金調達を狙ってKickstarterに登録した。初期特典で、135ポンドで自分で組み立てるDIY版が提供されている。これまでのところ、27日を残したところで9000ポンド近くの資金を集めている。資金調達に成功すれば、プロダクトは来年8月から出荷していきたい考えなのだそうだ。

原文へ

(翻訳:Maeda, H


ブラウザ上でコンパイル, テスト, エラー報告もやってくれるArduino用IDE CodeBender.CC

Arduinoは今や至る所で見かける、とってもクールなマイコンボードだが、その公式IDEでコードを書いてアップロードするのは一(ひと)苦労だ。その、ネットワーク接続のないスタンドアロンのアプリケーションは、ルックスも良くない。でも、ブラウザ上にArduinoのIDEがあって、コードを共有できたり、プログラムをアップロードできたら便利ではないかな? それをまさに、CodeBender.ccがやってくれるのだ。

ブラウザ上のIDE CodeBenderを使えば、どんなArduinoボードでもアップロードできる。サンプルコードのコピー、ほかのユーザがアップロードしたコードの閲覧、それに非公開のコード片を保存することもできる。それは基本的にはコラボレーションの場なので、だれかのコードを自分のプロジェクトに利用したり、またコード片のリストから目的のコードを見つけることもできる。

Vasilis GeorgitzikisとAlexandros Baltasが創ったこのサイトは、ヨーロッパのシードファンドLAUNCHubから生まれた。Georgitzikisは曰く、“ふだんは最新の先進的な開発ツールばかり使っていたから、そういうツールのないArduinoは使い辛かった。世界各地のハッカー集会でArduinoのインストラクターもしたが、わずか3時間のワークショップで2時間半をいろんなもののインストールに費やさなければならない”。

“このWeb IDEと並行して、ネットワークに接続しているArduinoをプログラミングしコントロールするツールも作った(Arduino Ethernetなど)。これもブラウザ上で使い、HTML5の技術(WebSocketなど)だけで作られている。それを使うと、IoT(Internet of Things, 物のインターネット)デバイスをリモートでプログラミングできる”、と彼は言った。

このシステムはコンパイルとエラー報告を行うので、最終的にはプロジェクトの完動コードをアップロードできる。Circuits.ioのようにプロジェクトをシミュレートするだけでなく、Arduinoを使ったハードウェア全体をブラウザから完全にコントロールできる。Arduinoになんとなく近寄り難(がた)かったぼくみたいな人間も、このIDEがあれば、いろんなことを積極的に試してみる気になるだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))