「Pascal」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
6行目: | 6行目: | ||
[[プログラミング]]が上達してくる過程において、初級者[[プログラマー]]は簡潔でトリッキーな[[ソースコード]]を好むという病的な症状に陥ることが多々ある。[[キーボード]]の[[タイピング]]量を減らすことが正しい、1行で書く事([[ワンライナー]]とも呼ばれる)が正しいと錯覚するのである。 | [[プログラミング]]が上達してくる過程において、初級者[[プログラマー]]は簡潔でトリッキーな[[ソースコード]]を好むという病的な症状に陥ることが多々ある。[[キーボード]]の[[タイピング]]量を減らすことが正しい、1行で書く事([[ワンライナー]]とも呼ばれる)が正しいと錯覚するのである。 | ||
− | そのような[[ソースコード]]は後々に他人が読んだ場合に読みにくく、また[[デバッグ]]なども困難さを極め、最終的には[[デスマーチ]] | + | そのような[[ソースコード]]は後々に他人が読んだ場合に読みにくく、また[[デバッグ]]なども困難さを極め、最終的には[[デスマーチ]]を加速させることになる。これはデスマーチの経験が無い、もしくは経験が少ない低級プログラマーであれば致し方ないことであると言える。 |
− | + | 一方で教科書にトリッキーなコードが登場するのは最悪であり、学生の理解はもとより、教師も説明に困るという理由により作られたプログラミング言語がPascalであると言われている。 | |
− | なお、この教訓は教育のみならず不特定多数が絡み合う[[職業プログラマー]] | + | なお、この教訓は教育のみならず不特定多数が絡み合う[[職業プログラマー]]の世界においても、他人に引き継ぐ際に重要であるとされ、Pascal以外のプログラミング言語を用いる場合でも、社内ルールとして「[[コーディング規約]]」などと呼ばれるものを用意することで書き方に制約を加えることでクソコードを抑制しようという試みが行われることもある。またPascalを用いる際にもコーディング規約を用いてさらに制約を強めようという場合もある。 |
− | ちなみにPascalに類似する思想としては[[Python]] | + | ちなみにPascalに類似する思想としては[[Python]]が有名であり、さらにはPascalの思想とPythonの思想を融合させた[[Boo言語]]なるものまである。 |
== Pascalの後続言語 == | == Pascalの後続言語 == | ||
22行目: | 22行目: | ||
馴染みのある[[C言語]]形式の「x = x + y」ではなく、「x := x + y」というPascal形式を使っていため、即座に批判に晒されることになった。この批判は[[C言語]]がまだ考案されていないにもかかわらず起きている。 | 馴染みのある[[C言語]]形式の「x = x + y」ではなく、「x := x + y」というPascal形式を使っていため、即座に批判に晒されることになった。この批判は[[C言語]]がまだ考案されていないにもかかわらず起きている。 | ||
− | + | これらの批判をかわすため、後に言語仕様はそのままに、見た目をC言語風に偽装した[[C Sharp|C#]]が考案された。 | |
* 1970 - [[Pascal]] - 元祖である。 | * 1970 - [[Pascal]] - 元祖である。 | ||
28行目: | 28行目: | ||
* 1989 - [[Turbo Pascal 5.5]] - [[Smalltalk]]の影響をうけた[[Object Pascal]]の始まりである。 | * 1989 - [[Turbo Pascal 5.5]] - [[Smalltalk]]の影響をうけた[[Object Pascal]]の始まりである。 | ||
* 1995 - [[Delphi]] - [[GUI]]で[[ポトペタ]]という革命を起こした。 | * 1995 - [[Delphi]] - [[GUI]]で[[ポトペタ]]という革命を起こした。 | ||
− | * 2000 - [[C Sharp|C#]] - | + | * 2000 - [[C Sharp|C#]] - 最初の版はDelphiの[[リネーム商法]]であったが、現在では原型をとどめていない。 |
− | |||
== 関連項目 == | == 関連項目 == | ||
37行目: | 36行目: | ||
{{reflist}} | {{reflist}} | ||
− | + | {{stub}} |