はてなキーワード: AWKとは
via Twitterオタが非オタの彼女にTwitter世界を軽く紹介するための10ユーザ
まあ、どのくらいの数のプログラミング言語オタがそういう彼女をゲットできるかは別にして、
「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、
その上で全く知らないプログラミング言語の世界とはなんなのか、ちょっとだけ好奇心持ってる」
ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、プログラミング言語のことを紹介するために
習得させるべき10言語を選んでみたいのだけれど。
(要は「脱オタクファッションガイド」の正反対版だな。彼女にプログラミングを布教するのではなく
相互のコミュニケーションの入口として)
あくまで「入口」なので、アーキテクチャに過度に依存するアセンブラ等の低級言語は避けたい。
あと、いくら基礎といってもBrainf*ckやUnlambdaのような難しすぎるものは避けたい。
ポール・グラハムが『Arc』は外せないと言っても、それはちょっとさすがになあ、と思う。
そういう感じ。
彼女の設定は
ロジカル度が高く、頭はけっこう良い
まあ、いきなりここかよとも思うけれど、「Java以前」を濃縮しきっていて、「Java以後」を決定づけたという点では
ただ、ここでオタトーク全開にしてしまうと、彼女との関係が崩れるかも。
この情報過多な言語について、どれだけさらりと、嫌味にならず濃すぎず、それでいて必要最小限の情報を彼女に
伝えられるかということは、オタ側の「真のコミュニケーション能力」の試験としてはいいタスクだろうと思う。
アレって典型的な「オタクが考える一般人に受け入れられそうなプログラミング言語(そうオタクが思い込んでいるだけ。実際は全然受け入れられない)」そのものという意見には半分賛成・半分反対なのだけれど、それを彼女にぶつけて確かめてみるには一番よさそうな素材なんじゃないのかな。
「プログラミング言語オタとしてはこの二つは“教育用言語”としていいと思うんだけど、率直に言ってどう?」って。
ある種の言語オタが持ってるラムダ計算への憧憬と、ACM監修の関数型言語的純粋さへのこだわりを
彼女に紹介するという意味ではいいなと思うのと、それに加えていかにも参照透過な
の二要素をはじめとして、オタ好きのする要素を言語にちりばめているのが、紹介してみたい理由。
たぶんこれを見た彼女は「Emacsだよね」と言ってくれるかもしれないが、そこが狙いといえば狙い。
この系譜の作品がその後続いていないこと、これがポール・グラハムの間では大人気になったこと、
ポールグラハムがウェブサービスの構築に使って、それがいろんなウェブサービス開発者にも影響しててもおかしくはなさそうなのに、
実際のウェブサービスでこういうのが使われないこと、なんかを非オタ彼女と話してみたいかな、という妄想的願望。
「やっぱりプログラミングはバッチ処理のためのものだよね」という話になったときに、そこで選ぶのは「awk」
でもいいのだけれど、そこでこっちを選んだのは、この言語にかけるラリーとdankogaiの思いが好きだから。
断腸の思いで延ばしに延ばしてそれでも2008年、っていうPerl 6のリリース予定日が、どうしても俺の心をつかんでしまうのは、
そのリリースというイベントへの諦めきれなさがいかにもオタ的だなあと思えてしまうから。
Perlのリリース延期を無駄だとは思わないし、拙速なリリースは無茶だろうとは思うけれど、一方でこれが
GuidoやMatzだったらきっちり予定通りリリースしてしまうだろうとも思う。
なのに、各所に頭下げて迷惑かけてリリースを延期してしまう、というあたり、どうしても
「自分の言語を形作ってきた哲学(TMTOWTDI)が捨てられないオタク」としては、たとえラリーがそういうキャラでなかったとしても、
親近感を禁じ得ない。言語自体の高評価と合わせて、そんなことを彼女に話してみたい。
今の若年層でPostscriptを直で書いたことのある人はそんなにいないと思うのだけれど、だから紹介してみたい。
PDFよりも前の段階で、DTPの哲学とか印刷技法とかはこの作品で頂点に達していたとも言えて、
こういうクオリティのプログラミング言語がエディタで書かれてたんだよ、というのは、
別に俺自身がなんらそこに貢献してなくとも、なんとなくプログラミング言語好きとしては不思議に誇らしいし、
いわゆるJava VMでしかスタック型言語を知らない彼女には見せてあげたいなと思う。
PHPの「HTMLに埋め込み可能な点」あるいは「RDBMSとの接続性」をオタとして教えたい、というお節介焼きから教える、ということではなくて。
「HTMLのテンプレートエンジンを作り続ける」的な感覚が言語オタには共通してあるのかなということを感じていて、
だからこそアメリカ版『Yahoo!』の開発言語はPHP以外ではあり得なかったとも思う。
「MとVとCを分離なんてできない」というオタの感覚が今日さらに強まっているとするなら、その「オタクの気分」の
源はPHPにあったんじゃないか、という、そんな理屈はかけらも口にせずに、
単純に楽しんでもらえるかどうかを見てみたい。
これは地雷だよなあ。地雷が火を噴くか否か、そこのスリルを味わってみたいなあ。
こういう述語論理風味の計算をこういうかたちで言語化して、それが非オタに受け入れられるか
気持ち悪さを誘発するか、というのを見てみたい。
9本まではあっさり決まったんだけど10本目は空白でもいいかな、などと思いつつ、便宜的にC++を選んだ。
Javaから始まってC++で終わるのもそれなりに収まりはいいだろうし、テンプレート以降のメタプログラミング時代
の先駆けとなった言語でもあるし、紹介する価値はあるのだろうけど、もっと他にいい言語がありそうな気もする。
というわけで、俺のこういう意図にそって、もっといい10本目はこんなのどうよ、というのがあったら
教えてください。
「駄目だこの増田は。俺がちゃんとしたリストを作ってやる」というのは大歓迎。
こういう試みそのものに関する意見も聞けたら嬉しい。
LV0 スクリプト言語?どうせAUTOEXEC.BATとかだろ?どうでもいいよ…
LV1 Perlはあんまり堅苦しくないな。ってかこのor dieって何なの?
LV2 流行の言語は綺麗だな。Rubyってのはなんか日本人多くて結構いいかも。
LV4 PHPも気が利くわりにドジっ子でかわいいな。LispとかSchemeとかHaskellもいい・・・
LV5 Pythonってワンライナー書けないのにWeb2.0言語扱いされててうぜぇ。Python死ね!
LV7 やべぇPython最高!Pythonとエディタさえあれば生きていける!
anond:20070218150508のあと、 機能変更、お知らせなど - はてなブックマーク日記 - 3/19(月) のはてなブックマークのメンテナンスについて とかあったので、変化を調べてみた。
% diff resolve.old resolve.txt | grep '[<>]' | sort < 125.206.202.66: mgw.hatena.ne.jp. < 61.196.246.69: b.hatena.ne.jp. < 61.196.246.70: b.hatena.ne.jp. > 59.106.108.71: mgw.hatena.ne.jp. > 59.106.108.72: b.hatena.ne.jp.
?Bの他、関連のmgwも。着々と移転は進む。次はcounter辺りだろうか、それとも?Gとかだろうか。何にせよ、?Dの移転が最大の山場でしょうな。
以下メモ。
% dig -f host.txt | grep '^[^;]' | awk '{print $5, $1}' | sort | uniq | sed 's/ /: /' > resolve.txt
host.txt
a.hatena.ne.jp anond.hatelabo.jp b.hatena.ne.jp counter.hatena.ne.jp d.hatena.ne.jp f.hatena.ne.jp g.hatena.ne.jp graph.hatena.ne.jp hatelabo.jp hatena.ne.jp i.hatena.ne.jp mail.hatelabo.jp map.hatena.ne.jp mgw.hatena.ne.jp mobile.hatena.ne.jp music.hatelabo.jp q.hatena.ne.jp r.hatena.ne.jp red.hatena.ne.jp red3.hatena.ne.jp rimo.tv ring.hatena.ne.jp screenshot.hatena.ne.jp search.hatena.ne.jp searchplus.hatelabo.jp serif.hatelabo.jp sns.hatelabo.jp sv.hatelabo.jp sv.hatena.ne.jp wordlink.hatelabo.jp world.hatelabo.jp www.hatelabo.jp www.hatena.ne.jp
resolve.txt
125.206.202.66: graph.hatena.ne.jp. 125.206.202.66: i.hatena.ne.jp. 125.206.202.66: map.hatena.ne.jp. 125.206.202.66: q.hatena.ne.jp. 125.206.202.82: search.hatena.ne.jp. 125.206.202.83: d.hatena.ne.jp. 216.52.184.230: dns2.name-services.com. 219.99.160.180: ns0.future-s.com. 219.99.160.181: ns1.future-s.com. 221.186.129.146: d.hatena.ne.jp. 221.186.129.147: counter.hatena.ne.jp. 221.186.129.147: ring.hatena.ne.jp. 221.186.129.148: g.hatena.ne.jp. 221.186.146.26: mail.hatelabo.jp. 221.186.146.26: sv.hatena.ne.jp. 221.186.146.27: hatena.ne.jp. 221.186.146.27: www.hatena.ne.jp. 221.186.146.28: a.hatena.ne.jp. 221.186.146.28: anond.hatelabo.jp. 221.186.146.28: hatelabo.jp. 221.186.146.28: music.hatelabo.jp. 221.186.146.28: searchplus.hatelabo.jp. 221.186.146.28: serif.hatelabo.jp. 221.186.146.28: sns.hatelabo.jp. 221.186.146.28: sv.hatelabo.jp. 221.186.146.28: wordlink.hatelabo.jp. 221.186.146.28: world.hatelabo.jp. 221.186.146.29: d.hatena.ne.jp. 59.106.108.67: red.hatena.ne.jp. 59.106.108.67: red3.hatena.ne.jp. 59.106.108.68: mobile.hatena.ne.jp. 59.106.108.69: f.hatena.ne.jp. 59.106.108.70: rimo.tv. 59.106.108.71: mgw.hatena.ne.jp. 59.106.108.72: b.hatena.ne.jp. 61.196.246.67: d.hatena.ne.jp. 61.196.246.68: r.hatena.ne.jp. 61.196.246.68: screenshot.hatena.ne.jp. 63.251.92.193: dns3.name-services.com. 64.74.96.242: dns4.name-services.com. 69.25.142.1: dns1.name-services.com. 70.42.37.1: dns5.name-services.com. dns1.name-services.com.: rimo.tv. dns2.name-services.com.: rimo.tv. dns3.name-services.com.: rimo.tv. dns4.name-services.com.: rimo.tv. dns5.name-services.com.: rimo.tv. ns0.future-s.com.: hatelabo.jp. ns0.future-s.com.: hatena.ne.jp. ns1.future-s.com.: hatelabo.jp. ns1.future-s.com.: hatena.ne.jp. sv.hatelabo.jp.: www.hatelabo.jp.