Monday, September 05, 2005

Next Project, RealBasic?

I still have a lot of work to do on my web-based Project Management application, Ataraxis Unity™, but when I'm not working on it my mind is usually spinning around what my next app will be. For one of the apps I want to build I'd more than likely need a desktop front end. The application I have in mind would have to run on both OSX and Windows. The market I want has a healthy mix of both OS's, and I'd bet there is a mix within single companies.

If you've been following this blog, you know I'm building the backend of Ataraxis Unity™ in Java. The natural path for me to the desktop would be Java Swing. But to be honest with you I'd rather not. I've tried out and used several applications that were written in Swing. (I've spent the most time with DBVisualizer, Netbeans, and Adalon). Some of the applications are really good products, but Swing makes them clunky and ugly. I'm really sorry to the developers of those products, your apps are good - Swing sucks.

SWT is another option for Java developers. Everyone loves the SWT based (and it's reason for existence), Eclipse, right? SWT/Eclispe is appealing. Heck, I could write my app as a plugin to Eclipse! But... I've seen Eclipse on OSX and it just doesn't look like it fits in with the OS. It works - and the Eclipse guys have done a great job, but it's obviously a Windows centric platform. I'm not sure if you could build an SWT app from scratch for Windows and OSX and really give it a native look and feel for both platforms. (Can you tap into the OSX goodness of sheets or the other animation effects? What about brushed metal?)

A while back I found out that RealBasic compiles natively on Windows, Linux and OSX. I also recently found out that Ian M. Jones wrote his application, CaseDetective, in RealBasic. The RealBasic home page, Ian allowing me to pick his brain (thanks again!), and the link Ian sent me, have got me pretty impressed with the RealBasic platform. You write your app in RealBasic and it literally compiles natively for each platform. I'm not sure what all the drawbacks are, i.e. what I can't tap into on OSX. But, if I'm going to build a cross platform app I haven't seen another platform that looks as attractive as RealBasic.

(Side note: I'm sure I'd miss Java's OO class and code structure. I learned OO with Java, so I'm sure anything else will just feel weird!)

6 Comments:

Blogger Dan Hulton said...

Macromedia Flash?

I mean, why abandon what's working, right?

Monday, September 05, 2005 6:23:00 PM  
Blogger Michael Sica said...

That's definitely a possibility. I've heard you can build a desktop app using OpenLaszlo (which compiles into Flash .swf's). I know you can build an app that compiles into an .exe file using the Flash IDE, but I don't know how to use the Flash IDE. (It doesn't make sense to me.) There's also Macromedia's Central product. (Central is a dedicated desktop runtime environment for Flash applications.) But I think you still develop Central apps with the Flash IDE.

Utimately, the problem with Flash for a desktop application is that it will stick out like a sore thumb. It won't look, feel, or act like anything else running locally. IMHO, a desktop application should fit in with the rest of the desktop.

Monday, September 05, 2005 9:57:00 PM  
Anonymous Ian M. Jones said...

Hi Michael,

Just a note on your side note ... RealBasic is very object orientated, so you'll get a good chunk of the class, interface, inheritance and other OOP goodies you've come to enjoy.

Of course, it is a different language, so there will be differences, and as mentioned on my blog (or was it in our emails, can't remember) there's still some gaps in the libraries available. But it's worth a look while you're knocking your new app's design into shape.

Tuesday, September 06, 2005 7:43:00 AM  
Blogger Michael Sica said...

Hi Ian, I've also heard that OO is better in RealBasic than it is in Visual Basic. I remember writing a tiny little (terrible) app in VB back in college. It was before I really understood or knew OO, but honestly I don't remember making any objects! I'm definitely going to check out the RealBasic platform when I have some free time.

Oh - I just want to make it clear to everyone that I'm still working my PM app! But in my down time I can't stop thinking about what my next project can and will be.

Tuesday, September 06, 2005 9:46:00 AM  
Blogger Dan Hulton said...

VB -- as of VB6 -- had terrible object-oriented-ness. But it worked and was easy, which was nice. Some things were difficult to the point of impossibility (propagating events up a chain), but the very basics took mere minutes to do and do right.

However, the future is object-oriented, and the VB line was in a bad way due to this "object-hostile" attitude it had. Thus, Microsoft gutted and rebuilt it as VB.NET and pissed off everyone who'd come to love the language for it's simplicity. Anyone who was crazy into objects was already looking at C# with drool leaking from their mouth anyway.

</rant>

That said, with regards to Flash as a desktop application, the Flash IDE is about as simple to work with as they come. A single $50 book and a week of study will catch you up right quick.

Mind, I agree that a desktop app should look like it fits in, so yeah. Flash is right out.

The only problem is, if you're not developing natively and from a native's mindset, you're simply going to do things differently than expected for someone or other, and you can't hope "but it looks native" will help you because it doesn't feel native.

To me, that's the biggest challenge to overcome, and perhaps it's just easier and better to not look like a native app, so people won't expect it to behave like one?

Tuesday, September 06, 2005 11:39:00 AM  
Blogger Michael Sica said...

Dan, those are very good points.

It will take some extra TLC to get the app to act native, and not just look native. That's actually one of the points Macromedia made with their Central (or was it Flex) product. (Central is a "sometimes connected to the Internet" desktop platform, built on Flash.) I read one of their pages that said they do not plan on offering Windows or Mac native skins because they want the user of the app to realize they are using something different. When you see an app built on that platform they want you to realize it's not a desktop app (It's a hybrid - not desktop, not "web page based"). The difference in look would signal the user that they should not expect it act like one, even though you have the "rich-ness" of a desktop app.

(I just tried finding the quote on the Macromedia site, but I didn't have any luck. I read it at least a year ago.)

Tuesday, September 06, 2005 12:32:00 PM  

<< Home