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.

JS++
ParadigmImperative, structured, object-oriented, functional, generic
Designed byRoger Poon, Anton Rapetov
DeveloperOnux
First appeared8 October 2011 (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

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
gollark: Or maybe it's just "you can have either", who knows.
gollark: I think you can have one HDMI display and one whatevernonsensetheotherportsare display.
gollark: I run Arch Linux on my pi, not that it gets much use.
gollark: Anything can be mounted with enough duct-tape. Badly.
gollark: <@140350547910852608> DuckDNS is nice.

See also

References

  1. "JavaScript++: New, Powerful Language for Better Web Development". 17 October 2011. Archived from the original on 17 October 2011.
  2. "C++ et Javascript = Javascript++". 12 October 2011. Archived from the original on 12 October 2011.
  3. "Index of /downloads". 18 October 2011. Archived from the original on 18 October 2011.
  4. "Javascript Conference - DeveloperWeek 2016 - February 12-18". 13 February 2016. Archived from the original on 13 February 2016.
  5. "JS++ Goes Into Public Beta". May 31, 2016.
  6. Alex Handy (June 1, 2016). "Onux seeks to fix JavaScript's lack of type safety". SD Times.
  7. Paul Krill (June 6, 2016). "New compiler tackles JavaScript's weak typing". InfoWorld.
  8. Catalin Cimpanu (June 9, 2016). "jQuery 3.0 Released and Other JavaScript News". Softpedia.
  9. "The JS++ Type System". www.onux.com.
  10. Adrian Bridgwater (June 13, 2016). "Onux JS++, an answer to JavaScript 'brittle' type safety?". Computer Weekly.
  11. Fabio Díaz (January 23, 2019). "JS++, the JavaScript superset, is getting rid of out-of-bounds errors". Akuaroworld.
  12. Christina Cardoza (January 16, 2019). "JS++ programming language looks to solve out-of-bounds errors". SD Times.
  13. "JS++ 0.9.0: Efficient Compile Time Analysis of Out-of-Bounds Errors". January 11, 2019.
  14. "JavaScript superset JS++ adds dead code elimination and more". Computerworld. October 19, 2016.
  15. Christina Cardoza (October 19, 2016). "JS++ 0.4.2 released with code editor integrations, modules and dead code elimination". SD Times.
  16. Geneva Clark (October 20, 2016). "JS++ 0.4.2 Release - Upgraded With Modular Design, Dead Code Elimination, and Multiple Code Editors". Zeomag.
  17. "GitHub - IngwiePhoenix/jspp-webpack-poc". 7 December 2018 via GitHub.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.