「Haskell」を含む日記 RSS

はてなキーワード: Haskellとは

2010-03-04

RubySchemeより優れているたった一つの理由

Rubyは、純粋オブジェクト指向と評されるHaskellの直系と遇されるのが常だが、私の見解は、むしろマクロアセンブラにより近い、というものなのだ。Rubyにおいて継続すなわちcontinuationの使用はもはや常態とも言えるが、一方のSchemeでは、Algol的な例外機構の残滓により、Unixシグナルに留まっている。

制御構造のみならず、データ構造の観点からも、RubySchemeよりはるかにポストモダンと言えるだろう。淵源へと遡れば、マクロアセンブラPascalの対立の図式へと導かれる。私は、Schemeデータ構造は、唾棄すべき要因を含むという思いを抱く誘惑に抗いかねるのだ。そうであるならば、民主党政権交代は失敗であったと結論せざるを得ない。

もとより、アインシュタイン相対性理論からも、明らかにRubyに軍配が上がるだろう。SchemeSchemeたらしめているブロックスコープ構造にしろ、今となっては決して珍しいものとは言えない。いやむしろ、真に純粋関数型を指向するなら、Schemeへの共用体の導入をこそ今真摯に検討すべきなのだ。演算子オーバーロードですべての問題が解決するわけではない。この実存的な課題をただ黙殺しているSchemeに、私は異議を申し立てる。

http://anond.hatelabo.jp/20100304172240

俺がいくつか試したときは libxml2 が最速だった

一番遅かったのが hxt (pure Haskell での xml パーサww)

パース対象の性質で結果は大きく変ると思うから、用途毎にベンチマークするようにしてる

2010-02-23

PythonAPI検索のしかたがよくわからない

最初 Python で、Haskell における dropWhile のような関数があるかを調べようとした。

これはたまたま、Pythonにも同名の関数があるので (itertools.dropwhile) google検索すればよかった。

しかし一般に「述語関数が真になるまで、リストの先頭から順番に要素を捨てていく」関数はどうやって探せばいいのだろうか?

Haskell なら、述語関数リストからリストへの関数なので、(a -> Bool) -> [a] -> [a] を hoogle (http://www.haskell.org/hoogle/) で検索する。takeWhile dropWhile filter の3つが見付かり、それぞれ説明を見ればいい。

Python ではどうやって探すのがはやいのか?Javaなら?C++なら?

ちょっとしたプログラムPython で書くとこんなところでイライラしてしまって結局 Haskell を使ってしまう。

2009-12-20

ビジネス・生活-1

日本でしか生きていけないと将来破滅するリスクがあるので、世界中どこでも生きていける戦略のご紹介

あなたは、日本依存症にかかっていませんか?

日本依存症とは、日本でしか仕事を得られず、

日本でしか生活ができなくなる、危険病気です。

日本依存症は、国家依存症の一種であり、会社依存症とよく似ています。

会社依存症の恐ろしさとその回避策

会社依存症とは、ある特定の会社でしか通用しないスキルばかり蓄積して、他の会社では通用しない人材になってしまう病気です。

会社依存症にかかると、その会社経営が悪化して、どんどん待遇が悪くなり、給料を下げられ、「このままここにいても、少しもいいことがないまま年を取っていくだけ」という状況になっても、ひたすらその会社にしがみつくしかなくなります。

また、会社の都合で延々とつまらない仕事をさせられたり、いまいち納得のいかない降格や減給をされても、なかなか拒否しにくくなります。

上司や同僚と相性が合わず、人間関係がこじれてギスギスした雰囲気になり、毎日会社へ行くのが憂鬱になっても、そこに居続けるしかありません。

なぜなら、その会社を辞めると、ほかに行くところがなくなり、路頭に迷ってしまうからです。

このため、このことがよく分かっているエンジニアなどは、その会社の独自製品や独自環境でしか通用しないスキルしかたまらないような仕事をできるだけ避けるようにします。

そして、「広く普及しており、かつ中長期的に需要があり、供給が不足ぎみで、かつ陳腐化しにくいスキル」を戦略的に蓄積します。

たとえば、以下のようなものが考えられます。

・要求分析、要求仕様定義システムアーキテクチャ設計RDBスキーマ設計サーバの負荷分散設計、各種サーバパフォーマンス解析・チューニングデザインパターンマルチスレッドプログラミングシステム管理ネットワーク管理

マネージメントプロデューサ・デザイナ・経営者・営業・顧客との交渉スキルや連係プレースキル

普遍性の高いコンピュータサイエンスの基礎

UnixRDB正規表現JavaPerlTCP/IP.NETC#

日本にはたくさんの会社があり、それぞれが浮き沈みを繰り返しています。

いまいる会社が今後もずっと浮いたままだという保証はありません。

一つの会社依存しきると、その会社が沈むとき自分まで一緒に沈んでしまい、酷い目に会います。

いまいる会社が沈みそうになったら早めに別の会社へ移れるように準備しておくべきではないでしょうか。

国家依存する危険

国家に対しても同じことが言えます。

政府は全ての国民幸せにするような政策を実行するべきですが、必ずそれに成功するとは限りません。

ときに間違った政策を行い、多くの犠牲者を出すこともあります。しかも、その犠牲者を救済するための政策が実行されないこともあります。

もっと最悪なことに、間違った政策で、国全体が沈んでしまうようなことすらあります。

もちろん、そうならないように、われわれは選挙で正しい政策を実行してくれる政治家投票すべきですが、常に正しい政策を実行してくれる政治家自分選挙区から立候補してくれるとは限らず、自分以外の人々が常に正しい政策を実行してくれる政治家投票してくれるとも限らないというのが、世の中の現実です。

だから、どんなに自分が正しい政治行動を取っていても、おかしな政策が実行され、自分の将来が危うくなるリスクは常に存在します。

たとえば、金持ちばかりが得をし、平均的な労働者搾取される最悪の格差社会になってしまうかもしれません。

あるいは逆に、今後スキルアップし、キャリアアップし、実力を身につけて高い年収をゲットしようと思っているのに、高額所得者所得税が大増税されて、酷い搾取に苦しむようになるかも知れません。

あるいは、少子化対策で、実質的独身税をかけられたのと同じような状態になり、結婚するつもりも子供を作るつもりもない人たちの生活の質がかなり落ちるかも知れません。

あるいは、国の医療システムが疲弊しまくって、まともな医療サービスを受けられなくなるかも知れません。あるいは、まともな治療を受けようとしたら、恐ろしく高い料金を徴収されるようになってしまうかもしれません。

あるいは、地方格差を埋めるため、都市部の住民を徹底的に搾取し、地方にじゃんじゃんばらまくような政治が行われるかもしれません。そうすると、田舎に住む人間の暮らしはよくなるかもしれませんが、今後も都市に住み続けるつもりの人間の暮らしの質が大きく低下するかも知れません。

あるいは、非正規雇用を減らし正社員を増やすという名目で、おかしな規制がかけられ、予期せぬ副作用が出て逆に多くの人が職を失うことになるかも知れません。余波で、自分まで失職するかもしれません。残された正社員自分に酷いしわ寄せが来るかも知れません。

労働者保護消費者保護という名目で、過剰に企業の手足を縛るような規制がかけられて、企業の活動が阻害されて経済が悪化したり、企業がどんどん日本から逃げ出すかも知れません。雇用が減り、治安が悪化し、日本が住みにくい国になるかも知れません。

要するに、投資において、全ての資産を一点がけするのが危険投資戦略であるように、自分の生活基盤となる国家を一カ所だけに限定してしまうのも、極めて危険な賭なのです。

今までは日本世界一豊かな国だったので、

この国にずっと住み続けるのが一番賢い戦略でした。

しかし状況は変わりました。

いまや日本よりも豊かな国や都市がどんどん生まれつつあります。

日本などよりも、はるかに先行きの明るい国や都市がたくさんあります。

本来、この惑星には、たくさんの国家があり、それぞれ浮き沈みを繰り返しています。

いまいる国家が、今後もずっと浮いたままだという保証はありません。

一つの国家依存しすぎると、その国家が沈んでいくとき、酷い目に会います。

いまいる国家が沈みそうになったら、早めに別の国家に移れるように、準備しておくべきではないでしょうか。*1

国家依存症愛国心は別の話

こういうことを言うと、「おまえに愛国心はないのか?」と言い出す人間が時々いますが、依存症愛国心とは別の話です。

これは、結婚において、夫を愛していることと、夫に依存することが異なるのと同じことです。

経済的にも精神的にも自立していることと、夫を愛することは両立します。

夫婦仲は冷め切っていて、夫の暴力に怯えながら暮らしているにもかかわらず、夫に経済的に依存しているためにガマンし続けているような状態は、とても健全だとは言えません。

むしろ、特定の国にまったく依存していないにもかかわらず、その国を愛し、その国に貢献することこそ、純粋に打算抜きの愛国的な行為なのではないでしょうか。

そもそも、「いろんな異性とつきあってみて、そのなかから最高のパートナーを見つけ出して結婚する」というのは、少しもおかしなことではありません。

「1人の異性しか知らず、最初につきあった異性と一生添い遂げなければならない」というのはいかにも古めかしい道徳観念です。これは国家についても同じことです。たまたま日本に生まれたからと言って、日本と一生添い遂げなければならないということはありません。

むしろ、さまざまな国に住んでみて、そのなかから、自分にいちばんあった国に落ち着き、添い遂げる、という人生も十分にありなのではないでしょうか。

日本以外にも快適に暮らせる国や都市はたくさんある

日本以外で暮らしたことのない人々の中には、日本だけが世界で唯一暮らしやすい場所で、日本以外には暮らしやすい場所などないと信じて疑わない人もときどきいるようですが、そんなことは決してありません。

むしろ、日本よりもはるかに、晴天の日が多く、気候が温暖で、からっとさわやかで、毎日気持ちよく暮らせる国や地域がたくさんあります。

食べ物も美味しく、人々も気持ちよく、街の各種施設も充実しており、遊び場所もたくさんある快適な都市世界中にたくさんあります。

どんなところでも、けっこう住めば都なのです。

また、日本以外の国は治安が悪くて暮らしにくいという偏見を持っている人もいますが、どんな国でも、きちんとした安全対策を講じ、危険地域に近寄らないようにすれば、それなりに安全に快適にくらせるものです。

それに、どうせネット環境さえあれば、世界中どこでも、twittertumblrmixiで遊べるし、ブログコメント欄クネクネすることもできるし、2ちゃんでだらだら過ごすことも出来るし、エロ画像ダウンロードすることもできるし、はてブ脊髄反射的なコメントを付けることもできるし、はてなスターを連打しまくって顰蹙をかうこともできるのです。

「わたしは(この国に生まれたというより)この惑星に生まれたのだ」という感覚を持ちながら生きるというのは、広々とした感じがして、なかなか気持ちの良いものです。

せっかくこの美しい惑星に生まれたのに、日本という小さな小さな島国に引きこもったまま一生を終えるのは、じつにもったいないことではないかと思えてきます。

依存症からの脱出は難しい

ギャンブル依存症アルコール依存症買い物依存症恋愛依存症セックス依存症、たいていの○○依存症は、そこから抜け出すのに苦労するように、日本依存症も、一度それにかかると、そこから抜け出すのにかなり苦労します。

簡単に日本依存症を抜け出す方法などありません。

また、タバコ依存症から抜け出すために、さまざまな方法があるように、日本依存症から抜け出すにも、さまざまな方法があります。

資産運用、または、プチ資産運用による脱日本依存

日本依存症から抜け出す一番効果的な方法は、実は、英語力をアップすることではなく、日本の外でも安定した収入源を得られるようにすることです。(もちろん、最低限の英語力は必要ですが)

特定の国家依存しない収入源を確保するわけです。

これに一番効果的なのが、資産運用で暮らせるようにすることです。

利回りのよい債権株式自分資産分散投資し、運用することは、どこの国に居住していてもできます。

日本国債株式資産運用していたとしても、日本に住んでいなければ運用できないということはありません。世界中どこに住んでいても、日本国債株式資産運用することは可能です。

それどころか、そもそも、日本国債日本株式資産運用しなければならないということはありません。

むしろ、全資産を円ベースに一点がけしてしまうと、今後円安が進んだときに、自分資産が大きく目減りしてしまうというリスクを抱え込むことになります。

資産は、全世界分散投資しておいた方が安全だし、世界全体の経済は、多少の波はあるものの、中長期的にはつねに成長し続けているので、正しくポートフォリオを組んで、世界中分散投資しておけば、それほどひどいことにはなりません。

だから、いったん資産運用で暮らせるだけの資産を蓄積してしまえば、日本依存症からの脱却はかなり容易になります。

ここで、「日本キャピタルゲイン課税の大増税を行ったら、資産運用では暮らしていけなくなるのではないか?」という疑問がわく人もいるでしょうが、そうでもありません。

まず、税金の徴収には、属人主義と属地主義の二つの方式があります。

属人主義とは、その人間国籍のある国に税金を納めること。

属地主義とは、その人間が居住している国に税金を納めること。

日本属地主義なので、自分が居住している国や地域税金を納めることになっています。

このため、日本キャピタルゲイン課税の大増税が行われたとしても、海外で暮らしている限り、影響を被ることはありません。*2

現在、属人主義を採用しているのは、アメリカフィリピンぐらいなもので、極めて例外的なケースです。

ですから、今後日本が属人主義に変更するリスクは、とても低いと思われます。

また、万一、日本が属人主義に切り換えたとしても、ある程度の資産を持つ人間国籍を与えてくれる国は、けっこうあります。

日本が属人主義に切り換え、さらにきわめて重いキャピタルゲイン課税をかけてきたら、単に国籍を切り換えればいいことです。

ただ、問題は、資産運用で暮らせるようになるほどの資産を蓄積することが難しい、ということです。

そのため、当面は、収入の全てを資産運用だけで稼ぎ出すのではなく、収入の一部だけでも資産運用で稼ぎ出すような状態を目指してみてはどうでしょうか。

資産運用というより、プチ資産運用です。

そうすると、日本がヤバくなったので、脱出して海外で職を得たのはいいが、最初のうちはまだ英語にも不慣れで、十分な収入を得られないというようなケースでも対応できます。

世界標準のITスキルによる脱日本依存

たとえば、前述のUnixWebRDBJavaPerl.NETC#など、世界中に普及している技術の場合、そのスキルを身につけることで、日本依存から抜け出すことができます。

また、これらに関連する要求仕様定義オブジェクト設計技術デザインパターンを適切に使いこなしたクラス設計プロジェクトマネージメントスケジュール管理なども、特定の国家依存しないスキルです。

これらのスキルを身につけたITエンジニアは、さまざまな国で職を得ることが出来ます。

実際、ボクの知り合いでも海外で働いているプログラマーがいます。

むしろ、日本よりも快適に働いているようです。

もちろん、これらの技術は、会社依存症から脱却するための技術としても有効で、きわめて安全性の高い技術だと言えます。

これらの標準的なITスキルは、このように、会社国家を超越して有効ですが、それ以上に驚きなのは、かなりの長い時間をも超越する力を持っているということです。

たとえば、unixの基本アーキテクチャはボクが知っているだけでも十数年、ほとんど変わってません。マルチスレッドプログラミングデザインパターンも十数年前に身につけたスキルは、かなりの部分、いまでもそのまま役に立ちます。はるか昔に覚えた、クロージャ再帰を使ったさまざまなプログラミングテクニックも、RDBスキーマ設計スキルも、ほとんどが、いまだに現役です。

TCPUDPIPHTTPSMTPPOPなどのプロトコル類もいまだに基本はほとんど変わりません。新しく登場した.NETC#にしても、過去にマスターしたスキルにほんのちょっと上積みしたぐらいのわずかな薄皮でしかなく、いままで蓄積した基本スキルはそのまま通用します。Haskellのような関数型言語ですら、似たようなコンセプトのプログラミングアーキテクチャは昔からあり、十数年前にマスターした技術の延長線上でなんなくマスターできます。

このように、長期的に安定した技術スキルを選んで身につけるようにすれば、会社国家時間を超えて、安定した収入源を確保できるのです。

ただ、注意しなければならないのは人材の需給バランスです。とくに、インドや旧共産圏からのプログラマの大量供給は要注意です。

一方で、ヨーロッパBRICsVISTAなど、世界中で急速に経済が発達しており、ITエンジニア需要が今後も全世界的に巨大化し続けるのは確実です。

ここでのポイントは、下級エンジニアや中級エンジニアは、需要はそれほど拡大しそうにないのに、供給は膨大になると思われるので、リスクが大きいということです。

つまり、下級エンジニアや中級エンジニアの場合、海外に行くと、日本にいたとき以上に悲惨になる可能性があります。安易に日本から出て行くべきではないでしょう。

一方で、上級エンジニア技術分野にもよりますが、今後、世界中で爆発的に需要が拡大することが見込まれていますが、供給が不足する可能性は十分に考えられます。

従って、自分が今後上級エンジニアになる可能性があると考えている人たちは、この戦略に沿って日本依存症から脱却しておいたほうが良い可能性が高いです。

あと、もう一つ考慮すべき点は、上級エンジニアになるような人は生産性が高いため、今後、高額所得者になる可能性があるということです。

現在日本では、格差是正の機運が大きく盛り上がっています。

今後、この機運の盛り上がりに押されて、高額所得者を狙い打ちする形で大増税が行われ、酷い搾取の対象にされるリスクもあります。

このリスクに対する保険という意味でも、早めに日本依存症治療し、いつでも仕事と生活の場を海外に移せるようにしておいた方が安全かもしれません。

●スモールビジネスによる脱日本依存

日本人海外で暮らしてみると、さまざまな小さなニッチビジネスのチャンスに気がつくことがあります。

たとえば、日本にはあって当たり前なのに、その国にはない商品やサービス

それは、日本のやり方を現地方式にアレンジすれば、それなりに繁盛する商売ができるかもしれません。

あるいは逆に、その国のおもしろい商品やサービスで、アレンジすれば日本でもウケそうなもの。

もしくは、現地の安い人件費を利用して、何かを作らせ、日本に持ち込むというパターンもあるでしょう。

実際、ネパールに小さな工場をもっていて、そこで自分デザインした服を作らせ、日本に輸入して販売しているという女性に会ったことがあります。

こういうビジネスネタをみつけたとき、スモールビジネスを興すスキルを持っていると、そのチャンスを活かして、その国で商売をはじめることができたりします。

とくに、最近急速に豊かになったアジアの国々では、日本がかなりブランドになっています。

とくに富裕層は、日本のさまざまな質の高い品々やサービスを求め、日本の産物に信仰のようなものを抱いています。

これをうまく利用することで、いろいろなニッチビジネスを作り出すことができるかもしれません。

スモールビジネススキルとは、小さな会社向けのマーケティングマネージメント、経理などのスキルです。

たとえば、どんな小さなビジネスでも、どんな商品を、どんな顧客に売るのか、そのために、商品にはどのような魅力がなければならないのか、顧客は、どういう理由でその商品にお金を払うのか、どのようにして利益が出る構造になっているのか、などのビジネスモデルを組み立てなければなりません。

そして、いざ、ビジネスプランが出来たら、場合によっては人を雇い、契約を結び、信頼関係を作り上げ、法律に則って取引しなければなりません。関係者全員が気分良く仕事できるように、win-win構造を作り出す必要があります。

また、さまざまな法律を調べ、その法律に則ってビジネスを運営する必要があります。

さらに、会社を設立し、会計ソフトで帳簿を付け、経理と資金の管理をする必要があります。

また、予算計画を立て、融資なり出資なりで資金を調達する必要もあります。

こういう小さなビジネスを最小限の規模ではじめてみて、いざ、顧客の反応が上々だったら、しだいに規模を拡大していけばいいのです。

思ったより反応が悪ければ、早期に撤退するか、あるいは、やり方を変えて再度トライしてみたりすればいいでしょう。

そして、スモールビジネス醍醐味は、たまたま大ヒットしたときのうまみです。

日本サラリーマンの頂点とも言える、上場企業社長年収でも、たかだか4000万円にしかなりません。

これに比べ、スモールビジネスをヒットさせた場合、実質的年収1億円を優に越えてしまうということは、それほど珍しくないのです。

実際、ぼくの知り合いにもそういう人がいます。

「たかが自営業」とばかにできるようなもんでもないのです。

自営業は、あたると凄いんです。

●共通して必要な日本脱出アイテム

どのようなモデル日本依存を脱却するのであれ、共通して必要な Permalink | 記事への反応(0) | 22:10

2009-11-13

来年目標

DQNになる。

勉強ばっかしてて潰した時間を取り戻す。

HaskellScalaもこの際後回しでいい。

2009-11-01

http://anond.hatelabo.jp/20091028192444

元増田の苦悩は、日本語では、断片的なTipやリファレンスはあっても、

市販されている書籍のような情報インターネットでは手に入らないということに原因があると思う。

英語だと、市販されている本がまるまるネットで公開されていることがある。

例えば、

SICP http://mitpress.mit.edu/sicp/

Real World Haskell http://book.realworldhaskell.org/read/

Practical Common Lisp http://gigamonkeys.com/book/

How to design programs http://www.htdp.org/

Thinking in C++ 2nd Edition http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

Thinking in Java, 3rd Edition http://www.mindview.net/Books/TIJ/

GNU Autoconf, Automake, and Libtool http://sources.redhat.com/autobook/

Managing Projects with GNU Make, Third Edition http://oreilly.com/catalog/make3/book/index.csp

Dive Into Python http://www.diveintopython.org/

Programming Ruby The Pragmatic Programmer's Guide 1st edition http://ruby-doc.org/docs/ProgrammingRuby/

On Lisp http://www.paulgraham.com/onlisp.html

The Art of Unix Programming http://www.faqs.org/docs/artu/

BRUCE PERENS’OPEN SOURCE SERIES http://www.informit.com/promotions/promotion.aspx?promo=135563

O'Reilly Open Books Project http://oreilly.com/openbook/

Creating Applications with Mozilla http://books.mozdev.org/

プログラマ向け青空文庫のようなサイトを誰か作ってほしい。

2009-08-30

http://anond.hatelabo.jp/20090830143255

その四つ全部覚えるなら、どれから入ってもあんまり変わらないかな。などと暴言を吐いてみる。

それよりも、脳が柔らかいうちに関数型言語を一つ(haskellでもlispでも)やっておくといいよ。

あれは早めに出会って考え方をマスターした方がいい。

考え方の幅が広がるというか、違う方向から物を見れるようになる。

2009-06-09

http://anond.hatelabo.jp/20090609174454

俺もHaskell触ってみようかと思ってたんだけど、その話聞くと萎えるな…。

プログラミング言語なんて実用してナンボだから!ヨーロッパの趣とかどうでもいいから!

OCamlってのは全然知らないなあ。いっそのことLispでもやるかなあ。

2009-02-22

もしも、あの言語で駅の券売機を作ったら

http://anond.hatelabo.jp/20090220065041

Brainf*ck

8つしかないボタンの順番を正しく押さないと目的地への切符が買えない。

COBOL

普通の英文による注文で切符が買えるハズなのだが、実際には専門家に頼んで注文を書いてもらわないと上手く買えない。

LOGO

亀を出発駅から到着駅まで移動させることで切符を買う。

Haskell

出発駅と到着駅の型が違う場合、適切な経由駅を設定しないと切符が買えない。

C++

任意の切符を発行するためのビルダーテンプレートインスタンスを生成できる。

JavaScript

切符は他の切符コピーで作られるため、切符をどう印刷するかについてのプログラムはまったく入っていない。

Prolog

到着駅と出発駅を入力すると、到達可能であることが示される。切符は出てこない。

Malbolge

この券売機切符が買えるのかどうか、まだ証明されていない。

Java

どの駅でも同じ操作で切符が買えるハズなのだけど、実際のところは微妙に違ってぬるぽで落ちる。

FORTRAN

カンマとピリオドを間違えて券売機が爆発。

2008-12-30

http://anond.hatelabo.jp/20081230060518

とはいえ、参照や配列を理解するのにポインタは必須ではない、というか別概念だよね。

Cでは参照や配列を扱うときにポインタという生の実装がむき出しになってしまうけど。

OCamlSML (もしくはHaskell) のような、ぜーんぶ値渡し+必要なところだけ陽に参照(ref)型を使う、という言語を最初に使ってれば、ポインタを理解してなくてもJavaC#の参照もまあすんなり理解できると思う。

なまじ中途半端に参照と値渡しが構文的に区別されずに存在していたり、Rubyのように参照しかない(と思ってるんだけど)世界からはじめると、後々苦労するような。

CはもはやゲームとかOSとか組込みとか、リソース制約のきついソフトウェアを書くための言語にすぎないと思う。やっておくに越した事はないし、低レベルレイヤを理解しておくべきだし、言語間の関数呼び出しみたいなことをするのにも知っておいた方がいいけど(とはいえSWIGみたいなものもある)、より抽象度の高いところから手をつけるアプローチもあっていいんじゃないかなー。

# トラバ先を誤爆

2008-11-11

彼氏php使ってた。別れたい…

phpだと、うっかりエラー表示出た時なんか恥ずかしいww

下向いちゃうしww

男にはせめてPython使って欲しい・・・

strip_tagsとかでサニタイズなんてされたら・・・・もう最悪ww

あとせめてphpでも普通にClassぐらいは作って欲しい。

常識的に考えて欲しいだけなんです!

phpできます!」なんて自信たっぷりに言われた時の恥ずかしさとか分かる?

あのね? たとえば週末1020人ぐらいで勉強会とかするでしょ?

それぞれ作ったwebアプリ公開するわけじゃない?

みんな普通にDやSchemeErlangHaskellで構築するわけでしょ

PHPで自慢げに公開したら大恥かくでしょうがww

http://anond.hatelabo.jp/20081111000645





VRアダルト動画おすすめ
オナホールのレビューと評価のランキング
ピンクローターJp:おすすめバイブ評価とローター通販の比較
ソーシャルゲーム速報

2008-07-24

プログラミング言語オタが非プログラマー彼女言語世界を軽く紹介するための10言語

via Twitterオタが非オタの彼女にTwitter世界を軽く紹介するための10ユーザ

まあ、どのくらいの数のプログラミング言語オタがそういう彼女をゲットできるかは別にして、

「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、

 その上で全く知らないプログラミング言語世界とはなんなのか、ちょっとだけ好奇心持ってる」

ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、プログラミング言語のことを紹介するために

習得させるべき10言語を選んでみたいのだけれど。

(要は「脱オタクファッションガイド」の正反対版だな。彼女プログラミング布教するのではなく

 相互のコミュニケーションの入口として)

あくまで「入口」なので、アーキテクチャに過度に依存するアセンブラ等の低級言語は避けたい。

あと、いくら基礎といってもBrainf*ckやUnlambdaのような難しすぎるものは避けたい。

ポール・グラハムが『Arc』は外せないと言っても、それはちょっとさすがになあ、と思う。

そういう感じ。

彼女の設定は

PCはほぼウェブ閲覧専用、Excel程度は使える。

ロジカル度が高く、頭はけっこう良い

まずは俺的に。出した順番は実質的には意味がない。

Java

まあ、いきなりここかよとも思うけれど、「Java以前」を濃縮しきっていて、「Java以後」を決定づけたという点では

外せないんだよなあ。ゴスリングもハゲだし。

ただ、ここでオタトーク全開にしてしまうと、彼女との関係が崩れるかも。

この情報過多な言語について、どれだけさらりと、嫌味にならず濃すぎず、それでいて必要最小限の情報彼女

伝えられるかということは、オタ側の「真のコミュニケーション能力」の試験としてはいいタスクだろうと思う。

Smalltalk (Squeak), LOGO

アレって典型的な「オタクが考える一般人に受け入れられそうなプログラミング言語(そうオタクが思い込んでいるだけ。実際は全然受け入れられない)」そのものという意見には半分賛成・半分反対なのだけれど、それを彼女にぶつけて確かめてみるには一番よさそうな素材なんじゃないのかな。

プログラミング言語オタとしてはこの二つは“教育用言語”としていいと思うんだけど、率直に言ってどう?」って。

Haskell

ある種の言語オタが持ってるラムダ計算への憧憬と、ACM監修の関数型言語純粋さへのこだわりを

彼女に紹介するという意味ではいいなと思うのと、それに加えていかにも参照透過な

純粋関数型で許される計算順序の規定」を体現するモナド

純粋関数型言語の非正格性」を体現する無限リスト

の二要素をはじめとして、オタ好きのする要素を言語にちりばめているのが、紹介してみたい理由。

Common LISP

たぶんこれを見た彼女は「Emacsだよね」と言ってくれるかもしれないが、そこが狙いといえば狙い。

この系譜の作品がその後続いていないこと、これがポール・グラハムの間では大人気になったこと、

ポールグラハムがウェブサービスの構築に使って、それがいろんなウェブサービス開発者にも影響しててもおかしくはなさそうなのに、

実際のウェブサービスでこういうのが使われないこと、なんかを非オタ彼女と話してみたいかな、という妄想的願望。

Perl

「やっぱりプログラミングバッチ処理のためのものだよね」という話になったときに、そこで選ぶのは「awk

でもいいのだけれど、そこでこっちを選んだのは、この言語にかけるラリーdankogaiの思いが好きだから。

断腸の思いで延ばしに延ばしてそれでも2008年、っていうPerl 6のリリース予定日が、どうしても俺の心をつかんでしまうのは、

そのリリースというイベントへの諦めきれなさがいかにもオタ的だなあと思えてしまうから。

Perlリリース延期を無駄だとは思わないし、拙速リリースは無茶だろうとは思うけれど、一方でこれが

GuidoやMatzだったらきっちり予定通りリリースしてしまうだろうとも思う。

なのに、各所に頭下げて迷惑かけてリリースを延期してしまう、というあたり、どうしても

「自分の言語を形作ってきた哲学(TMTOWTDI)が捨てられないオタク」としては、たとえラリーがそういうキャラでなかったとしても、

親近感を禁じ得ない。言語自体の高評価と合わせて、そんなことを彼女に話してみたい。

Postscript

今の若年層でPostscriptを直で書いたことのある人はそんなにいないと思うのだけれど、だから紹介してみたい。

PDFよりも前の段階で、DTP哲学とか印刷技法とかはこの作品で頂点に達していたとも言えて、

こういうクオリティプログラミング言語エディタで書かれてたんだよ、というのは、

別に俺自身がなんらそこに貢献してなくとも、なんとなくプログラミング言語好きとしては不思議に誇らしいし、

いわゆるJava VMでしかスタック言語を知らない彼女には見せてあげたいなと思う。

PHP

PHPの「HTMLに埋め込み可能な点」あるいは「RDBMSとの接続性」をオタとして教えたい、というお節介焼きから教える、ということではなくて。

HTMLテンプレートエンジンを作り続ける」的な感覚言語オタには共通してあるのかなということを感じていて、

だからこそアメリカ版『Yahoo!』の開発言語PHP以外ではあり得なかったとも思う。

「MとVとCを分離なんてできない」というオタの感覚今日さらに強まっているとするなら、その「オタクの気分」の

源はPHPにあったんじゃないか、という、そんな理屈はかけらも口にせずに、

単純に楽しんでもらえるかどうかを見てみたい。

Prolog

これは地雷だよなあ。地雷が火を噴くか否か、そこのスリルを味わってみたいなあ。

こういう述語論理風味の計算をこういうかたちで言語化して、それが非オタに受け入れられるか

気持ち悪さを誘発するか、というのを見てみたい。

C++

9本まではあっさり決まったんだけど10本目は空白でもいいかな、などと思いつつ、便宜的にC++を選んだ。

Javaから始まってC++で終わるのもそれなりに収まりはいいだろうし、テンプレート以降のメタプログラミング時代

の先駆けとなった言語でもあるし、紹介する価値はあるのだろうけど、もっと他にいい言語がありそうな気もする。

というわけで、俺のこういう意図にそって、もっといい10本目はこんなのどうよ、というのがあったら

教えてください。

「駄目だこの増田は。俺がちゃんとしたリストを作ってやる」というのは大歓迎。

こういう試みそのものに関する意見も聞けたら嬉しい。

2008-03-31

http://anond.hatelabo.jp/20080331005126

これは賢いな。

てことはHaskellで募集掛けたら技術嗜好が高くて数学的思考センスがある奴が集められるわけか。良いな。

2008-01-30

http://anond.hatelabo.jp/20080130122343

どういうブログが好きなんですか?

例えば、以下のようなブログだったらokですか?

RubyHaskellJavaScript、LLという単語が頻出するブログは胡散くさい。

なんか薄っぺらく感じるんだよね。ワンライナーとかやって自己陶酔してそう。

勝手先入観かもしれないけど。

2008-01-27

関数型言語と命令型言語の違い

最近Haskell勉強し始めたんだけど、どうも直感的に理解しづらい。

何でかなと考えて気づいたのは、命令型の言語はまさに”言語”で言葉で説明されている感じがして、

関数型の言語は”数式”で証明してる感じがするってことだった。

だから数学的素養があまりない自分にとっては”数式”で書かれるより、”言葉”で書かれる方がわかりやすいということなんだと思う。

もっと勉強すればこの”数式”的センスも身につくのかな。

2007-09-10

Re: Re: Ruby Python の比較

Haskell

main = putStrLn $ p "Hello world"
p s = (show $ length [x | x <- s, x == 'o']) ++ ", " ++ (show $ length s)

二時間くらい調べて書いた。

後悔はしてない。

2007-06-30

プログラムはそんなに簡単でもない、気がする

http://anond.hatelabo.jp/20070630124256

をお前Haskellで今すぐやってみろって言われてできるかなぁ。

プログラミングできるようになるためにはある程度の「基礎体力」が必要で

それはぐぐったもの読んだくらいじゃ身につかなくて

ある期間、一見不毛な努力を重ねた上で後から付いてくるものなんじゃないかという気がする。

2007-06-04

自由につかいこなしたい言語

http://anond.hatelabo.jp/20070604030827

あるある、いっぱいある。最近特にHaskell、そしてLISPに興味がわきつつある。使いこなしたいよー。

でも、一番切実なのは、なんといっても日本語!何十年と経つけど未だ使いこなしていない。奥が深いよー。

2007-05-28

reducel/reducer (2)

Perl/Python/Ruby/Lisp/Scheme/Haskell/Ocaml 辺りを触っている人にはあの説明で十分なんですよ……。というか、弾さんはあの例からそのトレース結果をいかに素早く連想出来るかを問うているんじゃないのか?

FizzBuzzが「こういう処理をしたい」という要求をコードに落とすだけだったのに、その続編でいきなり要求分析までさせるの? 納得いかないなあ。

読解力の無い人にも仕事をさせるのがSE仕事ですよ。>id:kejinan

2007-05-25

http://anond.hatelabo.jp/20070524215252

でもその電気電子の部分ってやってて苦痛でしょうがないんだよ

俺にはあまりプログラムとかのつながりが見えなくて、過ぎ去るまでひたすら耐えてた

Haskellとかも全然面白くないし、俺は「Haskellで初めてプログラムの面白さがわかった」とか「電気電子からやるとわかりやすい」とか言ってる人たちとは違う種類の人なのかなって思ったよ

2007-05-24

レベルなものばっかりやりすぎなんだよ最初っから

http://anond.hatelabo.jp/20070523230747

C言語ruby中途半端学校で習って、よく判らないまま単位だけとって卒業して、その後でJavaやらHaskellやらを最初だけ齧ってしまって結局全部混ざってしまい消化不良みたいな感じです。

まず電子回路の勉強しようぜ。0Vと5Vで電流が流れるだけだから簡単だ。物理的な裏づけもあってわかりやすい。

その後に集積回路の使い方を覚えるんだ。単に電子回路を集めてモジュール化しただけのものだから簡単なはずだ。

そうしたらCPUの作り方がわかってくる。CPUを動かすには機械語が必要だけど、どうして機械語CPUが動くかがわかるはず。

そこまでいったらあとはアセンブラC言語Javaとだんだん高レベルな世界に行けばいい。

CコンパイラソースコードもJavaVMのソースコードもタダで手に入るんだから見てりゃわかるだろ。

2007-05-23

プログラミングを始めようとして何度も挫折した。

教えるプロみたいな人に教えてもらっても駄目だったし、尊敬している人に教えてもらったけどやっぱり駄目だった。

才能以前なんだろうな。必死さが足りないって言われた。でも必死になるってどういう事なのか全然判らない。

あと、前教えてもらったことを自宅で復習しても全然出来なかった。

何がわからないのかもわからない。基礎の問題とか出して貰っても判らない。用語や文法みたいなレベルで既に躓くというか。なんというか、「言葉」って何で言葉って言うの?みたいな変な疑問ばかり湧いてきて進まないんだよね。

結局両方とも途中でやめてしまった。

諦めるしかないか。

http://anond.hatelabo.jp/20070523231848

なんかこれみたらとてもじゃないけど無理だと思いました。判らない事だらけで柔軟体操にすら入れないです。諦めます。

http://anond.hatelabo.jp/20070523233713

トラバ直しました。

わからないことは全て「おまじない」だと思って割り切る

どうしてもこれが出来ないんです。文法も、例えば1+1=2という式があったとして、なぜイコールがこの位置なのかとかくだらない事がずっと気になってしまいます。コロンが付いてたりとか括弧がどうだとか。例えばの話ですけれど、C言語ruby中途半端学校で習って、よく判らないまま単位だけとって卒業して、その後でJavaやらHaskellやらを最初だけ齧ってしまって結局全部混ざってしまい消化不良みたいな感じです。

2007-05-22

スクリプト言語使用者におけるハマり度レベルの変遷

LV0 スクリプト言語?どうせAUTOEXEC.BATとかだろ?どうでもいいよ…

LV1 Perlはあんまり堅苦しくないな。ってかこのor dieって何なの?

LV2 流行言語は綺麗だな。Rubyってのはなんか日本人多くて結構いいかも。

LV3 Rubyって神じゃね?理想の言語って感じ・・・

LV4 PHPも気が利くわりにドジっ子でかわいいな。LispとかSchemeとかHaskellもいい・・・

LV5 Pythonってワンライナー書けないのにWeb2.0言語扱いされててうぜぇ。Python死ね!

LV6 Python結婚してくれ!

LV7 やべぇPython最高!Pythonエディタさえあれば生きていける!

LV8 Python結婚した!俺はPython結婚したぞ!!

LV9 やっぱRubyRailsは最高だわ

MAX sed/awkとちゅっちゅしたいよぉ〜

http://anond.hatelabo.jp/20070522174635

2007-03-10

開発環境を整える。

今日はなんかコードを書く気になれんので、開発環境でも整えよう。

自分の物理的な開発環境は、会社PCと自宅PC(デスクトップ)、自宅PC2(ノート)。

会社PCと自宅PCデスクトップWindowsで自宅PC2(ノート)はUbuntu Linuxみたいな構成になっている。


基本的には、PHPコードしかいまんとこ書いてないんだけど、まあいろいろ他のコードも書いたり。

いややっぱりPHPしか書いてないか。現在の構成は以下のようなかんじ。


会社開発環境:Eclipse + Aptana + PHPEclipse ほんで日本語入力skk。あとは特になしデフォ

自宅(デスクトップ)開発環境:萌ディタ + FFFTP。あんまこっちじゃ開発してない。

自宅(ノート)開発環境:gedit(なんか標準でついてるやつ)。これで書いて、ごにょごにょみたいな。(Apacheいれて)。こっちメイン


ほんで、これを統括するリポジトリBTS会社リポジトリは、SourceSafeとSubversionがある。Subversion移行中。

BTSはMantisとかいうのだったはず。導入したばっか。あと個人用にもSvnリポジトリがある。趣味の開発とかはこっちへ。


なんというか正直複雑するというか、結構面倒なんでいろいろ統一しようと思う。

まず自宅はノート遅すぎなので(このご時世にX20はねーわ)、デスクトップだけにしてノートはお蔵入り方向で。さようなら。

会社の開発環境もちょい変えよう。なんかEclipseはだめだ。僕みたいな初心者プログラマには便利すぎ。

なんかどんなコードを書いても動いてしまいそうな気がする。よくない(自分がだけど--)。


基本構成は、http://www.itmedia.co.jp/enterprise/articles/0703/07/news017.htmlを参考に。

会社と自宅のデスクトップcoLinuxを入れて、上記3種の神器を入れる(ミーハーでごめん)。

OSDebianの予定(apt-getさいこー)。

次に全PCIMESKKに。いい加減統一しないと指が変なかんじになってきている。

これでコードを書いたり、文書を書いたりできるようになった。次に開発動作環境

Apachephprubygccg++とnasmとjavahaskellperlぶっこんどこう。jsFirefoxで動くからすばらしいね。

次は、subversionmakeqemuいれとく。


社内環境はどうにも変えようもないけれど、BTSとかSVNに変更が発生したらIRCメッセージ流すのはいいと思った。

http://www.itmedia.co.jp/bizid/articles/0703/01/news113.html

(ほんとミーハーry)

はやめにPG終わらせてやってみよう。


まあこんなかんじかなあ。だらだらと書いてしまった。まあよさげ。ちなみにこれ以外のごにょごにょ

だいたいgmailbloglinesとらくがき帳でいいかんじ。

ログイン ユーザー登録
ようこそ ゲスト さん