Ramblings from a developer

I’d just like to put together my thoughts on how well I think that Elevate WebBuilder (EWB) fits the requirements of many developers today, particularly Delphi developers. In the last year, I’ve done a lot of thinking about the tools I use, and what I need from them. What I think of course doesn’t apply to everyone, but it might help someone in their thinking.

The key for me was that mobile is here. A friend who moved from Delphi to .Net a long time ago had been telling me that the desktop is dead for most purposes, and given that I develop both my own products and for others, and I was doing desktop stuff, I knew it to be “wrong”, but it is also right of course – it is fading. You cannot develop for desktop alone. Apple’s iOS was for a long time the main target, with Android a second stage. Delphi recognised this too, and started targeting iOS. But while they floundered getting something sensible together, the world changed, and our customers are not just using iOS, and not only Android as a primary target too, but Windows phone and the web and anything you can think of. I was not happy with the way XE4 turned out, with language changes too. I like the single UI platform to target, and that wasn’t available in the “pascal” language options, nor C# offerings. EWB came along at the right time for me, and I have been amazed at the close control it gives. I can easily respond to the screen size of the device that is running it (particularly with the new option coming in 1.02 (and now released) that I’ve been hacking in recently myself). I’ve been listening to the Tablet Show podcast recently, and I am a fan of the “application theme” rather than “device style”, given that our application is going to be used across multiple devices. EWB does this nicely – making my own theme to style our application has been easy.

The Tablet Show and other things has had me thinking that JavaScript is indeed the modern assembler language. It is very much cross platform, and capable of doing a lot with HTML5/CSS. I even woke up one morning and thought “one day there will be an operating system that just does javascript”. And then I realised that was Chrome OS! But Microsoft seem to be making JavaScript a first class language on their devices, and I heard that you can take 99% of any JavaScript application and run it as-is on Windows 8. Sure, you probably want to adjust styling, but that’s a good option. All platforms, one language? What could be wrong? Well, JavaScript itself is a horrible language. What you need is a higher level language to write in, and have that compiled to JavaScript. There are already options out there, with things like TypeScript, but nothing is “the winner”.

But if you are a Delphi programmer, then the winner is obvious, at least to me. Elevate WebBuilder allows me to use all my Delphi skills and knowledge, and write these cross platform applications. Okay, it isn’t perfect: the editor is basic, but it is functional; using SSL is very slightly awkward, but these are minor things in comparison with the speed at which I can code advanced stuff without having to think about learning the language. I can use high level class based code that I am familiar with, and it works as I expect. On the odd occasion that the browser fails to understand what I’m asking (usually because I call a function on an uninitialised variable for example) I can use the Chrome debugging facilities to see where it is failing, and that is easy to see what part of my source code it is failing in. Heck, I have exceptions to use and catch if I want to get fancy.

So far I have just experimented with encapsulating the application I’ve written in Adobe AIR, and it worked fine. Soon I will be doing this for real, and will report further. But for now, it all looks good. My application can be used on the web, and is served by a web service written using the RemObjects SDK using Delphi.