
TORII
プログラミングにまつわる今昔物語
...はじめに
こんにちは。Colorkrew(以下CK)の老人プログラマー TORIIです。
さて今日はColorkrewプログラミング老人会のトップ3(正確にはよくわからない)である私からプログラミングにまつわる今昔な話をしたいと思います。
実際のところ世の中のプログラミング老人会的にはまだまだ私なんぞ若造もいいところなのですが、最近我が社では若くてフレッシュでピッチピチなエンジニアが続々と増えたのに対し老人層が心持ち減ってしまい気がついたらそうなっていたのです。ただ座っていたらそうなっていたのです。実に不思議なこともあるものです。
では早速始めましょう。
第1話 エンジニアとプログラマ
人類開闢以来、上流工程を取り扱うシステムエンジニアと呼ばれている人は大勢いましたが、この10年くらいでプログラムを書くことを生業とするエンジニアと呼ぶ人が随分と増えました。
いやもっと前からそうだったのかもしれませんが、正直いつから増殖を始めたのかよくわかりません。主観的な印象としてはいきなり増えた印象です。それはもうワラワラと。
一体全体、エンジニアとプログラマの違いは何なのでしょうね。
私がエンジニアを自称し始めたのはたしか2010年代の前半だったと思いますがそれ以前は自分をプログラマだと思っていました。
変わるきっかけになったのは名刺に役職を記載するときに会社のルール上「プロデューサー」と書きなさいと言われ「いや違うし」と抗議し調整した結果、上長と相談の上決めることとなった時に、最初「なんちゃってプログラマ」にしたいと言ったところ何故か却下されたので、渋々「ソフトウェアエンジニア」と書いた、というのがきっかけです。
一般的によく言われているプログラマとは誰かが作った設計書をもとにコーディングとか修正しかしない人を指すらしいです。あるいはマネジメントをしない人だとか。
エンジニアの方は俗説では工学系の学位を持った人のことだという説もあったようで、実際海外では学位がないとIT系に就職しづらい国もあるらしいです。 日本ではもちろんそんな学位は必要ありません。小学生でもエンジニアを自称できます。
本当に業界や状況・文脈によって変わってくるし、今はプログラムを書かないIT職種も多数ありそれらもエンジニアと呼ばれるので、プログラムを書く人間にとっては基本的には気分の問題(プログラマというよりエンジニアと言ったほうがすごそうに聞こえる)であってそういう様々なIT系の職種を含めた総称と考えるのが良さそうですね。
そういうわけで今ではすっかり私もエンジニアと呼んでいます。でも心では永遠のプログラマなのです。
第2話 タブとスペースと括弧
ソースコードのインデントにタブとスペースどちらを使うのか、というお話です。 前はタブが多かった印象でしたが、今はほぼスペースが用いられていますね。なんだか知らないうちに決着がついていました。いやびっくりですね。
タブの問題点は構造化以外の目的で使うとレイアウトが崩れるところにあるのはわかっています。
でもスペースはスペースで、スペース/バックスペースN回押して書いていくのは面倒ですし、回数を間違えるとインデントがずれます。コピペの時にカーソルの位置がずれることもあります。
え? タブキーを押すだけだろうって? それはエディタの力(ソフトタブ)ですね。
優秀なプログラミングエディタを使った場合ほぼ問題は起きません。普通のプログラミングエディタの場合だとうっかりスペースの途中からコピーしたりすると1文字過不足のあるインデント行が発生したりします。1文字ズレだと結構気づかないんですよね。
最悪なのでがソフトタブ自体がないチープなエディタしか使えない場合で、N回スペースを連打しないといけないため「スペースをインデントで使うことを指示した奴は何を考えてるんだ」と呪いたくなるほどの苦痛と化します。
まぁ、そんな環境今では稀なのでスペースで全く問題ありませんね、ええ。
年に何回かは部分的に1文字過不足のあるインデントになってしまうことがあるにはあるのですが、見かけたら直すくらいで存在自体は特に気にしないことにしています(あ、見かけたらプルリクエスト出しておいてくださいね)。
同じような話でifやforなどの制御文の括弧の開始位置をどこにするのか、という話もありますね。制御分と同じ行の最後に書くか次の行に書くかというアレです。
今はC#とかの一部の言語以外は制御文と同じ行に書くのが主流らしいですね。
私もプログラムを書き始めた時は制御文と同じ行に書いていましたが、一番最初の仕事でやったプロジェクトで括弧の開始と終了の位置が離れると対応が合わなくなるエラーが頻発したことがありました。この書き方だとどこの括弧が不足・過分になっているか・インデントがおかしいのか一見して全くわからないのです。
まぁそんな位置が離れてるような制御文を書くな、関数化しろという話ではあるのですが、若気の至りなのです。
switch文のラベルの数が1000だったかそこらまでしか対応していないコンパイラなのに、それを超えてしまって謎の不具合が発生したことがあるくらい、そんなへっぽこコンパイラと同レベルのアホだったのです。
そこで、次の行に括弧の開始を書くというスタイルに変えました。 すると途端にそんな間抜けなエラーは起きなくなりました。次の行に括弧開始がなければインデントされないので一目見るだけでどこに異常があるのかわかるからです。最高です。
以来ずっと個人で書くときはその書き方をしています。
でも今の世の中はそんな最高の書き方はしないようです。恐らく括弧の開始行だけで1行消費するのが許せないのが一番の要因だと思いますが、(エディタの力などで)括弧の対応が取れなくなるようなことが起きにくくなっているのでしょう。
まぁタブ・スペースの話も括弧の話も今はどんな書き方をしたとしても、保存した瞬間にエディタによってプロジェクトで定められたフォーマットに従って自動的に修正されるので、書くだけならどんなスタイルで書いても良いというのはいい時代になりましたね。
第3話 ライセンス表記
私がまだピッチピチの新人だった頃、新人研修でソースコードの先頭には会社名のライセンス表記を書きなさいと教わりました。
日本の著作権法的には書かなくても良いのですが、どうせファイルの説明文を載せるのだからついでに書いておけば良い、というくらいの認識でした。
しかしこのWeb業界、というかColorkrewではオープンソースのソースコードにはしっかりとしたライセンス表記はあれど、自分達で書いているソースコードにはライセンス表記を書いているのを見たことがありません。ファイルの内容を説明するヘッダも見たことがありません。(*1)
記述する風習自体がないようです。最初は不思議に思っていたのですが、最近は書かなくてもいいかな、と思い始めてきました。
書かなくても著作権は成立するし、万が一ソースコードが漏れた場合……とか思ったので。
でも自社プロダクトのソースコードにはきちんとつけておいた方がいいんじゃないかな、と思う今日この頃です。
さいごに
駄文を書き連ねて参りましたが、好評であれば続くかもしれません。 弊社Colorkrewのプログラミング老人会では会員……もとい社員を随時募集中でございます。
Mobile World Congress 2019に行ってきました
...こんにちは! ISAOのなんちゃってエンジニアTORIIです。 2月25日〜3月1日までスペインで開かれていたMobile World Congress 2019(通称MWC)に行ってきました。
MWC 2019 (Fira Barcelona Grand Via)
MWCを総括すると、どこもかしこも次世代通信規格5Gに関連した展示で目白押し、今年後半から本格的に展開する5G対応のスマホを含むハードやサービスが多数出展されていました。
今の4Gからネットワークの速度・レイテンシ、接続デバイス数がそれぞれが10倍以上に増えることが期待される5Gの能力を生かしたサービスの数々は圧倒されるほどの数であり、それぞれに特色のあるものでした。
もちろん5G関連以外にも、AI、スマホ、ウェアラブルデバイス、スマートシティ・ホーム、自動運転車、ロボットなど各分野の展示も多数あり、多くの見所のあるプロダクトが散見されました。
今日はその中からいくつか気になったプロダクトを紹介したいと思います。
スマートフォン
あちこちで報道されているのであえて取り上げるまでもないのですが、個人的に注目していたところなので、まずは先頭で紹介します。
注目されていたHuaweiのMate XやSamsungのGalaxy Foldは

このようにガラスケースの中に入っており、触ることはかないませんでした。残念です。
SonyMobileの Xepria 1や Galaxy S10系は実際に触ることができる実機が展示されていました。
Xperia 1
まずは Sony Mobile CommunicationsのXperia 1から。

こちらはブラビアTVで培った技術を応用してSDR(スタンダードダイナミックレンジ)映像をHDR(ハイダイナミックレンジ)映像に変換する機能のデモです。
写真ではわかりづらいですが、非常に色あざかな発色です。

こちらDOLBY ATMOSサウンドを体験するデモです。DOLBY ATMOS搭載デバイスは最近では珍しくなくなったとはいえ、初体験の私にとってオフ・オンを切り替えた時の違いは実際に聞いてみると音の広がりが全然違いました。