« ChromeとFirefox | トップページ | おっさんにも解るPython推敲中 »

おっさんにも解るPythonに関して

おっさんにも解るPython、第一部完としてたんですが。
ある識者に無理やり読んでもらって(笑)、意見を求めたんですが、初学者には敷居が高いところがあるということで、見出しも含めて、もう少し見直しが必要なのだな、と感じてました。

まあ、実際のところ、tminさんも苦戦しており、もう少し、最初の段階でPythonの特徴であるところの構文ブロックなど、詳しく説明を追加する必要があるのかな、とも思ったわけですが。

実はIDEを使うと、この辺のシンタックスエラーの類は、エラー発生行に!がついて、alt+Enterで、エラー内容が表示されるので、まあ、放置でもいいかな、と思ってたりしたんですが。(笑)
#そのそも、その使い方の説明もしてなかったり。(^^;

NetBeansの細かいTipsも含めて、もう少し追記や、見直しは必要かな、と。
その辺、ひと通り終わって、初めて完成、そして第二部へ、てな流れになりそうですな。

u-bonさんとこで、紹介されて、なんか一気にPV増えてたんで、その辺の作業は近々にやっとかないと、せっかく見に来てくれたひと、これからPythonプログラムを始めようとするひとを、挫折させる要因になってしまうので、なるべく早めに手を入れていこうと思います。

解らんなら、コメント頂けると、こちらも助かるんですが、まあ、初学者で初見のひとが、「ここが解らん」と言えるなら、実際本人も苦労しないんだろうな、という想像も付くわけで。

こちらから、積極的に改訂していくのが吉なんでしょう、たぶん。

てなわけで、もう少し内容は、大なり小なり見直して行きますかね。

|

« ChromeとFirefox | トップページ | おっさんにも解るPython推敲中 »

日記・コラム・つぶやき」カテゴリの記事

コメント

うん。恐らくは推敲が必要だとは思いますよ。別に記述能力的な話が云々、って事じゃなくって、単なる「ボトムアップ開発」(笑)。

まあ、大筋で起承転結書いておいて、あとで細かいトコ詰めていく、ってのが正解だと思います。説明大幅に増やす事になるでしょうが、骨子がハッキリしてないと出来る説明も出来ないですからね。

投稿: cametan | 2010年9月14日 (火) 07時35分

おや、こちらでは久しぶり。(笑)
構文周りで苦戦したみたいだから、その辺中心に見直しと言うか、推敲が必要そうですね。
あと、タイトルに関しても指摘を受けたので、その辺も見直し対象となりそうです。
初学者対象を妥協したくないので、ちと、力をいれてきます。(笑)

投稿: かおりん | 2010年9月14日 (火) 10時14分

興味がある企画なんですけど、時間がなくて、読むことしかできていません。こういうのって、読んだだけじゃ何のこっちゃって感じで、やっぱり手を動かさないとどうにもならないんですよね。で、手を動かすところまで進めないでいます。だから感想も書けないんですが、読んだだ印象だと、「この手順でいったら何かできそう」って気にはなりますね。期待大です。

で、推敲が完成したら、まとめて電子書籍版にするのはどうでしょう。基本HTMLですからね。たぶん、ブログ形式よりもその方が利用しやすくなるんじゃないでしょうか。

投稿: 松本 | 2010年9月14日 (火) 11時49分

>構文周りで苦戦したみたい

そもそも「インデント」が分からんでしょ(笑)。字下げそのものがピンと来ない(笑)。大体何のために「字下げ」行うか分からない(笑)。つまるところ「ブロック」の意図も分からない。

過去の自分振り返ってもそうですよね。大学時代、洒落でC言語の本見ながら(そもそも入門書じゃなかったのが問題ですけど・笑)、AmigaでC打ち込んでた時も

「何で行頭揃ってないんだろ。そもそもこれってどうやんだ?スペース何個も打つんか?メンド臭い。」

って思った事を覚えています(笑)。当時はAmigaの付属テキストエディタで打ってたと思うんですけど、要するにMSのメモ帳と大して変わんなかったんですよね(笑)。しかもTabキーが何の為にあるのかさえ知らんかった(笑)。

>タイトルに関しても指摘を受けた

まあでも「縮めて"おっPy"にする」ってのは譲れないわな(笑)。

投稿: cametan | 2010年9月14日 (火) 13時06分

>松本さん
是非とも手を動かして見て、なんのこっちゃ、を指摘頂けると。(笑)
電子書籍か。
せめて第二部まで行ったら、考えますかね。(笑)

>かめたんさん
インデントが解らなかったみたいですなー。(笑)
解らんもんだ。まあ、その辺もはんせいてんですね。
ちなみに、タイトルの指摘はブログタイトルではなく、個々のエントリのタイトルですね、見出しの部分です。
みだしで、なんの為にが解った方がいいでしょう、という話でした。
無論、おっPyは譲れません。(笑)

投稿: かおりん | 2010年9月14日 (火) 14時09分

>インデントが解らなかったみたいですなー。(笑)
>解らんもんだ。まあ、その辺もはんせいてんですね。

ABCの研究では「インデントを構文要素にした方が一番初心者に分かりやすい」と言う結論だったみたいですが。そもそもインデントを説明する前に構文要素を明示しなきゃならないんですよね、Pythonは。その辺説明に工夫が必要かも。
Pythonの場合は、とにかく最初はバッチ処理式スクリプト(しかも逐次処理のみ)で言語の使い方の概観を説明してるのは、その辺なんでしょうね。いわゆるifやfor等の「処理構文」で初めてインデントを認識するような構成が多いです。つまり、そこで初めてインデント=構文要素、と明確になるパターンが多い。特に日本では「真のプログラミング初心者向け」のPython書籍が全くないですから、その辺で「インデントは構文要素」って言い方をサラッとしてるケースが多いです。だからなおさら説明には工夫が必要でしょう。

ちなみに、僕は前から言ってる通り、「一番初心者向けの言語は実はLispだ」って立場なんですけど、一つの理由がこの「ブロックの説明」せんでイイ辺りなんですよ。何故なら、一般プログラマに対して億劫な「カッコ」が、自然と意味を明示してるから、なんですよね。カッコはカッコで中を包み込んで「閉じてる」わけですから、初心者対象の場合、これ以上明確な「ブロック表示」は存在しないだろう、って踏んでるわけなんです。

投稿: cametan | 2010年9月14日 (火) 16時23分

ま、構文のとこで、ブロックの説明追加しときましょうか。
lispなぁ。
まあ、だいたい解ったけど、あれ、GUI向かんで。(笑)
OOPも要らんと言うか、向かんと思う。
別のパラダイムのマシンが要るんじゃねーかなー

投稿: かおりん | 2010年9月14日 (火) 17時03分

>まあ、だいたい解ったけど、あれ、GUI向かんで。(笑)

多分、歴史的にはんな事ねえとは思う(笑)。「歴史的には」だけどね(笑)。

>OOPも要らんと言うか、向かんと思う。

OOPは前にも言いましたが、「世界で初めて正式仕様を持ったOOP言語」です。C++より早い。
ただ、ユーザー的に言うと「浮いてる」気がするのも事実なんだよな〜(笑)。っつーかそれが「マルチパラダイム」言語でしょう。
本当にマルチパラダイムがいいのか悪いのか、と言うのは別問題ですが(笑)。

>別のパラダイムのマシンが要るんじゃねーかなー

だからLispマシンってハードウェアがあったんですよ。これは今主流の「ノイマン式」とはハードウェアから構成が違ってました。

投稿: cametan | 2010年9月14日 (火) 17時13分

まあ、ライブラリの出来によっては解らんが、あんまし向きじゃねぇんじゃなえかなー。>GUI
イマイチ綺麗な構造がイメージ出来ん。
同様にOOPもそうなんだよね。
むしろ、入ってくると邪魔だろう、と。
基本、リストの構造が、ある意味OOPを実現してるんで、それ以上のクラスとかの余計な定義要らねーんじゃねーかと思うんだよね。
まあ、まだかじりかけだから、ほしいと思う場面も出てくるのかもしれんけど。
今んトコ、要らん感じ。(笑)

投稿: かおりん | 2010年9月14日 (火) 18時10分

>同様にOOPもそうなんだよね。
>むしろ、入ってくると邪魔だろう、と。

っつーか、前にも言ったけど、元々CG用なんですよ。FF7のCGも基本Common Lispの(っつーよりSymbolicsの、ですが)CLOSで組み立てられてる模様です。

こーゆーのとか、ね。

http://smbx.org/index.php/index.php?option=com_content&task=view&id=22&Itemid=68

今はOpenGLに取って代わられたわけですが(つまりSGIの遺伝子が勝った、って事ですが)、要するにSGIのライバル企業としてSymbolicsがあって、SymbolicsがLispマシン製造メーカーとしては有名で、そこでのCG制作ソフトなんかのベースがこのCLOSで行われてた、と。
つまり、ある意味GUIよりはっちゃけてるワケですよ(笑)。

投稿: cametan | 2010年9月14日 (火) 18時36分

ああ、特殊用途ならワカランでもないが。
別に関数型にOOP持ってこんでもなぁ、ってのが正直な印象。
リストで充分だろ、と。
そこで隠蔽して、なんかメリットあんのかな、とか思うんだよね。
まあ、使い込んできゃみえてくるか、その辺も。

投稿: かおりん | 2010年9月14日 (火) 18時57分

> 別に関数型にOOP持ってこんでもなぁ、ってのが正直な印象。

ところがね〜。「理論的」には(つまり実用云々って話じゃなくって)、OOPと関数型ってそんなに別け隔てたモノじゃない。
元々OOPの根底にあるアイディア、「メッセージ送信」ってのは、クロージャと密接な関係があって、そもそもその実証の為に作られたのがSchemeなんです。
んで、ANSI Common LispはSchemeの後に当然作られているわけですから、この辺の研究成果が生かされています。そして、これが意味する事は、基本的にCommon LispのOOPってのはプリミティヴとして実装するのを必ずしも必要としているわけじゃあない、って事です。つまり、「Lisp関数を用いて」OOPが実装出来る。
その辺の議題がコレですね。

http://cametan-001.tumblr.com/post/817566500/rt-iori0121-cametan-001

投稿: cametan | 2010年9月14日 (火) 20時39分

まあ、そうかも知れんが、まず実用から入るからなー。
割と理屈は後から付いてくればいいって感じで。
まだ触ってる段階だから、いまんとこ、関数型でOOPはピンと来ないわ。

投稿: かおりん | 2010年9月14日 (火) 20時47分

>いまんとこ、関数型でOOPはピンと来ないわ。

っつーか、CLOSで組む以上、やってる事は「OOP」であって「functional」じゃないと思います。
イイじゃん(笑)、関数型で組まんでも(笑)。多分C++のように書いた方がいいんですよ。CLOSを選択した時点で。

投稿: cametan | 2010年9月14日 (火) 21時53分

あー、そういうこと?
なるほどね。
ま、まずは関数型っぽく書いてみるさ。
ネタ探しだ、ネタ探し。(笑)

投稿: かおりん | 2010年9月14日 (火) 22時18分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/500703/49442442

この記事へのトラックバック一覧です: おっさんにも解るPythonに関して:

« ChromeとFirefox | トップページ | おっさんにも解るPython推敲中 »