Visual Basic on GNU/Linux 383
jeevesbond writes "The Mono Project announced that it has developed a Visual Basic compiler that will enable software developers who use Microsoft Visual Basic to run their applications on any platform that supports Mono, such as Linux, without any code modifications."
OS X Intel? (Score:5, Interesting)
Re:OS X Intel? (Score:4, Interesting)
I'm not even sure why someone would want to run VB under Linux. C# is a fantastic language, and well suited for any O/S. VB (and VB.NET) is far more Microsoft-specific, and any developers using it run the risk of future Mono compilers not supporting its features after Microsoft has it removed.
Re:Why...? (Score:2, Interesting)
Worrying trend... (Score:2, Interesting)
So Microsoft actually provided consulting resources to Novell to make this happen.
Does this not worry anyone? What happens when I compile VB code on Linux via Mono on a non-Microsoft (i.e., non-Novell) supported GNU/Linux platform?
Re:OS X Intel? (Score:3, Interesting)
Re:More Choice (Score:3, Interesting)
Re:OS X Intel? (Score:4, Interesting)
Re:Terrific (Score:5, Interesting)
From the remaining 50%:
25% would require a week or so to port (replacing Windows library calls with Linux calls)
25% would require a month of so to work, and a Linux expert in house
25% would require a strong commitment to support Linux, and many months of work.
25% is not even worth attempting.
Miguel.
Re:More Choice (Score:3, Interesting)
No one is dumb enough to choose a Microsoft technology without assuming it almost certainly means lock-in [msversus.org]. Today they're simply lucky some of their apps can now be ported to other OSs.
Re:OS X Intel? (Score:3, Interesting)
Now if only either language had a half-decent type system...
Re:Terrific (Score:3, Interesting)
Are the submitted applications a non-biased sampling ?
Most Developers in house (Score:5, Interesting)
TONS of this software has been written in VB over the years. Either in house processing forms (for specialized data entry people, some is now web based, some is not). Or screwy niche verticals. My mother has a computer that runs some goofy program for running a small therapists office. It looks like garbage, is CLEARLY a VB app, but it's the only application designed for a single therapist that is inexpensive and runs her office.
She wanted to buy an iMac a few years ago, because she thought that they looked cool, but she wanted to run this application, so she needed Windows.
VB -> VB.Net migrations aren't trivial, but they kind of are... anyone actively maintaining VB code has probably migrated by now, with the painful process and all, or will shortly. Once they are on VB.Net, this makes the transition easy.
We're not talking about general applications, but think about the possibilities.
Small office has a custom VB application for 2 data-entry personnel. All they do is read/send email, put things in this application. Now one of the developers sees this thing on Slashdot, downloads it, and converts their VB application to run under Linux. All of a sudden, the next time these people get their computer trashed by viruses, when the IT guy is bitching about rebuilding their machines again, he mentions that he ported their application to Linux. All of a sudden, these special purpose desktops are Linux.
The Excel Power User WILL NOT switch to Linux... hell, I sometimes fire-up Windows via Parallels to run Excel under Windows because Excel for Mac isn't as strong, but you might get the entry level desktops to Linux... and that's a HUGE start.
If you got most businesses to only buy Windows for the executive suite, you'd cut Microsoft's marketshare from 95% to 50% or 60%, and all of a sudden cross-platform becomes a requirement, not a nice to have feature.
thanks, but no thanks (Score:3, Interesting)
Re:OS X Intel? (Score:3, Interesting)
LOL!
The fact that thousands of developers flocked to it was because Microsoft had killed off the original Java by not distributing a compliant runtime.
It's more like taking a highly trafficked road, blowing it up and then building an identical one.
"Look at all the people using the new road! Bet people are really glad we built that!"
(Except of course the new road only support Ford cars, but that's another story)
Re:I prefer VB.NET over C# (Score:4, Interesting)
I come originally from a hardcore x86 assembler, C background. I used to work in commercial video game development.
When I got out of that (ridiculous work ethic) and got properly into the web, I first started using Java, then PHP and finally VB6 + old "classic" ASP. Both of those latter two are wretched.
When I moved to ASP.NET in VB.NET it was a whole new world of difference. It was like the clouds had lifted.
I've coded some enormous web applications in VB.NET. I've also coded some incredibly low-level wire stuff like SMPP servers.
As per the parent's comments: VB.NET is far easier to code and read than C#. C# is so damned pedantic, just like its cousins C and C++. C# just gets in the way and slows down your development. The Visual Studio VB.NET IDE formats your code in a really nice way as you go along, and the layout of VB.NET code makes it far easier to see what is going on, and there is no chance of accidently leaving a semi-colon in the wrong place, forcing lots of debugging.
Parent is right that CType (or DirectCast) is a bit annoying, but I find use of that method pretty rare anyway. And it's nit-picking an otherwise excellent language.
I consider VB.NET the best language I've ever used, and I've used pretty much everything sane you can think of in my 20+ years of coding.
Great news that Mono now supports this. It'll make it much easier to port over my web projects to run on Linux.
Re:Um... (Score:5, Interesting)
This is nice because you can get your VB6 application running and still use the ActiveX controls you need, but then start migrating the functionality that the ActiveX controls provide over to native RealBasic controls. Even if you have one or two particular DLL/OCX's that you can't immediately part with, you can still get the rest of the app cross platform.
For example, I have an app that has mostly OS X/Tiger clients, but there is a image scanner that the client has to use, and said scanner can only be accessed by calling a particular ActiveX control. Since RB supports conditional compilation, the application has one code base, but still has a window object that calls the ActiveX scanning control if the app is running on a Windows client. So my client has one Windows XP box to access the scanner, while all of the other users run the app on OS X 10.4. I've tested the client on Ubuntu Edgy Eft as well, though no one uses this build currently.
I also made a video training application that used QuickTime on OS9/OS X, but used Windows Media Player on 98/2000/XP to play back the training videos (they were mpegs), allowing the app to be used on Windows without the (at the time) hassle of trying to get QuickTime for Windows to function. I called WMP using COM through RB, but again, only one Win clients thanks to conditional compilation.
Once you're able to migrate away from all of the ActiveX functionality , you can have access to all the gooey, cross-platform goodness. And even if you can't get rid of that one Active X control, you have the ability to sandbox it and have the rest of the app still be cross-platform.
It should be noted that many functions provided by ActiveX controls and DLLs can be replaced using RealBasic plugins, the most exceptional plugin being Christian Schmitz's MBS Real Basic Plugin [monkeybreadsoftware.de].