Monoプロジェクト、GNU/Linux用Visual Basicを発表 66
ストーリー by mhatta
欲しい人は多そうね 部門より
欲しい人は多そうね 部門より
pinbou 曰く、
本家/.の記事より。.NETのオープンソース実装を開発するMonoプロジェクトが、Visual Basicコンパイラを公開した。GNU/Linuxは言うまでもなく、Monoがサポートするプラットフォームであれば、どのプラットフォームでもMicrosoft Visual Basic 8.0で書かれたプログラムをコードの変更無しに実行することが可能だという。
VBデベロッパーもLinuxへ流れてくるのか? (スコア:3, 興味深い)
強制的にということがあるかもしれないなぁ。
そうなった場合、Linux上で、あの悪夢のような巻物関数が再現されると思うとゾッとする。
現在も巻物解析中(3ヶ月目)。。。。。
cat_kei@
Re:VBデベロッパーもLinuxへ流れてくるのか? (スコア:0)
そろそろ古い書物は捨てて、新しい巻き物をおこしてはいかがかと。
Re:VBデベロッパーもLinuxへ流れてくるのか? (スコア:0)
ええい、巻物を再生産すんじゃねェ。
とはいっても、ぶっつけ仕事で時間も無ければ客側にすら業務理解能力が無い時にはVBが便利ってのは確かだが。
仕様打ち合わせしながら作れるものね。
んが、余裕があるなら出来れば使うな。
巻物は使ったらなくなります (スコア:1)
>ええい、巻物を再生産すんじゃねェ。
何を言っているんですか。
巻物はたいていのゲームでもそうですが使い捨てするものですよ
むしろサンデープログラマが (スコア:0)
ちょっとしたツールをでっちあげるのに便利になると良いな。
シェルスクリプトすら書けない(w 私は専ら perl を使っているけど、
GUI 備えた方が便利だな、という場合も全く無いわけではないので。
Re:むしろサンデープログラマが (スコア:1)
Re:むしろサンデープログラマが (スコア:0)
Monoでの画面はどうなるのか? (スコア:2, 興味深い)
それとも Linux などの場合は、gtk binding などに変換されてしまうものなのでしょうか? 文字入力(Input Methodなども関連するかとおもうので)
Re:Monoでの画面はどうなるのか? (スコア:1)
古い情報かもしれませんが [ximian.com]、Wineベースの実装と、GTKベースの実装が有るみたいです。
Re:Monoでの画面はどうなるのか? (スコア:0)
VB6を非OS依存にしたいならこっちのほうが面白い。
http://blogs.sun.com/herbertc/entry/project_semplice_visual_basic_for [sun.com]
手っ取り早くいうと (スコア:1, 興味深い)
Visual Basic on GNU/Linux! (スコア:1)
書かれていて、Linux環境への移植に難渋したことがあったので
非常に有り難い話です。
OOoで使える? (スコア:1)
だとするとmonoを使えばOOoでMS-Officeのマクロ動かせたりするようにもできたりします?
Re:OOoで使える? (スコア:2, 参考になる)
#VB.NET は VB6.0 より C++ や Java とかの方が近いかも。
で、今回のコンパイラは.NETな方のVBのコードをコンパイルできるようにしたものですが、
Office のマクロ言語として利用してるVBA(Visual Basic for Application)は、言語仕様的にはVB6.0側です。
Re:OOoで使える? (スコア:1)
なるほど、でっかい溝があるわけですか。
そのうちVBAも.NETになって……ってことはないですかねえ。
Re:OOoで使える? (スコア:1)
とちょっと楽しみにしてた私は少数派でしょうか…。
# まともに触ったのがVB.NETからだったので。
Re:OOoで使える? (スコア:1)
しかも少しずつVB6の仕様に戻りつつあるし
Re:OOoで使える? (スコア:0)
ですから、残念ながらOOoとの連携までは無理じゃないかと思います。
なんでNovellトピックなのかと思ったら (スコア:0)
Re:なんでNovellトピックなのかと思ったら (スコア:2, 参考になる)
Re:なんでNovellトピックなのかと思ったら (スコア:0)
Re:なんでNovellトピックなのかと思ったら (スコア:0, 荒らし)
ジェントルミィェン、登場。 (スコア:1, 余計なもの)
( ここはひとつ、私に免じて許してやってくれ給へ )
V
( ・_ゝ・)o|■
特許は? (スコア:0)
俺がこれを配ってもMSに訴えられないのか?
Re:特許は? (スコア:1)
#特許がかかってくると微妙なところはあるけど
#あとLinuxっていう別プラットフォームであることを考えても、そんなに競合製品になるとは思えないし。
実際の互換性は? (スコア:0)
WinEmbなんかにちょいちょいと乗っけて専用端末を、って使い方をする場合を考えると、上手くやればLinuxでも替わらんレベルで使えたら良いな。
うちでのVBの使い方は大抵そうなんで。がWinEmb自体は大して高いものでも無いんで使い勝手次第だな。
大丈夫なのかな? (スコア:0)
Re:大丈夫なのかな? (スコア:1, おもしろおかしい)
Re:大丈夫なのかな? (スコア:0)
GNU/Linux用? (スコア:0)
記事のタイトルだけ見るとネイティブバイナリを吐くコンパイラをリリースしたように見えるけど、違うよな?
これじゃ
「GNU/Linux(i386)でVisual Basicが動作。ただし動作はVMware(Windowsインストール済)上」
って言ってるのと大して変わらない
Re:GNU/Linux用? (スコア:2, 参考になる)
タレコミにリンクのあった、Mnoプロジェクトのプレスリリースから。
Until now, Visual Basic applications could only run on Windows OSes, without major modifications.
With the Mono Visual Basic compiler, however, those applications will be able to run on many more platforms.
As a proof point of this new platform independence, the new compiler is self-hosting. That is, the complier itself is written in Visual Basic.
と言うことで、多分、MicrosoftのVBと互換かどうかはわかりませんが、今回の「Mono版Visual Basic」を使えば、コンパイラからコンパイルしたアプリまで、Mono実行環境があれば全て同じ形式の中間コードで動きますよ。って事のようです。
# 確か、「Microsoft版Visual Basic」も、コンパイルした結果は
# 中間コード形式であり、それをランタイム環境が読み込んで動いているはず。
Re:GNU/Linux用? (スコア:0)
>the complier itself is written in Visual Basic.
「え?VBなんかでコンパイラ書いたの?
それのソースって一体どんな難読コードなんだ?」
っていうあたりじゃないかと思った。
#matzさんなら絶対ダメ出しすると思うんでAC
もともと「実行」は可能 (スコア:0)
昔から VisualStudio でビルドして、mono で実行はできてた。
コンパイラが出たことで、ビルドも mono で出来るようになったって話でしょ?
でも C# のコンパイラもそうだけど、mono 版はコンパイラの最適化がしょぼすぎるんで、結局 MS 純正コンパイラを使うことになるのよね。ビルドだけならどこでやっても同じだし。
VMの実行速度も、とてつもなく差があるけど、MS版の VMは Linux 上で動かす手段がない。
Re:もともと「実行」は可能 (スコア:1)
ところでコンパイルできたとしてもウィンドウプログラムが作れるわけではないので、
あまり意味がないような。わざわざLinuxサーバでASPというのも。。
Re:もともと「実行」は可能 (スコア:2, 参考になる)
作れますよ。Windows Forms移植されています。
Re:もともと「実行」は可能 (スコア:0)
Re:もともと「実行」は可能 (スコア:0)
かな漢字変換が利用できないとか聞いたのだけど、どのぐらいの完成度なんだろうか?
Re:もともと「実行」は可能 (スコア:0)
Mono全体に対しても。
でも、将来には期待しています。
# たぶん追いつけないと思うけど・・・
Re:もともと「実行」は可能 (スコア:0)
いつから .NET ってVM 上で動くものでなくなったんですか?
VM上での実行でなくなるという将来的な話すら、まだ出てきてないようですが、、、
それとも JIT で動く場合もあるので VMの上じゃないとかいう話?
Re:もともと「実行」は可能 (スコア:1)
http://www.users.gr.jp/blogs/hidori/archive/2004/06/25/3316.aspx [users.gr.jp]
おお、前にWineで動かそうとしてると知ったのですが、いまはまた作り直してる。のかしら?
Re:もともと「実行」は可能 (スコア:2, 参考になる)
VM上で動く実行コードはそのVMのバイナリだと思います。
PPC Mac上で動くVirtualPCの実行コードはx86です。
しかし、CLRの場合、プリコンパイルとしてMSILにしますが、
実行時にはMSILからそのマシンのネイティブバイナリにコンパイルされます。
Monoで動く実行バイナリはMZ形式ではなく、ELF形式なはずです。
# でもちょっと不安になってきたり
Re:もともと「実行」は可能 (スコア:1)
>VirtualPCやVM Wareではx86の命令をVM上のCPUではなく実機で直接実行してますね。
以前、「はてな」でもツッコミ入れましたが…。
ここでは気にする必要が無いと思いますが、他で書くときは「Windows版の」という
言葉を入れた方が良いですよ。
VirtualPCは、Windows版よりMacintosh版の歴史が長いので、文章読めずに
「(Macintosh版の)VirtualPCはx86命令を直接実行なんてしてない!」
と言うのがでたりしますんで。
Re:もともと「実行」は可能 (スコア:1)
ある言語で書かれたプログラムを解釈/実行することが目的のVMと、
VMwareやVirtualPCのようなハードウェアを仮想化して、
ほかのOSやCPU用のプログラムを実行することが目的のVMを
同列に語るのは間違いでしょう。
というか、ここでVMwareやVirtualPCが出てくること自体が不思議でしょうがない。
CLRがVM(JVMのようなインタプリタの発展型)ではないというのも理解不能。
中間のバイナリコードをJITでネイティヴコードに変換しながら実行する。
どう考えても、JVMの同類じゃないですか。
Re:もともと「実行」は可能 (スコア:1)
>というか、ここでVMwareやVirtualPCが出てくること自体が不思議でしょうがない。
>CLRがVM(JVMのようなインタプリタの発展型)ではないというのも理解不能。
>中間のバイナリコードをJITでネイティヴコードに変換しながら実行する。
>どう考えても、JVMの同類じゃないですか。
”既存のソフトウェア(バイナリ形式)を動かす為に作られた仮装実行環境”と
”汎用を目的として作られたバイナリ形式と仮装実行環境”は
言うまでもなく同列に語るべきではないと思います。
しかし、”仮装実行環境を実ハードウェアで実行できる様に翻訳し、動作させる物”と
いう見方をした場合、”似た扱い”をしてしまうのも致し方ないかと。
JAVAのバイナリを直接実行できるハードウェアがでている現在だと、
CLRとJAVAそれぞれの成り立ちを知らない人は間違いかねないのではないかと。
同僚が”違いのわからない人”なら、小一時間説教というか…教えますが(笑)
#目的は違う物ですが、遠い昔COMET(http://ja.wikipedia.org/wiki/CASL)の
#挙動をTurboCで再現をしようとしていたのを思い出しました。
#私にとって、あれが初めての仮装実行環境でした。なつかしい。
互換性 (スコア:0)
いや、単にそんな気がするだけですが。
Re:互換性 (スコア:2, 参考になる)
とりあえずMono ProjectのFAQ [mono-project.com]より
現時点では.NET1.1のAPIと.NET2.0の極一部がサポートされてるということです。んでバイナリ互換、と。開発用のツールなんかが簡単に移行できるといいなぁ。
むしろVisualBasic6.0で (スコア:0)
# .Net以前の生活です
Re:むしろVisualBasic6.0で (スコア:1)
「うごご、何でこの程度の事にこんな面倒なことを…」と思わされることもしばしば。
これはこれで、悪くないんじゃないかと思います。
# ただ、VB6以下とVB7(.NET)以上を一緒の物として見るのは間違いだと思いますが。
ところでIDEは? (スコア:0)
(IDE組み込みでない)テキストエディタでコーディングしたり、
ビルドツールをコマンドラインで叩いたりするとは思えんのですが。
#monodevelopとかが対応したりするのでしょうか?
Re:ところでIDEは? (スコア:1)
テキストエディタで書いたり、ビルドツールをコマンドラインで叩いたりすると思えないのはなぜでしょう?
極めて初期の .NET Framework な記事や本はそうしたやり方でしたよ。FreeBSD なんかで動く SSCLI もコマンドラインのみでした。
また、Visual Studio などを使っても、結局裏でコマンドラインツールを呼んでコンパイルする点は変わらない訳で。
こうしたものを作るにしても、まずコマンドラインで動作するコンパイラを作るところから始まるのではないでしょうか。
# とはいえ、VC#.NET 2005 のふざけた快適性に慣れたら、そっちで書いて Mono で動かせばいいんじゃない? となりそう。