Thursday, September 16, 2010

Linux softwared development without the headaches

I've been a professional software developer for the better part of fifteen years. During that time, I've developed software for Windows, Mac, Linux, and even good old BSD and other traditional Unixes. Depending on the platform, the experience ranged from an absolute joy where I felt like going home singing every day to a hellish nightmare where I spent my lunch hour devising ways one could successfully hang themselves from a cubicle wall. The tools on these platforms were all over the place. Some had nice UI designers and easy to learn languages (Windows with VB and C#, for example) and other provided much less than...stellar and welcoming experiences for developers (like Mac and BSD). So, for the most part, I tried to stick as closely to my safe little Microsoft created ecosystem: Visual Studio, Microsoft Windows, and VB or, more recently, any of the .NET languages.

Slowly, and thanks to a bunch of people who gently nudged me in the right direction, I began to see how damaging proprietary system could be to a technology ecosystem and began exploring doing more open source development using open source platforms. This, in 2002, brought me to Linux and I fell in love. Here was a platform that worked well, was stable, and while still a bit rough around the edges, made my job considerably easier for most things.

Except developing software.

So for the last nine of ten years, I used Linux on and off, developed a few applications in languages like Python or Java, but still stuck to my cozy Windows world. I was happy, I thought, and while I didn't like the idea of closed systems, the ease of developing applications on Windows was enough to keep me drunk on the proprietary wine that Microsoft was much more than willing to keep providing me. But again, I found my interests drawn to Linux and open source and simply couldn't seem to walk away from it. But what about software development? I really didn't want to give up my productivity just for the sake of saying 'I work in open source'. There had to be a better way than packing widgets manually and having to draw layouts on paper before writing code.

It turns out, there was and it was from a little company that lived right in my backyard called REAL Software. REAL Software is an Austin Texas based company that develops an incredible product called REAL Studio. REAL Studio implements a language called REAL Basic. REAL Basic is a fully object oriented language that just about any VB.NET developer will be able to pick up in a weekend and immediately become productive.

Working in REAL Studio is amazing. It's as close to Visual Studio as you're going to find, allowing you to visually lay out your user interfaces, write code behind by simply clicking on a widget, and has just about everything else you'd expect from a modern language. Best of all, it runs on Linux, Windows, and Mac and can produce binaries on any platform for any of the others. Using REAL Studio, I can develop a piece of software on Linux and with two or three clicks create executables for Linux, Windows and Mac. How sweet is that?

It doesn't stop there, though. REAL Software announced a few days ago that they're taking on both the web and the iPhone by creating a version of REAL Basic to target these platforms and make developers more productive. Gone are the days of ASP.NET or PHP, CSS, HTML, and JavaScript. Everything for your dynamic web pages can be done right in REAL Studio and deployed to just about any web server. See the video at the end of this article for a demo of what REAL Basic for Web Development can do. iPhone development is going to be just as easy. With the relaxed licensing Apple announced a few weeks ago, REAL Software was able to create an incredible version of REAL Basic for developing iPhone web apps and, in the near future I hope, native apps that live in the app store.

Needless to say, I'm hooked. I can now develop fully cross platform software without the hassle of pouring through multi-hundred page class referencing books for Java or using a scripting language that just feels kludgey and really wasn't made to design desktop applications anyway. I'm immediately productive and there's really nothing I could do in Visual Studio that I can't do in REAL Studio.

Now, don't get me wrong, there is a learning curve with REAL Basic. While it's pretty close to Visual Basic.NET, it's not verbatim and you will have to learn a few new conventions. But mostly, because it's a true OOP language, all of the concepts and constructs will be very familiar to you right off the bat. A half decent developer can easily pick up a copy of REAL Studio right now and have a complete application deployed on all three platforms by the weekend. It's that simple.

So I encourage those of you who are looking for a true cross-platform tool to check out REAL Studio. I think I can honestly say that my only regret is that I haven't been using this software for the more than a decade it's been out. I've wasted my time with Java and all the other headaches associated with cross-platform work. This is the way it should be.

I doubt I will ever look back.

VIDEO: REAL Studio for Web Developers in Action