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.
"With no code changes"? And it works? Call me skeptical, but I'll believe it only after I see it. This seems a bit far fetched, considering how tied to Windows Visual Basic is. I use VB6 daily, and it would be great if that ran smoothly under Linux, but this project only works with "VB 8.0", so I'm curious to hear if this thing actually works.
I don't respond to AC's.
I love it. The list of choices is growing and growing. The fact that Mono can do this, and after having struggled with WINE, this is a massive leap.
This will get more .NET developers over to Linux. Then, it will get more .NET developers too look a other ways of doing things.
There are those will decry this as bad, but think about the possibilities.
Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
See also: "Ballmer repeats threats against Linux" thread below.
Care about privacy? Read this!
This is Visual Basic.NET, not actual Visual Basic...
If there were a VB6 compiler for Linux, that would be much more interesting to me.
-uso.
What you hear in the ear, preach from the rooftop Matthew 10.27b
But,
A) Most VB applications are tightly linked to OS and application-specific libraries.
B) Most applications that do not require those libraries are not written in VB.
C) Anyone versed enough in languages to be using MONO is probably not married to any language--and certainly not VB
So, other than being novel, what's the point?
so which (non-vb-infected) operating system do I switch to now?
Great. That's like saying now you can eat your lobster with a fork made of frozen shit.
From TFA: .NET framework. "
.Net or any other Microsoft born encumbrance.
"Novell Inc. sponsors Mono, which is an open-source development platform that aims to be compatible with Microsoft's
I'm not a fan of bringing Microsoft technology to the Free Software realm, not for purist reasons (although they are at least pertinent) but because, with this Novell-MS agreement in practice, it would not take a lot of effort for Microsoft to find a way to either forbid any non-Novell distros to use the technology or to wait and sue distros that include it (in case there is some patented technology included, mistakenly or purposely, and people know that, at least on U.S., everything is patentable, even the double click).
Furthermore, with Java becoming free as in free will, I don't see how free software benefits by having VB,
Maybe now we'll see some real development on Linux!
Wow... saying that actually made me vomit a little in the back of my mouth...
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Yeah. Would you choose a neurosurgeon who pokes around people's brains in his spare time? I wouldn't.
...Drop objects on a form and define pieces of code that connects the objects. There wasn't any real programming being done....There was no "real programming?" Why don't you first define what "real programming" is? If in your case, you were defining pieces of code to connect the objects, you were behaving like a newbie - no offense to you.
On the other hand, I have developed more than 22 serious projects using VB and the forms you might have used. I agree VB was not a "wise" platform in many cases, but that was due to my employer's environment.
These projects/systems included cargo handling, hospital management, roster/scheduling in the hospitality world, schools and traffic management environments.
Let me tell you this: To a Joe User VB kicks ass big time as compared to anything in the Linux world. You can decide to be very simple and do forms as you might have done, or you can do some serious work like some of us have done.
From TFA: "... this (VB run-time on Linux) was rewritten from scratch from Visual Basic by Mainsoft with some help from Microsoft."
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?
a decent language for Linux. Now we will see a huge migration of people over the platform. You might as well shut up shop now Microsoft.
But seriously, I thought everyone hated VB?
We have been able to run code compiled with Microsoft Visual Basic for a very long time (1.0 was supported for a few years with the old runtime, and 2.0 has been supported for a few months with our new runtime).
But there were a few problems, ASP.NET for example would requite a compiler on the host to compile VB.NET-based ASP.NET pages. ASP.NET works by translating special commands and tags into your language and mixing your code with the resulting output with a technology called "CodeDOM".
So this particular scenario (ASP.NET with VB) was not supported due to the lack of a compiler.
This also allows Windows developers to do their work on Linux directly without having to use two machines to develop.
Miguel.
Come on mods, how come this is redundant when no one mentioned Gambas here?
Miguel de Icaza appeared on the LUG Radio podcast, and gave a really good description of how this sort of thing fits into a coherent business strategy:
.NET.
.NET apps use, and they've been trying to pick off the APIs that will give them the most apps running in the real world on linux.
.NET people who want to make their apps more portable -- which mostly means doing things one way, using some APIs, instead of another, using other APIs. According to Miguel, they're getting a good response from .NET developers, who would like to see their stuff become more portable -- they'd love to see .NET pick up some of that "write once run anywhere" magic that java has. They'd like to not be locked in.
http://www.lugradio.org/episodes/69/
Basically, the argument goes like this. If you look at what's locking people in to windows now, it's not so much the big stuff -- office apps, browsers, email programs, etc. We have all of that stuff, and most of what we have is pretty terrific.
The stuff that locks people in is small and narrow -- software to do some odd, specific, business related thing. Some app that's tweaked to run scheduling in a dental office, or whatever. My mom has a travel agency, and she uses an app that manages all of her customers, and that's windows specific. I have a friend who installs burglar alarm systems, and he has software that programs alarms, and which only runs under windows.
There isn't one big thing that's locking people in -- it's thousands and thousands of small things. Everyone has something different, but almost everyone has *something*. And a giant chunk of those little things, now, are running under
The Mono guys have been using an automated tool that looks at what libraries
On top of that, they've been working with
The point that's getting lost in a lot of the fights over Mono and the infamous deal (about which I personally have many misgivings) is that Novell is mounting an incredibly audacious attack on the Desktop, and this sort of thing is a big part of it. They're not satisfied with servers.
I don't know if it will work, and again, every time I read something about Ballmer talking smack about linux, I get nervous about that deal. But at the same time, I sort of love the bigness of what Novell is doing, the audacity of it.
For whatever reason, Novell is doing an incredibly bad job of explaining all of this to us. Which is why I really encourage everyone to grab that podcast episode, linked above, and listen to what Miguel says about mono.
. . .porting Microsoft Bob to the Mac.
I decided that behaving ethically was the most nihilistic thing I could do. - Paul Pavel
A classic example are Outlook/Exchange admins. They consider themselves IT professionals, but very few of them whom I've met actually understand how the network infrastructure really works. They are, however, convinced that they do. :)
I know of one such guy who is supposedly a name in the Microsoft world, to whom other Exchange admins look up to (he runs a popular website on this stuff). He was actually completely unfamiliar with what port 25 was! He was under the impression that it was "a Linux thing". I tried to explain to him how email actually worked, but he just didn't want to grok it.
He was comfortable with his buttons, and didn't want to progress farther. Of course the IT infrastructure is the usual disaster, always requiring patches and the mailserver always having the usual Exchange problems. You just can't educate people like this that there are better, more reliable ways.
Sorry if this pops some people's bubbles, but buttonpushers aren't programmers nor are they IT professionals.
There. I said it. Now shoot me.
.NET came along - then I switched to VB.NET for the same reason. I never wanted to touch "classic" VB because it was a steaming pile of donkey poo, however.
.NET, it's mostly about the framework, anyway, as it's language-agnostic. You cannot get far if you don't know the framework; if you do, then the actual language is mostly irrelevant, the differences can be picked-up in half an hour.
But I honestly do prefer VB over C# because I find it easier to read. I have never *liked* the "C syntax". 15 years ago, I switched from Borland C++ to Borland Pascal (I honestly did!) because I enjoyed Pascal's verbosity. I used Delphi for a long time, until
It's not like I can't read C-style syntax or write it; I can. I do a lot of JavaScript programming, I extensively use both PHP and C# at work, but when it comes to personal projects, VB(.NET) all the way.
I guess it's just a matter of preference. Some people like && || !, some like And Or Not. Some like curly braces, some like Begin..End blocks. And with
That said, some things in VB irritate me. The stupid typecasting via CType(var, type) is something I wish would just die in favour of C-style (type)var. Multiline strings as well, and the root namespace is something I always forget to destroy when starting a new project...
Anyway, congratulations to the Mono team. When I get rid of Windows soon, in favour of Linux, I will be glad to know that my pet language is going to be usable for ASP.NET apps!
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.
That's an awesome example, I have a similar one. One of my old Interns wrote a program in Cocoa for Mac, because he was a Mac fan and it was a prototype. One of my guys thought that it would be fun to learn Cocoa, so adapted and rewrote the application over several revisions. It doesn't do THAT much, the heavy logic is server side, but it's a pile of code and the developer that wrote it isn't with us any more.
Well, I had 8 people using that program, so what the hell, rather than re-writing/porting, we bought 8 Mac Minis and used those as desktops. Nothing they ran (besides this in-house orphaned program) required OS X, but Apple and OS X got the sales for that reason. Had it been written by the guy who was playing with Qt at the time, who knows, we might have Linux machines there.
Most Slashdot whiners have NO CLUE how computers get used, because they think that their home use of computers is at ALL indicative, or they work in an IT company or school... they don't understand how a few legacy applications may have multiple people (with their computers) can have the oddest software requirements if their job is built around an old legacy code base.
I just toured a potential partner's warehouse, his whole system is manual. The accounting is Quickbooks, the shipping is Fedex's software, and their "integration" is some only shopping cart solution where he can download the information into Quickbooks and Fedex... There is no glue code for managing the warehouse... But he has several people whose job revolve around these applications, and the computers and OS's are purchased to run these apps.
Aside from the fact that Novell is a major sponsor of this work, another major contributor was Mainsoft. We know that Mainsoft has had access to MS source code and probably continues to do so despite that mishap they had a few years back when they leaked Win2k's source code to the world. So, from the IP side, I'd be worried about MS coming after me later for royalties if I wanted to use this stuff... and that's before I get over the fact that Mainsoft's technology is as slow as heck.
"...today consumers have been conditioned to think of beer when they see a bullfrog..."
I totally agree with the parent.
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.
You do realize linux is full of GUI apps, right?
:P
What else do you need besides a window manager and a bunch of terminal windows?