パスワードを忘れた? アカウント作成
345354 story
プログラミング

「Microsoft Small Basic」1.0リリース 99

ストーリー by headless
GoTo 部門より

hylom 曰く、

米Microsoftは7月13日、初心者向けプログラミング環境「Microsoft Small Basic 1.0」をリリースした (Small Basic WebサイトSmall Basicブログの記事)。

Small Basicはプログラミング言語および開発環境、ライブラリーのセットで、「初心者でもプログラミングを始めやすく、簡単なものにする」ことを目指して開発された。昔のBASIC言語をイメージしつつも、.NET Frameworkベースで「シンプルかつリッチな」プログラミング環境となっている。10~16歳を対象にテストを行ってきたとのことだが、大人にとってもプログラミング学習の最初のステップに適しているという。

Small Basicは必要最低限の機能のみ備えており、スコープや型、オブジェクト指向など初心者には難しい概念を理解しなくても学習を進めることができる。かつて我々がBASICからプログラミングを学んだように、Small Basicでプログラミングを始めてほしい、という意図のようだ。

ちなみに、Small Basicで作成したプログラムは直接実行するほか、Webへの発行やVB2010プロジェクトへのエクスポートも可能だ。なお、Webへの発行時には確認画面などが表示されることなく、いきなり「smallbasic.com」にアップロードされてしまうので要注意。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by boxfox (22352) on 2011年07月17日 12時26分 (#1987947)

    0.6ぐらいからちまちま弄ったりして注目してきていましたが、Small Basicは本当に初学者に向けて作られていて、すごくいいです。
    言語の機能とかもそうなんですが、とにかくGUIがいい。かわいいんですよ。
    チュートリアルも良くできていて、早い段階から絵が描けたり亀ちゃんが歩いてくれて、ぼくのような既習者でもほっこり楽しめました。
    Webを介してハッシュコードだけでソースコードの共有ができるのも、教育者・学習者の助けになると思います。
    誤解を恐れずに言えば、Small Basicは「これで何か作る」のではなく、「(手続き型の)プログラミングの考え方を学ぶ」ことに特化した言語です。

    私見ですが、初学者にとってもっとも困難なのはこの「プログラミングの考え方」を身に着けることではないでしょうか。
    特に企業のような「手っ取り早くそこそこプログラミングができる人材」が求められる場において、Small Basicは有効に機能すると思います。
    ぼくは「踏み台」としてのSmall Basickに、何がなんだか解らないままプログラムを書いているようなプログラマーを減らせる可能性を見ました。
    プログラミングを学ぼうとする初学者に多少なりとも触れる機会のある方は、一度は触れておいて損はない言語だと思います。

    と、無職が妄想を垂れ流してみました。;D

    • Re:初学者に最適 (スコア:1, 参考になる)

      by Anonymous Coward on 2011年07月17日 13時29分 (#1987969)

      プログラミング未経験者のとっかかりとしては、おもしろい教材だと思います。
      教えることもある立場から見ると、使う人のセンスを量るのに使えそうです。
      課題を与えて勝手に使わせて、応用が利きそうか別の道を選んだ方がよさげかはっきりしますから。

      親コメント
  • BASIC といえば、

    > PRINT "Hello World!"
    Hello World!
    > 100 PRINT "Hello World!"
    > RUN
    Hello World!

    と、思っていたが、そういうものは既に過去の遺物となっているようですね。

    以前、高校の「情報」でプログラミング言語はどうしてるのかちょっと調べてみたら、Excel の Visual Basic を使わせるのと、Javascript を使わせるとがありましたね。
    Visual Basic は、マクロ警告がうざかったり、Javascript はエラーメッセージも無かったりで、こりゃ教えらんないわと思った。

    #Python のインタラクティブ環境が昔の BASIC っぽくて好きな、進歩の無いじぃさんでした。

    • by keybordist (3572) on 2011年07月17日 12時33分 (#1987949) 日記

      >> BASIC といえば、

      >> > PRINT "Hello World!"
      >> Hello World!
      >> > 100 PRINT "Hello World!"
      >> > RUN
      >> Hello World!

      >> と、思っていたが、そういうものは既に過去の遺物となっているようですね。

      過去の遺物どころか、
      大学入試センター試験の選択問題では未だにそういうタイプのBASICを使ってるので、
      BASICと言われてその形式を連想する人は未だに多いと思います。

      やってることは単純な四則演算の繰り返しだったりするので、
      文法と命令さえ覚えてしまえば楽に20点ゲットできる有りがたい試験問題ではないかと。

      親コメント
  • 素晴らしい (スコア:1, 興味深い)

    by Anonymous Coward on 2011年07月17日 11時04分 (#1987912)
    こういうものを待っていました。。
    最近のプログラミング環境はやたら準備することが多い(MSXなどに比べて)です。
    準備の一切を省いて、即遊べる環境をいつか誰かが作るべきだとずっと思ってました。
  • by Anonymous Coward on 2011年07月17日 11時08分 (#1987913)
    とかつくれないんですかね?
    私もBASICには世話になったし、昨今のプログラミングの敷居の高さは問題だと思っていたのですが
    今ならBASICよりjavascriptの方が馴染みやすいんじゃないかと思っています
    ※でも私はjavascriptを書けません:-p
    • javascriptを動かすには、HTMLの知識も必要と思いますし、javascriptとHTML、CSSの書き方がかなり違うので初心者は混乱するんじゃないかと思います。
      ただ、javascriptは画面変化で遊べるのが良いですね。インタプリタ言語単独で画像で遊べるのが少ないのは残念。

      親コメント
      • by hjmhjm (39921) on 2011年07月17日 13時36分 (#1987973)

        javascriptを動かすには、HTMLの知識も必要

        それは、JavaScript実行環境がWebブラウザにしかない、と思い込むからですよ。

        WSHのようなJavaScript(JScript)単独の実行環境もあるのだから、きちんと区別するようにすればよいと思いますが。

        親コメント
      • by donadona (37711) on 2011年07月18日 2時31分 (#1988220)

        自分が最初に触れたプログラミング言語はLOGO [wikipedia.org]でした。
        インタプリタ言語単独で画像で遊べます。当時小学2年ぐらいでしたが、みんな色々遊んでいました。
        とっかかりは良かったと思います。
        #そういえば、あれはハードはなんだったんだろう。少なくとも青と白が出力可能で、ディスプレイと別な
        #奴だった。
        #ちなみに教室には、6色カラー?なディスプレイ一体型マックが置いてあった。先生の私物だったぽ。

        親コメント
    • Rhino shellとか? 使ったこと無いけど。

      --
      1を聞いて0を知れ!
      親コメント
    • by sike (34892) on 2011年07月18日 2時30分 (#1988218)
      // WSHであればこんな感じでそこそこ遊べますね
      // 終了はCtrl+Zで
      while(!WScript.StdIn.AtEndOfStream)WScript.Echo(eval(WScript.StdIn.ReadLine()));
      親コメント
    • 「対戦型javascript環境」に空目した。

      親コメント
    • by Anonymous Coward
      最近のブラウザにはjavascriptコンソールやデバッガついているものもありますね。
    • by Anonymous Coward
      昔のBASIC(8bitマシンのROMのBASIC)では、何かタイプすれば大文字がデフォで、予約語も大文字がデフォ。あるいは、現代のWindowsでいえば、ファイル名は大文字小文字を気にしなくてよい。

      一方、Javascriptをはじめとする現代の各言語は、大文字小文字を厳密に区別する。のみならず、変数名でいえば綴りの何処を大文字にするとかの決まりまである。なんと面倒になったことか。可読性の向上はいいとしても、手入力の面倒さでお話にならない。

      初心者は、本質的でないこういう点でも投げ出すってことで。
      • by Anonymous Coward on 2011年07月17日 12時12分 (#1987941)

        >何かタイプすれば大文字がデフォで

        PC-8001は小文字入力がデフォでキーボードにCAPS LOCKすらなかったので、それまでの大文字オンリーな環境を大きく変えたと思います。
        勿論、listコマンドの結果は大文字になっていますし、変数も大文字ベースなのはそれまでの環境と変わりありませんが。
        # スクリーンエディタで編集するさい、新たに入力したり書き直したりした所が区別できるのがありがたかった

        親コメント
      • by Anonymous Coward on 2011年07月17日 13時16分 (#1987964)
        分かる分かる。
        今、初心者に混ざってプログラミングの講習を受けているんですが、
        初心者の方々は、まず大文字と小文字の区別ができませんね。
        英単語と同じような感覚でとらえている。
        あと、スコープというかブロックの概念もあやふやです。
        ですから、インデントがまともにできない。
        Python みたにな言語を使わせると大変なことになりそうです。
        親コメント
        • by t-miyoshi (5339) on 2011年07月18日 2時43分 (#1988227)

          > 英単語と同じような感覚でとらえている。

          おそらく極めつけであろう、私が会った人。

                  printf("hoge hoge$n");

          「通貨記号なんだからいっしょでしょ?」ってコトでした。
          某情報処理系の専門学校でお手伝いをしていた時の、ネタでもなんでもない実話。

          ちなみにその人が作る「課題を格納するフォルダ名」は、祐子・知美・美香みたいな女性の名前ばっかりだった。

          --
          Tak.Miyoshi
          親コメント
        • 概念を教えるのは大変だけど、大文字と小文字に関しては区別されると断言すりゃいいだけじゃないかと。
          それよりも、全角で書くな、と教えることの方が難しい。「そもそも全角ってなに?」って人がいるから。

          > Python みたにな言語を使わせると大変なことになりそうです。

          Pythonを初心者にすすめる理由のひとつが、インデントをちゃんとしないと動かないから、
          初心者のうちからインデントをきっちりする習慣がつくことだったりする。

          --
          1を聞いて0を知れ!
          親コメント
          • by Anonymous Coward on 2011年07月17日 17時13分 (#1988038)
            >大文字と小文字に関しては区別されると断言すりゃいいだけじゃないかと。

            あまい、あまいですよ。初心者をなめてます(^^;
            あるいは、比較的物わかりの良い初心者ばかり相手にしてきたんじゃないかと。
            Java でやってる講習なんですが、大文字と小文字の区別を間違えるたびに
            大文字と小文字は区別しないとダメですよと教えるわけですが、それでもやっぱり間違えます。
            Java には大文字で始まる識別子はクラスを表し、小文字で始まる識別子は変数あるいはメソッドを表す
            みたいな暗黙の了解みたいなものがありますよね。うちで使ってる教材もそんなコードなんですが、
            例えば Context クラスの context 変数を使うとか書いてあるわけです。Java の悪い習慣ですね。
            書いたベテランは言語仕様をうまく使った抜群の書き分けをやったつもりなんでしょうけど、
            初心者にとってはこれは悪夢以外の何者でもありません。
            初心者には今自分の写している部分がクラスなのか変数なのかの区別も曖昧なんですよね。
            初心者にそんなコードを写させるなよというご批判はもっともですが、
            Java を使ってAndroid を動かそうという講習なもので...

            >Pythonを初心者にすすめる理由のひとつが、インデントをちゃんとしないと動かないから、
            >初心者のうちからインデントをきっちりする習慣がつくことだったりする。

            それはどこかで読んだことがあります。
            そのハードルを乗り越えられればいいんですが、
            そのまま諦めちゃう人とか居そうですよね。
            親コメント
  • うちの学校では (スコア:1, 参考になる)

    by Anonymous Coward on 2011年07月17日 14時29分 (#1987988)
    色々試してきましたが、これが一番向いているようでした。 「プログラミン」by文部科学省 [mext.go.jp]
  • プログラミング環境が人間にだいぶ歩み寄ってきた感じで、とっつきやすくなるのはすごくいいですね。
    ただそれでも人間側の前提知識(変数とか仕組みとかの基本)がまだまだ必要なので
    そのための教材とか充実したら普通のVBでも十分だと思う。
  • by Anonymous Coward on 2011年07月18日 8時17分 (#1988261)

    ただの初心者用言語じゃないところを説明するよ。

    1. exe が作れる
      実行すると自動的に実行ファイルができるよ。ランタイム SmallBasicLibrary.dll をいっしょに配布すれば、どこでも実行可能だよ。(ただし、.Net Framework は入れてね)
      サイズはランタイムが200KBくらい。実行ファイルは数KB~十数KB。FDで持ち運べるね。
    2. ライブラリで拡張できる
      ライブラリを作って簡単に機能追加できる。IntelliSense だって効いちゃう。組み込み関数を上書きすることだってできちゃう。
      手順も簡単 [miscnotes.com]。dllを作るときに、参照設定を追加して専用の Primitive 型を使うだけ。VBだろうがC#だろうがおんなじ。
    3. Silverliteがあれば
      お手軽に使ってもらうには、実行ファイルをダウンロードさせるのはめんどくさいよね。Webに埋め込んでSilverliteで見てもらおう。
      Flashほどメジャーじゃないのが難点だけどね。

    どんなのができるかは SOkoCUTE [smallbasic.com] とか見てみて。
    仕事のプログラムに疲れたときは、ちょこっと立ち上げて短いゲームでも作ってみる。
    それだけでワクワクがまた取り戻せるよ。

  • 仕事で行列計算をやろうとして、ちょうど記事を発見。BASICだから
    10 dim Vec(6)
    20 dim Ten(6,6)
    とかして、サブルーチンで逆行列や演算をさせるようにすればいいじゃんとウキウキ
    ダウンロードして、インストール。サンプル見たら初頭に
    GraphicsWindow.FontBold = "False"
    とか、これBASIC扱いなのかぁ

    一気に意気消沈......(´・ω・`)

  • by Anonymous Coward on 2011年07月17日 11時34分 (#1987920)
    オブジェクト指向はともかく、スコープや型を省いて学習しても後で混乱するだけでじゃないのかな
    • by Super KUMASAN (34209) on 2011年07月17日 12時13分 (#1987942)

      コンパクトなプログラムを書くだけならそういった仕組みは不要ですね。"Hello World" と表示するだけのプログラムにとっては、#include とか main() とかはおまじないでしかありません。実際に入門書でも最初はおまじない扱いです。これらの仕組みは、プログラマーの自由度を縛ることにより品質や生産性を高める仕組みです。つまり、プログラマーにとっては、その必要性が理解できない限りは「余計なお世話」でしかありません。逆に言うと、一度そういったものが必要な状況に陥って苦労することでこれらの仕組みの必要性を肌で理解できるようになるでしょう。したがって、入門者には、そういったおまじないを取り払った環境で、プログラムが動くという楽しさを味わってもらい、いろいろやっているうちにプログラムが肥大化していくでしょうから、そのタイミングでこれらの仕組みを提示出来れば良いのではないかと思われます。

      プログラマの技量に合わせてこれらの機能が有効にしていけるような仕組があればよいですね。最初は型すら定義出来ていなかったのが、習熟にともなって機能の封印を解除していくと、オブジェクト指向が導入されたり、ポインタが導入されたり、最終的にはガベージコレクタが無効にできたりすると、いつのまにやらC++プログラマーですね。

      親コメント
    • by Anonymous Coward on 2011年07月17日 11時44分 (#1987922)

      プログラミングとは何か?を教えるための最初の一時間ならばそれらは不要かも
      簡単にしすぎくらいじゃないと何をしているのかを分離して覚える事は難しいと思う

      親コメント
    • by Anonymous Coward on 2011年07月17日 11時45分 (#1987924)

      昔のMSX BASICから入りましたが、別に混乱はなかったですよ。
      あれは、型がなかった訳じゃなくて文字列型と数値型は命名則で区別できましたから。
      ちょっと覚えると、変数を整数型にすることを覚えたりしますし
      アセンブラを使うようになると、そもそも型なんて無い事にも気付きますし。

      そしてスコープに至っては、サポートがなくて苦労しましたので
      C言語でスコープの概念が出てきたときは凄く便利だ、と思った記憶があります。

      習う順番はともかくいくつかの概念を知ることでそれらの差異に気付けますから
      あまり気にしなくていいのかな、と思います。

      親コメント
    • by Anonymous Coward on 2011年07月17日 12時24分 (#1987945)

      スコープや型は、初級者がステップアップしていく上で、素直に習得していける概念ではないかなと思います。
      変数という概念を知る。べんり!
      →汎用型では自由度が高すぎるという不便にぶつかる。
      →型で束縛する事の有効性を知る。

      すべてグローバル変数で作る。かんたん!
      →プログラムが大きくなってくると困る事が多くなる。
      →スコープで縛ると管理しやすくなる。

      というような。
      むしろ、最初からスコープや型の管理を要求されるとその必要性が理解できないかも。
      「学習用」の使い捨て言語と割り切れば、アリかなと思います。

      親コメント
    • by d5 (42418) on 2011年07月18日 10時41分 (#1988287)

      一挙に教えようというのも、誤りではないかい?
      小学校1年の算数に、論理演算はともかく、引き算/かけ算/割り算を省いて教えても後で混乱するだけじゃないか?というのと、同じことで、まずは数字って?数って?足せるんだよ、これが計算の最初だよ..と教えないと無理だろうね。

      あとで教えるべきは後で教えたらいいわけで、初学で教えるツールが満干全席であっても、どれから箸を付けたらよいか?初学のあとで他のツールに切り替えるのだから、それは意味がないよね、それより確実に足し算までを教える理解できる様にするツールって位置づけもあってよいし、そういう割り切りをしていない、中途半端に「あれもこれも」で初期教育以外も盛り込んで教えようとするのは、誤っていると思うけどね。

      親コメント
    • 後で混乱というよりも。
      スコープないけど、サブルーチンはあるというのなら、ループ変数どうすりゃいいんだ……

      # 慣習的に変数名が決まっていないものについては、スコープが広ければ、
      # 名前衝突防止のために長い名前つける習慣がついていいかと思うけど。

      --
      1を聞いて0を知れ!
      親コメント
  • by Anonymous Coward on 2011年07月17日 11時46分 (#1987925)
    T/O
  • by Anonymous Coward on 2011年07月17日 11時47分 (#1987926)
    ようやく1.0になったのか…というか、まだだったのか。
  • by Anonymous Coward on 2011年07月17日 11時56分 (#1987930)

    Visual Basic 6.0をNET Frameworkへ対応させて無料で公開した方がいい気がする。
    (.NET系のVBになってからがっつりとオブジェクト指向になったけど6.0までならそれほどオブジェクト指向を意識しないでもプログラミングできたので)
    Visual Basic 5.0はControl Creation Editionという機能が限定されていたけど無料版がありましたね。

    • by shesee (27226) on 2011年07月17日 12時09分 (#1987939) 日記
      VB.NETが互換性がなくて困っただけで、VB6は言語として分かり易かったわけではないよ。
      親コメント
    • by Stealth (5277) on 2011年07月17日 19時07分 (#1988097)

      .NET Framework に対応させる場合、基本的に .NET Framework の機能を持っていないと他の言語のプログラムと繋いでもまともな事が出来なくなるしできることが変化するため、無理に VB6 などを移植するよりも、そこらじゅうにある .NET Framework が入っている環境に標準で含まれる VB.NET コンパイラでいいと思いますが。

      がっつりとオブジェクト指向になったとは言っても、自身が各コードについては全コード Main に突っ込むこともできますし、COM モジュールやらサードパーティーの .ocx とか使ってたりするなら、VB6 でも .NET でも記法に大差ないですから。

      # 下手に無償版 VB6 なんて公開されたら、今年から開始したサービスなのに VB6 でのアプリ作成をやるようなトコを勢いづかせて世の中の迷惑だと思う。

      親コメント
    • by Anonymous Coward

      > Visual Basic 6.0をNET Frameworkへ対応させて無料で公開した方がいい気がする。

      いまさら VB6 ?
      しがらみがないなら、VB6 なんていうわけないだろうし、既存の VB6 プロジェクトを扱えること期待するなら、むしろ開発ライセンスと実行ライセンスそれぞれ年間10万ぐらい払っても買うところはあるんじゃね?

  • by Anonymous Coward on 2011年07月17日 12時15分 (#1987943)
    これを記念してベーマガの復活をちょっと期待してみたり
typodupeerror

192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり

読み込み中...