We are proud to present our roadmap for the upcoming year, with the goals we have set out to achieve and the technologies we are going to build. In order to see the context in which Smart Mobile Studio has been created we would like to start with the background story for the product and how we got here.
How we got here
Almost two years ago Jon Lennart Aasenden did a survey of available programming languages, tools and technologies on the rise. At that point Embarcadero had not yet signaled to the community that Delphi XE2 would support OS-X and iOS. As such the Delphi community was in a state of uncertainty as to what the future held for Delphi. It was time to step back and get a clear picture of the marked.
When doing his survey of technologies, Jon Lennart noticed that the real frontiers in this decade is not really native programming. There will always be demand for programmers that can use a real language, especially for data processing, games and multimedia or web services – but the language which is currently generating all the revenue and receiving all the attention from major companies is not Delphi, C++ or C#, it’s actually JavaScript.
When Jon Lennart presented his analysis to the Delphi community he was initially ridiculed. The very idea that someone had the nerve to compare JavaScript with Delphi was almost heresy and caused a surge of negative feedback. But he was quickly vindicated when Eric Grange, the maintainer of the DWS (Delphi Web Script) project wrote a JavaScript graphics demo which outperformed native Delphi. That was a wake-up call for many Delphi programmers.
Around the same time Microsoft announced that it’s new user interface, Metro, would not use Silverlight as people expected, but rather JavaScript. That put an end to the criticism and it was clear that many Delphi users needed to re-evaluate their strategy and outlook on software. The world has changed. And to survive object pascal must change with it.
During the summer of 2011 Jon Lennart contacted Eric Grange to help put his ideas to the test. If he was right DWS could be used as a parser for Object Pascal, and a JavaScript code generator could be constructed around the symbolic output. Eric Grange did indeed verify the ideas and began to craft a JavaScript code generator. Over the next 12 months the team worked together with other Delphi enthusiasts to produce what is now know as Smart Mobile Studio.
Not only did the code generator crafted by Eric work, it worked beyond all expectations. By implementing a VMT (virtual method table) in JavaScript itself Eric were able to port over concepts thus far unheard of in the world of javascript. Things like classes, interfaces, virtual and abstract methods, var parameters and more or less all the high level functions Delphi has to offer.
We had successfully done what people said was impossible – and we did it using “off the shelf” Delphi components.
Motivation
Now that you know where Smart Mobile Studio is coming from, let us look at the future.
The primary function of Smart Mobile Studio is to enable and empower Object Pascal developers with mastery of client side web development. By replacing JavaScript with Object Pascal we have opened up a new venue for Delphi and Free-Pascal developers, which serves to nourish the continuation of Object Pascal in the browser. Knowledge and mastery of advanced JavaScript is quickly becoming instrumental to all programmers regardless of personal preference in native languages, especially under Windows 8 but also for mobile devices. And our soul aim is to be there first, conquer the territory, and make it hospitable for the Delphi and free-pascal community who are eager to work with the latest browser technologies.
While we have clear cut technological goals for the next year, our primary motivation is more altruistic:
- to facilitate a modernization of the current Object Pascal language
- to promote Object Pascal as a creative, flexible and robust language
- to make Object Pascal visible to web developers and designers
- to transform the limitations of JavaScript into assets
Technological goals
Our focus for the next 12 months is first and foremost to make what we have already delivered as robust and polished as possible. So the updates for this year is about making our existing technological advances the best that they can be. At the same time we will work to absorb aspects of the browser we have not yet covered (databases being a very important aspect). So each update will see more and more features being added to the editor, the compiler, the IDE in general and of-course – our RTL which is growing at a fast rate. The most noteworthy things to expect this year are:
- WebService support
- RemObjects classes
- RemObjects RODL import wizard
- standard REST RPC classes
- standard SOAP RPC classes
- Local database support
- TW3Dataset + aux classes
- More standard components
- More properties and events for the existing components
- WebGL support and 3d game project type
- New and improved designer
- Registration of user-controls in the component palette
Update frequencies
The product will see four major updates per year, with a sequence of hotfixes in-between. The first hotfix is set to appear in June.
- Hotfix – June 18th, 2012
- RemObjects support
- Automatic update function
- Bugfixes and improvements
- Update 1 – August 20th, 2012
- New designer
- Globals
- Database support
- WebGL and game project type
- Commandline compiler
- Update 2 – November 19th, 2012
- User controls in component palette
- Metro driver
- File actions
- SmartNet
- Update 3 – February 18th, 2013
- Microsoft IIS plugin
- Apache server plugin
- RO server plugin
- Standalone server
- Preliminary server side project
- Web workers
By the end of this 12 month cycle everything will be in place for the next stage of evolution, which naturally is server side projects and web worker support. At that point in time, Smart Mobile Studio will represent a complete solution which covers everything related to HTML5 development, with no shortcuts having been taken – and with supreme support for all the high level language constructs of Object Pascal.
Sincerely
The Smart Mobile Studio team
When you say “•RemObjects support”, what product of theirs are you refering too?
Remobjects remoting framework. The ability to call functions exported by a delphi web service. So you can write a whole host of native functions on your server – and then call those functions from your mobile app. Regardless if you are running under android or iphone or desktop.
IMHO after implementing some TDataSet stuff, you can support RemObject’s DataAbstract – its a big deal to biz developers to have support for 3-tier data-related framework, not just remote object invocation.
Hotfix today? It is the 18th 😉
Still a few hours left 😉
Now with 1.0.1 beta is out, can you explain in some detail your plans for “new designer” – what features are planning for “new designer”? What about creating event handlers from inspector?
The current designer is what is known as a “mock” designer. Sadly it has turned out to be less that ideal, and as such we have to find something better. We have chosen to go for Greatis Software’s runtime designer instead, which mimics the standard delphi layout designer. In order to do this however, we need to adapt our current internal layout structure to use “real” visual controls rather than ownerdrawn objects. We will still support html rendering (which will be wastly improved by the change), but we want to get rid of the present system for something better.
As for adding events, that to is a part of the plan. We will need to introduce delegate objects in the RTL – that way you can add event objects with a simple click. It wont be exactly like delphi, but en-par with QT for C++ or Apple’s dashcode.
IMHO, Xcode style of defining delegate (Cmd-DragDrop) is less intuitive than Delphi-style! But it’s way better then writing declaration of delegate methods “by hand”) So, it’s ok to improve designer in this way) I have no exp with Greatis Form Designer, but it is well-known solution, so I hope it will be fine!)
We are contemplating a business application that I feel may require node.js or meteor to really provide users with a great experience. I have only just started on my path to learning javascript jquery etc and will be relying initially on new hired staff.
The question will SMS be incorporating node and those advanced frameworks? I don’t see node in the road map although from memory it did come up in a thread some time ago.
@Czar.
We will publish an updated roadmap after the upcoming release.
Since node.js is server-side, we have kept that out of our road map so far. We have tried to keep Smart Mobile Studio 100% client side.
We have, however experimented node.js “in the labs”, and this technology is definitely on the table for the reviewed roadmap.
I haven’t studied Meteor yet, but it looks interesting. AFAICS Meteor is also server side based. We have wanted to keep Smart client side so far. Ie. that you can put your mobile device in air plane mode and still run Smart applications – nearly as native applications. But Meteor also experiments with some cool dev.features and distribution concepts. Some of these already live in our labs (http://www.beatzone.cz/component/video/nyOWYbxflio)…