But I think another potential barrier is that plugins can’t be registered or licensed. By this I mean that once a plugin is installed it’s there and can be used. The MonkeyBread plugins make you enter a registration code in the end users REALbasic code. The Einhugur plugins come in two versions, the demo version and the full version with the full version being unlocked by a registration system.
The registration codes seem like a good idea but as anyone who spends 10 minutes on the internet can attest, registration codes can easily be found and passed along. If you’re in a work group situation the version controlled source code has the registration code in it!
The Einhugur plugins are in a similar predicament. Once you unlock the full version, you can copy them to multiple machines without any hindrance.
I have no idea how it’s done in the Windows world, but I know that the control suites that I use for Visual Basic are registered to one machine and on machine only. I can install the demo on another machine but every time I compile an application I get a message box saying that it’s a “demo” or that the controls are “unlicensed”. I’m assuming that this is somehow built-in to Visual Basic because I’ve had instances where the compiled app was built on a demo license and run on a machine that was fully valid and the demo/unlicensed warning message box appears (I dare you to explain that to a tester some day after they’ve filed a bug report on it).
Anyway, my point is that it seems like there should be some sort of mechanism to enforce a plugin license per machine if the developer wanted it that way. Generally most software (note I have not reviewed the Einhugur or MBS licenses for validity of this statement) give you a per machine license with some leeway as to how many machines it’ll allow licensing on. Since control suites in Visual Basic can run into the thousands of dollars per year, it seems like this is a huge missing element in REALbasic and hence a potential barrier to entry for anyone wanting to create plugins.
Imagine if you create a new REALbasic plugin, you could charge hundreds of dollars for it and you could guarantee two to three times more licenses than you can get right now? You’d do it right?
So the question, dear readers, is how does Microsoft do it with Visual Basic (and .NET as well) so that the executable knows that it was built with a properly licensed dll or ocx? And why can’t that same technology be applied to REALbasic? And could this technology be extended to allow encrypted RB classes and modules to be licensed as well?
A good example is the IsCMMClick method. I’m not sure how long we’ve been told it’s going away, but I just discovered that it’s gone in RB 2008 beta program. So instead of giving you a warning, the compiler just says “This method or property does not exist.”
In my opinion, this is not desirable behavior. In the ideal world when they made the decision to deprecate it, the compiler should issue warnings. These warnings would say something like, “Warning. The method ‘IsCMMClick’ is being deprecated. Please use ‘IsContextualClick’ instead or the ‘ConstructContextualMenu’ method of the control.”
Since I don’t want to jeopardize my status in the beta program that’s all I’ll mention. There are other technologies that are being removed as well and these messages would be helpful. I don’t propose keeping the messages forever, just that the decision has been made to remove them and you need to move onto the something else.
Perhaps I’m missing something, but it doesn’t seem like it would be that hard to add to the compiler and IDE. Nearly every other compiler I’ve ever used has issue warnings that often tell you that something is out of date. So why not REALbasic?
What do you think?
I ran across this blog entry dated November, 2005 from a supposed Microsoft Employee talking about Visual Studio 2005.
Among the highlights are the comments:
• Visual Studio 2005 has too many bugs
• Was VS 2005 shipped too early?
• VS 2005 IDE crashing
• “Alarming Issues” with VS 2005
• Not all Microsoft divisions are using Visual Studio
Why do I bring this up? With RB 2008 due to ship soon, I thought it nice to put things into perspective. The worlds LARGEST software company with nearly unlimited resources (money and manpower) rewrote their development studio and it had bugs. Yes, bugs. And people complained about them. A lot.
Real Software is tiny compared to Microsoft. So let’s give them credit where credit is due. They don’t have the same resources but are eating their own dog food (i.e. using RB to develop RB) and have to deal with all the crap that goes on with Apple, Microsoft and Linux operating systems.
Thank you to the developers at RS!
Apple has xCode/Cocoa which they give away for free. Microsoft has Visual Studio and .NET which can be obtained for next to nothing. Both products create (arguably) superior applications for their respective platforms.
REALbasic makes a consistently good application for both platforms. Keep in mind that RB is nothing but compromises for the supported platforms. The Microsoft MSHFlexGrid is superior in many ways to what the Apple grid can do so REALbasic has to compromise and give us the lowest common denominator in grids and hence we have an underpowered (but functional) listbox control. The Einhugur StyleGrid and DataGrid controls do essentially that same thing just wrapped differently with some speed enhancements.
It’s been argued many times in the forums that RB doesn’t make a good Mac application without doing a lot of extra work. The same is true that Windows applications made in RB suffer from some of the same problems. Why is this? Two words: Cocoa and .NET.
Each frameworks gives developers goodies that highlight the strength of the platform and hence our initial question. Does Apple or Microsoft really care about REALbasic? It’s not like RB is going to see extra copies of Windows or sell more Macintosh computers directly. If anything, you could argue that REALbasic hurts both Apple’s and Microsoft’s plans for “world domination.”
That’s a bold statement but here’s my reasoning. I’m in charge of Apple the argument might go something like this: RB allows developers to make software that works on my Mac’s and on the Borg’s own Windows. I want to show the world that the better platform is the Macintosh so why should I help RS with any bugs on the Mac? Now developers won’t use Cocoa and all the goodies that it has so all the time and effort to make Cocoa is wasted and our users don’t get all the goodies they’ve come to expect from Mac software. RB is not enhancing my users’ experience!
If I’m in charge of Windows the argument could go like this. I have this huge market share that’s being eroded by that toy computer from Apple. Here’s RS that makes the claim of being a basic, object oriented, development environment that lets it easily create software for Windows and the Mac. There’s even a utility that converts from VB6 to REALbasic! Now people aren’t locked into Windows and all that work I’ve done promoting .NET is wasted!
Okay, both arguments seem silly but I’m sure the sentiment exists in Cupertino and Redmond. I’m sure that neither company is actively sabotaging REAL Software and REALbasic but are they helping it? In the world of business what seems like a win for the consumer is often perceived as a lose for the company.
What are your thoughts? Is this idea possible or is it really stupid? What am I missing?