"In JavaScript++, you do not need to add type annotations or provide the compiler with type “hints” for each JavaScript library. You can just plug in your existing JavaScript libraries and still get the benefits of the JS++ type system." - Roger Poon, JavaScript++ Creator.

Is the JavaScript alternative finally here? Since its 1995 inception, JavaScript has seen countless lines of code and changes. Singling out major problem issues and working on them requires persistent and careful research. Sturdy and reliable, JavaScript can often cause a 'house of cards' situation. Why, just a single 'type error' can bring down a JavaScript-coded application or server. Over the years, many technology companies have tried to make up for this deficiency.

Finally, Onux, a Silicon Valley-based programming and compiler company claims to have solved the problem. As Onux founder Roger Poon puts it, work (especially on the JavaScript type issue) began in 2011. According to Poon, all possible research was carried out to tackle 'this' complex problem. Their answer is a new programming language, JavaScript++.

At the time of writing, Onux has a patent pending on JavaScript++, which also means don't pin hopes on an open source version yet. Yet Onux believes that developers will flock to JS++ as it solves a major JavaScript issue.

Poon does say that the patent is to protect the language from other companies (Google, Microsoft, Facebook) who are solving the same problem. Developers using JS++ will pay no royalties. Using additional libraries and support services will be payable, though the standard library will be usable for free. JS++ is ECMAScript 3 compliant, according to Poon, developers largely use either ES3 or ES5.

The JS++ Type Solution

We had discussed the perils of executing code to analyze JavaScript in an earlier blog on JavaScript (See Article: TypeScript vs JavaScript: A Comparison). Despite its towering web browser reputation, JavaScript executes in different ways over platforms and web browsers. Simply put, JS++ check types during compiling, rather than run time. JS++ solves the issue by using a well-grounded type system.

A Single Type

All JavaScript types have been combined into a single type in JS++. This 'unified external type' solution is expected to counter several JavaScript issues, such as inconsistency in web browser implementations. Just correcting and adding types is a challenge in JavaScript, especially during compilation.

Data Cleaning in JS++

As Poon puts it, JS++ 'effectively isolates JavaScript.' Once isolated, JS++ will go into auto mode - conversions and safeguarding between JavaScript types and JS++.This is a kind of data cleaning, that the types stay correct, always. Type safety is ensured without affecting the application's performance-potential.

Built-in Conversions

Majority of all programming languages use the same data types and conversions are straight-forward. JS++ is a big help with conversion of irregular structures and formats. The language allows developers to define custom conversion rules. Conversions are built-in for the primitive data types (strings, number types, etc) in JS++. In constructed types, the user can specify how data is to be converted, safeguarded to JavaScript (or the other way around).

Type Guarantee

At present, JavaScript code and libraries can be completely used by developers. In enterprise web applications, where JavaScript code can go beyond 1 million lines, JS++ allows developers to gradually add types to code (thus 'incrementally' gather type safety).

JS++ creators also claim to provide type guarantees. The technology is said to ensure no developer has to lose time over their types during run time. With type guarantees, developers can make gradual changes to large code chunks. This alternate code typing method provides much-needed breathing space to developers.

Summary

JS++ is available for download in its open beta version. Expect a more advanced version later this year. The Onux website proclaims it as a web programming language for experienced programmers. Try out the JS++ tutorials here.

Though JS++ solves a major issue by handling type checking, it doesn't necessarily mean that efficient type checking means less bugs. Does that mean that the JavaScript test-driven approach is better? Widespread use of JS++ in the months to come will give us more answers. For the latest articles on JS++ and other programming languages, check our blogs out.