12:27140文字にかけないつぶやきRailsを使うことはプログラミングではないのか?という記事について思ったことツイート昼休み的な時間にガーッと書く。TechAcademyのピッチの審査員をやった立場としては、こないだのピッチで聞いてくれればよかったのに!という質問に他ならない話。それでも人は夢を見る「Railsはプログラミングなんかじゃないよ。Railsだけ勉強していても、本当の意味での開発はできるようにならない」って思ったことは3つその1.難しいことを簡単に、それこそがコンピュータシステムの歴史だと思う。Railsは、誰かがプログラミングして作ったフレームワークであり、簡単にWebサービスを作れるツールであることは間違いない。その人達の成果物に乗ると、簡単にWebサービスが作れる。キットになぞって人の成果物を眺めてる感しか感じなかったという気持ちはわかる。それを素早く学んで、その先にある自分のやりたいことをやりましょうね、というのがTechAcademyなどの存在意義だと思う。HTTPのプログラミングとか、Webサーバという形で待ち受ける処理とか、職人さんじゃないと作れない処理を全員で書かなきゃいけないとすると、そこに手間がかかって結局、成果物の到達点が低くなるんですよね。1000万円!などと人件費がかかっちゃって、それだけで息が切れる。職人さんが得意なのはシステム構築であって、素敵なサービスを作るところではないから。「誰でもできそう」なところを積み上げていくことと、新しい視点が輸入されてくる。そこにイノベーションが生まれる。ビジネス的な視点で言うと、それらを実現するためのコストを下げることが超重要。Studioは、Windowsアーキテクチャ(Winmainループにポインタ登録して、イベントにあわせてコールバックみたいな?)がわからなくてもアプリが作れちゃうツールだし、Xcodeは、iOSの仕組みがわからなくてもアプリが作れちゃうツールだし、Cコンパイラのstdライブラリとか、アセンブリ言語とか...(ry...僕こういう人、とりあえずC言語で文字を処理するプログラミングで、めんどくせーって思うことが大切なのかなって思います。それに気がついたら、演算子一つで文字を連結できるLL言語ってなんて素敵なんだろうって思えたらいいな、とか思ったりします。Appleを作ったウォズニアックしかり、難しいコンピュータ技術を簡単に使えるようにしましょう、というのがいろんなコンピュータシステムの基礎なのですよね。ちなみに、この記事に興味を持ったのは、前回の「理想的なエンジニアってなんだろう」で抱いた印象と割と似てるんだよな。世代が何周かして、Webの技術も当たり前になって、当たり前に存在してるオープンソースの有り難みもなくなってきて、そういう疑問が出てきたのかなぁ、、、なんて思ってる。その2.「プログラミング初心者が使いこなすには学習コスト(必要となる知識)が高すぎる。プログラミング初心者がいきなりRailsを使うのはやめておいたほうがいいよ」に対する反論これは言説が現状維持バイアスに基いてるのでアレすね。オッサンのたわごとに近い。言ってる気持ちはわかるけど。知の高速道路でいっきにいいところまで行くけど、どこからか先からは「ここからは有料です」ってことですよね。新時代の初心者は、今ある技術で突き進めば良いと思います。その先はRubyでコード書けるようにならないといけないけど、でも、Railsを使うメリットはあると思います。論点が違うところで最近、Rails面倒くさいなーと違うところで思うところはある。レールに乗り続けるコストが高いって意味では、なんか他の技術の方がいいんじゃないかなと思ってる今日このごろ。ShopCard.meで夜中の3時ぐらいに、アプリからアクセスするRailsで作られてるapiを一文字ぐらいの修正をしてアップデートしようとしたら、アップデートで拒否られてRailsレイヤーでいろんな仕事が求められて、結局徹夜になった、みたいなことを何回か繰り返していて、なんかPHPの方が楽だったなって思ってる今日このごろ。(まぁそれも避ける技術があるんだと思うので、僕がRailsを慣れてないという部分なんだろうけど。彼の次の記事で、「やりたいことは特に無いです」って書かれていて、その通りだろうなと思った。Webで、小難しい技術を知らなくても、自由に表現する力を持つというのが、LLだったりフレームワークの魅力なので、表現したいことがある人は、どんどん突き進むことができる。TechAcademyの発表会でも、そういう人たちだけがゴールまで到達して成果物を発表していた気がします。タチのわるいところに、彼が言っているプログラミングは、その「やりたいこと」を実現するところで必要になるんですよ。自己表現が入るわけです。そこが多分彼がやりたいプログラミングの部分。やりたいことがなければ、Railsを使ってWebからアクセスできる箱を作ってるにすぎない。そりゃRailsはプログラミングじゃない!っていいたくなる気持ちもわかります。「やりたいことがない」人がこの鶏卵を解決するなら、受託の仕事をやることをオススメします。自社サービスでもいいけど、自分でやりたいことを考えるのではなく、人の想いの実現にコミットするという部分で、受託の方がいいかもしれないですね。自分ではやりたいと思ってなくても、人を助けるのは好きだったりするなら、技術で人を助けることができます。インターネットに何かを見出したいのであれば、技術を学んで、その技術を人のために使うことです。僕は、こういう人はサーバサイドテクノロジよりも、フロントエンドの技術を考える方をオススメしますけどね。ブラウザやアプリに表示されている情報アーキテクチャそのものがインターネットコミュニケーションの本質だと思いますけどね。情報デザインエントリ一覧ちなみに、スタートアップとかでコードがそこそこ書ける非技術者の社長は、コードの質を無視してやりたいことに突き進みます。そこにサービスの理念や想いをプロトタイプとして実装して、仲間を集めて、プロのエンジニアはそのコードを全部書きなおせばいいと思います。これが一番、話が早い。Garageは、Webを中心としたビジネス&テクノロジーに関する思いつきを綴ったブログです。初代モバツイ開発者インターネットと日常の生活が融合された「何か楽しいもの」/「便利なもの」を作ることを目標に活動中。Fujikawa(@fshin2000)。