Railsを使うことはプログラミングではないのか?という記事について思ったこと

昼休み的な時間にガーッと書く。TechAcademyのピッチの審査員をやった立場としては、こないだのピッチで聞いてくれればよかったのに!という質問に他ならない話。

Ruby on Railsはプログラミングではない! | それでも人は夢を見る

「Railsはプログラミングなんかじゃないよ。Railsだけ勉強していても、本当の意味での開発はできるようにならない」って

思ったことは3つ

その1.難しいことを簡単に、それこそがコンピュータシステムの歴史だと思う。

Railsは、誰かがプログラミングして作ったフレームワークであり、簡単にWebサービスを作れるツールであることは間違いない。
だから、その人達の成果物に乗ると、簡単にWebサービスが作れる。でも、ただキットになぞって人の成果物を眺めてる感しか感じなかったという気持ちはわかる。

でも、それを素早く学んで、その先にある自分のやりたいことをやりましょうね、というのがTechAcademyなどの存在意義だと思う。

もしHTTPのプログラミングとか、Webサーバという形で待ち受ける処理とか、職人さんじゃないと作れない処理を全員で書かなきゃいけないとすると、そこに手間がかかって結局、成果物の到達点が低くなるんですよね。

それこそRailsみたいなのがなかったらWebサーバ構築 1000万円!などと人件費がかかっちゃって、それだけで息が切れる。そして到達点が下がる。職人さんが得意なのはシステム構築であって、素敵なサービスを作るところではないから。「誰でもできそう」なところを積み上げていくことと、新しい視点が輸入されてくる。そこにイノベーションが生まれる。

もうちょっとビジネス的な視点で言うと、それらを実現するためのコストを下げることが超重要。

また、この方の言ってることをそのままうけると、Visual 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を慣れてないという部分なんだろうけど。)

その3.突き進める人はそんなことは考えない罠

彼の次の記事で、「やりたいことは特に無いです」って書かれていて、その通りだろうなと思った。

つまりWebで、小難しい技術を知らなくても、自由に表現する力を持つというのが、LLだったりフレームワークの魅力なので、表現したいことがある人は、どんどん突き進むことができる。TechAcademyの発表会でも、そういう人たちだけがゴールまで到達して成果物を発表していた気がします。

しかもタチのわるいところに、彼が言っているプログラミングは、その「やりたいこと」を実現するところで必要になるんですよ。つまりRailsを使って、どこかの段階からRubyによるロジックの記述 = 自己表現が入るわけです。そこが多分彼がやりたいプログラミングの部分。やりたいことがなければ、Railsを使ってWebからアクセスできる箱を作ってるにすぎない。そりゃRailsはプログラミングじゃない!っていいたくなる気持ちもわかります。

「やりたいことがない」人がこの鶏卵を解決するなら、受託の仕事をやることをオススメします。もちろん自社サービスでもいいけど、自分でやりたいことを考えるのではなく、人の想いの実現にコミットするという部分で、受託の方がいいかもしれないですね。自分ではやりたいと思ってなくても、人を助けるのは好きだったりするなら、技術で人を助けることができます。もしインターネットに何かを見出したいのであれば、技術を学んで、その技術を人のために使うことです。

僕は、こういう人はサーバサイドテクノロジよりも、フロントエンドの技術を考える方をオススメしますけどね。やっぱりブラウザやアプリに表示されている情報アーキテクチャそのものがインターネットコミュニケーションの本質だと思いますけどね。

これは古い記事ですがご参考

F’s Garage 情報デザインエントリ一覧

ちなみに、スタートアップとかでコードがそこそこ書ける非技術者の社長は、コードの質を無視してやりたいことに突き進みます。そこにサービスの理念や想いをプロトタイプとして実装して、仲間を集めて、プロのエンジニアはそのコードを全部書きなおせばいいと思います。

これが一番、話が早い。

【PR】BASE株式会社 17職種、仲間を絶賛募集中!