西尾泰和のはてなダイアリーhttp://d.hatena.ne.jp/nishiohirokazu/20080918/1221708888にて

http://q.hatena.ne.jp/1221708568
「Q1ってそんなに難しいですか?簡単な問題のつもりだったんだけど。」
といわれていますが、皆さんはどう思われますか?

以下を読んで回答してみてください。

Q01まずは「プログラミングに詳しい」かどうか判定するための質問です。正しいものを選んでください。これに答えられない方は解答をご遠慮ください。(択一)
Schemeは1.5からオートボクシングの機能をサポートした
Schemeはインデントによってブロックを表現する
Schemeは多くのレンタルサーバに標準でインストールされている
Schemeでは関数がファーストクラスのオブジェクトである
Schemeの文の終わりはセミコロンである
Schemeは純粋関数型言語であり、副作用はモナドでくるむ必要がある
Schemeは型に厳格なため整数の加算と浮動小数点数の加算の演算子が異なる
Schemeは関数の呼び出し時に括弧を省略することが出来る
Schemeのマクロ定義には#defineを使う
Schemeの言語仕様はキューマシンとしての実装に適しているため並列化が容易である
Schemeのブロックはbeginで始まりend.で終わる
SchemeのコンパイラとしてはGHCが有名である

回答の条件
  • 途中経過を非公開
  • 男性,女性
  • 20代未満,20代,30代,40代,50代,60代以上
  • 登録:
  • 終了:2008/09/21 14:57:38
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答100 / 100件)

Q01この質問は簡単だと思いますか?(択一)

--------------5
すごく簡単。余裕!6
だいたい答えられる5
そこそこ判る17
少しわかる17
全く判らない49
--------------1
合計100

Q02実際にやってみてください(択一)

Schemeは1.5からオートボクシングの機能をサポートした9
Schemeはインデントによってブロックを表現する9
Schemeは多くのレンタルサーバに標準でインストールされている4
Schemeでは関数がファーストクラスのオブジェクトである9
Schemeの文の終わりはセミコロンである16
Schemeは純粋関数型言語であり、副作用はモナドでくるむ必要がある13
Schemeは型に厳格なため整数の加算と浮動小数点数の加算の演算子が異なる4
Schemeは関数の呼び出し時に括弧を省略することが出来る6
Schemeのマクロ定義には#defineを使う4
Schemeの言語仕様はキューマシンとしての実装に適しているため並列化が容易である8
Schemeのブロックはbeginで始まりend.で終わる4
SchemeのコンパイラとしてはGHCが有名である14
合計100

Q03知っている言語を教えてください(複数選択)

Brainf*ck, Befunge, Pietまたはそれに類したパズル的言語9
Scheme13
Haskell15
PHP33
Python10
Ruby16
なでしこまたはその他の日本語プログラミング言語6
Perl28
C++28
Java18
C(C++ではない)20
どれも知らない21
合計100

Q04プログラミングの経験は?(択一)

なし35
1年未満9
5年未満23
10年未満17
15年未満3
20年以上13
合計100

Q05アンケートに注意書き(○○が判る人だけ回答してください)がある場合(択一)

○○が判るときだけ回答する(注意書きに従う)28
○○が判らなくても回答する(注意書きに従わない)20
○○が判らない人も回答する項目(「○○が判らない」)を追加しておくべきだ38
その他14
合計100

Q06http://q.hatena.ne.jp/1221708568の質問の問題点は?(複数選択)

回答して欲しくない人がいるのであれば、それようの設問を設けるべき45
はてなアンケートの仕組み上誰でも答えられることを考慮せず「はてなアンケートの精度を高めるには」って何様?38
何か偉そうな質問者(西尾泰和)なのが鼻につく26
アンチが多いマイナー言語のSchemeを選んだのが問題26
「わからなければ答えるなって書いてあっても無視らしい。」はてなの仕組みを理解してないなぁ37
常識で考えれば、あのアンケートがあの結果になるのはすぐわかると思うんだが36
はてなの回答者を馬鹿にした質問だ19
Scheme(Lisp)使いには変な人が多い18
はてなアンケートで目的の結果を得るにはかなりコツがいることを理解していない34
自分の質問の不具合を回答者のせいにするのはどうかと思う27
『自分が解答を求められていないアンケートにも適当に答えるノイズ発生源』」だってよw22
「Q1ってそんなに難しいですか?簡単な問題のつもりだったんだけど。」へぇ~32
合計100

Q07西尾泰和って知ってますか?(択一)

本人5
知人3
家族1
誰それ?91
合計100

集計

×
  • id:JULY
    自分も、「Schema って Lisp の系統だよなぁ」程度の知識しか無くって、正解できなかったんだけど、少なくとも、仕事で使っている人の話を聞いたことがない(一応、業界に 15 年以上いますが...)。Lisp ですら、Emacs ユーザが自分の環境構築で使うぐらいで、商売で Lisp のコードを書いている人に出会ったことが無い。

    Schema という言語が出てくる時点で、いかにも「学者さん」という感じがしてしまうんだけど、学問としてのプログラミング言語と、商売道具としてのプログラミング言語がどれだけ違っているか、というのを如実に表しているような気がするなぁ。

    そもそも Schema と聞いて、そんなプログラミング言語がある、ということを知っている人が、学者、研究者、学生を除くと、何パーセントぐらいなんだろう。
  • id:practicalscheme
    s/Schema/Scheme/g です。

    では、私がJULYさん15年間以上のキャリアで初めて聞く、「Schemeで商用プログラムを書いて喰っている人」になりますね。以後お見知りおきを。ただScheme/Lispプログラマは絶対数が少ないだけじゃなく、一品もののカスタム生産で表に出ない仕事が多いので、なおさら目に触れない、ということはあると思います。

    JULYさんが商売道具としてどのプログラミング言語を使っているかはわかりませんが、「それらのプログラミング言語を作った人たち」のことをご存知でしょうか。かなりの確率で、作った人たちはScheme(に限らず、「学術的なプログラミング言語」)について広い知識を持っていると思いますよ。

    もちろん言語を使うだけならそういった知識は必要ないです。そういった知識を必要としなくても使える言語を作る、というのがある意味作る人達がやっていることですから。ただ、言語を教える立場なら、「なぜその言語はそういう設計になっているのか」が語れないとまずいですし、それを語るにはある程度「作った人達」と共通の基礎を持っている必要がありますね。
  • id:JULY
    あ、恥ずかしい(typo)....。

    一応、20 年ほど前に、情報工学科なるものを卒業した身なので、「学術的なプログラミング言語」の世界も、多少なりとも知っているつもりではいます。

    で、元の質問が「プログラミングの本質」を教える上で、どんな言語が適当だと思うか、という問の前段として、Scheme を取り上げて、その言語の特性を問う、というのが、サラリーマンでプログラムを書く人から見ると、とてつもなく「縁遠い」ものじゃないかなぁ、と。

    個人的には「プログラミングの本質」といった時に、今あるコンピュータアーキテクチャ上で、自分の書いたプログラムがどのように動くのか(動かされるのか)、を理解するためには、アセンブラと C 辺りがよいかなぁ、と思うのですが、学術的な意味での「プログラミングとは」あるいは「そもそも、プログラミング言語とは」という話だと、むしろ、同じ目的のプログラムをいろんな言語で書かせるのが良いのでは、と思っています。そうすれば、いろんなプログラミング言語が存在する理由も実感できる。

    数年前に、「なぜプログラムは動くのか」という書籍が売れたことがありましたが、この書籍を見た瞬間、「そうだよなぁ、今の人は、自分の書いたプログラムが計算機上でどんなことになっているか、実感つかめないだろうなぁ」と思ったことがあります。今は、それすらよく分からなくても、プログラムを書いて生計を立てることが可能だったりします。

    今回の質問に対して「難しい」とか「知らない」と思った人たちの多くは、学術的な側面を知らない人たちだろうし、逆に、「こんなことも知らないのか」と思った人たちは、プログラミング言語を道具として使っている現場の感覚がわからないのかなぁ、と。

    単に「こんなの知るかぁ!」「こんなことも知らんのかぁ!」じゃなくて、互いの世界の違いを認識するきっかけになればよいなぁ、と、かつて学術的な世界で落ちこぼれたサラリーマンは思うのでした。
  • id:yo-kun
    >今回の質問に対して「難しい」とか「知らない」と思った人たちの多くは、学術的な側面を知らない人たちだろうし、
    >逆に、「こんなことも知らないのか」と思った人たちは、プログラミング言語を道具として使っている現場の感覚が
    >わからないのかなぁ、と。
    >
    >単に「こんなの知るかぁ!」「こんなことも知らんのかぁ!」じゃなくて、互いの世界の違いを認識するきっかけに
    >なればよいなぁ、と

    完全に同意です。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません