2004年01月09日
川俣晶の縁側ソフトウェア技術雑記total 3318 count

ソフト冒険記・Windows Installer for Mono 0.29 「C#/Visual Basic.NETもオープンソース時代に入るか?」

Written By: 川俣 晶連絡先

 いつまで経っても消えない都市伝説として、C#はオープンソースに対立するものという風説があります。今でも多くの人が信じている困った事態があって、C#プログラムに無意味な風当たりを生じさせて、至極迷惑なわけですが。

UnixだけではなかったMonoプロジェクト §

 オープンソースのC#、CLI、更にはApache上で動くASP.NETなどを開発しているMonoプロジェクトRSS情報を提供しているのに気付いて、Subscribeしておいたところ、ふとこんな情報が目に入りました。

Jan 4th, 2004: Windows Installer for Mono 0.29

There is a Windows Intaller for Mono 0.29 available now.

 ありゃ、Windows Intaller? そんなものがあったの? これまでUnixオンリーだと何となく思い込んでいたのですが、WindowsもOKなら、すぐ試せます(テスト用OSを新規にインストールしないで済むから)。というか、試さずにはいられません。

インストール §

 さっそく、テストマシンに、Windows Intaller for Mono 0.29を入れてみました。

 Windows Intallerというだけあって、普通のWindowsアプリケーションのように、するっとインストールされます。

 さて、インストール後にどうやって使うのだろうかと思ったところ、特にスタートメニューに何か登録されるわけでもなく、良く分かりません。

 とりあえず、インストールしたディレクトリの下にあるbinディレクトリ下のプログラムを動かすようです。

 このあと、実行可能にする手順をしっかり説明したいところですが、実は途中でいくつか間違った挙げ句、現在は動いているという状況で、どれが必要な手順であったのか説明ができません。

 もし、Mono体験記事を書いてくれ、という原稿の依頼があれば、そのときにきちんと調べ直します。(期待する読者は、そういう記事を掲載しそうな媒体に、「川俣さんの書いたMono体験の記事をぜひ掲載して下さい」とお願いのメールを書こう!)

 ただ、それほど困難な手順は要求されていないと思います。コマンドラインや環境変数が分かっていれば、問題ないように思います。

これがオープンソースのC# §

 bin/mcs.exeがMonoのC#コンパイラです。

 さっそく実行してみましょう。といっても、Monoの環境で動かすためには、Mono.exeを経由して起動する必要があります。

 つまり、以下のようなコマンドをコマンドラインで叩く必要があります。

Mono コマンド名 引数...

 サンプルソースには以下のようなものを書きました。

using System;

class Test

{

    public static void Main()

    {

        Console.WriteLine("Hello World!");

        Console.ReadLine();

    }

}

 実行中のプロセスを確認したかったので、リターンキーを入力するまで待つようにReadLineメソッドも呼んでいます。

 いつもはVisual Stuido.NETのIDEで、様々な支援機能に助けられながら書いているのですが、テストマシンにそんなものはありません。秀丸でヒヤヒヤしながら書きました。IDEによって自動で書き込まれる箇所は、正確な構文を記憶していない可能性がありますので。しかし、有り難いことに、一発でコンパイルが通りました。

 これをコンパイルして実行したスクリーンショットです。

オープンソースでC#

 とりあえず起動するコンパイラをフルパスで書いているのは格好悪いですが、これはあくまでお試し実行ということで。

 実行は2回行っていますが、1回目はMonoで。2回目は、Microsoftの.NET Framework 1.1での実行です。どちらでも問題なく実行できる互換性の高いコードを生成していることが分かりますね。

更に悪のりしてオープンソースのVisual Basic.NET! §

 MonoにはBasicのコンパイラも入っているようです。となれば、Viusal Basic.NETプログラマを応援する熱血ライターと吠えてみた以上、試さない訳にはいきません。というか、面白そうだったので、C#よりもずっと試したかったのです!

 C#と同じ処理を行うコードを書いていました。

Imports System

Class Test

    Public Shared Sub Main()

        Console.WriteLine("Hello World!")

        Console.ReadLine()

    End Sub

End Class

 こちらの方は数回コンパイルエラーの修正を繰り返す必要がありましたが、有り難いことに、言語仕様を調べなくても書き上げることができました。普段はIDE任せにしている部分も、けっこう頭に入っているものですね。

 実行結果は以下の通りです。

オープンソースでVisual Basic?

 実行させた内容は、C#の時と同じです。

 Visual Basic.NETのソースを、オープンソースのコンパイラでコンパイルして、オープンソースの実行環境で実行できるというのは、妙な感動がありますね。

C#/Visual Basic.NETもオープンソース時代に入るか? §

 こうして見ると、C#がマイクロソフトに独占されたproprietaryなものだというのが間違いだと言うことが、体感を通して分かりますね。言語仕様はECMAの標準(ECMA-334。ちなみにECMAScriptはECMA-262)になっているし、コンパイラも実行環境も、マイクロソフト外から入手でき、しかもオープンソース。

 あとの問題は、オープンソースにおいて、使う側がC#を選ぶか否か……、と書きたいところですが……。そもそも選べるという事実が知られていなければ、その段階にも達しないという感じですね。C#をマイクロソフトのproprietaryな言語だとか、オープンソースに対立するものだと決めつけるような論客ばかりが横行し、彼らの言葉が人々への説得力を持っている(そう言う言葉を納得して聞いてしまっている人々ばかり)という状況では、まだまだ先は長そうです。

 Visual Basic.NETに関しては、ちょっと状況が違っていて、Visual Basic.NETという言語仕様そものは、マイクロソフトのproprietaryなものだと思います。(最近の動向などを見落としていなければ)。

 その点で、オープンソースでVisual Basic.NETを使うことがどの程度確実であり、有益なのかは分かりません。

 しかし、面白い。面白いですよ。Visual Basic.NETで書いたコードがLinux上でも走るわけですから。

 冒険する動機として、「面白い」とはこれに勝るものなし。

Facebook

トラックバック一覧

2004年05月07日monoFrom: alm-ore

フリーの .net 環境 "mono" 竜頭蛇尾な記事で,内容が薄いのはいつもの通り. 続きを読む

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2004年
01月
11日
C#で自作例外クラスを作成する場合のテンプレート
3days 0 count
total 16290 count
【技術雑記】の前のコンテンツ
2004年
01月
05日
mockオブジェクトを作成できない場合に、delegateを使ってテスト可能なクラスを設計する方法
3days 0 count
total 5792 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20040109112759
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.