Skip to content

Instantly share code, notes, and snippets.

@esehara
Created April 29, 2012 01:03
Show Gist options
  • Save esehara/2523056 to your computer and use it in GitHub Desktop.
Save esehara/2523056 to your computer and use it in GitHub Desktop.
好きな言語とその理由

Python

 個人的には、一番好きな言語。好きな理由としては、Pythonが、 簡潔さと解法の一意性 を求めているからだ。どういうことかといえば、例えばPythonにはSwitchらしいものはない。Switchを実現したければ、elseifを連呼するしかない。そういう意味では、Pythonという言語は「不便な言語」ではある。しかし、その代償に、Pythonは「読みやすくなる」。こう考えてみよう。switchを連打したら、そもそも何の関数を比較しているのかわからなくなるでしょ?ただ、やはりPythonには不満がある。まず一つに、そのマルチバイト文字処理が未成熟であったこと。これは、日本に住んでいる私たちにとっては痛いことである。Python3になってから、文字列はUnicodeで扱うようになったため、この問題は解決する予定ではあるものの、しかしPythonよりもRubyが選ばれるのは、このへんの事情もあるように思う。

PHP

 嫌われ率No.1の言語ではあるが、個人的には嫌いではない。そして、それは個人的に使う限りにおいてだ。PHPの好きなところというのは、その節操の無さだ。必要な機能は何でも詰め込む。それは、機能が膨張し、汚くなりがちではあるものの、そういう割り切り方は嫌いではないし、その部分は周辺言語と比較して突き抜けている。また、ドキュメントがちゃんと日本語化されていたりという点も好印象。問題は、その緩さ。Warning出しまくっていようが、何だろうが、なんとなーく動いてしまう点とかその辺り。PHP5.3あたりになってから、Classなんかが書けるようになったのは良かった点ではないでしょうか。

JavaScript

 やはり嫌われ者。プロトタイプ・オブジェクトというものを使っているという言語であり、しかしそれが ブラウザで使われてしまった というのが混沌の始まり。過去には「世界で最も誤解された言語」と呼ばれているが、しかし現実では「世界で最も嫌われている言語」になりつつもある(昔はエロサイトでalertの出るアレでしょ?くらいのイメージ)。当初においては、ブラウザ上でゴリゴリにスクリプトを動かすなんて使い方は想定していなかっただろうし、大規模開発なんて念頭においてなかったから仕方ないんじゃないだろうかと思う。JavaScriptを穴埋めするCoffeeScriptなんかも開発され、あるいは他のSyntaxも容易されつつあり、そのJavaScriptの穴を回避しようと皆必死になっている。ChromeではDartsを実装すると宣言されたことも記憶に新しい。なにはともあれ、最も時代を生きている言語と言えそう。もしかしたら、LuaとJavaScriptの立場が交代だったらもう少しマシだったのかなとも思いつつ、よくわからない。

Clojure

 Lisp界の新星。Lispといえば、Scheme、あるいはemacsと呼ばれるエディタを拡張するためにしか使用されないアレでしょ?というイメージに風穴を開けた。というのも、 JavaVM上で動くLisp だからだし、そしてJavaの資産をそのまま使えてしまう。さらに、もう少し読みやすくするために、carとcdrのかわりにfirstなどを持ち込む蛮勇っぷりにも驚かされる。しかし、いわゆるLisperの人には、少し複雑な気持ちであるのもありそう。というのも、その読みやすさのためか、妥協のためか、()の他に[]などの括弧を持ち込んでおり、どちらかといえばJavaっぽくなったLispであり、S式の美学という感じではなくなっている。ただ、最初に覚えるLispとしては、比較的読みやすく、わかりやすいほうだとは思う。

Haskell

 好きだけど使いにくい。プログラミング言語ネタでは最早オチのような扱いを受けることもある、キャラ立ちしすぎた言語でもある。しかし、やはりHaskellは面白い。別にモナドなんていう小難しい話をしなくても、QuickCheckの発想は、他の言語に影響を与えている。また、関数型言語として、副作用を使わなかったり、型推論であったりなどの、そういう「コア」な部分に触れることができるというのも良さげな点ではある。しかし、にも関わらずやっぱりHaskellが書きにくいというか、採用するのが辛くなる点は、Haskellがあまりにも他の言語とのパラタイムが違いすぎて困難な点だろうと思う。しかし、O'Rallyからyesodの本が出るとかそういう話もあり、ちょっとした折に扱うのにはいい言語でもありそう。

Scala

 最近のお気に入り。何処かの教授が研究がてらに作っているためなのか、それとも言語設計的なセンスがいいのか、関数型の中では割と使いやすい。オブジェクト指向と関数型のパラタイムを融合するために作られている。そしてJavaVMでも動く。最近ではTwitterなどで使われていることから、実績もちゃくちゃくと上げているところもポイントが高い。Scalaが好きな点があるとするならば、自分としては「ここはこういう風に、関数型で書いた方がいいな、しかしこの部分はオブジェクト指向的に書いた方がよさそう」みたいな使い分けができる点だろう。一から関数型を使うのは努力がいるけれども、そういうゆるい感じで橋渡しするのはいいことではないでしょうか。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment