Thursday, October 26, 2006

Reaching into the grab bag...

It's been a while since I've been posting to my blog, so I'd like to appologize for that... not that anyone is really out there hanging on my every word ;-).  So this post is going to be a bit of a grab-bag of things.

Any news???

The first and most obvious thing to comment on is actually something I cannot comment on so any comments I make should in no way be construed as commenting on anything that is worth commenting on at all.  Huh??!!  Right.  Now that that is out of the way...

Installers are important...

Duh!  Of course they are important.  How else can you deliver your product and ensure that it is placed properly on the end-user's system and is configured correctly?  The problem is that many companies tend to think of installers as an afterthought.  "We just built this great killer-app... now how do we deliver it?"  Because of this tendency to push it off to late in the process, it is often short-changed.  A flexible build, delivery and install process is key to making sure that your "integration" team does not become a bottleneck.

How you're going to deliver your product is something that needs to that needs to have a decent amount of up-front consideration.  It can, and often does, affect how you actually architect and build the product itself.  You have to ask questions like:

  • Who is going to install the product?  One of your highly trained sales engineers or the clumsy end-user?
  • Is your product going to be delivered via direct marketing, an indirect channel, or offered via a shopping website with immediate downloads?
  • How many different "editions" or SKUs (Stock Keeping Units) will you have?  (Beginner, intermediate, advanced?)
  • Will you be offering a trial version?
  • Will your product be localized into other languages?  If so, are all languages delivered together or separately?
  • Will you offer a lightweight free version?

Nearly all of those questions above, and probably a few others I can't think of right now, are ones we have to ask ourselves all the time.  "Integration"  is the process of bringing together all the various bits and peices from other teams and external third-parties and "integrating" them into an installable image.  For many years there have been a plethora of tools out there that serve to ease the construction of these installation images.  However, not many (if any at all) actually help in streamlining the whole integration process.  Not that they should, mind you, but there is often a lot more to delivering a product than simply pressing F9, grabbing the resulting executable, jamming it into an installer project, build the installer and burn a CD or upload to your shop site.  For many folks those steps are actually all that is needed due to the limited complexity of the product.  When you compare that to what we in the DTG group have to do, that is far from an adequate process.

Over the years we've developed quite a few internal tools (built with Delphi and sometimes InterBase of course!) that help make this process easier to maintain and to make it, and this is a critical point, repeatable.  If you cannot ensure that each time the process is run that it goes through the same steps in the same order every single time, how can you be sure of anything in the output.  For instance, no "offcial" build is ever delivered from a developer's machine.  Official builds are always done on a single-purpose isolated system that is dedicated to that one and only task of building the product.  Developers rarely, if ever, have direct access to this system.  The "integration" team is responsible for the care and feeding of that system.  That team is also responsible for maintaining what we call the "delivery database" which is exactly what it sounds like.  It is a huge centralized database that describes which files get "delivered" where and what kind of processing needs to be done to them on the way.  By extension this same database is also used to generate scripts that are used by the installer software to create an installation image.

I'll try and talk a little more about this whole process in some upcoming posts, but for now I'd like to hear from folks what kinds of processes you've setup to streamline and speed the delivery and building of installers?  Also, what installers out there on the market are your favorites?  We've used for several releases InstallShield from Macrovision, but there are many others and we're always evaluating new versions or new entries into the market.  A few of the others we've looked at over the years is Wise, InstallAnywhere, and a new interesting entrant into the whole installer domain, InstallAware.  There are many others; some free, some open source and other commercial offerings.  What is interesting about InstallAware is that it is written entirely in Delphi!  That's really cool!


Huh?  What's that?  It's a term used to describe a group of bicycle riders, usually in some kind of race, such as the Tour De France.  Peloton is also the code name for the upcoming release of JBuilder.  (What!  This is a Delphi blog!  Why are you talking about Java??!).  Yeah, yeah, I know.  However, since the formation of the Developer Tools Group here at Borland, I've had the privilege of working closer with the Peloton team here in Scotts Valley, CA.  In many ways my role has expanded a bit and I now keep an eye on all the various projects going on in the DTG.  Closely watching these other teams (this include the InterBase team) has been very enlightening.

The Peloton team had a daunting task ahead of them.  They had to, essentially, recreate almost the whole JBuilder experience on top of the open source Eclipse platform!  The face and character of the Java market is shifting dramatically and the move is on to open-source.  The maturity and usefulness of all the various bits and pieces of open-source are finally reaching a critical mass.  The problem, however, is that this new world order in the Java space doesn't really have "order."  It's probably best characterized as being the "wild-west."  The possibilities are nearly endless, but the dangers and pitfalls are many.  There needs to be a trailblazer and a regional "marshal" to help establish some order and sanity to this new frontier.  Take the Eclipse effort.  Clearly the Eclipse IDE was first and foremost built to be a Java IDE.  However, some of that is changing with the uptake in the adoption of the RCP (Rich Client Platform) for creating non-IDE type products. There is also the CDT (C/C++ Developer Toolkit), which is a cross platform C/C++ IDE tool. 

However there is a bit of chaos.  Enterprises don't like chaos. Even many small to medium developer shops cannot afford added chaos to their development teams.  By chaos, I'm referring to the whole open nature of the Eclipse platform.  This is not an argument against open source at all, but merely an observation of reality.  We've been speaking with many of the current and past JBuilder customers;  For the ones that have moved to Eclipse, they are finding that "free" is by no means "free!"  There are even some companies that have some of their top talent dedicated to defining the official Eclipse platform and plug-ins the development teams are going to use.  That is amazing to me!  You now have companies where development tools are not their core business, and most of them, software isn't even their core business.  They're banks, investment firms, hospitals, government agencies.  They're not in the business of selling software let alone assembling or building development tools!  Software is merely a necessary tool that the company uses to remain competitive in their respective markets.  This is where Peloton (aka. JBuilder) will step in and fill the gap.  By providing a certified and preassembled Eclipse environment, we can help many of these companies get back to focusing on what makes their businesses successful.

Peloton is not just a simple thin coating on top of the Eclipse you can go download for free right now, but it is also the evolution of the whole JBuilder product line itself!  It is interesting to note that the first 3 versions of JBuilder were actually built on top of the Delphi IDE! (Hah!! There's your Delphi reference!!).  Starting with version 4 (there was a 3.5 in there... but let's keep this simple), JBuilder shifted to what was called the PrimeTime platform, which was an all Java IDE platform.  So from version 4 up to JBuilder 2006, it was based on the PrimeTime core.  Now, we're just doing the same thing again and moving to a new IDE core again and this time we've chosen the Eclipse platform.  There was significant effort and emphasis placed on making sure that your existing JBuilder projects can be easily and seamlessly carried over to this new version.  The DTG has always been about making sure our customers were not left behind and are provided an avenue to the latest technologies.  Just like Delphi and C++Builder, JBuilder has held to this equally as well.  If you're at all interested in the upcoming release of JBuilder or have been using a older version, I would strongly suggest you look into purchasing JBuilder 2006 with Software Assurance.  Everyone who is on SA when Peloton is released will get it as part of their SA agreement.


There has been some recent bruhaha surrounding the DTG's BDS published roadmap.  I will say that we're currently in the process of review, re-alignment, adjustment and/or clarification of the currently publised roadmap.  Industry landscapes can change, priorities can shift, so maintaining a stagnant roadmap is not in anyone's best interest.  Likewise, radical departures from an existing publised roadmap are equally, if not more, damaging.  "Balance" is the watchword of the day...  Very soon we'll be announcing the opening of another online Delphi survey.  Nick Hodges has been frantically gathering input about what to place on it from all those involved from the various teams.  Changes are not made on a whim, but we are actively evaluating everything we're doing and where we're going.  This is, in fact, a continuous process and something we've done for many, many years.

Busy, busy, busy

I just want to reiterate that the DTG continues to be filled with a flurry of activity.  For instance, we've just hired a new head of marketing who is fully and solely dedicated to the DTG!  Yeah, folks it's been a while on this one...  We've also opened many positions on the documentation team.  So if you're a technical writer, here is one of the positions to send in your resume' or CV.   We also recently filled a position on the Delphi compiler team.  There are some openings available on our integration team, so if you're experienced in writing installers, and would like to help define new, modern ways to install, update, and deliver Borland Developer Studio, be sure to send your resume here.


  1. > Also, what installers out there on the market are your favorites?

    Inno Setup!

  2. It's about friggin time someone besides Nick Hodges has had a blog post...where ya been? :>)

  3. Inno Setup.

    As for another survey... Most of the surveys has historically been VERY slanted.

    For every "I want this really bad", there needs to be a "I could really care less".

    And when asking how much I would pay for a feature, "I wouldn't" is always important. (This particular question is probably useless as the foray into Kylix showed). How much can you afford to pay, or how much would your budget allow, is probably the better wording.

    I dunno, I always feel like I am being herded by the surveys towards giving an affirmitive response for someone's pet project. I need more room for discent.

    Hmmm.. that might be a life statement for me.

  4. C Johnson,

    That's excellent feedback. Thanks. I'll be sure to pass this along to Nick. I know that the survey is very close to being finalized and released.


  5. Inno Setup..

    It is unforgivable to mention commercial installers when the best installer is:

    a) Freeware

    b) Written in Delphi

    I have licenses here at work for most of the products you mentioned. They all pale in comparison to Innno Setup for ease of use and features.

    That had to be said....


  6. Peloton is a Finnish word meaning fearless or brave. Nice coincidence...


  7. Surveys:-

    My recollection of the last survey was that it was desperately short of the "None of the above" and "other" options to most questions, and had little space for comments.

    I found that *very* frustrating.

  8. Many, many years ago I used InstallShield but it kept getting more and more bloated.

    After that I went Wise for several more years. It does file patching without an external tool like RTPatch, which was a bonus. But as internet speeds increased, the size savings of a patch vs a full install became less significant, and eventually the end-user confusion over whether to download a patch or a full install made patching more trouble than it was worth. Wise moved toward to supporting their Windows Installer product and basically abandoned their Wise Installation System product (along with an unfixed file permissions bug that bit my users several times), so I moved on as well.

    I am currently using NSIS, the Nullsoft Scriptable Install System. It's open source under a modified BSD license, so if push comes to shove I can fix bugs myself. Even though the installers are targeted for Win32, the build program will build on POSIX systems, so it can be used in a cross-compiler build system. I have built a web app that can build an custom installer on the fly for each of my users. The Mozilla Project has reportedly moved to NSIS for the Firefox 2 installer, so its definitely ready for widespread use.


  9. NSIS Installer! Or, as we still like to call it around here, Pimp.

    NSIS is from the Nullsoft/Winamp guys and while I really liked a lot of things about InnoSetup the things I really love about NSIS are:

    - Super small installer

    - Very, very easy to extend with any functionality you may need. One thing I dislike about InstallShield is that it assumes it can do it all and if it doesn't then it's a pain to roll your own.

    - Very easy to put into a build process. That was another reason we picked it, because you can run it from the command-line, can use different include files and can pass different values into the command-line to have it build your script differently.

  10. I've got back to the feedback so I would like to add another vote/thanks for Inno Setup & written in Delphi. Worked well for me when I has having trouble getting the bundled installer to just force a new update without backing up the old version.

  11. Jordan Russell's Inno Setup is small and very flexible installer (build-in scripting for ex.)

  12. Definately InnoSetup. Works great. Latest versions supports Win64 also.

    Used to use InstallShield but it got too bloated and cumbersome to use, and so abandoned it long time ago. What I also like about InnoSetup is the Pascal(Delphi) like scripting abilities, and definate plus.


Please keep your comments related to the post on which you are commenting. No spam, personal attacks, or general nastiness. I will be watching and will delete comments I find irrelevant, offensive and unnecessary.