Technology Topics by Brains

ブレインズテクノロジーの研究開発機関「未来工場」で働くエンジニアが、先端オープン技術、機械学習×データ分析(異常検知、予兆検知)に関する取組みをご紹介します。

プログラミング言語あれこれ

こんにちは。(年齢順で)ブレインズNo.3のこんのです。
今回は当社のプロダクトでどんなプログラミング言語が使われているのか紹介したいと思います。

プロダクトで使われているプログラミング言語

当社ホームページをご覧頂いている方はすでにご存知かと思いますが、当社はエンタープライズ向けに2種類のプロダクトをご提供しています。ひとつは検索エンジンのNeuron。もうひとつは機械学習を活用したリアルタイム大規模データ分析プラットフォームのImpulseです。
どちらもオープンソースを利用し、低コストで提供している製品です。

さて、これらの製品で使われているプログラミング言語ですが、使っているオープンソースのライブラリに依存しています。
早速見てみましょう。
f:id:bti-konno:20151112151428j:plain

上記グラフは、各プロダクトの最新のマスタのソースの実際のコードの行数をプログラミング言語別でカウントしたものです(コメント行や空行は除いています)。
検索エンジンのNeuronでは Java が圧倒的に多く、次いで Javascript やHTML/CSSが使われています(Javascriptは利用しているオープンソースのライブラリもあわせてカウントしてしまっているため多く見えています)。
データ分析のImpulseでは Python が多く、次いで Java 、Scala、Javascript が続きます。簡潔な表現で処理を記述できる言語を主に用いているため、Neuronと比べて格段にコード量が少なくなっているように見えますが、実際はNeuron以上にリソースを投入して開発を行っています。
JavaやPython、Scalaに自信のある方はぜひ当社に応募してみませんか?

すぐにネタがつきてしまいました。
これだけではちょっと短いので、社員にアンケートを取ってみました。

社員のプログラミング言語あれこれ

当社社員はみんな前職がIT系出身であるため、なんらかのプログラミング言語をさわっています。
そこでまずは好きなプログラミング言語を(無理やり)聞いてみました。
f:id:bti-konno:20151112154257j:plain

簡潔でわかりやすい記法が好感触なのかPythonが1位です。やはり静的に型が決まっていないと嫌だ、というひとが投票したのでしょうか?次点はJavaでした。ちょっと変わったところではShell scirptを上げているひともいます。やはりワンライナーで結果が出るのがいいのでしょうか。


どれくらいのバックグランドを持って開発に携わっているのか?さわったことのあるプログラミング言語とその経験年数も聞いてみました。前職や大学で触ったことがある、というのも上げてもらっています。
f:id:bti-konno:20151112154844j:plain

結構みんないろいろな言語を触っています。
1年未満が多いですが、この中にはImpulse開発で初めてさわった言語ももちろんあります。
言語を1つきちんと習得していれば、初めての言語でも慣れれば書けるようになるようです。


最後に、今後どんなプログラミング言語を勉強したいかを上げてもらいました。1つ以上上げてもらっています。
f:id:bti-konno:20151112155734j:plain

Scala、Pythonは当社プロダクトで使っているため、想定通りでした。次いで Go がきたのは以外でした。最近 Go 界隈が盛り上がっているのでしょうか? HaskellやErlang、LISPといった関数型言語の勉強をしたいというひともいますね。現在メインで使われているオブジェクト指向言語とは違った概念の言語を勉強し、見識を広げたいということでしょうか。

以上、プログラミング言語のあれこれを見てきました。
当社にご興味持った方、当社のことをもっとよく知りたい方はご連絡ください。