Home > OP4JS > Smart Mobile Studio 1.1 RC build 400 “sneak peak”

Smart Mobile Studio 1.1 RC build 400 “sneak peak”

February 13, 2013 Leave a comment Go to comments

It’s been two years in the making, 400.000+ lines of Delphi code, and it’s now in the last stages of testing before release. I give you Smart Mobile Studio 1.1.400 RC:

1.1.400

1.1.400

So what’s new?

You will have to wait for the press release to get the full low-down, but since this is my personal blog I’m free to write whatever i want. So what really excites me about this release are the general IDE improvements. We have been so fortunate to have both Primoz and Christian playing around with the codebase – so things like multithreading and background compilation (which is how the IDE extracts information regarding your code) is now faster than ever.

Parameter insight

Parameter insight

In the previous versions one bottleneck was the code-insight feature (code proposal window that pops up while you type). It worked but it was slow and had the unfortunate tendency to pick up information from an earlier compile sequence. So it was not as accurate as we Spartans are used to. Well this has been taken care of and it’s now spot on, extremely fast and uses its own thread to do its thing.

Code insight

Code insight

The same goes for the unit structure tab, which shows a full overview of the current unit including classes, methods, fields and properties. This to was suffering from having to share a symbol dictionary with the code-insight function. Well that is now a thing of the past and both of them now have their own thread and business logic.

Christian decided to go commando and added a very handy feature: macro recording. So we now have some mysterious new buttons just over the unit structure tab (these should be known by Delphi and freepascal users alike):

Boring tasks be gone!

Boring tasks be gone!

With the new background threading in place, handy features like gabelou hints is now available, you can activate that in the preferences dialog and enjoy the hints and parameter insights that brings. And of course – compiler metrics which will give you more detailed insight into how fast the compiler really is:

Gabelous stuff

Gabelous stuff

You will also find it handy to be able to add your own form-factor sizes directly from the IDE. With so many new mobile devices being launched these days – it’s best to avoid hardcoding anything:

Form factors

Form factors

The component palette has also been expanded. We decided to add more tabs and organize the components in groups. Three new components have been added: Steema Teechart (tw3chart), Listbox (Primoz) and a css animated progressbar.

More tabs

More tabs

We also have dependency validation for components now — so whenever you add a control to your design, it will check if the required units are in your source-code, if not: it will add the units directly. So no more having to add the units yourself 🙂

Thats pretty cool!

Thats pretty cool!

And finally, the classbrowser. You can now click on the ancestor class and navigate there directly, you can also double-click on a method and the IDE will open up the unit in the back so you can look at the code. We have also added a couple of new tabs — these will be implemented as we move along, and they will give you some idea of what the final classbrowser is about. This is the place where you (once we get support for packages) can edit your docs and .. well, you get the idea. Much better than documenting in the code which is a nightmare to maintain. But for this release: ancestor navigation, unit access – as requested by many users.

Class browser

Class browser

Compiler

The Stig

The Stig

I wont blow the whistle on all the features but needless to say we have the most evolved object pascal to JavaScript compiler on the planet. In our labs we call Eric “the stig” of Delphi programming (“the stig” is the nickname for the anonymous and brilliant race car driver, as featured on the Top-Gear british television show). Needless to say we got guns: operator overloading, interface expressions, lambdas, class property expressions, pseudo sets .. the list goes on. What is more important is that the generated code is produced faster (much faster), is more efficient and gives you *ALL* the high-level advantages of traditional object pascal — running in the browser under a language that has no concept of neither class nor interface. That is no small feat ladies and gentlemen.

  • VMT based javascript (true OOP)
  • var parameters
  • Initialization / Finalization support
  • Records, nested records, array of records (et al)
  • Classes, inheritance
  • Partial classes
  • class helpers
  • record helpers
  • lambda support
  • operator overloading
  • speed improvements
  • direct JS object access via variants
  • external classes (map JS classes directly)
  • external functions
  • .. for a full low-down on the compiler, buy the smart mobile studio book here

Soon the compiler will have a new switch, to use java script’s native datatypes. One of the hidden gems of JavaScript is that it does have typed data, but most people don’t use them. So you can allocate arrays of UInt32 (unsigned integer, 32 bits) for instance. By taking advantage of typed arrays you get a phenomenal speed boost if you deal with large and complex numbers.

The RTL

Datasnap support directly from javascript, running in a browser near you soon...

Datasnap support directly from javascript, running in a browser near you soon…

Andre Mucche, the ever creative Spartan which provided Smart Mobile Studio with direct Remobjects support, is currently busy porting over datasnap. Yes, you read right: datasnap support. While it wont make it into the release candidate, we hope to have it done for the final release (but no promises, we are only human). The remobjects import wizard have also been updated with the latest remobjects headers. The phonegap units is also updated and completed, webGL is up to date – and we have added more components and expanded the RTL with too much to list here. Way to much.

For those into large numbers, Christian have ported over Halvard Vassbotn‘s unit for that very thing. We called Halvard up and asked of course, which is proper, and he gave us his blessing. Hopefully we will see Halvard joining the Smart Pascal consortium soon 😉

I also started the conversion of CODEF to smart, so you will notice some new additions to TW3Canvas. If you are wondering what CODEF can do for you, check out this demo (use chromium! or safari — mozilla cant handle the speed).

Credits go out to the team: eric, primoz, christian and andre! Cheers guys!

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: