Category Archives: professional

Delphi and C++ Builder XE Starter Editions announced

Embarcadero has announced Starter Editions for both Delphi XE and C++ Builder XE, rapid development environments for native Windows applications.

These are not toy versions. The main technical difference between the Starter editions and the Professional versions are the absence of UML modelling, Class Explorer and Resource Manager tools. You also miss out on code completion for HTML, Live Code Templates, Subversion support, translation manager, refactoring and unit testing.

Not a big deal: most of these lacks are either not critical or can be addressed in other ways. Most features are the same, and you can build excellent high-performance applications with these Starter Editions.

The real restriction is the licensing:

Delphi XE Starter can be used by individuals who will earn less than US $1,000 for the applications they create with Delphi, or organizations or companies with five or fewer developers and less than US$1,000 in total annual revenue. Purchase the Professional edition or higher for larger scale commercial use.

with a similar wording for C++ Builder XE Starter.

The other question: how much? At the time of writing the Starter Editions are not in the online store, but according to this article in SD Times they will be $199 each or £149 for upgrades. Ownership of a Starter Edition gives you $100 discount if you later upgrade to a higher edition.

Delphi is as good as ever, especially bearing in mind that Microsoft has no real equivalent. Visual Studio is mostly .NET-based, whereas Delphi compiles to native code; and Visual C++ is more challenging to learn and arguably less productive. It is true that developers are waiting impatiently for 64-bit Delphi and for a promised compiler for OS X (and perhaps iOS?); but in the meantime if you need to build Windows applications do not ignore it.

Update: the European price is €199 each, or upgrades for €149.

Mobl: a new language for mobile applications, with Eclipse integration

It has gradually dawned on me that, contrary to first appearances, the Apple iPhone and iPad do come with a capable application runtime for those who would rather not tangle with Objective C; and one on which you can run applications without the hassle of negotiating the App Store. This runtime is the WebKit-based browser and JavaScript engine. This is for web apps of course; but as noted in my look at NS App Studio last week, you can blur the boundaries between web and local by creating a local shortcut and designing your app to work offline. Here is the Apple documentation, which notes:

Offline application support is available in iOS 2.1 and later and in Safari 4.0 and later

So you can do offline. There is also a local database, based on SQLite, documented by Apple here – putting iOS ahead of Windows Phone 7, which has no built-in relational database for Silverlight applications. Another plus is that other WebKit-based mobile browsers should work as well, including the one in Android devices.

It is possible to create application frameworks that wrap these features into a single development platform that compiles to JavaScript, HTML and CSS. PhoneGap is one example, and NS App Studio another; but today Reddit alerted me to another, Mobl, which has a modern feel and benefits from Eclipse integration. It is also free and open source, and with the right community momentum looks like it could be interesting.

Mobl is a statically-typed language with a syntax similar to Javascript – there is a guide and language reference here. The goal is to create a complete DSL (Domain Specific Language) for mobile development, which according to the web site:

Integrates all aspects of a mobile web application into a single language: data modeling, user interfaces, application logic, styling and web services.

The main author is Zef Hemel, from the Delft University of Technology in the Netherlands. Mobl makes use of Stratego/XT, which is a language and toolset for program transformation, and SDF  (Modular Syntax Definition Formalism), a language for defining syntax.

Mobl includes data modelling which handles object persistence and a concise language for defining user interfaces. AJAX support is built-in and there is integrated support for RESTful web services and for JSON (JavaScript Object Notation). The Eclipse add-in includes syntax highlighting, inline error reporting, code completion, and reference resolving.

All rather impressive for a project that has just burst onto the scene. I installed the Eclipse add-on and enjoyed its simple license:

image

“This software is distributed in the hope that it will be useful.” – though I have not found time yet to try creating an application.

There is more information on the nicely-designed website and blog and in the Google Group.

Update: thanks to @FransBouma for the link to the Mobl guide.

Server and Tools shine in Microsoft results – so why is Bob Muglia leaving?

Microsoft released quarterly results yesterday:

Quarter ending December 31 2010 vs quarter ending December 31 2009, $millions

Segment Revenue Change Profit Change
Client (Windows + Live) 5054 -2139 3251 -2166
Server and Tools 4390 412 1776 312
Online 691 112 -543 -80
Business (Office) 5126 612 3965 1018
Entertainment and devices 3698 1317 679 314

Microsoft highlighted strong sales for Xbox (including Kinect) as well as for Office 2010, which it said in the press release is the “fastest-selling consumer version of Office in history.”

Why is Office 2010 selling better than Office 2007? My hunch is that this is a Windows 7 side-effect. New Windows, new Office. I do think Office 2010 is a slightly better product than Office 2007, but not dramatically so. SharePoint Workspace 2010, about which I mean to post when I have a moment, is a big disappointment, with a perplexing user interface and limited functionality.

Windows 7 revenue is smaller than that of a year ago, but then again the product was released in October 2009 so this is more a reflection of its successful launch than anything else.

What impressed me most is the strong performance of Server and Tools, at a time when consolidation through virtualisation and growing interest in cloud computing might be reducing demand. Even virtual machines require an OS licence though, so maybe HP should worry more than Microsoft about that aspect.

I still think they are good figures, and make Server and Tools VP Bob Muglia’s announced departure even more puzzling. Just what was his disagreement with CEO Steve Ballmer?

Server and Tools revenue includes Windows Azure, but it sounds like Microsoft’s cloud is not generating much revenue yet. Here is what CFO Peter Klein said:

Moving on to Server and Tools. For Q3 and the full year, we expect non-annuity revenue, approximately 30% of the total, to generally track with the hardware market. Multi-year licensing revenue which is about 50% of the total, and enterprise services, the remaining 20%, should grow high-single digits for the third quarter and low double-digits for the full fiscal year.

This suggests that 80% of the revenue is from licensing and that 20% is “enterprise services” – which as I understand it is the consulting and enterprise support division at Microsoft. So where is Azure?

Online services, which is Bing and advertising, announced another set of dismal results. Another part of Microsoft’s cloud, Exchange and SharePoint online, is lost somewhere in the Business segment. Overall it is hard to judge how well the company’s cloud computing products are performing, but I think it is safe to assume that revenue is tiny relative to the old Windows and Office stalwarts.

Windows Phone 7 gets a mention:

While we are encouraged by the early progress, we realize we still have a lot of work ahead of us, and we remain focused and committed to the long-term success of Windows Phone 7.

It looks like revenue here is tiny as well; and like most corporate assertions of commitment, this is a reflection of the doubts around Microsoft’s mobile strategy overall: how much of it is Windows Phone 7, and how much a future version of full Windows running on ARM system-on-a-chip packages?

Still, these are good figures overall and show how commentators such as myself tend to neglect the continuing demand for Windows and Office when obsessing about a future which we think will be dominated by cloud plus mobile.

No more Ruby support in NetBeans – the feature was little used, says Oracle

Oracle has announced the discontinuation of Ruby support in the NetBeans IDE. The reason? First, to free resources for JDK 7 support; but second (and more significant) – hardly anyone was using it.

There is hardly a shortage of Ruby IDEs. Ones that come to mind are the Eclipse-based Aptana, JetBrains RubyMine, the Visual Studio based Ruby in Steel, and Embarcardero’s 3rd Rail. Further, some Ruby developers prefer to work without an IDE.

I also suspect that Ruby has not quite hit the mainstream in the way it seemed that it might a few years back. Its influence has been huge, but in practice many developers still fall back to PHP, Java and C#.

How is Windows Azure doing? Few mission critical apps says Microsoft

I attended an online briefing given by Azure marketing man Prashant Ketkar. He said that Microsoft is planning to migrate its own internal systems to Azure, “causing re-architecture of apps,” and spoke of the high efficiency of the platform. There are thousands of servers being managed by very few people he said – if you visit a Microsoft datacenter, “you will be struck by the absence of people.” Some of the efficiency is thanks to what he called a “containerised model”, where a large number of servers is delivered in a unit with all the power, networking and cooling systems already in place. “Just add water, electricity and bandwidth,”, he said, making it sound a bit like an instant meal from the supermarket.

But how is Azure doing? I asked for an indication of how many apps were deployed on Azure, and statistics for data traffic and storage. “For privacy and security reasons we don’t disclose the number of apps that are running on the platform,” he said, though I find that rationale hard to understand. He did add that there are more than 10,000 subscribers and said it is “growing pretty rapidly,” which is marketing speak for “we’re not saying.”

I was intrigued though by what Ketkar said about the kinds of apps that are being deployed on Azure. “No enterprise is talking about taking a tier one mission critical application and moving it to the cloud,” he said. “What we see is a lot of marketing campaigns, we see a lot of spiky workloads moving to the cloud. As the market start to get more and more comfortable, we will see the adoption patterns change.”

I also asked whether Microsoft has any auto-scaling features along the lines of Amazon’s Elastic Beanstalk planned. Apparently it does. After acknowledging that there is no such feature currently in the platform, though third-party solutions are available, he said that “we are working on truly addressing the dynamic scaling issues – that is engineering work that is in progress currently.”

Back to BASIC with NS App Studio for mobile

I was intrigued to discover NS Basic/App Studio, which offers a simple Windows IDE targeting iPhone and Android mobile devices.

image

It is all a bit retro, especially when you discover that the company (NS Basic Corporation) has the leading Basic on the … Apple Newton.

Still, something like Visual Basic for iPhone and Android sounds interesting. Does this thing deliver?

I tried the demo. What NS App Studio actually does is to translate Basic code to JavaScript, so the end result is a web application targeting mobile browsers, rather than a mobile app. There is a bit more to it though. Apps have access to local storage including SQLite databases, since this is available to the WebKit-based browsers on iPhone and Android. You can create a shortcut to a web app and even run it offline, making it behave somewhat like a locally installed app. Further, the FAQ notes that you can wrap your web app with PhoneGap to create an app that you can distribute through the App Store or Android Market; and this or similar capability may eventually be included in the IDE.

The question though: why would you choose to use Basic rather than just learning JavaScript? I can make sense of the Google Web Toolkit, which compiles Java to JavaScript, but Google’s effort is more sophisticated. You are not expected to puzzle out the generated JavaScript, but just work in Java. By contrast, with NS App Studio you code in Basic but debug in JavaScript, with all sorts of potential for confusion.

I got the impression that the product is not yet mature. I changed the name of the form in my Hello World project, for example, but found generated code that still referred to the old name, causing a JavaScript error. I found it confusing that the property listed as “text” in the visual grid was “textContent” in code. The IDE is very simple, but also very lacking in features. Most developers would find a modern JavaScript IDE more productive.

Nevertheless it is interesting as a proof of concept, and shows the capability of these mobile browsers as a pre-installed application runtime.

Silverlight native extensions allow deep Windows 7 integration, but forget cross-platform

Microsoft has released Native Extensions for Silverlight, a set of libraries which enable access to Windows 7 features including taskbar Jump Lists; access to attached devices including webcams, cameras and phones; the sensor API for accelerometer support; and even the ability to intercept Windows messages. The ability to intercept Windows messages allows lots of interesting hacks as veteran Visual Basic developers will recall; it was one of the tricks used to overcome limitations in early versions of VB.

The native extensions are only available to out of browser applications running outside the sandbox; the user must consent to trust such applications. Silverlight 4 already had the ability to use COM automation. These new extensions simply build on this existing feature, providing COM automation wrappers for these Windows 7 APIs.

What this means though is that Silverlight developers can create applications that integrate deeply with the Windows 7 desktop and local hardware.

Another way of looking at this is that the subset of Windows applications that can be implemented in Silverlight rather than the full .NET Framework has now increased. It lends some support to the theory which I considered here, that a future version of Silverlight will be the application platform for the Windows 8 app store and for mobile devices running Windows 8. This is speculation though; Microsoft has not said much publicly on the subject. Silverlight is well suited to an app store since installation is easy, updates are near-automatic, and apps are isolated from the rest of the operating system.

The native extensions are Windows 7 only. Forget the Mac, these things do not even work on Windows XP. They only apply to trusted out of browser applications though. Silverlight running in the browser still has similar features on Windows and Mac.

Amazon’s Elastic Beanstalk auto-scales your cloud application

Amazon has announced Elastic Beanstalk, which lets you deploy an application to Amazon’s EC2 (Elastic Compute Cloud) and have it scale up or down, by launching or terminating server instances, according to demand. There is no additional cost for using Elastic Beanstalk; you are charged for the instances you use.

Here is a dialog from the control console that says a lot about how the new service works:

image

As you can see, you can specify both a minimum and a maximum instance count, where the number is between 1 and 10,000. You can also control the “Trigger”, the metric that makes Elastic Beanstalk create or terminate instances.

Currently Elastic Beanstalk is for Java applications running on the Apache Tomcat application server, on a standard Amazon Linux virtual machine. However, the following comment in the FAQ indicates that Amazon is investigating other platforms:

Yes. Elastic Beanstalk is designed so that it can be extended to support multiple development stacks and programming languages in the future.

The innovation here is not so much in the technology, which stiches together a number of existing services, but rather in how easy and cheap it is to get started. The cost of entry is almost nothing; in fact, Amazon says you can run Elastic Beanstalk on its free usage tier, for a low-use application. Even I you expect it to remain low-use Elastic Beanstalk provides some other useful features like health monitoring.

It seems to me that this new service is cloud deployment as it should be: removing the administrative burden of scaling your application according to demand. Other platforms like Google App Engine also do this, but with more restrictions on how you design your application. Platforms like Microsoft Windows Azure let you scale your application, but you have to log into the console and spin instances up or down yourself.

One final observation: despite considerable unhappiness in the Java community about the way Oracle is managing the platform, there are still excellent reasons to use it, and Amazon has just provided one more.

Appcelerator acquires Aptana

Appcelerator, a company whose main product is a cross-platform desktop and mobile toolkit called Titanium, has acquired Aptana, whose Aptana Studio 2 is probably the best IDE for JavaScript application development, and which also supports Ruby on Rails, PHP, Python, and Adobe AIR.

It makes sense, in that Titanium uses JavaScript as the primary language for the application logic and UI.

image

Appcelerator is already doing well from the current surge of interest in mobile apps, offering an obvious solution to developers endeavouring to support both Apple iOS and Google Android with a single code base. Aptana looks a good acquisition; but the news may not be so welcome to those who rely on Aptana Studio for Adobe AIR; I imagine Appcelerator may see this as a competing platform. Then again, most AIR developers use the Flash IDE or Flash Builder so it is unlikely to have a huge impact even if AIR support is dropped (I do not know what the plans are in this respect).

The server-side technologies like PHP and Ruby are a better fit, since many mobile apps have a server component.

Update: in the webcast about the acquisition, Appcelerator CEO Jeff Haynie said “There’s quite a few questions around Aptana as it relates to Adobe and ColdFusion; I don’t think we can say anything about that.”

The company is expecting to release a joint Aptana Studio/Appcelerator Titanium beta in March 2011. The initial release will not include a visual designer, though this is planned for some future release.

Adobe AIR is user-hostile compared to native apps says BankSimple CTO

Alex Payne, CTO at BankSimple, has written an analysis of Adobe AIR from the user’s perspective. The scenario: his team was looking for a an alternative to Campfire for group chat, and selected HipChat. They liked the features of HipChat, but not the desktop app, which is built using Adobe AIR:

My team experienced a number of the usual problems one has with AIR applications: lousy performance, odd interface bugs, key combinations and UI elements that didn’t conform to our operating system. AIR apps exist in an uncanny valley between a web application and a desktop application, and the result is unsettling and annoying. Pretty soon, we were itching to go back to Campfire (via the native Mac client Propane), even though HipChat has better features and the promise of improved reliability.

Payne investigated further and came to the conclusion that users prefer native apps; and that cross-platform toolkits are for the benefit of software companies not users. Echoes of Steve Jobs’ Thoughts on Flash:

Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps.

And lest you think this is bad for AIR but good for Java, note that Payne adds:

For anyone who used a computer in the 1990s, AIR probably brings back scarring memories of Java apps: slow, ugly, inconsistent, awkward.

I was also reminded of Evernote’s experience with .NET versus native code, which I blogged here.

Payne is not all wrong, neither is Jobs. That said, the distinction between what is good for users and what is good for developers is not absolute. Maintaining a single cross-platform code-base, for example, is good for both users and developers, because it reduces bugs and assists feature-compatibility across platforms. It is also good for users of minority platforms who might otherwise have nothing.

Another question: how many of the issues Payne identifies are inherent to using AIR (or another cross-platform runtime), and how many are implementation issues? It is impossible to know without drilling into the details; but I don’t believe that all AIR (or Java, or .NET) apps have “lousy performance”.

It is true that ActionScript code is slower than Java or .NET code, and much slower than compiled C/C++, but speed of script execution is not always the performance bottleneck that users will notice most.

This is seemingly one of those never-ending computing debates; but a post like Payne’s is a reminder that neither Adobe AIR, nor any cross-platform runtime, is a perfect solution to the challenge of multiple client platforms.