Visual Basic on GNU/Linux
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."
I wonder if this will include OS X Intel, which Microsoft claims they simply just absolutely cannot port VB to under any circumstamces ever. That would be pretty funny.
According to our statistics, based on 1,500 applications that have been submitted using the Mono's Migration Analysis, 50% of the VB.NET applications do not depend on the operating system.
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.
Most software is NOT written for mass consumption, it's either written in house or for small niche markets.
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.
Even better, you can use many/most existing ActiveX controls with RealBasic.
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.