私は色々なプログラム言語をその時々のプロジェクトにおいて、使い分けていますが、

色々特徴があって面白い。

超個人的感想

 

・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の環境での言語、そういえば最近あまり触ってないなあ
 
色々な言語を使っていると、頭の中で細かい文法がごちゃごちゃになることがある。それが一番悩みかな。