Category Archives: embarcadero

What next for Embarcadero Delphi? Roadmap with Mac, Linux support published.

Embarcadero has published an updated roadmap for its Delphi development tools: Delphi, C++Builder and the RAD Studio shared IDE. These tools combine the Object Pascal (Delphi) or C++ language with a visual component library and native code compiler for Windows.

Chief Technical Architect Michael Rozlog outlines four products which are being worked on, including “Fulcrum”, “Wheelhouse”, “Commodore” and “Chromium”. He says work is being undertaken on all of these, so the exact release schedule is not specified. Embarcadero has an annual release cycle for these products so you might reasonably project that Fulcrum is set for release later this year, Wheelhouse for 2011, and Commodore for 2012. Delphi 2010 came out in August 2009.

Delphi “Fulcrum” introduces a cross-compiler for Mac OS X, with the emphasis on client applications. The IDE will run only on WIndows. Rozlog also talks about integration with Microsoft Azure so that Embarcadero can tick the Cloud Computing box.

Delphi “Wheelhouse” adds Linux support, on a similar basis where the IDE runs only on Windows. It also adds a focus on server applications for both Linux and Mac OS X, including support for Apache modules.

Delphi “Commodore” is the 64-bit release, with 64-bit and easier multi-core development on all three platforms. Rozlog also tosses in “Social Networking integration” and “Better documentation”.

2012 is a long time to wait for 64-bit, particularly as the Windows server world is now primarily 64-bit. Embarcadero is promising a 64-bit compiler preview for the first half of 2011, though this will be command-line only.

Delphi “Chromium” is a revamp of the Visual Component Library with a new look and feel and “natural input integration” – location, voice, video motion.

In addition, Rozlog talks about updates for Delphi Prism, which is loosely the Delphi language plus a .NET compiler, and integrates into Visual Studio. Prism 2011 will work with Visual Studio 2010, and includes support for Mono. This extends to working “with MonoTouch to create Apple iPhone ready applications.” Rozlog doesn’t state whether this has been cleared with Apple’s Steve Jobs, who is opposed to use of languages other than Objective C for iPhone or iPad development.

Is Embarcadero doing enough to keep Delphi current? I’m not sure. Delphi is a fantastic RAD and native code compiler for Windows; in the past it suffered when Borland tried to extend it beyond that, to Linux and .NET, distracting development effort from its core role. The risk here is that the Mac and Linux effort may be more of the same. Of course this will be nice to have, though running the IDE on Windows and compiling for Mac is a limitation that means it will not appeal to Mac developers, only to Delphi Windows developers hoping to extend their market. But there are other ways to do cross-platform now –  Silverlight, Flash, web applications – and I wonder if the time for this has passed.

A compiler for iPhone and iPad would now be bigger news, especially since Silverlight and Flash are not available on these platforms, but for this Embarcadero would need to overcome Apple’s cross-compiler restrictions as well as solve the technical problems.

Windows 7 has breathed some new life into Windows client development. I hope Embarcadero is not neglecting areas like great RAD support for features like Jump Lists and thumbnail previews, for the sake of the uncertain cross-compiler market.

There is a discussion of the new Roadmap in the Delphi forums here, and Marco Cantu also comments.

Embarcadero All-access: a better way to deploy developer tools?

I have a call lined up with Embarcadero today, and wanted to catch up with their latest tools. It reminded me of something I’d intended to post about for some time, the Embarcadero All-Access system which allows no-touch install of many of its tools. Here is how it works. First, you run the All-Access client:

image

I’m not showing all the available tools here: I count 17 currently. You’ll notice many of them are marked InstantOn. Let’s say I want to take a look at DBArtisan. I click the link and get a dialog:

image

This invites me to start a download. Click Yes and I get a download thermometer:

image

Once downloaded, I have to pass a license screen and enter a serial number. Presuming you have a current subscription, you can get a serial number by logging on to you Embarcadero account and requesting it there, where it is supplied instantly. This part of the process is similar to that used by Microsoft for MSDN subscriptions. It is a shame it is not built into the All Access desktop client, but a minor inconvenience.

Then the application runs.

image

No further setup, no install options, or any of the other complications that often accompany installing developer tools.

To be fair, I can think of other development tools that are pretty much download and run. Eclipse is usually good in this respect, at least until you try to get updates. Further, even with All Access there can be additional steps. Instant-on 3rd Rail, for example, does not install a Ruby runtime, so it is not really click and run: the Eclipse-based IDE runs, but you cannot start a project without getting a Ruby interpreter from somewhere.

Nevertheless, this is the closest I’ve seen to on-demand developer tools, short of the interesting browser-hosted tools that are emerging. Embarcadero now also calls it the ToolCloud. It is not just an easy install; this is application virtualisation:

Aimed at simplifying deployment, enabling side-by-side versioning of products, and breaking down the barriers to use, InstantOn is also great in locked-down desktop environments, since the product does not affect any system files or system registry settings.

says the faq.

Alongside the technical aspects, All-Access simplifies license management for a development team. You can install the server piece on your own network for full control.

This comes at a price of course. There are four subscription levels, from Bronze to Platinum, though even the Bronze gives you use of a wide range of tools including Delphi, C++ Builder, JBuilder, Rapid SQL, some parts of ER/Studio, 3rdRail and Delphi for PHP. Example price from Grey Matter in the UK starts at £3188.57 for a 1-year Bronze concurrent license.

The interesting question: when can this be made into a generic tool that developers can use for deploying their own applications?

Delphi and C++ Builder 2010 are out

I’ve installed the new Delphi from Embarcadero. I want to enthuse about this product, as a long-time Delphi enthusiast, but a few things have dampened my zeal:

1. The install on Windows 7 64-bit was not totally smooth. First Avira Antivir claimed that a file installed during setup, called convert.exe, contained a virus (not the fashionable new one, something else called DR/Delphi.Gen dropper). I thought this was most likely a false positive. I tested the file with with Kaspersky which declared it clean, and I’ve emailed Avira about the problem.

I’m not sure why I bother at all with running anti-virus software. It is very little use. After all, what is the point of having it, if when it claims to find something you ignore it? On the other hand, what is the chance that this is a real virus on Embarcadero’s new CD, that Kaspersky does not detect?

None of this is Embarcadero’s fault, of course, unless it has shipped a virus, which I doubt.

2. Next, on running and quitting Delphi 2010 for the first time, the Windows Program Compatibility Assistant was triggered. See this earlier post for what this guy looks like and what it does. This one made the same change, ELEVATECREATEPROCESS.

A minor niggle perhaps, but it looks bad. At this stage, the Delphi team should have come to terms with UAC and made RAD Studio properly UAC-aware. I’m guessing most of the team run with UAC disabled.

3. Another UAC issue. When the IDE starts up, you get a message:

Error executing ‘C:\ProgramData\{BBD31133-40F8-4B57-9BA6-DB76C03D153B}\Setup.exe’: The parameter is incorrect

This does not occur if you run as administrator.

4. I ran up the IDE and noticed there is a new documentation wiki with user contributions. I think this is a great idea. It seems to be built with mediawiki. Unfortunately it failed with “A database query syntax error has occurred”. Update: it’s working now.

5. I’d understood that Delphi 2010 is somewhat Windows 7 ready. It has great support for multi-touch and gestures. That’s fine, but I was interested to see how to support the Windows 7 Jump Lists. A Jump List is the menu that pops up when you right-click a taskbar icon.

Well, if support for this is there I can’t find it. There is support for the Windows 7 Direct 2D Canvas, and as I mentioned for multi-touch, but that’s about all I can find.

It’s a shame because only a few people will be using multi-touch in the near future, and Direct 2D is not a feature visible to users, but the new Windows 7 taskbar and its features – there’s also the ability to add controls to taskbar preview windows – is the thing that every Windows 7 user will notice.

Of course you can easily call the Windows API from Delphi, and the community will figure out how to support these features before long; there’s already an alpha “Windows 7 controls for Delphi” that Daniel Wischnewski has come up with. But I’d like to have seen it in the box, and it would have been a nice selling point.

Don’t let me put you off. There are other new features – including Firebird support, integrated code formatter, better thread debugging -  and no doubt the core of Delphi is as good as ever (no 64-bit yet, but it will come eventually).

Still, my impression is that Embarcadero still has to work a bit on that last degree of polish. One final gripe: why is the discussion forum so darn slow? It has also been in beta forever.

More information here.

Delphi developer virus exposes weakness in anti-virus defences

I found a real live instance of the Delphi-attacking virus W32/Induc-A yesterday. It was in the executable for FinalBurner Free from ProtectedSoft (ironic name in the circumstances), a decent freeware CD burning application. The file is burner.exe and I suspect the company has been shipping it for some time. I do not know if it affects the paid-for versions.

This malware was highlighted by Sophos though one thing Sophos does not make clear (as it is in the scaremongering business) is that the virus has only a mild affect. It only affects machines with ancient versions of Delphi installed – versions 5, 6 and 7 according to Marco Cantu – and its activity appears to be limited to replication. In other words, a successfully infected machine modifies Delphi’s runtime library so that it compiles infected executables, but does nothing else that I know of.

The implication is that the anti-virus companies, far from doing a great job at protecting us, have only just spotted a problem that has been around for months or possibly years. The burner.exe I found was dated 16 June 2009. If anyone has an older example, I would be interested to know; I’ve seen one report of an August 2008 infection.

Thus, when Delphi Product Manager Mike Rozlog comments to the Register’s report:

The best ways to combat these types of issues are to establish a deployment protocol that checks for viruses and trojans before shipping any applications

you have to ask: how? Clearly scanning with an anti-virus product would not have helped ProtectedSoft. Note that Sophos admits in its database that protection has been available only since 18 August 2009.

Despite the mild impact of W32/Induc-A (as far as we know so far) it is not something to take lightly. The attack looks like a proof-of-concept, to be followed by similar code with more serious impact, or possibly just an experiment that escaped into the wild. Maybe there are other more serious variants that the vigilant anti-virus folk will find in a month or two’s time.

How then can developers protect their machines? Another Reg reader says:

Instead, people should try to ensure the integrity of their development systems. Don’t connect them to the ‘net and don’t play games on them (duh!). Don’t have any foreign executables on them besides the OS and the compiler, transfer the sources there and compile them there. Run some kind of integrity checker to make sure that your compiler distribution hasn’t been tampered with. That sort of stuff.

Good advice, though not trivial to implement. A suggestion for Embarcardero: how about giving some thought to the problem and coming up with an easy means for developers to check the integrity of their runtime library files?

The disturbing aspect of this story is how malware can end up in shipping software from reputable companies; it could even be signed code. How long before something like this ends up in an executable shipped with an operating system itself, maybe with a timed payload so it lies dormant until well distributed?

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.

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.

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.

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.

Code for Mac Cocoa in Visual Studio – surprised to see this?

I grabbed this screenshot from a preview just installed:

Cocoa app in Visual Studio

It comes from Delphi Prism, a new product from Embarcadero/Codegear which lets you code for .NET using the Delphi language, an object-oriented version of Pascal. The product is not as new as it first appears. It is based on an existing product from RemObjects, called Oxygene, which it now replaces.

Here’s the story in a nutshell. 2003: Borland, the company which created Delphi, decides (rightly) that .NET is here to stay, and releases Delphi 8, a pure .NET version. Nobody wants it, because it has no advantages to speak of over Win32 Delphi (which is faster), or C#, which is the Microsoft .NET language.

At that time some voices muttered that what Borland should do is to integrate Delphi into Visual Studio, rather than doing its own .NET IDE.  One was Marc Hoffman at RemObjects, only he did more than mutter: his company developed its own implementation of Delphi Pascal for Visual Studio, called Chrome.

Borland soldiers on with Delphi 2005, which does both .NET and Win32 in a single IDE. Developers are happy to have a new Win32 Delphi, but most still don’t see the point of the .NET stuff. Further, Delphi 2005 is buggy; many stick with Delphi 7. Next comes Delphi 2006: more of the same, but less buggy.

There’s a couple of problems with Delphi’s .NET support. First, it is always out-of-date compared to Microsoft’s .NET tools. Second, it has component library schizophrenia. There’s VCL for .NET, based on Delphi’s component and GUI library, but that’s not compatible with .NET components built for Windows Forms. There’s Windows Forms, but that’s not compatible with existing Delphi code. Borland decides to deprecate use of Delphi .NET with Windows Forms. This is really for VCL developers, it says.

Next comes Delphi 2007. Nice product, but where’s .NET? Gone. Nobody seems to mind [and it turns up later in RAD Studio 2007*]. Delphi 2009, gone again. But now there’s Prism, and it is a complete U-turn. Forget VCL.NET. It uses standard .NET libraries, runs in Visual Studio, supports Windows Forms, ASP.NET, WPF, and soon Silverlight. Oh, and it’s based on what that other guy did back in 2004, with some Borland Codegear Embarcadero technology thrown in: dbExpress database framework, client support for DataSnap multi-tier applications, and the Blackfish pure .NET database engine.

Very good; but there’s still that awkward question: why not use C#? The answer, I guess, being either that you love coding in the Delphi language, or you want to use one of the Delphi-compatible libraries.

Or that you want to use Mono, which of course is what enables those tasty Mac options in the New Project dialog above. You can also use C# with Mono – possibly you should, since it is Mono’s core language – but in Prism it comes nicely integrated into Visual Studio. Well, somewhat nicely. In practice there are a few extra steps you need to take to get it working. The recommendation is to run Visual Studio in a VM on a Mac, since Windows cannot run Cocoa applications. And you’re going to be using Apple’s Interface Builder; there’s no GUI designer in Visual Studio itself.

Hardly enterprise-ready then; but still an intriguing development.

*Added correction thanks to John Moshakis’ comment below.

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.