As most of you know, I cut my teeth on Microsoft technology. Since Windows 3.1, I was a Microsoft die-hard even going so far as to earn an MCSE and become a Microsoft partner. As a software developer, one of my favorite things about the Microsoft ecosystem was how easy developing new software solutions were. While most of my colleagues on Unix/Linux were busy banging their heads against the wall writing C/C++ code, I was kicking out software in half the time using tools like Visual Studio and languages like Visual Basic. Sure, I know C and C++, but I really fail to see the use for them in modern consumer software development unless you're writing system level code. So I used whatever was easy, fast, and convenient and that, on Windows, was Visual Studio and Visual Basic.
When I moved to Linux, I immediately faced a productivity challenge. I didn't want to use C/C++, I hated Java, and I didn't know Python very well at all. What was I going to do to push my Linux solutions out as quickly as I had my Windows ones? Of course, I went back to what I knew: C++. For a while, I wrote a lot of C++ code. I hated it, saw it as a waste of my time, but I knew it and it was more productive than learning Python. Of course, I also started learning Python since there was a LOT of code in Linux (and Windows) written in the language. Still, my productivity was not where it should have been.
One day, I was lamenting to a friend of mine about how I missed my days of Visual Studio and really wanted something as easy as Visual Basic .NET on Linux. He brought up a tool he was using called RealBasic and I immediately found the idea very interesting. Here was a language that was easily accessible to an old .NET developer, completely object oriented, and created fully cross platform code! It was like everything I'd been dreaming about for months suddenly came true and I had to know more!
The next day, I visited the RealSoftware website and what I found was amazing. Developers of all stripes, from novice to professional, were singing the praises of this language that I'd never even heard of. They wrote about increased productivity, how cross platform it was, how easy it was to learn, and all of the great things there were doing in half the time using a tool many of them had only picked up a few months earlier Of course, I downloaded the trial and immediately got hooked. Here was a tool that combined the cross platform nature of C++ and Python with the ease of use of Visual Studio. Could anything be better?
RealBasic (now called REAL Studio) offers all of the tools a professional developer needs including an object oriented language, version control, access to almost any database, the ability to develop dynamic web application as well as desktop ones, 'write once' deploy on Windows, Mac, or Linux, and a host of other features that any developer would love.
OK, so what's wrong with it?
For all my enthusiasm, REAL Studio isn't perfect. First, it's not free software (either in cost or as in freedom). The software is proprietary and Real Software does not plan to open source it anytime soon. That will present a problem for free software purist who believe that the entire toolchain has to be open source or the technology is useless. It bothers me a bit because there's no free compiler for REAL Studio that I could use without having to purchase the software.
Next, the price is prohibitive for new developers. If you're writing open source software, you can apply for a Personal Edition license (which normally cost $99) but it only allows you to developer Linux software and does not allow you to cross compile for other platforms. If you're a commercial developer or someone not writing open source on Linux then your cost will start at $99 and go up to $999 for the Enterprise Edition of the software. If you make your living writing software, the prices aren't really that bad but if you're a hobbyist, they might be a problem.
My last complaint is stability. I run a slightly older laptop that has a 1.8Ghz processor and 3GB or memory and running Ubuntu 10.10. It's not horrible but it's not top shelf gear either. Sometimes, while I'm coding, REAL Studio behaves in weird ways. Code completion sometimes takes a while, compiling can be a process that brings my system to an absolute halt. My screen grays out and all I can do is wait for the compilation to finish. If I'm compiling an application that uses a lot of graphics resources (and especially if I'm cross compiling for Windows) that process takes forever and has occasionally crashed my system after eating up all the free memory.
When I first encountered the problem I thought it must be me. Certainly I'm doing something wrong or accessing resources the wrong way. So I asked on the REAL Studio mailing list and the answer I got was "don't use graphics'. What? How can I write a really professional looking program and not use graphics? That was the advice. It seems the REAL Studio community has learned to work around the bugs and annoyances of the language to create the software they want. I'd much rather the company fix the bugs instead of taking the 'work around' route but that seems to be both the corporate and community stance right now on at least some of the bugs that are out there.
To be fair, I know that many companies don't fix non-critical bugs in their software and expect users to simply work around them. But I don't really consider a bug that crashes a computer a non-critical bug and I don't think we should have to work around that. I've not upgraded to the newest version of REAL Studio yet (2011r1) but I suspect that the bug is still there as it's been there for at least a few versions prior. Perhaps I'll try it out and report back in this post.
My overall impression
Overall, I really like REAL Studio. I think it allows everyone from novice to professional to be productive and opens up software development to people who otherwise would be shut out of a great process. I'd like to see a few changes but that's more in the way the compiler works and they are working on moving to the LVVM compiler so those might just take care of themselves.
So, whether you're a new developer or a seasoned professional, I'd recommend REAL Studio to you. Start out with the Personal Edition, see if you like it, then upgrade. I guarantee you'll have very few regrets.
Me? I'm still learning Python and eventually want to move all of my development to it. But for now, productivity is king and REAL Basic rules productivity for me.