見出し画像

好きなプログラミング言語

こんにちは。okknです。

仕事柄、いろいろなガジェットには触れるのですが、「DJI OSMO POCKET」というものを会社の上司が紹介してくれて驚きました。
4Kでジンバルつきで小さい、そして中華製らしく安い。
なにこれ卑怯ですわ。
手軽に持ち出せる撮影機材は、質の善し悪しはさておき、撮影機会が増えることが最大の利点だと思います。
結構興味が湧きました。

今日はプログラミング言語の話。

ITのエンジニアの間でよく話題になる、好きなプログラミング言語・嫌いなプログラミング言語。
多言語を経験したプログラマーならわかっていただけると思います。

そうでない人向けにどういう話か解説をば。
プログラミング言語にはそれ自体に設計者の思いが詰まっています。
プログラミング言語そのものがものづくりをするための基盤なわけですから。
わかりやすいように、はさみで例えてみましょう。
はさみにも多種多様な物があり、様々なメーカーが販売しております。
紙等を切るための汎用的なはさみ、裁ちばさみ、枝切りばさみ、などなど。
それぞれのはさみにも用途・使用感・耐久性などの特徴を表す要素が存在しています。

それと同様に、プログラミング言語にも用途・書きやすさ・速度・型システムなどの特徴を表す要素が存在します。
それが自分に合っているか合っていないかでエンジニアの中で好き嫌いが決まります。

・・・

私はPythonとGo言語が好きです。
どちらプログラミング言語も凡そ多用途に使えます。
私がプログラミング言語の好き嫌いを決めるときに最も重視している特徴は、いかに書きやすいかということです。

プログラミング言語における書きやすさとは、以下の要因で決まると思っております。
・簡潔に書けること
・多少適当に書いても意図通りに動作すること
これらのポイントがそれなりに高い言語が書きやすい言語として扱われています。
PythonもGo言語もポイントが高いと感じております。

どちらの言語も簡潔に記載できると思っております。
Go言語はtry-catch構文がないせいで、コードが冗長になるとよく批判されることがあります。
しかし、私としてはエラー処理がおざなりに(try-catchで適当にくくるだけ)ならずにどのポイントでエラーになって、回復させるかを厳密に書けるので、冗長だと思ってはおりません。
if文でエラー処理を書くことは、簡潔さを逸脱するようなものではないと感じております。

多少適当に書いても意図通りに動作することとはどういうことかと言いますと、言語仕様に則った記載方法をしておけば、概ね意図したとおりに動くということです。
例えば、そうでない言語としてC言語があります。
C言語は言語仕様に則った記載をしても、意図通りに動かないことが多々あります。
そして、意図通りに動かないことが初心者を苦しめます。
一番の原因はメモリの扱いを厳密にしないと、すぐにバッファオーバーフローなどを起こしてしまい、おかしな挙動になってしまうからです。
つまり、言語仕様に則った記載するだけではダメで、メモリのことにも常に気を配らなければならないのです。

このように考えなければならないことが多い言語ほど、書きにくいプログラミング言語だと感じております。
考えなければならないことが少ないプログラミング言語が、書きやすいプログラミング言語だと言えます。

・・・

気が向いたらエンジニア向けにもう少し詳しく書いたnoteを投稿し直すかもしれません。
何となく気分で書きなぐってみたnoteでした。

この記事が気に入ったらサポートをしてみませんか?