JS++ explained
|
Paradigm: | Imperative, structured, object-oriented, functional, generic |
Designer: | Roger Poon, Anton Rapetov |
Developer: | Onux |
Typing: | Gradual, static, dynamic |
Influenced By: | C, C++, C#, Java, JavaScript |
License: | BSD License |
File Ext: | .jspp, .js++, .jpp |
File Formats: | --> |
JS++ is a proprietary 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.[1] [2] [3] The modern implementation was announced at DeveloperWeek 2016[4] and released on May 31, 2016.[5] [6] [7] [8] 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" (JS++ type)var y = 2; // declares the variable y with an "external type" (JavaScript type)bool z = true; // declares the variable z with an "internal type" (JS++ type)
Features
JS++ features a type system that is sound.[9] [10]
JS++ is able to efficiently analyze out-of-bounds errors at compile time.[11] [12] [13]
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.[14] [15] [16]
Build tools
JS++ can be integrated with third-party build tools like Webpack.[17]
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 and Standard Library |
0.8.0 | | Generic programming, Dictionary, multi-line strings, .js++ file extension |
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 (immutable) variables and default to 64-bit for macOS Catalina | |
See also
Notes and References
- Web site: JavaScript++: New, Powerful Language for Better Web Development. https://web.archive.org/web/20111017221312/http://jspp.javascript.am/. dead. 17 October 2011. 17 October 2011.
- Web site: C++ et Javascript = Javascript++. https://web.archive.org/web/20111012143226/http://www.lafermeduweb.net/veille/c-et-javascript-javascript-123284133702156289.html. dead. 12 October 2011. 12 October 2011.
- Web site: Index of /downloads. https://web.archive.org/web/20111018172906/http://jspp.javascript.am/downloads/. dead. 18 October 2011. 18 October 2011.
- Web site: Javascript Conference - DeveloperWeek 2016 - February 12-18. https://web.archive.org/web/20160213204925/http://www.developerweek.com/javascript-conference/. dead. 13 February 2016. 13 February 2016.
- Web site: JS++ Goes Into Public Beta. May 31, 2016.
- Web site: Onux seeks to fix JavaScript's lack of type safety. SD Times. June 1, 2016. Alex Handy.
- Web site: New compiler tackles JavaScript's weak typing. InfoWorld. June 6, 2016. Paul Krill.
- Web site: jQuery 3.0 Released and Other JavaScript News. Softpedia. June 9, 2016. Catalin Cimpanu.
- Web site: The JS++ Type System. www.onux.com.
- Web site: Onux JS++, an answer to JavaScript 'brittle' type safety?. Computer Weekly. June 13, 2016. Adrian Bridgwater.
- Web site: JS++, the JavaScript superset, is getting rid of out-of-bounds errors. Akuaroworld. January 23, 2019. Fabio Díaz.
- Web site: JS++ programming language looks to solve out-of-bounds errors. SD Times. January 16, 2019. Christina Cardoza.
- Web site: JS++ 0.9.0: Efficient Compile Time Analysis of Out-of-Bounds Errors. January 11, 2019.
- Web site: JavaScript superset JS++ adds dead code elimination and more. Computerworld. October 19, 2016.
- Web site: JS++ 0.4.2 released with code editor integrations, modules and dead code elimination. SD Times. October 19, 2016. Christina Cardoza.
- Web site: JS++ 0.4.2 Release - Upgraded With Modular Design, Dead Code Elimination, and Multiple Code Editors. Zeomag. October 20, 2016. Geneva Clark.
- Web site: GitHub - IngwiePhoenix/jspp-webpack-poc. 7 December 2018. GitHub.