futoase

よろしくお願いします。

エンジニア立ち居振舞い: 技術的な暴力を振るわない

お題「エンジニア立ち居振舞い」

技術的な暴力を振るわない

何事も初めて、ということがあるだろう。

プログラミングが好きで、かつ業務経験もあり、
いろいろなサービスに手を出している人ですら、初めてやったこと、というのがあるはずだ。

  • ECサイトをつくるため、CGIの処理、ブラウザからの快適な買い物を実現するために独学した小売店経営の個人事業主。
  • iOS上でのアプリ開発が解禁されて、初めてiOSアプリを開発するようになったWindows向けアプリケーション開発者。
  • Go言語が発表され、初めてGo言語でサーバサイド側のアプリを書いたフロントエンドエンジニア。
  • AWSのLambdaアーキテクチャ == Serverlessという問題の解決、分散の仕組みに心を惹かれHTTPS経由のファイルアップロードの処理をLambdaに寄せたIoTサービスを始めようとしている組込系エンジニア。
  • Nintendo Switchに対してUnityがサポーターになっている。どうせならゲームをパブリッシュしてみたいと妄想し、Unityを学び始めたインフラエンジニア。

問題を解決したい。問題を解決するために学ぶ、手を出す、金を出すための技術があり、学び、コードを書き、インフラストラクチャを構築していく。
学び、作っていく中で覚えていく、また目的を達成できれば製品をリリースしたり、ベータ版という形でお披露目をしたりするわけだ。

物事をすすめるなかで、技術的な暴力を振るわれることがある。

  • CGIには今の時代はPHPを利用するのに、なぜ未だにPerlを使っているのか。処理速度も遅く、表現も難解だ。
  • iOSアプリそのもの、プラットフォームがいつまであるかもわからないし、今後広がるかわからない。Objective Cを覚えたり、そんなものに技術をかけてどうするのか。
  • Go言語そのものの表現力が低い。そんなものを利用するならJavaScalaで書くべきだ。ライブラリが豊富にあるだろう。Googleに縛られた環境での開発は恐ろしい。
  • Serverlessそのものはサーバがなくなるわけではない。自身でチューニングなど細かなリソース管理ができないPaaSを使って自身のサービスの命運を預けるなんて馬鹿げている。
  • Nintendo Switchが大流行するかわからない。コントローラー使いづらいし。あんなものはチンケなものだ。そもそもUnityをインフラエンジニアが覚えて意味があるのか。

これから学ぼうとしている人たち、別のレイヤーから来て手をつけ始めた人たちに対して冷たかったり、得てして人格を否定するようなことを言う人達が出てくる。

僕はこれを「技術的な暴力」と表現している。

技術的な暴力という言語の割に、新しいものを否定したり、技術に対する理解を現在進行形で進めている人に対して、「お前は未熟」という言葉だけを残し、問題のエレガントな解決手段については指してくれないのだ。

ソフトウェア開発と心情は密接に関わっている、クオリティにも関わっていると考えているので、技術的な暴力は振るいたくないものだ、と気をつけている。

問題を解決したい。やりたいことをやりたいのだ。

Copyright (c) 2013-2017 Keiji Matsuzaki