JS++

From HandWiki
Short description: Web programming language
JS++
ParadigmImperative, structured, object-oriented, functional, generic
Designed byRoger Poon, Anton Rapetov
DeveloperOnux
First appeared8 October 2011; 12 years ago (2011-10-08)
Typing disciplineGradual, static, dynamic
LicenseBSD License
Filename extensions.jspp, .js++, .jpp
Websitewww.onux.com/jspp/
Influenced by
C, C++, C#, Java, JavaScript

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 8 October 2011 (2011-10-08) Alpha version, initial release
0.011 10 October 2011 (2011-10-10) Alpha version
0.012 25 October 2011 (2011-10-25) Alpha version
0.013 29 January 2012 (2012-01-29) Alpha version
0.014.1 15 August 2012 (2012-08-15) Alpha version
0.4.1 31 May 2016 (2016-05-31) Beta version, array and callback types, character literals, integral suffixes, removed ECMAScript ASI
0.4.2 18 October 2016 (2016-10-18) Modules, function overloading, dead code elimination, editor integrations
0.4.2.1 24 October 2016 (2016-10-24) Bug fixes
0.4.2.2 17 November 2016 (2016-11-17) Source map debugging
0.4.2.4 25 December 2016 (2016-12-25) Support for Mac OS X, C-style casts, callback and array conversions
0.5.0 13 March 2017 (2017-03-13) Classes
0.5.1 26 March 2017 (2017-03-26) 'foreach' loops
0.5.2 27 July 2017 (2017-07-27) BSD License, Interfaces, Abstract Classes, Virtual Methods, Auto-boxing
0.7.0 27 October 2017 (2017-10-27) All ECMAScript 3 features via Array<T> and Standard Library
0.8.0 15 March 2018 (2018-03-15) Generic programming, Dictionary<T>, multi-line strings, .js++ file extension
0.8.1 27 March 2018 (2018-03-27) auto, catch-all clauses, standard library modules for handling time, bug fixes
0.8.4 23 May 2018 (2018-05-23) New string functions, advanced generics, bug fixes, standard library expansion
0.8.5 2 June 2018 (2018-06-02) Bug fixes
0.8.10 24 November 2018 (2018-11-24) Faster compile times, stacks, queues, Unicode, Base64, generic default constraint rules
0.9.0 11 January 2019 (2019-01-11) Efficient compile time out-of-bounds error analysis
0.9.1 1 July 2019 (2019-07-01) Bug fixes
0.9.2 18 October 2019 (2019-10-18) Final (immutable) variables and default to 64-bit for macOS Catalina

See also

References

  1. "JavaScript++: New, Powerful Language for Better Web Development". 17 October 2011. http://jspp.javascript.am/. 
  2. "C++ et Javascript = Javascript++". 12 October 2011. http://www.lafermeduweb.net/veille/c-et-javascript-javascript-123284133702156289.html. 
  3. "Index of /downloads". 18 October 2011. http://jspp.javascript.am/downloads/. 
  4. "Javascript Conference - DeveloperWeek 2016 - February 12-18". 13 February 2016. http://www.developerweek.com/javascript-conference/. 
  5. "JS++ Goes Into Public Beta". May 31, 2016. https://www.onux.com/jspp/blog/jspp-goes-into-public-beta/. 
  6. Alex Handy (June 1, 2016). "Onux seeks to fix JavaScript's lack of type safety". SD Times. http://sdtimes.com/onux-seeks-fix-javascripts-lack-type-safety/. 
  7. Paul Krill (June 6, 2016). "New compiler tackles JavaScript's weak typing". InfoWorld. https://www.infoworld.com/article/3079092/javascript/new-compiler-tackles-javascripts-weak-typing.html. 
  8. Catalin Cimpanu (June 9, 2016). "jQuery 3.0 Released and Other JavaScript News". Softpedia. https://news.softpedia.com/news/jquery-3-0-released-and-other-javascript-news-505064.shtml. 
  9. "The JS++ Type System". https://www.onux.com/jspp/tutorials/type-system. 
  10. Adrian Bridgwater (June 13, 2016). "Onux JS++, an answer to JavaScript 'brittle' type safety?". Computer Weekly. http://www.computerweekly.com/blog/Open-Source-Insider/Onux-JS-an-answer-to-JavaScript-brittle-type-safety. 
  11. Fabio Díaz (January 23, 2019). "JS++, the JavaScript superset, is getting rid of out-of-bounds errors". Akuaroworld. https://www.akuaroworld.com/js-the-javascript-superset-is-getting-rid-of-out-of-bounds-errors/. 
  12. Christina Cardoza (January 16, 2019). "JS++ programming language looks to solve out-of-bounds errors". SD Times. https://sdtimes.com/softwaredev/js-programming-language-looks-to-solve-out-of-bounds-errors/. 
  13. "JS++ 0.9.0: Efficient Compile Time Analysis of Out-of-Bounds Errors". January 11, 2019. https://www.onux.com/jspp/blog/jspp-0-9-0-efficient-compile-time-analysis-of-out-of-bounds-errors/. 
  14. "JavaScript superset JS++ adds dead code elimination and more". Computerworld. October 19, 2016. http://www.computerworld.com/article/3132920/application-development/javascript-superset-js-adds-dead-code-elimination-and-more.html. 
  15. Christina Cardoza (October 19, 2016). "JS++ 0.4.2 released with code editor integrations, modules and dead code elimination". SD Times. http://sdtimes.com/js-0-4-2-released-code-editor-integrations-modules-dead-code-elimination/. 
  16. Geneva Clark (October 20, 2016). "JS++ 0.4.2 Release - Upgraded With Modular Design, Dead Code Elimination, and Multiple Code Editors". Zeomag. https://www.zeolearn.com/magazine/jspp-0.4.2-release-with-upgrades. 
  17. "GitHub - IngwiePhoenix/jspp-webpack-poc". 7 December 2018. https://github.com/IngwiePhoenix/jspp-webpack-poc.