JS++
JS++ is a programming language for web development that extends JavaScript with a sound type system. It includes imperative, object-oriented, functional, and generic programming features.
History
JS++ first appeared on October 8, 2011. The modern implementation was announced at DeveloperWeek 2016 and released on May 31, 2016. The language is designed by Roger Poon and Anton Rapetov.Syntax
Type annotations
Since JS++ is a superset of JavaScript, declaring types for variables is optional.int x = 1; // declares the variable x with an "internal type"
var y = 2; // declares the variable y with an "external type"
bool z = true; // declares the variable z with an "internal type"
Features
JS++ features a type system that is sound.JS++ is able to efficiently analyze out-of-bounds errors at compile time.
Development tools
Compiler
The JS++ compiler is available for Windows, Mac OS X, and Linux. The compiler generates JavaScript output.Editor integration
JS++ integrates with various code editors including Visual Studio Code, Atom, and Sublime Text.Build tools
JS++ can be integrated with third-party build tools like Webpack.Release history
Version number | Release date | Changes |
0.01 | Alpha version, initial release | |
0.011 | Alpha version | |
0.012 | Alpha version | |
0.013 | Alpha version | |
0.014.1 | Alpha version | |
0.4.1 | Beta version, array and callback types, character literals, integral suffixes, removed ECMAScript ASI | |
0.4.2 | Modules, function overloading, dead code elimination, editor integrations | |
0.4.2.1 | Bug fixes | |
0.4.2.2 | Source map debugging | |
0.4.2.4 | Support for Mac OS X, C-style casts, callback and array conversions | |
0.5.0 | Classes | |
0.5.1 | 'foreach' loops | |
0.5.2 | BSD License, Interfaces, Abstract Classes, Virtual Methods, Auto-boxing | |
0.7.0 | All ECMAScript 3 features via Array | |
0.8.0 | Generic programming, Dictionary | |
0.8.1 | auto, catch-all clauses, standard library modules for handling time, bug fixes | |
0.8.4 | New string functions, advanced generics, bug fixes, standard library expansion | |
0.8.5 | Bug fixes | |
0.8.10 | Faster compile times, stacks, queues, Unicode, Base64, generic default constraint rules | |
0.9.0 | Efficient compile time out-of-bounds error analysis | |
0.9.1 | Bug fixes | |
0.9.2 | Final variables and default to 64-bit for macOS Catalina |