私は色々なプログラム言語をその時々のプロジェクトにおいて、使い分けていますが、
色々特徴があって面白い。
超個人的感想
・C言語
組み込み向けのプログラム。高速なプログラムや、メモリのアドレス等直接アクセスしたい時など。
ドライバやカーネルのプログラムを使いたい時。
ドライバやカーネルのプログラムを使いたい時。
結構気をつけてプログラミングしないと、ぐちゃぐちゃのソースになる可能性がある。
・C++
Cをオブジェクト指向にしたもの。1990年代に一世を風靡した。その頃のものと、現在のC++は、
全く中身が違うと言ってもいいほど、進化している。(スマートポインタなど)
テンプレートを使うと、エラーの時、どこが悪いか、エラーメッセージだとわからないので、最近はあまり使わない。
・java
文法はC++に似ている。抽象化が進んでいて、プログラミングはC++よりやりやすい。
個人的には、javaよりkotlinを使っている。
・kotlin
javaのコードを高度にしたもの、androidのプログラミングは、kotlinメインになってきた。
android studioとか、Intellj Idea等の開発環境のサポートがすごく良いので、気に入っている。
・php
C++言語に似ているが、こちらはスクリプト言語。
色々な言語をかき集めて作った感があるので、あまり好きではない。
そういえば最近全く触ってないが、まだまだ主流らしい。
・javascript
昔は、ブラウザ上で動くJavaに似たスクリプト言語という扱いだったが、近年大進化を遂げた。
昔とは、かなり文法が違ってきている。(と言っても昔の文法でも動くが、今は昔の文法で組んでいる人などいない?)
高度なバッケージ管理や、ネイティブでも動くようになり、非常に便利になった。
最近はtypescriptに移行中
・typescript
javascriptの欠点を補うために作られた言語。ビルドしてjavascriptのコードを作成して、そのjavascriptを実行する。
便利な面もあるが、別にtypescriptの文法でなくても、javascriptのままでも良いかなと思うことがある。
最近は、typescriptそのものを実行できる環境も出てきた。
・python
唯一空白が意味をなす言語。
基本的にスクリプトであり、そのもの自体はそれほど早くないが、優秀なパッケージがあって、そちらが高速で有用なものとなっている。自然言語処理では、これを使うことが多い。
文法が独特で、ぱっと見わからないことがある。
パッケージ管理弱くて、バージョンが変わるとうごかいとかいうことがある。最近のバージョンでだいぶ改善されてきたが。
pyenvや、venvなど、独特な環境構築が必要
・rust
高速でセキュアなプログラムを作れる。が、実際本当にrustでよかったみたいなプログラムはまだ作ったことがない。
・swift
appleの環境での言語、そういえば最近あまり触ってないなあ
色々な言語を使っていると、頭の中で細かい文法がごちゃごちゃになることがある。それが一番悩みかな。
