ぶっちゃけ言語なんかどれでもいい
と思ってました。
今でも若干は思ってますが。
kotlinが出てきたからといって、いやjavaでよくねって思っちゃってただろうし、
Rx出てきた時も、頻繁に起こるイベントをストリームに置き換えるならわかるけど、 単発のイベント数種類をストリームに置き換えることにメリットなくねって思ってしまったりしてました。
これは自分がプロダクト志向なエンジニアだからだと思います。
逆にもしkotlinでかつRxを使うのが主流であれば何も迷うわずそれを使ってたと思います。
プロダクト志向なエンジニアにとってはプロダクトが重要であって、例えばそれを使うユーザーにとってJavaなのかkotlinなのかなんて全く関係ないのです。
kotlinにしたからといって明確にコストが変わるとも思えないですし。
つまるところ、プロダクト志向なエンジニアはビジネス志向で保守的です。
このタイプの人は「好きな言語は何?」と聞いても「とくに。」と答えます。
言語はあくまでツールであるので、そこに好き嫌いって概念がそもそも出てこないのです。
一般生活に置き換えると「ハサミってどれが好き?」レベルの質問ですよね。そりゃ「とくに。」って答えます。
僕が明確にそっち側の人間だと言えるのは、そもそもエンジニアになった理由がモノを作りたいから、だからです。
でも、最近というか数年前から少し変わってきてます。
プロダクト志向から技術志向よりへ寄ってきています。
プロダクトというよりも技術そのものな志向。
これって単純に探究心とかそういうところから来てるのかなと思います。
色々試したい。言語を跨いでの好きな記述とかも出てきました。
言語間には確かに差はある。だけど、プロダクト志向の自分からすればさほど差はない。
だけどだけど、技術志向な自分からすると明確に好きな方と嫌いな方があります。
好きな方ってのは基本的には自分にとって直感的かどうかとかわかりやすいとか便利かどうかとか、好きかどうかとか(あれ?)。
実際にAndroidにkotlinを使う場合って確かにモダンな書き方をしていてすごくいいんだけど、言語を変えるってリスクを超えるほどではないと思うんですよ。
ただ、それでも使う人ってのはメリットデメリットどうこうじゃなくて、使いたい!すきだー!って強い思いがあるんだと思います。
技術志向な人は前衛的でリスクとってきます。
どちらがいいかってのはありません。
どちらのタイプも必要です。
プロダクト志向なエンジニアがいることで良いプロダクトができていきますし、技術志向なエンジニアがいることで技術はどんどん進化していくのかと思います。
最近は、その両志向な自分の中でいい感じに矛盾が起こってたりして楽しんでいます。
だいたい6割プロダクト志向、4割技術志向なのかも。
とりあえず、次のAndroidプロジェクトをkotlinでやるかjavaでやるかめちゃくちゃ悩んでます。
(最近swfit書いてるんですが、extensionと名前付き引数がすごく便利すぎる。。。!)
個人的にはこれからもどっちかに寄るではなくて、どちらの志向も持っていけたらと思ってます。