はてなキーワード: ADAとは
タイトルの通り、です。
Haskelをちょっと触ってみました。
感触としては……ちょっとメンドくせえ言語だな、と(笑)。
これは、アレですね。同系の「静的型付け関数型言語」だと、OCamlの方がラクかな?
少なくとも「表記法」って意味ではOCamlの方に軍配が上がるかも。
感じた事は次の3点。
いや、ホントそんな感じです(笑)。
いきなり++とか書かれていて「何じゃそりゃ?」とか思いました。Cかこれは、みたいな(笑)。
インタプリタもPrelude>とかから書く、と言う「ちょっとワケの分からなさ」です。
(もっとも、EmacsでC-cC-lすると自動添付されますが)
式の最後はリターンだから二行以上書けないとか。
if〜elseじゃなくってif |だとか。
何だか良く分からん様式が多いです。
他にも「再定義」とか素直に書けないんですよね。モジュールもないし、type class宣言とか出てきて。多重定義ばかりで
パっと見で「コードの流れが把握し辛い」ような気がしました。
「関数型」とか言いながら中核は「パターンマッチング」があるような気がします。
つまり、実態はPrologにより近いのでは。
例えば、型推論の為、本来だったら「変数の型宣言」が必要な筈なんかないんですが、実際はほとんどの場合「変数の型宣言」を行うらしい。
どう考えても内部的には「Prolog」っぽさがどっかにある、んですよね。
まあ、「Prologが好き」って人には向いてるかもしれません。
2.のPrologもそうなんですけど、どっちかと言うと「ヨーロッパ系プログラミング言語の歴史」の正統性狙って
んじゃねえのか、的なニュアンスが垣間見れます(笑)。
と言うか、ヨーロッパ文化至上主義なのか(笑)。
例えば、コメントを
-- これはコメントだよ〜〜ん
{- これはコメントだよ〜〜ん -}
って書くのはあんま見かけないし、「何じゃこりゃ?」って思う可能性が多いような気がします(笑)。
まあ、実は上記のコメント形式 --、ってEiffelのものですよね(笑)。Eiffelもフランス製だと思いますが、いずれにせよヨーロッパ生まれです。
「腐れアメリカ型の文化に迎合するか!!!」
的なのちょっと見えてやだなあ(苦笑)。だってホントに{- -}なんてコメント形式ってHaskelくらいしかねえだろ(笑)。
まあ、EmacsのM-;だったらどんな形式でも苦にはなんないんですけどね。一方、普通のテキストエディタだったらメンド臭いハメに陥るかも。
そんなのが雑感です。
少なくとも「ネットでちょろっと見て」遊ぶには敷居が高い言語のような気がします。キチンとした本を購入して勉強すべき、って感じがします。
かつ、「実用的な関数型言語をやりたい」のなら、多分OCaml選択した方がストレスは少ないかも。
Haskelファンには申し訳ないですが。
元ネタがあまりにアレだったので、OCaml と Haskell を入れ替えてみた。もはや OCaml 狂信者のたわごとにしか見えない。
-- がコメントなのは Ada が元だと思うが、「アメリカ製」なので採用しなかった。
文中明らかにおかしい所は元もいまいちおかしい。
「私、プログラミング好きだよ」と言うプログラマに、好きな言語や開発ツールを聞いて「C/C++/C#」の名前があがってくるとげんなりする。心底がっかりする。C/C++/C#は俺も大好きだし、素晴らしい曲開発環境だと思うけども、臆面も無く低レベルプログラミング言語を挙げる人のほとんどが、それ以外の低レベルプログラミング言語を知らないんだもの。それどころか、IA-32の仕様書があることすら知らないし、興味が無い。せめて4004の基本構造くらい理解してから言ってもらえませんかね。
要するに「プログラミングを理解する知識の深い私」を演出するために、いちばんてっとり早くて優等生な回答なんですよね。C/C++/C#は。あと、アセンブリ言語や、機械語もこのカテゴリに入る。
確かにUnixを記述したC言語として鉄板なことは間違いないけど、本当にプログラミングが好きならもっとたくさんの名前が挙がってもいいと思う。もっと書けよ!インテル系以外も!最近のも!「C」「アセンブラ」「MMX」「SSE」「3DNow!」のコンボはもう飽きました。
1度だけ悲しきAdaという回答が返ってきて、土下座せんばかりに感動したことがあります。あ…この方、本当にプログラミングを趣味でやってるんだ…と思ったよ。
ごめんなさい、僕、嘘をつきました。
だいたい、セグメンテーションフォルトを起こすような言語は嫌い
Haskelわけわかんないし
Java重苦しいし、いちいちclass Hogehoge { public static void main() { ... } }書くのがめんどくさいし、API多すぎ
オブジェクト指向したくなるような複雑なプログラムは最初から考えない(作れない)
言語が提供するGUIのツールはOSとは別に独自のレイヤー、世界感を持っててとっつきにくい
マルチスレッド、排他処理を扱うようなプログラムは脳味噌がついて行かないので書かない
Ruby、、、そもそもLL言語で大規模でオブジェクト指向なプログラム書きたくない。小規模ならオブジェクト指向要らない。
俺のマシンで実行できないAda/Basic/Fortran/Pascal その他いろいろ
VHDL、Verilog?FPGAやゲートアレイなんて持ってない、持ちたくない(苦手だもん)
HTML、XMLは日本語とタグが入り乱れるので、そのつど日本語入力の切替えが死ぬほど嫌になった。
だから、HTMLとXMLは全部手入力なんて真似は絶対してやらねえ。
Flex(Action Script)はコンパイラがJavaで実装されてて重すぎる。(シェルを使えばまし)
JavaScriptはブラウザごとの挙動の違いを吸収しきれる自身が無いので使わない。
1プログラムにつき、(コメント含めて)250行以上書きたくない
(本文には触ったこともない言語を思い込みで罵倒しているなど、嘘、おおげさ、紛らわしいが多数混入しています。それが全部わかった貴方はプログラミング言語マスターです。)
http://www.geekpage.jp/blog/?id=2006/12/13
プログラミング言語ヒエラルキーにおいて、上位が下位に対してどう見下してるのかを書いてみた。詳しくない言語も無理して調べながら書いてある。あと、他言語に理解の無い人みたいで生々しいかと思って、刺激的かつあまり真っ当でない内容ばっかにしてみたよ!((FORTRAN から Java に「GO TO も実装されてないんですか?」とかそういう、馬鹿にすることを目的とした偏狭で的外れな発言ってことだよ!))((ここにある中では、C# に多重継承が無いことを馬鹿にする C++ プログラマーが真っ当でない指摘のわかりやすい例かな))
みんなが普段どういう不当な見下しをしてるかも教えてね!
「C++ の難解な仕様と戦うぐらいなら C で関数ポインタを使ったオブジェクト指向の方がスマートだね」
「STL は糞」
「多重継承したくなったらどうするの?」
「CPAN 見たって C でコア部分を書いてるライブラリばっかじゃん」
「なんでわざわざ use strict なんて書かなきゃいけないの」
「Python って明示的に object を継承した場合としなかった場合で挙動が違うって本当なの?」
「ライブラリ環境が全然整備されてなくて最悪じゃん。C や C++ で書かれたライブラリをラップしてるだけのはずなのに機能が減りまくってるのも多いし」
「簡単な処理をコピペで実装してるだけだね」
「As とか書いてて混乱しない?」
「C# があるのにまだ使ってるんだ」
「冗長でわかりやすいですね(笑)」
「DIVISION の概念って本気で言ってるんですか?」
「記述がわかりづらいね」
「ペンタゴンで使われてるだけじゃん」
「ガベージコレクタが無い……?」(あるらしいです><)
「昔 Apple で使われてただけじゃん」
「Del…phi…?」
「コンパイルも実行も遅いらしいけど何に使うんですか?」
「処理も記述できないのに何言ってるの」