Knowledge

JS++

Source 📝

231:
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.
1078: 868: 1418: 1801: 1811: 1530: 1012: 956: 1791: 1806: 1064: 1031: 904: 1719: 1097: 1046: 975: 1709: 1162: 1467: 872: 1293: 886: 1477: 1781: 166: 1796: 1318: 1724: 1535: 1263: 212: 170: 38: 850: 1512: 1308: 1303: 1268: 339: 511:
Beta version, array and callback types, character literals, integral suffixes, removed ECMAScript ASI
1235: 1117:"JS++ 0.4.2 Release - Upgraded With Modular Design, Dead Code Elimination, and Multiple Code Editors" 1116: 351: 1786: 1489: 1155: 158: 937: 1397: 1278: 1179: 1660: 1624: 1569: 1455: 1450: 216: 208: 42: 34: 30: 1574: 1248: 922: 1387: 189: 186: 25: 8: 1668: 1382: 1148: 220: 46: 1554: 1522: 1484: 1440: 1339: 1283: 367: 363: 123: 63: 1098:"JS++ 0.4.2 released with code editor integrations, modules and dead code elimination" 908: 1745: 1504: 1494: 1344: 1130: 1362: 676:
Generic programming, Dictionary<T>, multi-line strings, .js++ file extension
244:
Since JS++ is a superset of JavaScript, declaring types for variables is optional.
111: 993: 1683: 1645: 1611: 1016: 322: 193: 53: 1673: 1559: 1377: 811: 712:
New string functions, advanced generics, bug fixes, standard library expansion
694:
auto, catch-all clauses, standard library modules for handling time, bug fixes
104: 96: 282:// declares the variable y with an "external type" (JavaScript type) 1775: 1472: 1253: 1082: 100: 1755: 1703: 1428: 1258: 371: 529:
Modules, function overloading, dead code elimination, editor integrations
1596: 637: 311: 204: 116: 91: 300:// declares the variable z with an "internal type" (JS++ type) 264:// declares the variable x with an "internal type" (JS++ type) 1760: 1546: 1445: 1433: 1372: 1323: 1313: 1273: 1220: 1171: 1032:"JS++, the JavaScript superset, is getting rid of out-of-bounds errors" 890: 830: 825: 197: 174: 1750: 1065:"JS++ 0.9.0: Efficient Compile Time Analysis of Out-of-Bounds Errors" 979: 960: 315: 201: 583:
Support for Mac OS X, C-style casts, callback and array conversions
1678: 1601: 1462: 1354: 1243: 1101: 1050: 941: 343: 658:
All ECMAScript 3 features via Array<T> and Standard Library
1693: 1650: 1640: 1367: 851:"JavaScript++: New, Powerful Language for Better Web Development" 749: 383: 1564: 1298: 1207: 1197: 1192: 1187: 1047:"JS++ programming language looks to solve out-of-bounds errors" 753: 1079:"JavaScript superset JS++ adds dead code elimination and more" 1729: 1584: 1405: 1225: 1140: 905:"Javascript Conference - DeveloperWeek 2016 - February 12-18" 854: 640:, Interfaces, Abstract Classes, Virtual Methods, Auto-boxing 347: 162: 137: 1688: 1591: 1579: 1288: 1013:"Onux JS++, an answer to JavaScript 'brittle' type safety?" 1619: 382:
JS++ can be integrated with third-party build tools like
810:
Final (immutable) variables and default to 64-bit for
938:"Onux seeks to fix JavaScript's lack of type safety" 774:
Efficient compile time out-of-bounds error analysis
362:
JS++ integrates with various code editors including
1095: 1044: 1010: 1773: 976:"jQuery 3.0 Released and Other JavaScript News" 973: 957:"New compiler tackles JavaScript's weak typing" 1156: 1114: 1163: 1149: 1029: 954: 935: 1131:"GitHub - IngwiePhoenix/jspp-webpack-poc" 1802:Statically typed programming languages 1774: 1096:Christina Cardoza (October 19, 2016). 1045:Christina Cardoza (January 16, 2019). 748:Faster compile times, stacks, queues, 1812:Programming languages created in 2011 1144: 1133:. 7 December 2018 – via GitHub. 357: 328: 321:JS++ is able to efficiently analyze 1531:Comparison of JavaScript frameworks 1011:Adrian Bridgwater (June 13, 2016). 756:, generic default constraint rules 338:The JS++ compiler is available for 239: 13: 907:. 13 February 2016. Archived from 869:"C++ et Javascript = Javascript++" 389: 14: 1823: 1792:Class-based programming languages 1115:Geneva Clark (October 20, 2016). 889:. 18 October 2011. Archived from 871:. 12 October 2011. Archived from 853:. 17 October 2011. Archived from 1807:High-level programming languages 974:Catalin Cimpanu (June 9, 2016). 1123: 1108: 1089: 1071: 1057: 1038: 1030:Fabio Díaz (January 23, 2019). 1023: 1004: 421:Alpha version, initial release 1170: 986: 967: 948: 929: 915: 897: 879: 861: 843: 377: 1: 836: 1536:List of JavaScript libraries 923:"JS++ Goes Into Public Beta" 7: 1490:Visual Studio Team Services 955:Paul Krill (June 6, 2016). 936:Alex Handy (June 1, 2016). 819: 333: 305: 10: 1828: 1513:List of ECMAScript engines 738:24 November 2018 573:25 December 2016 555:17 November 2016 226: 1738: 1702: 1659: 1633: 1610: 1544: 1521: 1503: 1414: 1396: 1353: 1332: 1234: 1206: 1178: 800:18 October 2019 764:11 January 2019 648:27 October 2017 537:24 October 2016 519:18 October 2016 465:29 January 2012 447:25 October 2011 429:10 October 2011 350:. The compiler generates 234: 157: 152: 132: 122: 110: 90: 72: 62: 58:Roger Poon, Anton Rapetov 52: 24: 483:15 August 2012 411:8 October 2011 246: 16:Web programming language 1378:Microsoft Edge DevTools 1279:Google Closure Compiler 684:27 March 2018 666:15 March 2018 609:26 March 2017 591:13 March 2017 1570:Cascading Style Sheets 994:"The JS++ Type System" 627:27 July 2017 223:programming features. 78:; 12 years ago 1782:Programming languages 1575:Document Object Model 1478:Visual Studio Express 887:"Index of /downloads" 782:1 July 2019 720:2 June 2018 702:23 May 2018 565:Source map debugging 501:31 May 2016 1797:Functional languages 1388:Safari Web Inspector 911:on 13 February 2016. 323:out-of-bounds errors 190:programming language 1669:Active Server Pages 1085:. October 19, 2016. 1067:. January 11, 2019. 893:on 18 October 2011. 875:on 12 October 2011. 857:on 17 October 2011. 124:Filename extensions 76:8 October 2011 73:First appeared 21: 1485:Visual Studio Code 1340:JavaScript library 1284:Google Web Toolkit 364:Visual Studio Code 358:Editor integration 128:.jspp, .js++, .jpp 19: 1769: 1768: 1746:Douglas Crockford 1368:Firefox Inspector 1345:JavaScript syntax 817: 816: 352:JavaScript output 329:Development tools 325:at compile time. 180: 179: 92:Typing discipline 1819: 1713: 1612:Package managers 1422: 1165: 1158: 1151: 1142: 1141: 1135: 1134: 1127: 1121: 1120: 1112: 1106: 1105: 1093: 1087: 1086: 1075: 1069: 1068: 1061: 1055: 1054: 1042: 1036: 1035: 1027: 1021: 1020: 1008: 1002: 1001: 990: 984: 983: 971: 965: 964: 952: 946: 945: 933: 927: 926: 919: 913: 912: 901: 895: 894: 883: 877: 876: 865: 859: 858: 847: 807: 805: 789: 787: 771: 769: 745: 743: 727: 725: 709: 707: 691: 689: 673: 671: 655: 653: 634: 632: 619:'foreach' loops 616: 614: 598: 596: 580: 578: 562: 560: 544: 542: 526: 524: 508: 506: 490: 488: 472: 470: 454: 452: 436: 434: 418: 416: 394: 393: 310:JS++ features a 301: 298: 295: 292: 289: 286: 283: 280: 277: 274: 271: 268: 265: 262: 259: 256: 253: 250: 240:Type annotations 148: 145: 143: 141: 139: 86: 84: 79: 54:Designed by 22: 18: 1827: 1826: 1822: 1821: 1820: 1818: 1817: 1816: 1787:Web programming 1772: 1771: 1770: 1765: 1734: 1707: 1698: 1655: 1634:Module bundlers 1629: 1606: 1540: 1517: 1499: 1416: 1410: 1392: 1363:Chrome DevTools 1349: 1328: 1230: 1202: 1174: 1169: 1139: 1138: 1129: 1128: 1124: 1113: 1109: 1094: 1090: 1077: 1076: 1072: 1063: 1062: 1058: 1043: 1039: 1028: 1024: 1017:Computer Weekly 1009: 1005: 992: 991: 987: 972: 968: 953: 949: 934: 930: 925:. May 31, 2016. 921: 920: 916: 903: 902: 898: 885: 884: 880: 867: 866: 862: 849: 848: 844: 839: 822: 803: 801: 785: 783: 767: 765: 741: 739: 723: 721: 705: 703: 687: 685: 669: 667: 651: 649: 630: 628: 612: 610: 594: 592: 576: 574: 558: 556: 540: 538: 522: 520: 504: 502: 486: 484: 468: 466: 450: 448: 432: 430: 414: 412: 397:Version number 392: 390:Release history 380: 360: 336: 331: 308: 303: 302: 299: 296: 293: 290: 287: 284: 281: 278: 275: 272: 269: 266: 263: 260: 257: 254: 251: 248: 242: 237: 229: 213:object-oriented 194:web development 136: 82: 80: 77: 39:object-oriented 17: 12: 11: 5: 1825: 1815: 1814: 1809: 1804: 1799: 1794: 1789: 1784: 1767: 1766: 1764: 1763: 1758: 1753: 1748: 1742: 1740: 1736: 1735: 1733: 1732: 1727: 1722: 1716: 1714: 1700: 1699: 1697: 1696: 1691: 1686: 1681: 1676: 1671: 1665: 1663: 1657: 1656: 1654: 1653: 1648: 1643: 1637: 1635: 1631: 1630: 1628: 1627: 1622: 1616: 1614: 1608: 1607: 1605: 1604: 1599: 1594: 1589: 1588: 1587: 1577: 1572: 1567: 1562: 1560:AssemblyScript 1557: 1551: 1549: 1542: 1541: 1539: 1538: 1533: 1527: 1525: 1519: 1518: 1516: 1515: 1509: 1507: 1501: 1500: 1498: 1497: 1492: 1487: 1482: 1481: 1480: 1470: 1465: 1460: 1459: 1458: 1453: 1443: 1438: 1437: 1436: 1425: 1423: 1412: 1411: 1409: 1408: 1402: 1400: 1398:Doc generators 1394: 1393: 1391: 1390: 1385: 1383:Opera DevTools 1380: 1375: 1370: 1365: 1359: 1357: 1351: 1350: 1348: 1347: 1342: 1336: 1334: 1330: 1329: 1327: 1326: 1321: 1316: 1311: 1306: 1301: 1296: 1291: 1286: 1281: 1276: 1271: 1266: 1261: 1256: 1251: 1246: 1240: 1238: 1232: 1231: 1229: 1228: 1223: 1218: 1212: 1210: 1204: 1203: 1201: 1200: 1195: 1190: 1184: 1182: 1176: 1175: 1168: 1167: 1160: 1153: 1145: 1137: 1136: 1122: 1107: 1088: 1070: 1056: 1037: 1034:. Akuaroworld. 1022: 1003: 985: 966: 947: 928: 914: 896: 878: 860: 841: 840: 838: 835: 834: 833: 828: 821: 818: 815: 814: 812:macOS Catalina 808: 798: 794: 793: 790: 780: 776: 775: 772: 762: 758: 757: 746: 736: 732: 731: 728: 718: 714: 713: 710: 700: 696: 695: 692: 682: 678: 677: 674: 664: 660: 659: 656: 646: 642: 641: 635: 625: 621: 620: 617: 607: 603: 602: 599: 589: 585: 584: 581: 571: 567: 566: 563: 553: 549: 548: 545: 535: 531: 530: 527: 517: 513: 512: 509: 499: 495: 494: 493:Alpha version 491: 481: 477: 476: 475:Alpha version 473: 463: 459: 458: 457:Alpha version 455: 445: 441: 440: 439:Alpha version 437: 427: 423: 422: 419: 409: 405: 404: 401: 398: 391: 388: 379: 376: 359: 356: 335: 332: 330: 327: 307: 304: 247: 241: 238: 236: 233: 228: 225: 207:. It includes 178: 177: 155: 154: 150: 149: 134: 130: 129: 126: 120: 119: 114: 108: 107: 94: 88: 87: 74: 70: 69: 66: 60: 59: 56: 50: 49: 28: 15: 9: 6: 4: 3: 2: 1824: 1813: 1810: 1808: 1805: 1803: 1800: 1798: 1795: 1793: 1790: 1788: 1785: 1783: 1780: 1779: 1777: 1762: 1759: 1757: 1754: 1752: 1749: 1747: 1744: 1743: 1741: 1737: 1731: 1728: 1726: 1723: 1721: 1718: 1717: 1715: 1711: 1705: 1701: 1695: 1692: 1690: 1687: 1685: 1682: 1680: 1677: 1675: 1672: 1670: 1667: 1666: 1664: 1662: 1658: 1652: 1649: 1647: 1644: 1642: 1639: 1638: 1636: 1632: 1626: 1623: 1621: 1618: 1617: 1615: 1613: 1609: 1603: 1600: 1598: 1595: 1593: 1590: 1586: 1583: 1582: 1581: 1578: 1576: 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1556: 1553: 1552: 1550: 1548: 1543: 1537: 1534: 1532: 1529: 1528: 1526: 1524: 1520: 1514: 1511: 1510: 1508: 1506: 1502: 1496: 1493: 1491: 1488: 1486: 1483: 1479: 1476: 1475: 1474: 1473:Visual Studio 1471: 1469: 1466: 1464: 1461: 1457: 1454: 1452: 1449: 1448: 1447: 1444: 1442: 1439: 1435: 1432: 1431: 1430: 1427: 1426: 1424: 1420: 1413: 1407: 1404: 1403: 1401: 1399: 1395: 1389: 1386: 1384: 1381: 1379: 1376: 1374: 1371: 1369: 1366: 1364: 1361: 1360: 1358: 1356: 1352: 1346: 1343: 1341: 1338: 1337: 1335: 1331: 1325: 1322: 1320: 1317: 1315: 1312: 1310: 1307: 1305: 1302: 1300: 1297: 1295: 1292: 1290: 1287: 1285: 1282: 1280: 1277: 1275: 1272: 1270: 1267: 1265: 1262: 1260: 1257: 1255: 1254:ClojureScript 1252: 1250: 1247: 1245: 1242: 1241: 1239: 1237: 1233: 1227: 1224: 1222: 1219: 1217: 1214: 1213: 1211: 1209: 1205: 1199: 1196: 1194: 1191: 1189: 1186: 1185: 1183: 1181: 1180:Code analysis 1177: 1173: 1166: 1161: 1159: 1154: 1152: 1147: 1146: 1143: 1132: 1126: 1118: 1111: 1103: 1099: 1092: 1084: 1083:Computerworld 1080: 1074: 1066: 1060: 1052: 1048: 1041: 1033: 1026: 1018: 1014: 1007: 999: 995: 989: 981: 977: 970: 962: 958: 951: 943: 939: 932: 924: 918: 910: 906: 900: 892: 888: 882: 874: 870: 864: 856: 852: 846: 842: 832: 829: 827: 824: 823: 813: 809: 799: 796: 795: 791: 781: 778: 777: 773: 763: 760: 759: 755: 751: 747: 737: 734: 733: 729: 719: 716: 715: 711: 701: 698: 697: 693: 683: 680: 679: 675: 665: 662: 661: 657: 647: 644: 643: 639: 636: 626: 623: 622: 618: 608: 605: 604: 600: 590: 587: 586: 582: 572: 569: 568: 564: 554: 551: 550: 546: 536: 533: 532: 528: 518: 515: 514: 510: 500: 497: 496: 492: 482: 479: 478: 474: 464: 461: 460: 456: 446: 443: 442: 438: 428: 425: 424: 420: 410: 407: 406: 402: 400:Release date 399: 396: 395: 387: 385: 375: 373: 369: 365: 355: 353: 349: 345: 341: 326: 324: 319: 317: 313: 245: 232: 224: 222: 218: 214: 210: 206: 203: 199: 196:that extends 195: 191: 188: 184: 176: 172: 168: 164: 160: 156: 153:Influenced by 151: 147: 135: 131: 127: 125: 121: 118: 115: 113: 109: 106: 102: 98: 95: 93: 89: 75: 71: 67: 65: 61: 57: 55: 51: 48: 44: 40: 36: 32: 29: 27: 23: 1756:Brendan Eich 1704:Unit testing 1547:technologies 1259:CoffeeScript 1215: 1125: 1110: 1091: 1073: 1059: 1040: 1025: 1006: 998:www.onux.com 997: 988: 969: 950: 931: 917: 909:the original 899: 891:the original 881: 873:the original 863: 855:the original 845: 381: 372:Sublime Text 361: 337: 320: 309: 243: 230: 182: 181: 1706:frameworks 1661:Server-side 1597:WebAssembly 1456:Light Table 1236:Transpilers 638:BSD License 378:Build tools 312:type system 205:type system 187:proprietary 117:BSD License 1776:Categories 1761:John Resig 1523:Frameworks 1446:CodeMirror 1434:Cloud9 IDE 1419:comparison 1373:Komodo IDE 1324:WebSharper 1314:PureScript 1294:LiveScript 1274:Emscripten 1221:TypeScript 1172:JavaScript 837:References 831:PureScript 826:TypeScript 804:2019-10-18 792:Bug fixes 786:2019-07-01 768:2019-01-11 742:2018-11-24 730:Bug fixes 724:2018-06-02 706:2018-05-23 688:2018-03-27 670:2018-03-15 652:2017-10-27 631:2017-07-27 613:2017-03-26 595:2017-03-13 577:2016-12-25 559:2016-11-17 547:Bug fixes 541:2016-10-24 523:2016-10-18 505:2016-05-31 487:2012-08-15 469:2012-01-29 451:2011-10-25 433:2011-10-10 415:2011-10-08 217:functional 209:imperative 198:JavaScript 175:JavaScript 83:2011-10-08 43:functional 35:structured 31:Imperative 1751:Ryan Dahl 1355:Debuggers 1208:Supersets 1119:. Zeomag. 980:Softpedia 961:InfoWorld 64:Developer 1679:CommonJS 1602:WebAuthn 1545:Related 1463:PhpStorm 1451:Brackets 1415:Editors 1333:Concepts 1244:AtScript 1102:SD Times 1051:SD Times 942:SD Times 820:See also 601:Classes 570:0.4.2.4 552:0.4.2.2 534:0.4.2.1 480:0.014.1 403:Changes 344:Mac OS X 334:Compiler 314:that is 306:Features 26:Paradigm 1720:Jasmine 1694:Node.js 1651:esbuild 1641:Webpack 1505:Engines 802: ( 784: ( 766: ( 750:Unicode 740: ( 735:0.8.10 722: ( 704: ( 686: ( 668: ( 650: ( 629: ( 611: ( 593: ( 575: ( 557: ( 539: ( 521: ( 503: ( 485: ( 467: ( 449: ( 431: ( 413: ( 384:Webpack 340:Windows 227:History 221:generic 200:with a 133:Website 112:License 105:dynamic 97:Gradual 81: ( 47:generic 1739:People 1565:asm.js 1319:Reason 1299:Morfik 1198:JSLint 1193:JSHint 1188:ESLint 797:0.9.2 779:0.9.1 761:0.9.0 754:Base64 717:0.8.5 699:0.8.4 681:0.8.1 663:0.8.0 645:0.7.0 624:0.5.2 606:0.5.1 588:0.5.0 516:0.4.2 498:0.4.1 462:0.013 444:0.012 426:0.011 370:, and 346:, and 235:Syntax 219:, and 101:static 1730:QUnit 1725:Mocha 1585:HTML5 1468:Orion 1406:JSDoc 1249:Babel 1226:ArkTS 408:0.01 348:Linux 316:sound 202:sound 185:is a 144:/jspp 140:.onux 1710:list 1689:JSGI 1684:Deno 1646:Vite 1625:yarn 1592:JSON 1580:HTML 1555:Ajax 1441:Atom 1289:Haxe 1264:Dart 1216:JS++ 368:Atom 294:true 285:bool 192:for 183:JS++ 171:Java 142:.com 68:Onux 20:JS++ 1674:Bun 1620:npm 1495:Vim 1429:Ace 1309:Opa 1304:Nim 1269:Elm 267:var 249:int 163:C++ 138:www 1778:: 1100:. 1081:. 1049:. 1015:. 996:. 978:. 959:. 940:. 752:, 386:. 374:. 366:, 354:. 342:, 318:. 215:, 211:, 173:, 169:, 167:C# 165:, 161:, 103:, 99:, 45:, 41:, 37:, 33:, 1712:) 1708:( 1421:) 1417:( 1164:e 1157:t 1150:v 1104:. 1053:. 1019:. 1000:. 982:. 963:. 944:. 806:) 788:) 770:) 744:) 726:) 708:) 690:) 672:) 654:) 633:) 615:) 597:) 579:) 561:) 543:) 525:) 507:) 489:) 471:) 453:) 435:) 417:) 297:; 291:= 288:z 279:; 276:2 273:= 270:y 261:; 258:1 255:= 252:x 159:C 146:/ 85:)

Index

Paradigm
Imperative
structured
object-oriented
functional
generic
Designed by
Developer
Typing discipline
Gradual
static
dynamic
License
BSD License
Filename extensions
www.onux.com/jspp/
C
C++
C#
Java
JavaScript
proprietary
programming language
web development
JavaScript
sound
type system
imperative
object-oriented
functional

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.