Today アクセスカウンター Yesterday アクセスカウンター

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

大阪 Prolog 会

Prologで大阪さんの事を論理的に考える集い
Canonical life - Prologで大阪さんの事を論理的に考える集いについて
イネムリネズミ日記 - Prologで大阪さんの事を論理的に考える集い参加記
埒を明ける日々 - I'M BACK..
リリカル☆Lisp開発日記 - SBCLとか色々
Yet Another Ranha - 大阪さんがPrologの事を知りたがっているようです

歳のせいか、もともと悪い記憶力が最近さらに悪くなり、お酒が入っていたこともあり、あんまり細かいことを覚えてないという。話題が多岐に渡り、終始僕は適当なことばかり言っていたと思います。まぁ、だいたい皆さん書いてくださっているので補足程度。

○ マイナー言語を流行らすにはどうすれば良いかという主題

まぁ、僕はそもそもこれは無理だと思っていて、学生の時はそれが仕事でしたから言語とかプログラミングの話とか、もともと嫌いじゃありませんし、このブログでもいろいろ書いてきたわけですが。

言語や理論が優れているから広まるってことは、ほぼ無いんじゃないかと思っています。極論を言えば、何かみんながハックしたくなるようなクールでキャッチーなシステムがあって、そのシステムをハックするためには言語 A が一番便利だから使う、という感じで広まっていくんじゃないですかねという、社会人らしく夢も希望も無い話で学生の夢を壊してきました (笑)

もちろん、あまりにも使いにくかったら広まらないし、そのシステム自体が廃れてしまうのでしょうが、それなりに頑張れば使えるぐらいの水準があれば、開拓者の人たちが頑張って使いやすくしたり、資料を揃えたりしてそれなりに誰でも使えるようなものになっていくんじゃないかと思います。

そういう意味では、特定のプラットフォームを持たない、というかそもそもそれがアイデンティティの Java がけっこうそれなりに広まったってのは、けっこうすごいんじゃないかと。まぁ、どこまで行っても、デスクトップ用途としては中途半端ですけど、組み込みやサーバサイドではけっこう良い線行ったのではないでしょうか (僕は仕事では C/C++/assembler しか使ってないのでよくわかりませんが)。Java で書かれたアプリなんて進んで使いたい人いないでしょうし、Java で書かれているからそのアプリ使いたい、ハックしたい、って思う人もいないと思います。

結論としては、自分が優れていると信じるマイナー言語を流行らせたかったら、その言語でみんなが使いたくなるようなクールなシステムを構築して、そこから攻めていくしか無いんじゃないかと。言語単体で、いくら論文書いても処理系書いてもライブラリ書いても、なかなか難しいんじゃないかと思います。もちろん、言語処理や理論の研究者などを否定するわけではありませんが。

UNIX の C/Perl、CP/M の BASIC、Windows の C++/C#、携帯電話の Java、emacs の elisp、ブラウザの javascript、iPhone のObjective-C、Rails の Ruby、レンタルサーバの PHP。流行った言語はみんな、まずシステムありきです。システムが無かったら、(一部の好事家以外には)使われてません。逆に、なんだかんだ文句言われつつも、システムが残っている限り使われ続けるでしょう。

あと、完結しているってことがけっこう重要なんじゃないかと思います。GCC の GNU C はかなり大きな拡張を C にしているにもかかわらず、GCC はシステム全体をブートストラップすることが可能だから許されるんですね。GCC が動くプラットフォームの Linux 自体が GNU C で書かれていて、その上で Linux も GCC も GCC でビルドすることができる。Linux は GNU C を完璧に理解できるコンパイラ、現状では intel C/C++ コンパイラと GCC 以外ではコンパイルできないという OS で、はっきりいって普通に考えればこんな特定のコンパイラにべったり依存するような OS はありえないわけですけど、GCC のエコシステムがあまりにも広大なので許されるわけですね。同様に MS も、OS とコンパイラのエコシステムを握っているから強いってのがあると思います。

Smalltalk は、言語だけでは駄目ということをちゃんとわかっていて、OS を丸ごと含むエコシステムとして最初から設計されているわけですけど、まぁ、UNIX と C は強いですよね。C/C++ の立場が絶対強者で、他の言語は主従関係にならざるをえない構造になっていると思います。

そういえば Haskell を流行らせるにはどうすれば良いかという話になって、ここはやはり教育がキーワードなんじゃないかという話に。

Haskell を使うと、論理的な思考能力を育てることができます!と、そろばんや公文式みたいにまずは子供から責めるわけですね。Haskell を使うと、我慢強い穏やかな精神力を育むことができて、キれにくい子供になるとか。C/C++ は機械に近い言語なので、人間にとってはストレスが大きい。使っている時の脳波の波形はストレスを感じている時の β 波であんまり良くないんだけど、Haskell を使っている時の脳波はきれいな α 波が出ていて脳がリラックスしていますね。C/C++ ばかり使ってると脳の発育が遅れて、情感に乏しい子供になってしまうとか。紙に C と書いてビーカーに張ると、悪い波動が出ているからできる水の結晶が汚くなるんだけど、Haskell と書くと綺麗な結晶ができますとか。Haskell で書かれたプログラムでエンコードした mp3 ファイルは音質劣化が抑えられるので、低ビットレートでも低音が良く聞こえますねとか。ピュアな関数型言語は、ピュアオーディオに向いてる言語なんですね。新たなビジネスチャンスにつながりそうです。

まぁ、そういうネタはどうでもいいとして、ikegami さん曰く、アスペルガー症候群の子供に Haskell で教育を行ったら良い結果が出た、みたいな研究を本当にやっている人もいるらしいです。

そんなこんなで、万事こんな感じのヨタ話を延々とみんなでやっていた会でした。面白かったです。

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

java を DIS って python を忘れない

ホワット・ア・ワンダフル・ワールド 大阪 Prolog 会http://alohakun.blog7.fc2.com/blog-entry-991.htmlUNIX の C/Perl、CP/M の BASIC、Windows の C++/C#、携帯電話の Java、emacs の elisp、ブラウザの javascript、iPhone のObjective-C、Rails の Ruby、レンタルサ?...

コメント

Secret

>結論としては、自分が優れていると信じるマイナー言語を流行らせたかったら、その言語でみんなが使いたくなるようなクールなシステムを構築して、そこから攻めていくしか無いんじゃないかと。

そうですね。
実は論をもう一歩進めることができると思っています。
まあ、専門的な話はあんま分かんないんですが、過去、「プログラミング素人」まで巻き込んで「流行った」言語って僕が思い付く限り、2つしかないんです。
それはBASICとPerlですよね。この二つには共通点があって、BASICはほぼ「ゲームを書く為の言語」、そしてPerlは「掲示板を書く為の言語」として認識されていた、って事です。
例えば、「CGIはPerlと言う言語で作られているそうですが……。」と宣うプログラミング初心者に対して「CGIは必ずしもPerlじゃなくても……」と教える有識者、って構図は良く見かけますが、真実がどうあれ、「PerlはCGIを書くための言語である」って認識されている、って事が極めて重要なんじゃないのか、とか思うんですよね。
逆説的に言うと、「汎用言語は流行らない」んです(笑)。多分これがあんまプログラミングの玄人には知られていない盲点なんじゃないか、と思っています。逆に「何かに特化されている」って勘違いされている言語の方が流行る。従って、「××言語入門」とか言う書籍を買ったとして、その前書きに「この言語は汎用言語で……」とか書かれている言語はまず流行りません(笑)。その時点で「失敗が約束されている」って事だと思います。

多分、昔のBASICのゲーム本よろしく、「Prologで作るAI付き美少女ゲーム作成入門」なんて本が一冊出れば随分状況変わる、とか思うんですけどね(笑)。「Haskellで作るシューティングゲーム入門」とか(笑)。まあ、出版社がそう言う企画を受け入れるかどうかは知りませんが(笑)、割にそう言う感じで計算機科学的には「極めてクダらない」本が一冊でも出せれば、抽象的な話するより状況が一変するんじゃないのかな、と思います。

Re: タイトルなし

なるほど、面白いコメントありがとうございます。

一度入門した言語は、その後もずっと使う人が多いでしょうし、他の言語に乗り換える場合には、さらに自分のやりたいことに特化していて便利な言語じゃないと乗り換えのインセンティブにはなりませんしね。汎用言語は常に不利だと思います。

逆に言うと、「真の汎用言語」 は、プログラミングという行為自体が好きな人(笑)しか使わないのかもしれませんね w

ほとんどの人は、自分の目的さえ果たせればそれで良いわけですし、汎用言語である必要は無いわけです。

もちろん、より良いやり方を模索する場合には、いろいろな切り口で抽象化された言語がたくさんあった方が有用ですし、だんだんとプログラムが大規模になってくれば、様々な問題領域にまたがるようになりますから、そうなって初めて汎用言語が有用になってくるのでしょうね。

まぁ、汎用言語と行っても、10 得ナイフみたいに全部中途半端なのもあれば、プロ用の高級ツール(大工さんの道具箱や、シェフの調理道具) まで、いろいろありますけどね。
プロフィール
  • Author:あろは (alohakun)
  • 京都のデバッガベンダーに勤めるアラサー会社員。

    本ブログの内容は、あくまでも個人的な感想や意見であり、会社の意見を代表するものでは一切ありません。

    最近は会社の方のブログをメインに更新しています。

    KMC Staff Blog

    連絡先 : alohakun ___at___ gmail.com
    mixi : http://mixi.jp/show_friend.pl?id=182927
    twitter : http://twitter.com/alohakun













    あわせて読みたい


    この日記のはてなブックマーク数


    スカウター : ホワット・ア・ワンダフル・ワールド


    Map
FC2カウンター
ブロとも申請フォーム

この人とブロともになる

最近のコメント
リンク
最近のトラックバック
人生の残り日数
日本人男性の平均寿命は 28700日.
RSSフィード
カテゴリー
  1. RSSリーダー