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.

Adobe’s campaign against Apple misses the target

Nothing better demonstrates Adobe’s concern about being locked out of Apple’s mobile platform than a huge advertising campaign attempting, one assumes, to win public support and pressure Apple into yielding ground.

Still, if you are going to run a big PR campaign it helps to be right. But Adobe seems to be arguing that Flash support is essential to an open web, which is incorrect.

We believe that consumers should be able to freely access their favorite content and applications, regardless of what computer they have, what browser they like, or what device suits their needs. No company — no matter how big or how creative — should dictate what you can create, how you create it, or what you can experience on the web. … In the end, we believe the question is really this: Who controls the World Wide Web? And we believe the answer is: nobody — and everybody, but certainly not a single company.

says the open letter from Adobe founders Churck Geschke and John Warnock.

Very good, but this is not an argument in favour of Flash. Flash is not part of HTML, Flash is not a standard, and Flash is not open – the specification for the player is published, but what goes into that specification is controlled solely by Adobe, and its player implementation is not open source. Flash is a proprietary plug-in. Are Geschke and Warnock arguing that all browsers on all devices should allow all plug-ins to be installed – including Silverlight, Java, ActiveX, and anything else you can think of? Or are they arguing that Adobe Flash is a special case? It is certainly a special case for Adobe, but any company will argue in favour of its own stuff.

The full-page advertisement that I’ve seen in various newspapers is not much better. Adobe’s pitch is that Apple is:

taking away your freedom to choose what you create, how you create it, and what you experience on the web

This again is incorrect. Apple has an excellent mobile browser based on WebKit, as also used by Google, Adobe and others. You can do what you want on the Web, but if you use Flash it won’t render on Apple’s mobile devices. All that means is that Apple has chosen not to support Adobe’s plug-in. It is not an issue of freedom.

Personally I don’t like Apple’s approach. I’d prefer it to support the leading plug-ins (not only Flash); I don’t like the appification of the web -  dubbed the splinternet, or splintered web, by some. And I particularly object to Apple’s clause 3.3.1 in its new developer agreement, which blocks apps that are created with cross-platform tools, no matter how well they perform or how good they look. That, it seems to me, is anti-competitive in spirit.

I think Adobe should make more of clause 3.3.1, rather than indulging in special pleading for its plug-in. And if I were Adobe, I wouldn’t be whinging about Flash being blocked. Rather, I’d be highlighting all the great things Flash can do, and all the content you will miss without it. My full-page ad would say, “Mr Jobs, your iPhone is broken”, and extol the merits of Android and other devices that will run Flash.

I’d also be working on the technical arguments, that Flash is unstable, insecure and resource-hungry. Is it Apple’s fault? Is it because of poorly coded SWFs, and if so what is Adobe doing about that? And how will Adobe improve Flash so that it behaves better in future, and not be perceived as the new Vista?

Maybe next time round?image

Java versus C/C++ performance – which is really faster?

Cliff Click of Azul Systems has an excellent post on Java vs C/C++ performance:

Is Java faster than C/C++?  The short answer is: it depends.

He then presents three categories of cases: the first C/C++ beats Java, the second where Java beats C/C++, and the third and longest, where C/C++ proponents claim Java is slower but in reality it is not.

My quick summary: there are few cases where Java (or C#) is so much slower that it matters, save for one big issue which Click mentions early on – start-up time:

Flash games beat Java games mostly because it took 30+sec to load the JVM from disk… and so now the web-game developer community has settled on Flash as the standard (and it still takes 10+sec to load the JVM).

Start-up time makes a big difference to usability, for reasons which I cannot entirely explain. Just for fun, I’ve been running Microsoft Office 95 in a virtual instance of Windows XP recently, and the fact that Word 95 loads in a blink makes it feel much faster than Word 2010, which takes 5-10 seconds on first load, even though the productivity difference must be negligible.

If I had to theorise about this, I’d say it is to do with the way humans learn from experience. We don’t like waiting, and if an application take a while to start then part of our brain tells us to avoid it in future. We override that instinct when it is an app we need to run, but it contributes to a negative impression.

The opposite is also true. If an application starts instantly – I mean to the point where we can use it, not just a splash screen – it contributes to a positive impression and we are more inclined to use it in future.

Incidentally, Click thinks that Java is generally faster than C#, though he adds that he is “not able to give C# a fair treatment” because he does not track it closely.

SharePoint 2010 web launch delivers blank web page

Microsoft has suffered an embarrassing technical problem at the launch of SharePoint 2010 and Office 2010. The pre-launch publicity made a big deal of how this launch was both web-based, with the keynote streamed globally, and built on SharePoint 2010.  

Microsoft’s global launch website http://www.the2010event.com for the 2010 suite of products was built on Microsoft SharePoint 2010, reaching more than 60 countries and 26 languages worldwide.

says the press release. CNet’s Ina Fried has some more background:

If we went with (SharePoint) 2007 we probably would have cut corners a little bit," said Carol Matthews, a senior marketing manager in Microsoft’s information worker team. Instead, she just had to convince boss Chris Capossela to bet the launch on a product that was still in testing. Microsoft does have an HTML-based backup for Wednesday’s launch, but Matthews said that has more to do with the unreliability of the Web than of SharePoint.

The hour came; and this is what the site delivered to me and, according to Twitter, many others:

image

By coincidence, this came just after I wrote a post about SharePoint including this comment from a consultant:

just because a thing can be done with SharePoint doesn’t mean it should (for example, websites usually should NOT be built in SharePoint, in our opinion).

Maybe the technical hitch is nothing to do with SharePoint. Still, it’s unfortunate.

Update: later on in the launch someone circulated an URL for watching the keynote directly in Windows Media Player. That worked fine – but bypassed all the SharePoint content.

Office 2010: the SharePoint factor

Microsoft Office 2010 launches today. I’ve been using the product since for some months, in beta and final form, and written a fair amount on the subject. Is it worth upgrading? There’s no simple answer. If you spend a lot of time working in Office, then even a small tweak might be worth the upgrade cost. On the other hand, it is a struggle to identify must-have features in the desktop product, which is hardly surprising given how many revisions it has already been through.

That said, I’ve also installed SharePoint 2010, and it’s apparent to me that Office 2010 plus SharePoint 2010 is more interesting than Office 2010 on its own. SharePoint 2010 enables three things that were not done, or done less well, in previous releases:

1. Office Web Apps. Although the Web Apps have frustrations and limitations, the ability to navigate to SharePoint with a web browser, and to view and generally edit documents without opening desktop Office, is a big deal. I’ve found it handy on a netbook, for example, and even on machines where Office is installed. It is also useful on iPhones or other smartphones. Another aspect is the link with Windows Live. Now you can upload a document somewhere others can view it without needing to download it or install a  viewer.

2. Collaboration. Via SharePoint 2010, you get simultaneous co-authoring in Word and PowerPoint on the desktop, and in Excel and OneNote on Office Web Apps. The co-authoring story is a bit mixed at the moment – for example, desktop Excel does not support co-authoring – but this is an interesting feature for some scenarios.

3. Offline SharePoint. SharePoint Workspace lets you work with documents offline and have them automatically synchronize later. There’s a few things I don’t like about SharePoint Workspace. It is not as seamless as I would like, opening in its own window rather than showing up as an Explorer folder, and it presented me with an error saying I had too many documents:

image

The Sync Status then reports an “unknown error” despite having just displayed a message saying what the error is. According to online help, you can store “approximately 500 documents”, though if you exceed it then it still works but with “degraded performance”, up until another limit of 1800 documents. I’d like a way to specify “only those documents modified in the last three months”, or something like that, but cannot see anyway to do this automatically. What you can do is a thing called “Discard local copy” which leaves only the header in the offline store, but you have to apply this manually. Not perfect then, but still useful.

The simple conclusion then is that to make sense of Office 2010 you need SharePoint 2010. The snag is that SharePoint is not something to roll out casually. Although it has a huge number of interesting features, it is also complex and easy to break.

I noticed this post from SharePoint consultants Cloud2, which specialises in NHS (the UK National Heath Service) deployments. I guess you would expect a consultant to emphasise that installing SharePoint is something which requires expert help; but even taking that into account there are some interesting comments here. A sample few:

Develop a careful and well considered Information Architecture – This is probably the single hardest thing to do in a SharePoint project and is ABSOLUTLELY NOT a technical task … If you spend less than a week on this then you either are receiving great advice or are likely to get into trouble down the line

Note that changing the User Interface in SharePoint is VERY HARD and any decent SharePoint redesign is going to cost £10k+ (we know of companies that have spent more than £50k). So stick to a few colour changes and images or invest in a predefined theme if you must.

Accept that SharePoint is huge – it’s not (just) a document management or a team collaboration technology and it can address a very wide range of needs in a business. This means that no one person really understands it all and that no one can be expected to quickly get up to speed on it in order to make informed capability, specification and project decisions.

Don’t accept the defaults when building the servers. E.g. SQL Server defaults will result in autosizing sizing and growth settings that will make the server work flat out just to keep up with resizing

Don’t Believe everything Microsoft (and their partners, even us) say. It might be legally true, but no one knows it all and just because a thing can be done with SharePoint doesn’t mean it should (for example, websites usually should NOT be built in SharePoint, in our opinion).

My point here is not that these remarks are correct or incorrect, but that deploying SharePoint is not something you can expect to do overnight just because it works great with the latest Office. Here’s another quote from the same guys:

It has been our observation that many, and perhaps most, SharePoint projects in the English (as distinct from Scottish, Welsh etc) National Health Service fail to a greater extent than they succeed.

which is a sobering remark.

It’s also worth noting that going for hosted SharePoint will solve some but not all of these problems. On the other hand, part of Microsoft’s appeal these days is that you can do everything on premise – that may seem more of a disadvantage, but it is an attraction for organisations that don’t yet buy the cloud hype.

Linux users will need a Microsoft Office license to use Office Web Apps

I spoke to Jeff Teper, Microsoft’s Corporate VP of the Office Business Platform, who runs the SharePoint engineering group. I asked him to clarify something has puzzled me: the licensing for Office Web Apps. From a technical point of view, Office Web Apps is an add-on for SharePoint; it does not require the paid-for SharePoint Server (success to Microsoft Office SharePoint Server), but neither is it free – you may only install it if you have a volume license for Microsoft Office.

That much I understood; but what are the implications for businesses who have a volume license that does not cover everyone in the organisation? For example, I might purchase 100 volume licenses for the people who need to run Microsoft Office, but have another 50 who have OEM Office, or Open Office, or who don’t need to run Office at all. Some may be running Linux, on which Microsoft Office is not supported at all – though some have it working using WINE. Another scenario is where you have a SharePoint installation published to partners over the Internet. Is it OK to let them use Office Web Apps?

“The simple answer is that you do need a volume license for each user”, said Teper, though he added, “Our volume licensing is tailored to each customer, we will do specific things for each customer’s need. But the blanket statement is that its available for volume license customers per user.”

So would a Linux user need a license for Microsoft Office in order to access Office Web Apps, even though they couldn’t run the desktop version?

“Yes, that’s our default licensing.”

I also asked about how the licensing works. Is it enforced technically, so that the server refuses connections if they exceed the licensed number, or is it on a trust basis? Teper answered somewhat mysteriously:

“We provide volume license customers the tools to track that.”

My guess is that it is essentially done on trust (though perhaps subject to audit) but I couldn’t get Teper to confirm that.

Still, it seems to me that this licensing requirement will inhibit organisations from taking full advantage of what the Office Web Apps can do. The advantage of a web-based solution is that anyone can access it, both within an organisation, and beyond it if you choose to publish it on the Internet. I doubt there will be much enthusiasm for buying Office licenses for Linux users, though maybe the kind of organisation that has a full Microsoft-platform deployment does not have internal Linux users anyway.

In mitigation, it’s worth mentioning that Microsoft is also making Office Web Apps available for free, through Live Skydrive and Office Live Workspace. If you use those services, anyone with a Live ID can be given access to your Office Web App documents.

Six abandoned features from the history of Microsoft Office

With Office 2010 about to launch, it’s fun to look back at earlier Office launches, especially some of the features which were hyped as breakthroughs at the time, only to be dropped or hidden a couple of versions later. Here are six which come to mind.

Smart Tags

Smart Tags were the big new feature of Office XP. You would be typing a document, and as you typed it would pull in data or run wizards by recognising the content of your document. Smart Tags were originally envisaged for Internet Explorer as well, but controversial since they overlay third-party content with Microsoft’s interpretation of what it might be about; that feature was dropped. Smart Tags just about persisted into Office 2003, after which Microsoft stopped talking about them.

image

Curiously, if you hit Display Map in Word 2003, then after a few Internet Explorer convulsions a map of New York appears with the location marked (I have no idea if it exists, I just picked the numbers 12345). In Word 2010, the feature is hidden, but if I right-click the address I do get Display Map under Additional Actions:

image

However, if I select Display Map I just get a map of the UK with a search box. It appears that this feature in Word 2010 did not receive the most rigorous attention or testing.

The Tip Wizard

Introduced in Office 95 (along with the Answer Wizard), the Tip Wizard would observe your actions and come up with a tip if it thought you might need help. It was actually a better approach than the Office Assistant which was to follow, being less intrusive and occasionally even helpful.

image

The Answer Wizard was less impressive – billed as some sort of intelligent question parser, but in practice little different than simply searching help for keywords.

The Office Assistant

The unforgettable Clippy, introduced in Office 97, whose opening remarks were usually “It looks like you’re writing a letter.” Clippy had a wonderful range of animations though; almost as if more effort went into the animations than the artificial intelligence. You did not have to have Clippy; there were a variety of other characters available. The Office Assistant also hijacked certain dialogs, such as the option to save when closing a document.

image

So what was actually wrong with Clippy? Part of it was the faulty AI, but more seriously the application overstepped the mark between what is helpful and what is annoying and intrusive. Someone even wrote a paper on the subject.

Although everyone loves to poke fun at Clippy, Office 97 (in which he first appeared) was a huge success for Microsoft – accordng to the company, it was the fastest selling application in PC history at the time. Clippy did not last though; by the time of Office XP the Assistant was off by default, and in Office 2007 it is not available at all.

Adaptive Menus

Here is an idea which really seems to make sense. The problem: too many menu options that few people use, cluttering up the user interface. The solution: menus which only present the features you actually use. The other options are hidden by default, but can be revealed by clicking a double-arrow. If you use a hidden menu a few times, it starts to appear by default; if you do not use an option for a while, it hides itself. The feature arrived in Office 2000.

image

The problem with adaptive menus was the wrong things got hidden. I always found it annoying when Office hid the Print menu, even though I rarely print documents (which is why it got hidden).

They also fail the consistency test. Humans need landmarks in order to navigate, and making them shift and change over time is disorientating.

Outlook Net Folders

Once you have a network, then among the most obvious things to do is to start sharing basic things like contact lists. Microsoft has a feature in Exchange called Public Folders which does this nicely. But what about little workgroups that do not have Exchange? Outlook 98 introduced Net Folders, aimed at exactly this need. You could configure a Net Folder, in which case hidden emails were sent round the network to synchronize everyone’s changes.

Unfortunately nobody in Microsoft used Net Folders. Why would they, when they had Exchange? In consequence, the Net Folders feature never worked correctly; they would inevitably become corrupt or non-functional after a while. After Outlook 2000, the feature disappeared.

Access Data Projects

Microsoft Access has a decent user interface for managing data, but the underlying JET database engine is a bit hopeless over a network. That was the thinking behind Access Data Projects, introduced in Access 2000. Keep the friendly Access UI, but have the underlying database engine be SQL Server.

At the time Microsoft hinted that JET was nearing end of life, and that the local SQL Server engine might take over. It was a hard sell though. Users understood the MDB: a file that has all their data in it. You could copy it to a USB drive and take it home, or email it to someone, and it would happily open in another Access installation (version differences aside). SQL Server is just more fiddly. In any case, you can connect to SQL Server from an MDB or Accdb, so why bother? After Access XP, Microsoft moved away from the idea of Access Data Projects.

Actually, Access Data Projects are still there even in Access 2010, just hidden. Go to the backstage view, select New, and type a filename with an .adp extension. Then click Create. Access will ask if you want a new or existing SQL Server database.

image

And more…

I could go on. The Office Binder – a great feature of Office 95-2000 that rolls documents of multiple types into one file. Data Access Pages – a somewhat misconceived feature of Access 2000 for binding HTML to database fields. What’s your favourite abandoned feature?

Adobe’s Kevin Lynch: we’re focusing on everybody else

I enjoyed this interview with Adobe’s Kevin Lynch from Web 2.0 Expo in San Francisco, where he talks about the Apple problem. Adobe has created a compiler for Flash that creates a native code iPhone application, but Apple’s latest developer agreement prohibits its use.

Lynch presents it as a matter of freedom. Software developers should be allowed to target multiple operating systems with one code base; and developers should be allowed to deploy applications without needing permission from a company.

“We’re focusing on everybody else” he says, talking about forthcoming devices that will support Flash and the Flash-based Open Screen Project. “All the variety and the innovation that happening with all hese other companies is going to dwarf what’s happening from one company,” he says. “We’re at the beginning of the game not the end of the game.”

The snag is that Apple’s devices are the most attractive market for applications, thanks to smooth deployment via the App Store and the higher than average wealth of Apple’s customers. It’s a matter of which is more true: that Flash is marginalising iPhone and iPad, or that iPhone and iPad are marginalising Flash.

I’d also suggest that having Adobe control the platform for the Open Screen Project is not ideal, if we are going to talk about software freedom. If you listen to the interview, notice how Lynch tries to avoid mentioning Flash in the same breath as the Open Screen Project. It’s really the Adobe Flash Screen Project, but you wouldn’t know from what he says.

Nevertheless I agree with both his points. Both the App Store and Apple’s new restrictive developer agreement are bad for competition and I dislike them. That said, I doubt that the existence of a few upset developers will have any noticeable impact on Apple’s success. What will make a difference is if the “variety and innovation” which Lynch talks about produces devices that are better than Apple’s offerings.

Exchange 2007: ESEUTIL beats the wizard

Today I was asked to help find missing email in Small Business Server 2008, in other words Exchange 2007. Somehow, thousands of emails had disappeared from a user’s mailbox. They were there a couple of days earlier, so we restored a backup. The procedure is nicely explained by John Bay. You restore the Exchange database to a temporary directory, leaving Exchange up and running. Then you mount the restored backup into a “recovery storage group”, from where you can merge items from the recovered mailbox into the live one.

All went well, until the point where you mount the restored backup. The database would not mount. The event viewer said it was in an inconsistent state. Bay anticipates this, and suggests using the Exchange Troubleshooting Assistant to repair the database. The repair chugged away and completed; but the database still would not mount. I tried again, same result.

I gave up on the Assistant and reverted to the traditional command-line tools. I used the sequence:

ESEUTIL /P

ESEUTIL /D

ISINTEG

running against the recovered database. The first does a repair; the second defragments; and the third runs integrity checks and applies fixes.

Now, you would have thought that the Troubleshooting Assistant would use these very same tools underneath its pretty GUI, but that cannot be the case. Apart from anything else, ESEUTIL /P took much longer than the Assistant. In particular, it appeared to hang while doing something mysterious called Deleting Unicode fixup table.

image

It carried on saying this for around 7 hours. There was evidence that the process was still alive though, so I left it be.

It worked. I ran the other two commands, mounted the database, and merged the mailbox to recover about 4,000 emails.

image

The question remains: where did the emails go? All I know is that the problem coincided with a newly installed Windows and Outlook, which I’m guessing is significant.

Word 2010 ugly font in .doc format

I’ve come across what looks like a bug in Word 2010. I generally do not send documents in the new Word .docx format, because it can cause problems for the recipient; I prefer to use the old .doc format. I’m also averse to the multi-colour default style set in Word, and generally change it to the Word 2003 style set.

So I typed a document in that style set, and prepared it for sending by using Save As to convert it from .docx to .doc.

Here’s the before:

image

and after:

image

The font spacing has gone awry in the heading. I don’t know to what extent this is specific to a particular font or style; but I have verified the behaviour on a second machine and confirmed that the error exists in the printed output as well as on screen.

It’s unfortunate because .doc support remains a critical feature of Office – if this is a common problem, it would be enough to send me back to Word 2007.

I would love to know what is causing it. I realise there are cases where a .docx cannot be quite the same when saved as .doc, because of different features, but I have never before come across this kind of corruption. Excellent compatibility between .doc and .docx is meant to be a key reason to use Microsoft’s Open XML.

Incidentally, it is not unique to documents which start life as .docx. I get the same problem if I set the default format to .doc and type the same content.

Update

I got this one wrong. It is not a bug in Word 2010; it is the same in Word 2007, and I’m surprised I have not noticed it before. The likely reason is that it only occurs at 16pt and higher, which is when kerning is enabled by default. The fix is to disable kerning in that style (Heading 1):

image

Curiously, the ugly font does look better in Word 2003 on Windows XP; I don’t have Office 2003 installed on Windows 7 so cannot test that combination.

Of course this does still illustrate that saving a .docx as .doc can spoil the formatting.