Question

I'd just like to ask if there are other alternatives for REALStudio or Runtime Revolution?

I'm not looking for something like a .NET framework or a plugin. I want it to be fully self-contained like the aforementioned IDEs.

It should also be cross-platform.

NOTE: Please don't mention Java. I already know of it.

Just to be clear, I'm looking for a programming environment that would let me create a desktop application for Windows, Mac OS X and Linux...

Was it helpful?

Solution

I still feel like I'm shooting in the dark by answering this question. It's unclear if you're looking for a programming language and GUI toolkit, or if you just want an IDE that is cross-platform. It's also unclear why you are abandoning REAL Studio, since it seems to meet your requirements.

Anyway, there are really a lot of options here, especially if you don't need one that uses the REALbasic language. I can only talk about the ones I am familiar with and have experience in using. Others can surely tell you more about dynamic languages like Perl, Python, Ruby, etc. etc.

First off, I'm not sure why you think that the .NET Framework is not "fully self-contained". Yes, it requires a runtime, much like Java does. But those two managed languages have gotten quite a bad rap for requiring a runtime. It seems people have forgotten that programs compiled in C and C++ can often require a runtime as well (at least they do on Windows).

I would take a second look at .NET. It is an extremely easy-to-use, rapid development environment, much in the style of REALbasic. VB.NET retains a lot of the syntax, while bringing you (in my opinion) even more powerful features. Since almost all desktop applications should be distributed with an installer (setup program), the requirement of a runtime is really a non-issue. Your installer should install the necessary dependencies at the same time as your application—the user will never be the wiser.

Of course, producing a desktop application with a user interface that is truly native across all three of your target platforms is going to be difficult at best. Windows, Mac OS X, and Linux all have vastly different platform conventions, and even though you can find environments that will let you generate an executable that runs on all those platforms, none of them are going to produce interfaces that actually look like a native application. I'm extremely picky about this, and you'll find that Mac users are, too. Windows and Linux users are much more accepting, but following standard platform conventions is the key to making your app easy to use and easy to understand. Conforming to the behavior the user expects and taking advantage of native widgets has a lot of advantage that developers (often prone to reinvent the wheel) seem to be forgetting recently.

The absolute best thing to do (in my opinion) is to write your code in a portable language like C++, and create the user interface using tools provided for each platform (For Windows, you might use the Windows API, or WinForms or WPF provided by the .NET Framework. For Mac OS X, you'll use Cocoa and Apple's Xcode/Interface Builder. For Linux, you'll do whatever it is Linux people do.) Then, you just have to recompile your application on each platform, and you get the best of both worlds.

A good compromise would be to use a GUI toolkit for C++ like Qt or wxWidgets that promises to generate cross-platform applications. Yes, the apps themselves are truly cross-platform, but they don't always have truly native interfaces. I understand that Qt has gotten better recently, but it's still not up to my standards. You and your users might be less picky. Note the "your users" part there. The Mac Office team discovered that Mac OS X users just wouldn't accept the ribbon as it was implemented in Windows. Mac Office 11 finally brings the ribbon to the Mac, but it looks completely different, having been entirely reimplemented to look like a native Mac OS X widget. By contrast, Apple's iTunes sticks out like a sore thumb on Windows. What's long been the standard for an innovative, easy-to-use interface on the Mac is regarded by many PC users as an abomination. But then again, native GUI is sort of my soapbox, so if you care, I recommend perusing my answers to other, similar questions:

OTHER TIPS

If you goal is to have a self contained IDE with an easy to use GUI builder, that can produce standalone cross platform executables, then to the best of my knowledge, the options are pretty limited.

If you like BASIC (similar to RealBasic or RunRev), then you may want to look at www.PureBasic.com . Documentation and new material is sparse, IMHO. It has it’s own GUI builder, but for a bit more cash, you may want to pair it with PureVision.

For cross platform development using wxWidgets programming in C++, wxPython, wxLua or wxRuby, you may want to consider DialogBlocks.

The answers given here are terrible of course, but the question you are asking is a difficult one and there may not be an answer. I'm asking myself the same question as REALStudio doesn't work as well as I would like. Java is poor, difficult and ugly. .NET is the favourite but not cross platform.

Consider that appearance is a major problem. If the GUI doesn't look native, there's no reason why you can't design something superior (look at MojoWorld for example). I would tentatively suggest REBOL. Although it appears to be an interpreter a compiler could be purchased. As the software is free, if your program works reasonably well you might then buy the compiler. Not sure if it has an interface builder as the buttons are generated by code. The free version is moderately poor but has been improving in recent years.

Not being able to update the interface from a thread (Cocoa for example, I guess NextStep is really old now) seems to defeat the whole object of the exercise. Having Timers that don't run (REALStudio) also seems hopeless given that those are supposed to update the interface instead. Then you have Object-Orientation, an excuse for poor programmers unable to understand code. Not being able to 'GOTO' a button unless you put the code into a Timer pretending that it's a module (yey for for REALStudio). I can understand your problems. Try to realise that programming is HARD and that it only looks easy when you see the end results produced by experts like Apple.

So Java is proof that cross platform doesn't work. Give REBOL a try.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top