Tim Anderson’s ITWriting

Tech writing blog

June 18th, 2009

Survey ranks developer tools, and reveals what developers care about most

Evans Data has published its 2009 Software Development Platforms survey, to which around 1200 developers contributed, scoring their chosen development tools in eighteen different categories.

The tools covered are Eclipse, Embarcadero’s Delphi, IBM’s Rational Suite, IntelliJ, Microsoft’s Visual Studio, NetBeans, Oracle JDeveloper and Sun Studio.

I was sorry not to see more products covered. Flex Builder Flash Builder, Zend Studio, Aptana and JBuilder would all have been interesting, for example. Each developer only scored the product they actually use (a good thing), so the sample is not as big as it first appears.

I’m also mistrustful of the survey results, particularly when you look at it in detail. For example, one of the categories is “Support for frameworks”.  Visual Studio came top, while Eclipse was last. But hang on: in Visual Studio (for example) are we talking MFC, or .NET Framework? The development experience for each is totally different. And were developers primarily judging on the framework tools, or the framework itself? It is hard to attach much meaning to the scores in this category.

Another flaw: the versions of the products is not specified. That means a weakness may have been fixed in a later version, but the survey does not tell you.

A third flaw: some tools are weak in several categories, dragging down their overall score, but that does not matter to developers who do not use them for that purpose. It is hard to compare like with like.

Still, while I’m wary of the survey overall, I though it brought out some interesting points. One is that developers were asked what features matter most to them. So:

The three things developers care about most (highest priority first):

1. Basic tools (editor/compiler/debugger)

2. Documentation

3. Tool integration

The things developers care about least (lowest priority first):

1. Support for remote development

2. Support for parallel programming (sorry Intel!)

3. App Modeling tools

What about the winners and losers in the survey? I almost forgot. IBM’s Rational Suite came top, followed by Microsoft’s Visual Studio. Eclipse came last, though it still got a decent score, well below its rival NetBeans.

The low ranking for Eclipse (which is nevertheless wildly popular) deserves some comment, particularly as the top tool, IBM Rational Suite, is built on Eclipse. I spoke to Eclipse executive director Mike Milinkovich while researching this Register piece recently. One of the points we discussed was the tension (if there is one, which he disputes) between tools vendors sharing resources to build the best possible platform, and holding resources back to retain commercial differentiation. I’ll write this up in more detail shortly; but it shows why certain areas in Eclipse may not receive the attention they deserve – localization was a specific example.

Another problem with Eclipse is that it is all a bit messy, confusing and hard to manage, particularly in a team where you want every member to have an identical setup. It is still worth it though, for the riches it provides for free.

June 16th, 2009

Embarcadero CEO on cross-platform native code

I had a long chat with Embarcadero CEO Wayne Williams last week. I used a few snippets on the Reg – on cross-platform Delphi and Eclipse – and hope to post more from it shortly. In the meantime, here’s what he said about using native code rather than Java or other types of managed code for cross-platform apps. It felt like 1996 all over again, but he has a point.

May 15th, 2009

Delphi moving towards cross-platform, 64-bit

Embarcadero’s Delphi Live conference is running this week, and there are some interesting reports coming out. Robert Love has the best summary I’ve found so far. As I understand it, the next Delphi is codenamed “Weaver” and adds Windows 7 support, including the Touch APIs. More interesting is that this will be followed at some point by “Project X”, a cross-platform native code compiler for Windows, Mac and Linux. There is also mention of “Project Commodore”, which brings full 64-bit support.

Project X is the one that particularly grabs my attention. Cross-platform Delphi has been tried before, with Kylix, Delphi for Linux. Although promising, Kylix suffered on the technical side from Wine dependencies and on the marketing side from lack of demand for Delphi desktop applications. I do not have any technical information about Project X yet, but on the marketing side Mac OS X (and perhaps iPhone) is a great deal more promising than Linux.

After suffering from under-investment for many years, it is great to see Delphi now getting a new lease of life in its new home, and I’m looking forward to finding out more.

May 6th, 2009

The end of the Borland story: acquired by Micro Focus

It is not unexpected, but still sad to see loss-making Borland acquired by Micro Focus for a knock-down price of $75m. Borland’s release says little beyond the financial details. Micro Focus, which is also acquiring Compuware’s ASQ (Automated Software Quality) tools (such as QADirector, DevPartner and Optimal Trace, I presume) says:

Acquiring Borland and the Compuware Testing and ASQ Business will give Micro Focus a leading market position in the highly complementary Application Testing / ASQ market. This market is estimated to be worth c.US$2 billion a year and is logically adjacent to Micro Focus’ core application management and modernization business.  The move into the ASQ market is consistent with Micro Focus’ stated strategy of extending in logically adjacent segments to expand its addressable market.

Why sad? Well, if you were around in the eighties and nineties you will remember a bold company which came up with a series of excellent products: Turbo Pascal, Borland C/C++, Quattro Pro, Paradox, and of course the incomparable Windows development tool Delphi. The visual development model in Delphi was successfully transitioned to Java in the JBuilder product, which in its early versions used a Delphi-compiled IDE.

These developer-focused products live on, of course, mostly in the hands of Embarcadero. The Borland that has been acquired is what was left when, in my developer-centric opinion, the best parts had already left.

What went wrong at Borland? It is mostly the victim of changes in the industry, made worse today by the economic downturn. It was a tools company, and the tools market was hit by the double blow of excellent open-source competition on one side (Eclipse, GCC) and vendor-subsidised tools on the other (Visual Studio).

Still, there were some spectacular own goals along the way. The 1991 acquisition of Ashton-Tate, at the time the market leader in PC database managers, was one, mainly because dBASE IV was not very good and did nothing to help Borland transition to Windows; in any case, Borland already had a better product in the form of Paradox.

Talking of Paradox, Paradox for Windows was another disaster. Wonderful product, but mostly incompatible with its DOS predecessor, and probably a tad too complex as well. It also had to compete with Microsoft Access, which was both cheaper and part of the impregnable Microsoft Office suite.

The company made up for it with Delphi; but even that under-performed relative to its quality. Enterprises felt safer with Microsoft’s Visual Basic. JBuilder did well at first; but its market share diminished rapidly in the face of competition from Eclipse and NetBeans. In retrospect, Borland should have made its core Java IDE free much earlier, to build a community round it, though competing with free is never easy.

Since it was so hard making money out of compilers and IDEs, Borland changed tack in order to target Enterprise ALM (Application Lifecycle Management). It could have worked, but it wasn’t actually a great fit with the independent developers who formed a large part of its customer base, and who tended to ignore large, complex and expensive supplementary tools in favour of just getting on with coding.

The nadir was 1998 when Borland changed its name to Inprise, to reflect its Enterprise focus. “Many thought Borland had gone out of business”, says Wikipedia. It was changed back to Borland in 2001.

Another mis-step was the way Borland (then Inprise) handled InterBase, its client-server database. In 2000, with a burst of community enthusiasm, the product was made open source. A couple of years later, it changed its mind and continued to develop InterBase as a proprietary product; but by then FireBird had been born, based on the open source code.

Thought for the day: Borland paid more for TogetherSoft in 2002 (around $185m, including $82.5m cash), than Micro Focus is paying now for Borland.

November 28th, 2008

Embarcadero RAD Studio 2009 is done

Embarcadero / CodeGear has released RAD Studio 2009, which includes Delphi 2009, C++ Builder 2009 and Delphi Prism. Note that Prism has its own IDE, which is actually the Visual Studio shell; this is the new take on Delphi for .NET that targets Mono as well as Microsoft .NET. You can also install Prism into an existing Visual Studio installation.

Looking at the UK prices, RAD Studio starts at £979.00, whereas Delphi starts at £549.00. Upgrades are much cheaper – less than half the price in some cases. The message seems to be: get RAD Studio if you think you might need more than one of these three products.

I’ve been asked whether the upgrade to Delphi 2009 is worth it. I have no idea, of course, since it depends what you need it for – though if you need Unicode I’d have thought it was worth it for that alone. I do think it is the best so far in the post-Delphi 7 series. Personally I prefer it to Delphi 7 as well; though check Mason Wheeler’s comments to a previous post for a contrary view. Vista compatibility is another advantage, though you can hack this in any version of Delphi. I doubt that Windows 7 will be much problem here; it is close to enough to Vista that the same stuff should work fine.

October 16th, 2008

SQLite and Delphi 2009

I created a simple Delphi wrapper for SQLite, the popular open source database library. I’ve just updated it to work with Delphi 2009 – I’m not happy with what I’ve done, because I’ve changed a bunch of declarations from PChar to PAnsiChar and from String to AnsiString, just to get it working quickly. SQLite is fine for Unicode, so the next step is to revise it properly to support Unicode … when I or someone else has time.

It was interesting to do some work with Delphi 2009. It has the old problem: out of date documentation. Here’s what it says about PChar, in the entry on pointer types:

The fundamental types PAnsiChar and PWideChar represent pointers to AnsiChar and WideChar values, respectively. The generic PChar represents a pointer to a Char (that is, in its current implementation, to an AnsiChar).

Further, if you have the following code:

var
strTest: PChar;
begin
strTest := StrAlloc(6);
strcopy(strTest,’Hello’);
strdispose(strTest);
end;

and hover the mouse over strTest in the editor, the pop-up tip says:

strTest – System.PAnsiChar

However, this is wrong. In Delphi 2009, a generic PChar is a PWideChar. Here’s the code in SysUtils for StrAlloc:

function StrAlloc(Size: Cardinal): PChar;
begin
{$IFDEF UNICODE}
  Result := WideStrAlloc(Size);
{$ELSE}
  Result := AnsiStrAlloc(Size);
{$ENDIF}
end;

UNICODE is defined in Delphi 2009, so StrAlloc returns a PWideChar.

Technorati tags: , ,
October 6th, 2008

Prism: official Delphi language comes to Visual Studio

Embarcadero is to release Delphi for .NET as a Visual Studio add-on, called Prism. Marco Cantu has a summary. Note that according to this post, which is based on an announcement statement by product manager Nick Hodges at the SDN conference near Amsterdam, there will be:

full support for the .NET framework 3.5 (WinForms, WFP, Silverlight, ASP.NET, WCF, LINQ) … CodeGear will provide Datasnap 2009 integration and dbExpress for ADO.NET support

It looks as if this will be a full alternative language for .NET developers. Note that many of the language changes, such as generics, in the Win32 version of Delphi 2009 seemed to have .NET compatibility in mind. It makes sense for Embarcadero to use Visual Studio to host .NET development tools, just as it uses Eclipse for Java.

There remains an awkward question. What advantage is there in using Delphi (a version of Pascal) rather than C# for .NET development? If this is aimed only at existing Delphi developers migrating code, it will only ever be a niche.

Not good news for RemObjects Oxygene, which is also an Object Pascal add-on for Visual Studio; but Oxygene has some other tricks like Mono support, for running on Linux, which may sustain it.*

I am trying to clarify a couple of points. To what extent, if at all, will Prism support the .NET version of Delphi’s VCL (Visual Component Library), which would not fit smoothly with the Visual Studio design tools? Even if VCL.NET applications work, you would probably be better off using Delphi’s own IDE for them. Code ported from Win32 Delphi will likely use the VCL, so this is tough to get right. And what is the future of Delphi for .NET in RAD Studio? I will update this post when I know more.

*Comments below suggest that this is in fact Oxygene rebadged; I won’t say more until I’ve got official confirmation.

September 2nd, 2008

It is time we stopped talking about Rich Internet Applications

I have a couple of posts on a new blog aimed at IT Professionals:

Delphi: a secret weapon for Windows developers

Is Adobe Flex and Air in your future?

The latter post is already out of date, following Google’s Chrome announcement. In it, I summarize the different approach to Rich Internet Applications, and argue that rather than discussing RIAs we should simply talk about the next generation of the client. I noted that “Google and Mozilla are also stretching browser technology”; now that we have Chrome this looks like a full-on battle.

Technorati tags: , , , , , ,
August 25th, 2008

Delphi and C++ Builder 2009 are available to order

I’m choosing my words carefully, because although the CodeGear/Embarcadero site is now showing Delphi 2009 as the current version, if you click through to the order page it only offers a pre-order. Still, it must be done or thereabouts. US prices are as follows:

Delphi 2009: Pro $874.00;  Enterprise $1974.00; Architect $3474.00

C++ Builder 2009 costs the same; or you can get a bundle with both for a relatively small extra cost, eg. $1074.00 for Delphi and C++Builder Professional.

Curiously, an upgrade to Delphi 2009 Pro only costs $374.00 (57% discount), but an upgrade to Enterprise is $1274.00 (35% discount). I can’t make sense of this except on the basis that any product labelled “Enterprise” is presumed not price sensitive.

So what’s not in the Pro version? The Enterprise edition adds drivers for server databases in the dbExpress database framework, the DataSnap multi-tier application framework, and a full range of modeling diagrams. Architect bundles ER/Studio Developer Edition, Embarcadero’s database modeling tool, with support for a wide range of database servers.

In other words, the majority of Delphi’s features are in the Pro edition, which is really much the best value, though if you need DataSnap or client-server dbExpress then I guess you have no choice.

The big features here strike me as Unicode in the Visual Component Library; and the new language features, generics and anonymous methods. I’ve not yet looked at the product though, so watch this space.

August 13th, 2008

What’s new in Delphi 2009

Today I viewed David Intersimone’s Live Webinar on what’s new in Delphi 2009, code-named Tiburon.

This is a Win32-only release. I think you will want it (if you use Delphi), if only for the new language-level features: generics, anonymous methods, and unicode strings. I grabbed a few screens from the presentation. Generics:

Unicode – here’s the TEncoding class:

and Unicode in action:

There are also some new components, such as a neat collapsible panel called TCategoryPanelGroup, TBalloonHints, and Office-2007 style ribbon controls.

The ribbon controls interested me because I am wary of Microsoft’s Office ribbon patent. CodeGear/Embarcadero seems to be wrapping Microsoft’s controls*, as used by the CMFCRibbon* classes, which as I understand it are not the actual controls used in Office 2007 but share their look and feel. You therefore have to agree to Microsoft’s license for the Fluent UI in order to use the controls.

There are also major changes to the DataSnap middleware but DavidI didn’t go into this much in the presentation.

During the Q&A at the end there were the inevitable questions: what about 64-bit (coming in a later version); what about Mac/Linux (nothing to announce); what about the dreadful online help (errrmmm we’re working on it); what about .NET (coming in a later version). Some of the language changes seem to be making ready for .NET 2.0 compatibility.

No announced release date; but the roadmap shows this as a 2008 release; and if it’s being webinared now that suggests it won’t be too long a wait.

Delphi is still absolutely my favourite Win32 development tool and this should be a strong release. At the same time, it is all rather old-school: win32, native code, fat client. You can do web applications in Delphi, and there is an updated “VCL for the Web” in this release, but why would you?

Nevertheless, if there are any Delphi developers still hanging on to Delphi 7 (the last version with the old IDE), perhaps these important language changes along with what is now a mature new-generation IDE will be sufficient to persuade them to migrate.

*Update: Although DavidI said that Delphi’s ribbon controls wrap Microsoft controls, Nick Hodges says here that this is not the case. He is probably right as I’m not sure what controls Delphi could wrap. If the MFC team could not use the actual Office controls, but had to create its own implementation, then I should think a third party would be in the same position. I wondered if the VCL was actually using the MFC code but I doubt that would be straightforward either. This may be a confusion caused by the licensing requirement.