各プログラミング言語の個人的位置付け

なんとなくまとめておこうかな、と思ったので。あくまで個人的な所感。
あとになるほど、適当になっている気がするが気にしない。

C言語

OSとか組み込みとかミドルウェアとかを実装するときに使われる。 言語仕様がシンプルな点が好み。いつかはじっくりやりたい。

C++

パフォーマンスが求められるゲームのフロントエンドを実装するときに(まだ)必要。
それ以外では出来る限り避けたい・・・

C

Unity3dで初めて使った程度。感想としてはJavaとあまり変わらない。
みんなが言うほど、素晴らしい言語だとは思わなかった。 delegateはdelegateではないし・・・

Java

できればもう触れたくないけど、Androidアプリの実装時には必要なときが出てくる、かな・・・?
Elasticsearchで採用されているのは、なぜだろう・・・?

Scala

そういえば、自分が初めて参加した勉強会のテーマがコップ本だった。
言語仕様は好みだし、これで色々書いてみたいと思うけど、コンパイルが重いのがネックで個人的にBETするのに躊躇する。
仕事ではGatlingを使っている。
今はそれぐらいのDSLを書くレベルで、アプリケーションを書くまでのレベルでは採用しづらい。教育コストも高いし。

Groovy

gradleでしか使ってない・・・

JavaScript

できれば使いたくないが使わざるを得ない度ダントツ1位。
最近の仕様はよく知らない。クラスってもう使えるんだっけ?
Webフロントエンド周りのフレームワークには手を付けたくない。Reactは気になるけど。 使うならElmかな。

Dart

Googleが見た夢。自分も信じてたんだけどな・・・ 言語仕様は割と好きだし、Webブラウザでのセキュリティも考慮されていたので、期待してたんだけど・・・残念。

Perl

ほとんど使ったことない。使ったとしてもワンライナーぐらい。これから先も使うことはないだろう・・・
言語仕様もあまり好みではない。

PHP

仕事で使わざるを得ない場合もあるけど、できれば使いたくない。
テンプレート言語としてなら良いけど、アプリケーションを書くにはもっと良いプラットフォームがあるし、Webアプリケーションを書くにしても動作モデルが他のLLと違っていて、知識の応用が効かない。

Python

現在メインに使っている言語。
シンプルな言語仕様が良い。誰が書いても似通ったコードになる点はもっと評価されるべき。
高速化はCython、JITならPyPyと、実績がある複数のランタイムを使いこなしたい。ユースケースにあったランタイム選択は重要。
それでもやっぱり型がほしい・・・Optional Typingでもいいから・・・
機械学習や数値計算の分野はまだ試してない。さっさとPython3に移行しましょう。

Ruby

書いていて楽しいけど、Pythonがあるのでメインでは使ってない。
いろんな書き方でできるのがメリットでもありデメリットでもある。 Railsは嫌い。URL dispatcherをrouting、TemplateからのHTML生成をrenderingと呼称するのが許せない。

Go言語

今、Web APIサーバーを書くならこれ。サーバーサイドアプリケーションやマルチプラットフォームに配布するツールとして採用されることが多いイメージ。フロントエンドは苦手だと思う。
シンプルな言語仕様なので割と好き。例外がないのが良い。
ジェネリクスがないのが賛否両論だが、実際にハードに使ってみてから評価したい。

Rust

ゲームのフロントエンドでC++の代わりに採用するならこれかなぁ?
サーバーサイドではどうだろう・・・?
ポインタ周りの仕様が、新たな考え方を自分にインストールしてくれそうな予感。
言語仕様は割りと好きだけど、1.0から保守的になったと聞く。これからどう発展していくかが気になる。

LISP系

触ったことない。いつかは触らなきゃと思ってそのまま。

OCaml

浅井本を最後まで読まなきゃ・・・

Haskell

すごいH本は読んだけど、まだこれで自由にプログラムを書ける気がしない・・・
モナドはわかったようなわからないような。使えはするけど、自ら定義できない気がする。

F#

興味あるけど、触ることになることはまず無いだろうと思われる。

Swift

iOSアプリ書くなら避けては通れない。 を書いただけあって、結構気に入っている。最近、言語仕様が膨らんでいる気がして心配。
Objective-Cは全く知らないので、項目にも挙げない。

Kotlin

Androidアプリ書くならJavaよりこっち。 まだちょっとしか試してないけど、良さげ。

D言語

LINEスタンプ買いました。

Erlang

需要があるのはわかっているけど、どうにも手をつけられない・・・
どうしても必要なときになったら触ってみようかな、と。
Elixirは使うシチュエーションがなかなか無いと思う。そもそもBeamVM上でアプリケーション書く気がしないので、Erlangで十分な気がしている。

Lua

mjolnirで使ったことがあるぐらい。あとRedisに組み込める。 アプリケーションの実装に使うというよりは、ピンポイントでDSLの代わりに採用されるイメージ。

なんか疲れたので、この辺で。

Tags:

Published: