1.1 Language features

Top  Previous  Next

All languages have a particular strength or flavour of expression that can be difficult to capture in another language. When doing cross compilation on our scale it’s easy to ruin both sides of the coin if you impose to many restrictions. Smart does the exact opposite. We enrich javascript with features from object pascal. Features that by many have been regarded as extremely hard to achieve in a browser environment. If not impossible all together. So you write ordinary object pascal and from this smart generates robust and optimized javascript code with no dependencies.

 

Here are some of the language features smart brings to the browser:

Concurrent data-types
Classes
Object inheritance
Virtual and abstract methods
Interfaces
Closures
External classes
Class helpers
Record helpers
Array helpers
Var parameters
Class functions
Record functions

 

It is important to understand that none of these features are supported by javascript out of the box. Javascript doesn’t even have a concept of classes, so the above list of features is no small achievement.

As a bonus we added that extra little something:

·Code obfuscation
·Code optimization
·Code compacting
·Range checking
·Instance checking
·Condition checking
·Loop-step checking
·Verbosity
·Debug information
·Smart linking

Smart linking:. When enabled it means that only classes and procedures you have actually used is included in your compiled program. This is a great feature that will ensure that your apps are lean, compact and highly portable. And in good object pascal tradition – there are no dependencies.