Sharing Code Between Projects

Someone at Real World asked me about maintaining shared code between projects in Real Studio. He was using external project items (in XML format) and that makes it difficult to work with source control since the XML format isn’t really designed for that. We have a lot of code that we share between projects, both code that we’ve written like ActiveRecord and open source code or libraries that we’ve purchased.

We don’t try to share the code automatically. Instead we keep shared code in a separate project (ideally with testing code, although we’re not at 100%). That code is separately versioned and we update individual projects by copying the new version into the project’s that use it.

In our experience this works much better than trying to share code automatically. We work on a lot of projects and sometimes a project won’t have changes for months or even years. If the shared code has changed in the meantime, we don’t want to go back to the project that uses it and find that it may have bugs that were introduced by changes to the shared code.

This applies to other language also by the way. I can’t see myself ever having code shared between separate projects (with the exception of header files in C or C++).

If you search for vendor branches you can find some more information that’s specific to Subversion. We don’t use the vendor branch pattern ourselves but it’s worth knowing about.

Twas the Night After Real World

I love Real World for many reasons.  It’s like a high school reunion except that you actually like (mostly) and get along with all your old classmates.  Everyone is there at Real World to talk about Real Studio and praise it (and bitch about it).  There were plenty of things to talk about this year.

The good news/bad news is that the 2012 Release 1 will come out later than what anyone expected and will still have the old IDE user interface.  But it turns out that this is good news in that R1 will contain a ton of bug fixes and minor to medium changes that will help everyone.  Release 2 will then have the new IDE.  Personally, I feel that my post from several months ago was pretty much spot on though in no way do I feel that my post had any influence on their decision.  I guess I can say, with very minor satisfaction, “Told you so.”

Web Edition is maturing nicely with news of an upcoming WebCanvas control that works pretty much like the desktop canvas control.  The 1-click installation on Real Software web hosting is interesting and I think I will try to move my web apps to their service so I can go back to regular shared hosting for my website.  Take what’s simple and put it on a simple server and take what’s complex and put it on the complex server.  It will make my life easier in the long run I think.

Cocoa is turning out to be a tough nut to crack.  Apple is doing things MUCH differently in Cocoa than in Carbon in a few areas and it seems that it’s hard to figure that out until you actually do the work.  Any framework is big and the deal with Real Software is that they’re trying hard to make it transparent to us.   But, the move to Cocoa, while very difficult, is an absolute must because Apple is slowly killing Carbon, it’s the only way to get 64 bit support and, it’s the only way to get iOS apps built in the long run.

iOS applications could be huge for Real Software.  Assuming they get it to work like we all need it to and it’s ‘just like’ an xCode app only written using Real Studio then they will have an unbelievably huge hit on their hands.  I can’t tell you how many clients ask me about leveraging their Real Studio code in an iOS app.  Currently that’s not possible.  A year from now?  I don’t know but I’ll be eager to test it even in the alpha stage.

Bottom line is that even though the company has taken a very long time to get the next version out the door I believe that this delay has been put to good use.  They’ve found stuff in the frameworks that they’ve been able to fix before it ever gets to us.  This is a good thing.  The delay is painful (and possibly executed poorly especially considering the talk on Agile software development) but we, and they, will be better off for it.

One can certainly argue the effectiveness of trying to code both the Cocoa framework changes AND a new IDE interface all at the same time but the fact is that they have made the Cocoa framework better by trying to do both at the same time.  By using the framework closer to how WE’LL be using it they’ve identified and squashed many more areas of concern.  The new IDE is a lot of change and some will hate it and some will love it and most of us will be in the middle.  I won’t know until I can spend 8 to 10 hours a day on it for a couple of weeks.  Based on what I saw at the conference that’s not possible now so the delay in getting the new IDE out is another good reason to push it of a release.

This is the first year where I’ve had multiple prospective clients talk to me about work.  If I manage to get all of the work I’d probably have to double my developer staff.  That’s a good problem to have!  I even had one client show up to the conference specifically to talk to me and my developers.

I though the location was okay and it was certainly better than Austin (nothing against Austin, just been there 5 or 6 times now).  I didn’t bring my family because we’ve been to both Disney World and Disneyland so Orlando had no attraction for me.  If they were to hold Real World again next year I’d recommend Las Vegas, San Diego or Seattle.  While some people might have enjoyed having it at the forefront of the big Memorial Day holiday weekend I didn’t as I felt like I lost the first part of it traveling home.  To each their own and I’d love to see more feedback on it.

I want to thank everyone for introducing themselves.  I had a lot of compliments about this blog and the magazine column and that really gives me a warm and fuzzy feeling.  I certainly don’t do it for the money and there are plenty of times where I feel like I’m talking to myself.  So at least I know I’m not totally crazy.  🙂

What was your takeaway from the conference?  Do you want me to dig deeper into any topics I’ve been posting about?


Real Studio for iOS

Real World News Part 7

Real Software did a good job of surprising everyone during their keynote address on Thursday by announcing, almost casually, that the framework changes are necessary to unify the various existing platforms and to target new platforms. New targets? Yup, almost as an afterthought they announced they were working on iOS.

Interesting news. It is, after all, their number one request in the Feedback system and I know from various sources that getting an iOS compiler working required a number of things to happen, mainly Cocoa and LLVM to name a few.

Perhaps even more surprising was the demonstration that Joe Strout, former Real Software engineer who is now a consultant, gave. He showed a simple, but working, iOS Real Studio application! Granted, it was a very, very simple app (more involved than Hello World but still just 3 controls) but it compiled and then ran it in the iPhone simulator that runs on Mac OS X. Very cool and a surprising advancement.

I didn’t get a chance to talk to Joe or other RS staff about the limitations or capabilities of building iOS applications with Real Studio but it really doesn’t matter at this point as they only have 3 controls working. They did say the first release would have a limited set of controls and capabilities. I’m sure as the beta gets closer (announced for 4th quarter 2012) we’ll get more information. It is currently scheduled for a first quarter 2013 release.

I think this is good news and promises to grow the user base tremendously. The fact that an experienced RealBasic and iOS developer is doing the design and implementation makes me very happy and gives me confidence that it will be done right, the first time. I think their timeframe is a little optimistic and if I was a betting man I would say release one to be the summer of 2013, but I will give them the benefit of the doubt for now as it’s obvious they’ve been aggressively pursuing this.

I can only assume that this would be a Mac OS X only product since the simulator doesn’t run on Windows or Linux and I can’t imagine Real Software trying to re-engineer that (or Apple allowing it). I also believe that iOS apps cannot use dylibs so this means that plugins will have to be abandoned or completely redesigned. For some this will be a big deal and others not at all.

If this product means that it will be just as easy to build iOS applications as it is to build desktop and web apps then it will be a huge hit. I casually made the comment to someone that if the iOS version is ready for the next Real World attendance will easily triple, if not more, simply because it’s such a hot developer topic right now.

Like everything else, only time will tell. We know very little about what the product does and what its limitations are. I look forward to working seeing it!

Real Studio Now Free

Real World News Part 6

The current editions of Real Studio, Personal, Professional, Enterprise and Web is a confusing mix for many users because some editions have certain IDE features (think encryptions, secure sockets, container controls, etc) along with features that users don’t need/want. Real Software, starting with 2012 Release 2, will now give away Real Studio and charge á la carte for licenses depending on what sort of application you want to build (note that this does not affect debug apps).

The new licensing model makes only 4 distinctions. Desktop, Console, and Web applications. You’ll be able to build for any platform that the license covers. One additional license is required to connect to database servers. This doesn’t affect the REALSQLDatabase (SQLite) as it will be the native database available for all servers.

Here are the build types and the new/renewal prices:
Console Apps $100/$50
Desktop Apps $300/$150
Web Apps $400/$200
Database Servers $300/$150

Real announced that they will migrate existing licenses to the new plan automatically.

I was fairly shocked at this new licensing scheme. I think the existing $99 Personal license is very cheap, but this change promises to get Real Studio in the hands of more new users than ever before. I believe that most users will spend less on licensing with consultants like me probably spending a bit more (since I use all of those build types and databases).

Only time will tell how well this works for Real Software. I wish them well as it should increase the number of people who at least want to take a look at Real Studio. How well this translates into licenses will take a while to figure out. However, with the recent addition of Web Edition and the future iOS builds this model makes sense.

What are your thoughts?

New Frameworks

Real World News Part 5

The Real Studio framework was first created in 1997. It’s been mangled over the years by various developers to accommodate many features that weren’t even thought of in 1997. It’s had stuff bolted on to it, things deprecated and things changes and while it works well now Real Software wants to make a new one to make life easier for us and them.

At this point it takes into account Macintosh, Windows, Linux, console apps, desktop apps and now web applications. A new framework will make adding new things to the framework easier (hopefully).  One of the other goals of the framework is to simply and unify the code. A great example is removing data from a listbox and removing data from a dictionary. The listbox uses the DeleteAllRows method while the dictionary class uses Clear. The goal of the new framework is to make sure that all classes use the same names where possible. It’s a laudable goal as it should make learning the language easier.

Other goal is to unify lists because there are some things that are one based and others that are zero based. I’ve been using Real Studio for over ten years and I *still* screw some of those list/arrays so I can only imagine how someone new to the language could get frustrated with the inconsistencies.

This promises to help us out in the long run. After talking with several folks from Real Software they are working hard to get AutoComplete to add in the proper NameSpace for you so a adding Folderitem would automatically replace it with rb.files.folderitem or whatever the final name will be. They have also thought about making it a compiler preference to allow ONLY the new framework.

Oh yeah, and this new framework will be the only way to work with the new iOS framework. This also means that any future additions will be only in the new framework.

All in all I feel this is good news. Unifying the frameworks and making sure they’re all using similar method names should make life better for all of us. Will it be painful? Perhaps, but we’re talking about moving forward with better technology.

One Click Web App Installation

Real World News Part 4

If you are using Real Studio Web Edition to make web applications you know that deployment can be a real pain (for some people). Real Software announced that they will soon be offering a web app hosting solution that should make installation and version control much, much simpler and easier.

Real Software will be offering a Virtual Private Server that does a one click installation directly from the IDE. Creating an account for hosting promises to be as easy as ordering Real Studio from the web store. They are using RackSpace for hosting and the IDE will upload and install the application for you.

They are taking security very seriously and are locking down all external ports and don’t allow FTP access. The servers also have active intrusion detection so your apps should be very safe. It also should require zero configuration by end users as Real Software knows how to get web apps running properly.

Real Software has said this feature will be part of the new IDE in 2012 Release 2. Pricing should start at about $30 a month but it does depend on how many concurrent users your apps will have. Details are not set in stone yet but this might be very handy if you are creating a lot of web applications.

Roadmap For New Features

Real World News Part 3

Real Software, during the keynote address gave us some roadmap dates for some key new features. This is such a rare event it’s almost newsworthy all by itself.

64 Bit Support: Early next year Mac OS X console applications will become 64 bit capable. Then Cocoa applications. By the summer of 2013 Linux and Windows apps will get converted.

LLVM: Real Software is upgrading the backend compiler to use LLVM. During the first quarter Mac OS X 32 bit applications will start using it. By second quarter 2013 Mac OS X 64 bit apps will use LLVM. Finally, by third quarter 2013 Windows and Linux will use the new compiler.

[Edit:  Fixed years]

Webkit for Windows

Real World News Part 2

One of the smaller tidbits of items that came out of the Real Software keynote address was that the HTMLViewer for Windows is now using WebKit instead of Internet Explorer. This is really good news for developers as it means that using the HTMLViewer is a similar experience on Mac or Windows.

Again, it was such a small tidbit that it was just a line item on my notes. But, considering how many of us Real Studio users use HTMLViewer this is really good news.

Meet the New IDE – Same as the Old IDE

Real World News Part 1:  What’s Up with the New IDE?

As anticipated, the RealWorld keynote today talked a lot about the future and spent as little time about the here and now as possible. For those of us waiting to get more information about the new Real Studio IDE we weren’t disappointed. However, the news was not all good.

The new IDE is going to be delayed until the Fall and will make it into Release 2. In the meantime Real Software has said they are going to release a new version in August with the old IDE but with the new framework in August. Release 1 comes with well over 300 bug fixes with many, many Cocoa fixes and enhancements.

The applications built in R1 promise to be a few megabytes smaller and take up less memory. Real Software still isn’t removing the beta tag on it but they assured us that there are few known bugs left in the Cocoa framework.

This is all really good news, don’t get me wrong, but when we questioned these decisions two months ago we were told the ‘bridges were burned’ and it wasn’t possible to do what they’re doing now. Obviously they are rebuilding some of those bridges and at lease they gave us the bad news early and moved on to what’s coming up. No doubt it is a lot of work to do a major reset and this why it will take until August to release to the public.

In the quick demonstrations given during the keynote it was fairly obvious that the new IDE is not ready for primetime. Several times the demos had outright bugs and it seemed, to me at least, that the presenters were willing the IDE to work properly through sheer willpower.

I’ll leave you to discuss the ramifications of this but my only significant question is: What took you so long to make that decision?

Twas The Night Before Real World

Okay, it’s not exactly the night before Real World but close enough.  Conference passes:  Check.  Plane ticket:  Check.  Presentations presented to colleagues and rewritten for clarity: Check.  Clothes washed and packed:  not quite, but close enough.  I’m ready to go!

The lead up to this Real Studio event seems almost surreal to me.  The past two events were sponsored by ARBP (when I was president) and at this point I was scrambling to get all of the last minute details done.  It’s nice not to have to do them this time.

This looks to be a very interesting Real World.  I’m positive we will get a close look at the new IDE.  I’m hoping that we get an alpha version so we can start working with it.  I suspect that there will be a surprise announcement that will please a lot of people.  Of course, I was excited about the ORM (Object Relational Model) that was in Geoff’s keynote in 2008 that still hasn’t seen the light of day so I’ll try to keep my enthusiasm in check.

It looks to be a busy Real World for BKeeney Software.  Besides doing 3 sessions we have an existing client coming up from Miami to meet us face to face after two years of work.  A current client will be at the conference and a potential client is also attending the conference.  It’s interesting that I met the current client at Real World in 2008 so you never know how long the incubation period is between first contact and an actual project.

If past events are any indication there will be people attending the conference looking for a developer to work with them.  If you are, I’d love to talk to you.  All of our developers will there so you can meet most of the team.

I wonder who I’ll meet this year that will be the surprise of the year?  It’s fun meeting all of the other developers.  You’ve seen their names on the forums and the NUG and now you can put the name to the face.  It pays to become friends with other consultants because they’ve thrown work our way when they’re too busy or don’t have the resources in place to complete the project.  I also know that I’ve answered a ton of questions from Real World contacts and also recommend other developers to clients that want a developer closer to home.

And the ideas that out of individual and group conversations are phenomenal!  I can’t wait to hear what people love and hate about our favorite development project because I guarantee there will be something I hadn’t thought about before.

One of the disappointments, I think, is that The Association of REALbasic Professionals (ARBP) isn’t holding a general meeting.  This is the one time of the year that we’re guaranteed to have large numbers of Real Studio developers.  Oh well.  Not my gig any more.

Anyway, can’t wait to get there and renew old friendships and make some new ones.  See you then!