初めて学ぶプログラミング言語としてはPythonよりもVBの方が適切? 46
Pythonでできない複雑な構造ってなんだ 部門より
Slashdot「Justified: Visual Basic Over Python For an Intro To Programming」より。
英国でICT/コンピューティングを教えるBen Gristwood氏が、「Visual BasicはPythonほど役に立たない」とする生徒の親に返信したメールの内容を公開し、(他の言語への入り口として) Visual Basicを初心者向けのプログラミング言語に選択したことは正しいと主張している。
Gristwood氏は「現在Pythonが人気であることを理解している」と述べた上で、「ただし、この言語もC言語をベースにしている。より複雑な構造となった場合、Pythonでは処理できず、どうしても(初心者には考えられないほど複雑な)C言語に頼らざるを得ない。VBは2つの言語の中間に位置し、複雑な決まりを必要とせずに概念を教えることができる。たとえば、変数の宣言などはGCSEやAレベルの試験(いずれも英国の統一試験)で必要となるが、こういった処理をPythonを学ぶ生徒たちは必要としない。」としている。
米国ではAP Computer Science(大学先修課程のコンピューターサイエンス科目)が1984年に導入されて以降、使用するプログラミング言語はPascalからC++、そしてJavaへと移行してきた。College Boardでは、2016年に開始される新しいAP Computer Science Principleコースについて、プログラミング言語の選択を教師に委ねている。皆さんなら、高校生が学ぶのに最適なプログラミング言語として、どのプログラミング言語を選択するだろうか。
えっ? (スコア:2)
Pascalは・・・?
Re:えっ? (スコア:1)
これ、釣りですよね?
たとえ釣りだとしても1票。
VB.NETは知らないですが、それ以前のVBだと大切なものを壊しそうで…
#BasicといえばROM Basicの世代。Quick Basic(QBasic)がそれっぽく書けるのが悲しい、VBAも以下…
Re: (スコア:0)
ではPascalの開発環境を用意してみてください。
Re: (スコア:0)
お手軽さなら Lazarus [freepascal.org]が楽かな? あまりOSも選ばんしインストールも楽。
見かけGUIアプリ作成専用っぽいけどもちろんCUIアプリの開発にも使えるのでお勉強にもあまり困らない。
もちろん素のFreePascal [freepascal.org]を使うって方法もある。
個人的にはコレ+emacsという組み合わせが一番しっくりくる。emacsはともかくとして基礎を叩きこむにはアリ?
その他にもGNU Pascal [gnu-pascal.de]って手もあるけどこちらは最近追っかけてないのでようわからん。
あとFreeDOS [freedos.org]に
Re: (スコア:0)
教育用言語を釣り呼ばわりとは酷いやつだな。
このおっさん言ってることがめちゃくちゃだな (スコア:1)
>Gristwood氏は「現在Pythonが人気であることを理解している」と述べた上で、「ただし、この言語もC言語をベースにしている。
文法がALGOLの系譜をひいてるってだけ。
>より複雑な構造となった場合、Pythonでは処理できず、どうしても(初心者には考えられないほど複雑な)C言語に頼らざるを得ない。
複雑な構造ってのが具体的に例示しないとなんとも言えないが、それ「C言語をベースにしている」って部分と関係なくね?っていうか、そもそもそんな複雑な構造ってVBじゃ処理できなくね?って疑問が。
>VBは2つの言語の中間に位置し、複雑な決まりを必要とせずに概念を教えることができる。たとえば、変数の宣言などはGCSEやAレベルの試験(いずれも英国の統一試験)で必要となるが、こういった処理をPythonを学ぶ生徒たちは必要としない。」としている。
それ、型システムの違いじゃん。最初の「この言語もC言語をベースにしている」が全く関係なくなる。
めちゃくちゃなのはおっさんではなく和訳 (スコア:1)
リンク先を読めばそれほどおかしなことは言っていない。
・PythonではいらないけどVBではGCSEの試験に必要な変数宣言がある。
・生徒がA-levelになってC++やC#に進んでいくときに使える概念も備えている。C++やC#(を修得させること)が私的にはゴールだ。
・Pythonのシンプルな文法と、より複雑なC++,C#のちょうど橋渡しになる言語。
・教えるのは12歳くらいの子供。大学行く頃にはC++などへどうぞ。
・このメールは、生徒の親宛に書いた個人的意見で、どの言語もその特徴が長所でもあり短所でもあるとわかっている。
・Pythonをけなすために書いたわけでもないし、親宛の手紙にエッセー書くような力入れもしない(私の一日に四時間追加でもないかぎりね)。
試験範囲を教えないといけない教師の立場としては、妥当な回答ではないかと思うよ。
きっと、親たちは自分が子供のころプログラミング言語の試験なんて受けていなくて
「うちの会社のIT部門の若手に聞いたら、VBなんて今どき教えるものじゃないというじゃありませんか、先生!」
とか鬱陶しいこというんだろうね。
大体、ここにいる「若いころBASICでプログラミングにハマってしまったおっさん」の皆さん、
いまC++やC#を使っているときBASICの呪縛で苦しんでたりしないでしょう? あまり心配する必要ないと思うなー。
Re: (スコア:0)
PythonのC APIよりCOM(?)の方が簡単だと言ってるんだよ。多分…
Re: (スコア:0)
丁度、互換性維持用のCOMをVB6で作ろうとして、Closeメソッドが予約語でにっちもさっちもいかなくなった所だ…。
まぁコレはCOMじゃなくてVBの言語仕様がちと微妙なだけかもしれないが。
でも、じゃぁVB.NETでCOM作るか、ってやってみたら、引数の無いデフォルトプロパティが指定できずに頓挫。
どーすりゃいいんだorz
※Recordset("hoge").Value を Recordset("hoge") として呼ぶ方法が作れない。
まぁMSとしたらCOMは捨てたことになってるからねぇ。
そういう意味でも、今からVB6を学ぶのは無駄っぽいけど。
VB6自体は悪い言語ではないね。
オブジェクト指向もソコソコ可能だし。インターフェイスの継承ができることを知らない人は多いね。
もし、エラー処理に構造化例外が採用されていたなら、もっと長生きしたと思う。
Re: (スコア:0)
なんとなく、ポインタを理解できないまま教師になってしまった哀れなオジサンの臭い
Re: (スコア:0)
もしかして束縛も理解出来ず、C言語がとか、複雑な構造がとか言ってるとか?
VB6かDelphi (スコア:1)
さらにフレームワークとしてFuelを使っていて、幸いテンプレートエンジンは無い。
ここにDBが出てくると、どれが何で関係が何かを若者に説明するのが嫌になります。
VB6みたいなまるっと収まっている統合開発環境がとっかかりには良いと思う。
自分自身はHTMLと言語を別々に覚えて、過去の遺産を有効活用して開発効率を上げるためにフレームワークっぽいものを作ったので一個ずつ覚えれてた。
見た目大事。
Re: (スコア:0)
インストール、セットアップの敷居がとにかく低い点も大きいと思う。
言語さわる以前のトラブルは、やる気無くすので。
Re: (スコア:0)
だったらJavascriptかな。
最近の安タブレットだとメモリもぎりぎりでHDDも足りなくて、インストールが大変。
JavascriptならChromeでコンソール開けばいいし。
Re: (スコア:0)
×敷居
Re: (スコア:0)
「気軽に体験できない」という意味の「敷居が高い」は誤用ではない [twitter.com]というのが最新の見解。
Re:VB6かDelphi (スコア:1)
20世紀はずっと誤用扱いされていたのか。
『希林館通り』 [ndl.go.jp](巻数は失念)で使っていてそのまま覚えたけど自分で使う機会がなかったからとくに恥をかかなかった。
言語の壁・日本語 (スコア:1)
ぴ^h
変数名を日本語で表記できると初心者にはわかりやすいと思う。
しかしながら、Windowsコマンドは愛用しているがお薦めはやっぱりできない。
C言語を推奨 (スコア:0)
OSを破壊できるのは若いうちだけだから、ぜひチャレンジしてほしい。
Re: (スコア:0)
はじめてのC [gihyo.jp]にドキドキするのよね。
Re: (スコア:0)
OSを破壊できるのは若いうちだけだから、ぜひチャレンジしてほしい。
最近のOSだとどうでしょう?
DOSだとINT 13Hでクリーンな世界になったことは2〜3度ありますが。
Re:C言語を推奨 (スコア:2)
簡単簡単. ドライバを書いていれば, panic画面を見るのが普通になります.
# というかpanic画面に落っこちるだけでも十分に強固なOSだと思う
Re: (スコア:0)
そんなの、破壊した、とは言わんだろ。
Haskell (スコア:0)
余分なものがないので、教育には適している。
Re: (スコア:0)
Template Haskell...
Re: (スコア:0)
自分もHaskellかPythonだなぁ
VBはいくらなんでもレガシーすぎる
シンプルさならQuick BasicかFree Basicだろう
好きだ―! (スコア:0)
VBはエクセルマクロ以外ではすっかり使うことなくなったけど、
一番初めにプログラムの楽しさを実感できたから未だに好きな言語だな。
Cは何かが出来たという手応えがなくて未だに魅力ないな。C#は使うけど別物だしね。
おじさんよくわからない (スコア:0)
Pythonは言語だと思うけど、VBって処理系ですよね?
いったい何を比較したいんだろ??
Re: (スコア:0)
じゃあ、VBの言語はなんなんだよ。
Re: (スコア:0)
Basicの方言であるVisual Basic。なお、処理系の名称もVisual Basic。たとえるならマリリン・マンソンみたいなもんだね。
どのVBだ? (スコア:0)
VB.NETだと思えばいいのか?
まぁ、VB.NETならC#に実装されている機能のほとんどはカバーしてるだろうしな...
ポトペタから始めて、VisualStudio並の巨大アプリを作ったり、NuGetしたりとか、深く考えずにAsync/Awiatしとけば気持ちいいんでしょ?
Re: (スコア:0)
VB.NETならオススメしない。
素直にC#で学んでも、今さら昔々のBASICからの以降でも無いだろうし、何ら問題ないだろ。
VB6の様な融通が利く言語なら学ぶのには易いと思うが、最近の動作環境を考えると・・・。
何かをデッチアゲるには凄く容易いから、一時期はテスト用に使う定番だったけど。
知人に一人、プロトタイプを見せる為に未だに使っている奴も居るが。
ちょっとなれたら画面の構成なんぞは打ち合わせしながらその場でまがりなりではあるが動くものが即出来るから。
簡単にGUIが作れる (スコア:0)
GUIを作ることによってプログラムへの興味がでる
いきなりC や Python のようにCUIベースで学ぶよりプログラミングは難しいっていう先入観をなくせる
ただVBばかりやってるとダメなプログラマーしか生まれないからある程度触らせて別の言語に移すべき
VB (スコア:0)
言語仕様が単純で覚えやすいから。
small basicでええやん? (スコア:0)
http://smallbasic.com/ [smallbasic.com]
飽きたら卒業な。
#「初めて」のレベルによる
Re: (スコア:0)
Small Basicはシンプルにしすぎてできることが少なすぎて正直つまらない
視覚的フィードバックが得やすいものが初心者向き (スコア:0)
やっぱり初心者にとって一番大事なのは、プログラムを正しく書いたら相応の結果が返ってくる、という点を実感することだと思います。そしてそれを一番実感しやすいのはグラフィカルなフィードバックであり、そういう意味ではProcessingをおすすめします。ProcessingであればJavaやCへの移行も比較的簡単ですし、オライリーから出ているリファレンスもわかりやすくて入門にはぴったりではないでしょうか。
Re: (スコア:0)
視覚的フィードバックということでいうとステップ実行できるデバッグ環境があるかどうかでも違ってくる。特に初心者の場合、ステップ実行しながらどう処理されるか確認するというのも、勉強のうちだしね。
改行&インデント (スコア:0)
改行やインデントのない読みにくいコード量産されたらたまらん。
嫌でも読みやすいコードを書かなければならないというのはPythonの売りだろ?
画面いっぱいごちゃごちゃのワンライナーとか悪夢だろ。
初学者がそんなの覚えたら、いや、ほんと悪夢だからやめてくれ。
というか、いい年こいたおっさんがそういうの書いてるの見ると痛々しい。
三つ子の魂百までというから、初めにPythonは間違ってないと思う。
VBの前でなくても、後から矯正するのでもいいから。
Re: (スコア:0)
Python でのワンライナーってチャレンジングで楽しいぞぉ!
Re:改行&インデント (スコア:1)
イジメ、ダメ、ゼッタイ [ndl.go.jp]
// 国立国会図書館で楽曲を検索すると楽譜でヒットするものだったのか。新鮮だ。
MinCaml推し (スコア:0)
"美しい日本のコンパイラ"...
Python vs VB (スコア:0)
Gristwood氏の反論にはそれほど納得できないが、すくなくともVisualBasicの方がPythonよりは役に立つ。
というよりPythonの現在の立ち位置が微妙すぎて……
学びの種 (スコア:0)
話題とは違う言語だけど、N88-BASICでやや大きなプログラムを書いて、きちんとした書き方の大切さを実感した懐かしい思い出がw
デタラメな書き方もできてしまう言語の効能というかなんというか。
まあ、そのままスパゲティなプログラミングが染み付いてしまう人も多くいそうだけど。
文法を教える時間的な余裕は無い (スコア:0)
2~3時間しか「アルゴリズムとプログラム」の単元には使えません。そういうことで、Scratchを選択しました。
専門コースではJavaを教えています。
入門から応用までの関連書籍が充実していて、ユーザが多く、自宅と家庭で同じ開発環境が準備しやすくて、用途が広いことが理由と言えば理由でしょうか。
個人的にはC言語でハードウェアを制御させたいのですが、許してくれません。
やらされている感がするともうダメ (スコア:0)
実用性の高い言語を学ぶというのは
それが仕事、ノルマ、労働を連想させてしまうので
モチベーションが下がりまくる。
Lisp系とかLuaとか、一般の労働と無縁の言語がいい。