A high level view of Milescript's main features:

  • Object-Oriented Design - Milescript is designed to be familiar to developers who have worked with object-oriented languages and patterns before. Along these lines, it provides:
  • Externals - Externals are Milescript's solution for interfacing with native functionality. An external class is much like an interface in that it defines functions and attributes with no code. However, unlike an interface, they can not be extended/implemented by any non-external classes. Once defined, externals can be treated as any other Milescript class. For a more in-depth explanation and some examples, see the Externals wiki page.
  • Compile Time Constants - Milescript provides compile time constants files that look very similar to a Java properties file, and can be used to store application wide values in a central place. See the Compile Time Constants page for more.
  • Automatic Identifier Condensation - Milescript can automatically re-assign smaller names to your identifiers (types, member functions and variables, and local variables) so that the generated JavaScript is considerably smaller than it would be with the original identifier names. This Identifier Condensation does not modify your source code, does not affect the operation of your code in any way, and is as simple as flipping a switch.
  • Compiled Object Layer - Milescript projects and code get compiled to an object layer, allowing for quicker compilation between compile passes. Also, this allows for Milescript projects to be shared and built against without having to distribute the raw source code. Finally, it enables dynamic linking and loading.
  • Eclipse Integration - Develop Milescript applications using the Eclipse development envionment. Milescript is fully integrated into the Eclipse IDE including automated build, error reporting, and full syntax highlighting.
  • Unit Testing - Using Crosscheck and Rhino, Milescript provides a fully integrated unit testing environment. Tests run within Eclipse using JUnit, providing instant feedback of all tests that failed. Utilizing the Crosscheck browser models, browser-specific code can be validated before deployment.
  • Third Party Integration - Milescript applications can easily import and use existing Javascript libraries. Simply declare external classes and use the at reference to link virtually any Javascript api. Available currently is full integration with Ext and Google Base. Other toolkits such as Dojo, Google Feeds, and Google Gears are on the way.
  • Automated Documentation - Javadoc style comments are parsed and interpreted by the compiler to generate HTML documentation. Output is also available in XML for use with proprietary XSL stylesheets or customize the CSS styles to fit with existing project documentation.
  • Export Classes - Write Milescript libraries that are accessible from legacy Javascript applications using the export keyword. Include the generated .js file and reference all exported classes using Javascript, completely transparent to the developer.