REALbasic: It's a floor wax and a dessert topping!
Tuesday, October 7, 2008, 07:23 PM -
Programming & ComputersPosted by Administrator
Every so often I see comments in the REALbasic mailing lists and the forums from Mac users claiming that REALbasic is a Windows-centric tool because it doesn't offer certain (or enough) Mac-specific capabilities. But, then, I also see the same sentiment echoed from the Windows users claiming that it is a Mac-centric tool for the very same reasons (I don't read through the Linux forums so I have no idea what they're saying).
The latest round of claims got me to thinking about why that must be, and I hit upon the answer in a rather roundabout way. I stumbled upon it while digging through some older emails looking for some information where an RB engineer (who shall remain nameless) basically said the reason why they weren't going to implement some control was because wasn't cross-platform. In other words, you couldn't use that control on all of the supported platforms. Huh. I never thought about it that way, but fair enough. REALbasic is a cross-platform tool so it only stands to reason why some controls are past a certain line.
So, the truth is, as I see it, in the end REALbasic is neither a Windows-centric nor Mac-centric tool. In fact, it's neither
and both all at the same time. What it is, really, is the Lowest Common Denominator. But I don't mean that in a bad way, in fact, I think that quality is one of its greatest strengths by far. Even though I program primarily on the Mac, I've done the cross-platform bit. It's really cool. I've literally written one set of code, compiled for Mac and Windows, I didn't have any platform-specific issues, and blasted it out to dozens of users who have used my app daily for two years running now without a single complaint. (Good luck with
that,
Java.) Now knowing that, I think it not only renders the Windows- and Mac-centric arguments null and void, but also shows really just how great REALbasic is at its core. There's nothing like it.
However, I think a case could be made for more platform-specific features, particularly in the area of controls. REALbasic offers a wide variety of controls, enough to suit the vast majority of needs. I really can't complain. Controls like the Canvas and Listbox are so robust that I think one could do just about any kind of app they want with just those two
alone.
But, there are times when a Mac-only control would just do the trick to polish up an application into something that looks like a Mac application through and through. You know, something that users would expect. The Round and Help buttons come to mind, as do the Segmented Cell, Segmented Control, and the Circular Slider. These are relatively simple controls, but they are so decidedly Macintosh that there have been times when one of them would have been the
perfect control to put into an interface. They are, as far as I'm concerned, signature controls for the Mac; they help make the Mac the Mac. I'm sure that if I dig around VB.NET long enough I would find some controls that have that "Ooh! That's the one!" factor to them as well.
I've always had the impression that being the lowest common denominator is a really tough job mainly because it is, in this context at least, trying to be all things to all people. It's a double-edged sword. I experience that now in my Day Job to a smattering of internal "customers" (other departments), and it is really hard to keep up sometimes. But, the book publishing landscape changes (albeit slowly) and there are times when I just gotta give in and do things that more or less go against my department's paradigm up until that point. Thanks,
e-books.
My naivety about how things work over at Real Software, which I feel is the same naivety that drives the complaints that are the topic of this article, wants to think that it shouldn't be too hard for them to sprinkle in a few more controls on each of the platforms. I mean, we already have Windows and Mac-specific features in the framework itself like FolderItem.MacCreator, FolderItem.MacType, and all of the Microsoft Office classes (which, BTW, were cross-platform at one point. Thanks, Microsoft). Controls are obviously much more complex than datatypes and values, but still, I think the case could be made for more platform-specific controls, and the extra work I think would be worth it.
I can, as an alternative, use declares for getting Mac-specific controls into my applications. But, man...have you seen those things? I dig all the power and all that, but that's a whole lot more typing than the rest of my code for one object, and a whole lot of "math", too. As clean as the REALbasic syntax is, declares are still a hassle. I could also use a funky combination of screenshots, masks, and a canvas to recreate these controls, and I'm about to do just that, but doing so is...well...funky. I would much rather leave that to someone else to maintain.
I can certainly understand the REALbasic engineer's point that they didn't support the given control because it couldn't be found on all platforms. However, I think that may be a bit of a hindrance to the framework, and it would be nice to see some of these deprecated objects replaced with items that speak to a renewed focus. REALbasic's inevitable move to Cocoa I'm sure will open up many doors for the framework, as will Windows 7/Vista 2/Whatever. Exciting stuff is in the works from all directions. REALbasic has given me everything I need to get my work done while having fun at the same time, and I'm hoping that I might get just a little bit more.