2019年時点で、Webやスマホのプログラマといえば、MacBookを使っている人が多かったりする。 新しい企業にいくとこうした光景はよくみる。 自分も2009年から2017年ぐらいまでは、Macをメインにつかっていた。 けれど、2017年後半ぐらいから、Windows10をメインに使うようになった。 その大きな理由は、Mac製品全般の値段が高いこと。 もちろん、値段が高くてもそれ相応に、Winマシンには比べ物にならないぐらいの優位性があるならわかる。 けれど、スペックと価格の対応をみても、Winマシンの方が遥かに低予算で高スペックなものが手に入る。 Dockerを始め仮想化や並列化が当たり前になりつつある開発現場において、CPUのコア数やメモリの高さは確保しないといけない。 Core i5、メモリ16GBぐらいが最低ラインではないかと思っている。 私は、LenovoのCore i7、メモリ16GB、15インチで使っている。購入額は12万円。同程度のMacBookProを購入すると25万円はする。約2倍の額。Winマシンならもう一台購入できてしまう。 では、Macでないとできないことがあるだろうか?ものによるだろうけれど、一番は、iOSやMacOSのアプリ開発はMacの方が向いているだろう。 (ただし、Winでも仮想化を使えばMacも動くのだけれど) 私の場合、iOSの開発は一切しない。JavaやGo、その他、PHP、Python、Ruby、RなどWebシステムや統計処理をする。この場合、MacOSである必要はほとんどない。 そして、WinPro10の場合、Hyper-vをベースとして、Docker for Windowsを利用すれば、Linux(コンテナ)を扱うこともできる。 そうでなくてもWindows10はWSL(Windows Subsystem for Linux)が使える。つまり、Linuxの機能を手軽に使える(Cygwinとか使わず)。 以前Macをつかっていたときは、Unixベースで、Webの開発などは便利なところもあったけれど、最近は、Windowsでもこの点は全く不便はない。 実は、今も、Mac miniは購入するようにして、MacOSは触っている。一応、この業界にいる以上、可能な限り...
OracleJDKが有償化されることは2019年1月時点では、Javaのプログラマでなくても、プログラムに関心がある人なら知っていると思う。 今後、この有償化がどういうことをJavaに引き起こすのかを考察してみる。 まず、世界規模でJavaは大中規模の企業が利用しており、Javaはこれからも当分は使われ続けていく。 仮に有償化だとしても、すでに企業利用では、なんらかのサーバサポート費用等を払っており、JDKの有償化そのものはそれほど大きな問題ではない。 有償化はどちらかというと開発者にとって考慮される事項だろうと思う。 OracleJDKは有償化であるけれど、OpenJDKは無償で利用できる。そこには機能的な差異、サポートの差異など違いがある。 おそらく、初学者やプライベートで利用する人はOpenJDKを使うことが多いと思う。基本的に技術的な差異はないのだけれど、そもそも、他の言語は、こうした「あるものは有償化、あるものは無償化」ということが少ない。 こうした「選択、考慮」が煩わしいと感じるプログラマも多くいるはずだと思う。 実質、有償化によって格段のプログラマとしての不便が生じるのかというと、実際は、それほどないと思われる。おそらく、OpenJDK等も言語としての根幹に関わる部分は、OracleJDKとそれほど変わらないと思われる。 結局の所、言語そのものではなく、それらを取り巻く「イメージ・印象」としての「煩わしさ」なのだと思う。 アンチJavaがプログラマに存在するけれど、その理由の少なくない部分は「イメージ」であり、Oracleがバックアップにしてから更に、このアンチのイメージは悪くなった。 ずっとJavaを触っていて思うのが、Java自体は文法も平均的、パフォーマンスもスクリプトよりは遥かに速く、実用に耐えうる、よい言語だと思う。 けれど、Javaを利用したサーバサービスなどこれらを取り巻く企業による「冗長」な製品群、ライブラリ群などによって、「敷居」というか、「使い勝手そのもの」を歪曲させられている。 シンプルに言語と向き合えば、次世代言語のRustやGoよりは癖がない分、とっつきやすいし、設計もしやすく、実用的である。 けれど、Javaの不幸さは、この言語を取り巻く企業の動きによって、その良さが見にく...