Python
| 分類 | 高水準プログラミング言語(解釈実行型として扱われる) |
|---|---|
| 設計思想 | 読みやすさ優先・即応性重視 |
| 主要用途 | 教育、計測制御、言語処理、業務自動化 |
| 起源とされる系統 | 衛星制御票→教育用自動採点端末→汎用化 |
| 特徴 | インデントを構造として扱う慣行、対話的開発 |
| 初期コミュニティ | 宇宙通信研究所系の技術者・教員グループ |
| 標準化を巡る動き | 擬似標準「P7文法」の合意会議 |
| 代表的な処理系 | 草稿段階から複数実装が並行したとされる |
(ぱいそん)は、後半の通信衛星向け制御票から派生したとされるである。文法の簡潔さと可読性が評価され、に教育機関へ急速に普及したとされる[1]。
概要[編集]
は、として理解されることが多いが、成立は単純な技術開発ではなく、当時の「採点」をめぐる現場要請に強く結び付いていたとされる。特に現場では、手書き答案の採点遅延が問題化し、短時間で採点結果を返す仕組みが求められたとされる[2]。
言語仕様の核には、視認性の高い記述規則が採り入れられたとされる。具体的には、行頭の空白を「論理の区切り」として扱う慣行が整備され、これにより「見た目の構造」がそのまま実行構造に反映されるように設計されたと説明されることが多い[3]。
なお、起源の説明には複数の系統が併存している。なかには「衛星制御票の走査アルゴリズム」から直接つながったとする説や、教育用端末での自動誤り検出が先にあったとする説などがあり、編集によって強調点が揺れることが知られている[4]。
このようには、単なる言語仕様というより、当時の「現場の時間制約」を解くための道具として語られてきたとされる。
歴史[編集]
衛星制御票からの分岐(“蛇”が時計に巻きついた日)[編集]
の前史として語られるのは、にの下請けとして整備された、衛星地上局向けの制御票フォーマットである。制御票は「読み上げ誤り」が多発し、転記者が毎回同じ場所でつまずくことが統計的に確認されたとされる[5]。
当時、地上局では訂正作業のために1回の運用につき平均余計に人手が必要であり、月次では約のヒューマンエラー訂正が発生していたと報告された(当時の保存文書によるとされる)。この訂正時間を削るため、研究者たちは制御票を「文字の見た目で構造化する」方向へ舵を切ったとされる[6]。
結果として、生まれたのは制御票を半自動で解釈する試作システムであり、これが教育用に転用された際にとして語り直された、という筋書きが広まった。なお、この試作システムには内部コードネームとして「蛇(じゃ)」が付けられていたとも言われるが、公式記録では「蛇ではなく“縫い目”」とされ、解釈が揺れている[7]。
教育用採点端末と“P7文法”合意会議[編集]
頃、内の複数の理科系高校で、プログラミング実習の自動採点が導入され始めたとされる。自動採点は好評だったが、採点基準の微妙な差が教員間で揉める要因にもなり、ここで「同じ見た目は同じ意味」を徹底する方向へ議論が進んだとされる[8]。
転機となったのは、に系の予算で開催された「P7文法」合意会議である。会議では、試作言語の候補が3つ提示され、そのうちの一つが“見た目の構造”を最も強く仕様化する案だった。採択にあたっては、サンプル授業の誤答率が「平均改善」という計測結果が示されたとされ、これが決め手になったと説明されることが多い[9]。
さらに、会議資料には「空白を捨てるのではなく数える」ことが明記されたとされる。ここから、現在広く知られるインデント慣行の系譜が生まれた、と書かれることが多い。ただし同時期に別の解釈(空白の扱いを実装依存にする案)も存在し、投票では僅差で採択が分かれたとされる[10]。
普及と産業導入(“蛇皮の研修”事件)[編集]
、に所在する架空の研修センター「株式会社東京研修皮革研究所(通称:蛇皮研修センター)」が、Python系の教育カリキュラムを大量導入したとされる。ここでの目玉は、受講者が書いたコードを講師が“目視で構造判定”できるようにする点であり、可読性をより強く売りにしたとされる[11]。
研修プログラムは全国で展開され、受講者の最初の提出物に含まれるエラーの種類が分類された。報告書では、初回の誤りが「括弧不足」「空白の段数ずれ」「行末の記号忘れ」の順に多かったとされ、対策が講じられた[12]。この統計が、言語教材の作り方にも波及したとされる。
一方で、この普及は批判も呼んだ。現場では、仕様の柔軟性が「人による解釈の差」へ変換される懸念が出たのである。特に、同じ可読性でも“誰が見ても同じに見える”ことを前提にした設計思想は、実装差があると不満が噴出しやすいと指摘された[13]。
仕様と“らしさ”の作法[編集]
は、文章のように書けることが長所とされ、記述を最短化するよりも、読み返しやすさを重視する姿勢が強調されてきた。たとえば教育現場では、課題文の後に「読み返しのための行数上限」が設けられた時期があり、言語が学習行動そのものを形作ったとされる[14]。
また、対話的な試行が推奨される流れもあったとされる。初期の教材では「1回の試行は最大ステップで完結させよ」とされ、これが“試してから整える”開発スタイルへつながったと説明されることが多い[15]。
ただし、可読性の追求が常に正しいわけではない。実装や教材の編み方によっては、可読性が「暗黙のルール」に置き換わり、熟練者だけが得をする状態が生じることが指摘された[16]。このため、仕様書が改訂されるたびに“らしさ”の境界線が議論になったとされる。
なお、とされることがある逸話として、「空白を美徳とする文化が先にあり、言語仕様は後から追認された」という主張が挙げられる。真偽は定かでないが、少なくとも当時の議論の雰囲気をよく表していると受け止められている[17]。
社会的影響[編集]
は、技術だけでなく教育制度に影響を及ぼしたとされる。特に、自治体の学習支援では「答案の自動照合」や「学習ログの可視化」が導入され、その入口としてPython系教材が選ばれたと説明されることが多い[18]。
産業側では、事務の自動化が急速に広がった。ある調査報告(未公開資料として引用されることが多い)では、中小企業における手作業の置換率が平均に達したとされる。ただし、ここには「置換ではなく補助作業の置換」も含まれていたため、過大評価だとの反論もあった[19]。
さらに、言語がもたらしたのは“作法の統一”である。可読性の基準が教材・求人・評価にまで波及し、「書き方が揃っている応募者ほど評価される」傾向が強まったとされる。一方で、この傾向は新規参入者に不利に働く可能性があるとしばしば議論された[20]。
このようには、コードを書く道具であると同時に、学習と評価のルールを配線する装置として理解されてきた面があるとされる。
批判と論争[編集]
最大の論争点は、可読性が教育と業務で“同じ意味”を保証しない場合があることである。特に、同じインデントに見えても、教材や方言の違いによって挙動が変わることがあったとされる。ある監査報告では、互換性問題が原因と考えられるインシデントが年記録されたとされ、対応コストが問題視された[21]。
また、「蛇皮研修センター方式」への批判が存在した。研修センターの方式は目視判定に強く寄せており、形式検証を軽視する教育が広がると、現場での品質保証が弱くなると指摘されたのである[22]。
さらに、言語仕様の変化に対し、既存コードがどの程度追従できるかがたびたび焦点になった。追従率については「初年度」とする資料と「実測では」とする資料があり、数字の根拠が食い違うことが指摘されている[23]。
この種の論争は最終的に、仕様の文書化と教材の明文化を促す方向へ働いたとされる。ただし、その過程で“言語らしさ”が形式へ寄りすぎるという別の反省も生まれたとされる。
脚注[編集]
関連項目[編集]
脚注
- ^ 北川倫太郎『制御票の幾何学:衛星地上局の誤読対策』宇宙通信協会出版, 1994.
- ^ Marianne T. Caldwell『Readable Syntax and Classroom Error Rates』Journal of Applied Pedagogy, Vol. 12, No. 3, pp. 41-58, 1998.
- ^ 小林貴志『P7文法合意会議議事録の周辺』計算言語学研究会, 第7巻第2号, pp. 12-27, 1985.
- ^ 田村爽太『蛇皮研修センターの教材分析』教育情報処理年報, 第3巻第1号, pp. 101-133, 1992.
- ^ R. J. Okafor『Concession Between Visual Structure and Runtime Meaning』Proceedings of the International Symposium on Interpretive Languages, pp. 220-236, 2001.
- ^ 佐藤和真『空白を捨てない設計:インデント文化の形成過程』ソフトウェア品質研究会, Vol. 6, No. 4, pp. 77-95, 2004.
- ^ 李成浩『Compatibility Audits of Interpreted Educational Systems』Computer-Assisted Learning Review, Vol. 19, No. 2, pp. 9-31, 2010.
- ^ 大江千尋『可読性は検証に勝てるか:レビュー集(第2版)』技術文書出版, 2013.
- ^ Mikael Svensson『Why “P7” Stayed Longer Than Expected』ACM Special Report, Vol. 5, No. 1, pp. 3-18, 1996.
- ^ 林檎実『Pythonという名の時計装置』東京大学出版部, 1990.
外部リンク
- 蛇皮研修センターアーカイブ
- P7文法合意会議データバンク
- 宇宙通信局 制御票資料室
- 可読性指数(RI)研究所
- 教育工学・自動採点の実験ログ