반응형

Compile to HTML/CSS/JavaScript

A list of upcoming programming languages that replace HTML/CSS/JavaScript -

  1. Elm (gos.i, homepage) The Elm programming language aims to make web development more pleasant. Elm is a type-safe, functional reactive language that compiles to HTML, CSS, and JavaScript. Elm's major distinguishing features are support for reactive programming and its focus on graphical user interfaces. Elm is also call-by-value and strongly / statically typed with type inference. The language features mentioned above help catch errors in your code at compile time, but there are some errors that are external to your code, such as browser incompatabilities. By using HTML, CSS, and JavaScript as an assembly language, Elm can avoid some of these problems.
  2. mobl (gos.i, homepage) mobl is a new free and open source language designed specially to speed up building mobile applications. Using modern HTML5 technologies, mobl offers you a concise language to build native-feeling web apps in a jiff; great (Eclipse) IDE support (such as as-you-type error reporting, code completion and reference resolving); a rapid save and test cycle. No more lengthy compilations, the mobl IDE compiles your modules whenever you save, ready to be tested in the mobile browser.
  3. fun (gos.i, homepage) A declarative programming language for realtime web applications.

Compile to JavaScript

This is a list of projects tagged as javascript-alternative on getOpenSource.info. If you'd like to add a project to this list, you can always do so by adding it here and then adding javascript-alternative as a tag.
An up to date list can always be found at http://getopensource.info/explore/javascript-alternative/.
  1. CoffeeScript (gos.i, homepage) CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. The golden rule of CoffeeScript is: “It's just JavaScript”. The code compiles one-to-one into the equivalent JS, and there is no interpretation at runtime. You can use any existing JavaScript library seamlessly (and vice-versa). The compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings, will work in every JavaScript implementation, and tends to run as fast or faster than the equivalent handwritten JavaScript.
  2. LiveScript (gos.i, homepage) LiveScript is a language which compiles down to JavaScript. It is a fork of Coco which is in turn derived from CoffeeScript. Like those two it has a relatively straightforward mapping to JavaScript. LiveScript is Coco but much more compatible with CoffeeScript, more functional, and more feature rich. LiveScript aims for increased expressiveness and code beauty. While adding features to assist in functional style programming, LiveScript also deeply supports imperative and object oriented programming, and has an optional class system with inheritance, calls to super, and more.
  3. Coco (gos.i, homepage) Coco is a CoffeeScript dialect that aims to be more radical and practical. On its way to hide JavaScript's bad parts, CoffeeScript has accumulated own quirks: horrible variable scope, awkward ranges, confusing and/or pointless keywords, verbose file extension, and so on. Coco tries to amend them, entwining good parts of both.
  4. IcedCoffeeScript (gos.i, homepage) IcedCoffeeScript is a superset of CoffeeScript. The iced interpreter is a drop-in replacement for the standard coffee interpreter; it will interpret almost all existing CoffeeScript programs. IcedCoffeeScript (ICS) adds two new keywords: await and defer. These additions simply and powerfully streamline asynchronous control flow, both on the server and on the browser. Say goodbye to callback pyramids; say adios to massive code rewrites when synchronization requirements change slightly. Say hello to clean, readable, maintainable control flow for network and asynchronous operations! The golden rule of CoffeeScript was: “It's just JavaScript”. ICS is doing something deeper. It's selectively running code through a continuation-passing style conversion. Original-style CoffeeScript will compile as before, but code using the new ICS features will be less recognizable. Still, the compiled output is readable and pretty-printed, passes through JavaScript Lint without warnings.
  5. haXe (gos.i, homepage) haXe (pronounced as hex) is an open source programming language. While most other languages are bound to their own platform (Java to the JVM, C# to .Net, ActionScript to the Flash Player), haXe is a multiplatform language.
  6. Opa (gos.i, homepage) Opa is a new generation of web development platform that lets you write distributed web applications using a single technology. Opa is concise, simple, concurrent, dynamically distributed, and secure.
  7. Dart (gos.i, homepage) Dart is a new class-based programming language for creating structured web applications. Developed with the goals of simplicity, efficiency, and scalability, the Dart language combines powerful new language features with familiar language constructs into a clear, readable syntax.
  8. LLJS (gos.i, homepage) LLJS (formerly known as *JS) is a typed dialect of JavaScript that offers a C-like type system with manual memory management. It compiles to JavaScript and lets you write memory-efficient and GC pause-free code less painfully, in short, LLJS is the bastard child of JavaScript and C. LLJS is early research prototype work, so don't expect anything rock solid just yet. The research goal here is to explore low-level statically typed features in a high-level dynamically typed language. Think of it as inline assembly in C, or the unsafe keyword in C#. It's not pretty, but it gets the job done.
  9. heap.coffee (gos.i, homepage) heap.coffee is a dialect of CoffeeScript that offers a C-like type system with manual memory management. It compiles to JavaScript and lets you write memory-efficient and GC pause-free code less painfully. heap.coffee, like its relative *JS, is early research prototype work, so don't expect anything rock solid just yet. The research goal here is to explore low-level statically typed features in a high-level dynamically typed language.
  10. Google Web Toolkit (gos.i, homepage) Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript. GWT is used by many products at Google, including Google Wave and the new version of AdWords. It's open source, completely free, and used by thousands of developers around the world.
  11. Roy (gos.i, homepage) Roy is an experimental programming language that targets JavaScript. It tries to meld JavaScript semantics with some features common in static functional languages.
  12. JS11 (gos.i, homepage) JS11 takes incomplete code and transforms it back into JavaScript. It's smart enough to add in various bits of redundant syntax, and can also transform some common errors and handy shortcuts into working JavaScript code. JS11 is a hybrid dialect that strives for greater readability and programmer effectiveness, whilst maintaining line-number parity with JavaScript. It consists of a language specification and a compiler module. JS11 adds some nice-to-have features that people often use in JavaScript but have to write out the long way. This includes things like default argument values, named parameters in function calls, a nice way to create private variable scopes, and easy numbered loops.
  13. Kaffeine (gos.i, homepage) Kaffeine is a set of extensions to the Javascript syntax that attempt to make it nicer to use. It compiles directly into javascript that is very similar, readable and line for line equivalent to the input (you can beautify if you like).
  14. Jack (gos.i, homepage) Jack is a new language in development that gets translated to pure JavaScript and runs on top of nodeJS.
  15. PogoScript (gos.i, homepage) PogoScript is a programming language that emphasises readability, is friendly to domain specific languages and compiles to regular JavaScript.
  16. moescript (gos.i, homepage) Moe is a new, not-very-little Javascript-targeted language written in JavaScript. Its features are inspired by Scala, Python, Haskell and Coffee. It is aimed to deal with common troubles in JavaScript development. Moe has neatly crafted grammar so that most JavaScript development will be simplified.
  17. JavaScript++ (gos.i, homepage) JavaScript++ provides the same familiar C-style language syntax of JavaScript and brings modern language features such as classes; block scoping and constants; pluggable type systems and type safety; packages and modules; comprehensive standard libraries; enhanced regular expressions and PCRE; and more to JavaScript with almost no learning curve through an extended ES3 grammar. JavaScript++ compiles to ES3-compatible JavaScript. JavaScript++ incorporates features from Python, Perl, Java/C#, ES4, Harmony, Haskell, and more while incorporating its own unique features. The driving philosophy behind JavaScript++ is productivity, and it will make everything from small scripts to large applications easier and faster to write. Take the mundane out of your JavaScript code with JavaScript++!
  18. JSX (gos.i, homepage) JSX is a statically-typed, object-oriented programming language designed to run on modern web browsers. JSX performs optimization while compiling the source code to JavaScript. The generated code runs faster than an equivalent code written directly in JavaScript. The gain may vary, but even the optimized JavaScript libraries like Box2D becomes faster when ported to JSX (we are observing 4% to 27% increase in performance). In contrast to JavaScript, JSX is statically-typed and mostly type-safe. The quality of applications becomes higher when being developed using JSX, since many errors will be caught during the compilation process. It also offers debugging features at the compiler level as well. JSX offers a solid class system much like the Java programming language, freeing the developers from working with the too-primitive prototype-based inheritance system provided by JavaScript. Expressions and Statements are mostly equal to JavaScript, so it is easy to for JavaScript programmers to start using JSX.
  19. mochiscript (gos.i, homepage) Mochiscript is a superset of the JavaScript language that adds more Object-Oriented features such as: methods, inheritance, mixins, etc… What this means is that Mochiscript IS Javascript. Mochiscript currently supports Ruby on Rails 3.1 (via asset pipeline) and Node.js.
  20. Pygmy (gos.i, homepage) Pygmy is a dynamic language that compiles to Javascript, designed to be readable but concise enough to be competitive in code golf.
  21. Pit (gos.i, homepage) PIT is F# to Javascript compiler that leverages the beauty of F# and also JavaScript.
  22. WebSharper (gos.i, homepage) WebSharper is an HTML5-centric web framework that lets you create web and mobile JavaScript apps complete with a server-side backend using a single language, F#. WebSharper is designed to boost your productivity. Reduce complexity with a single language on the client and the server, enjoy code completion in Visual Studio®, and benefit from type inference and other great features of F#.
  23. Amber (gos.i, homepage) Amber is an implementation of the Smalltalk-80 language. It is designed to make client-side development faster and easier. It allows developers to write client-side heavy web applications in Smalltalk. Amber includes an integrated development environment with a class browser, workspace, transcript, object inspector and debugger. Amber is written in itself, including the parser and compiler, and compiles into efficient JavaScript, mapping one-to-one with the JS equivalent.
  24. Haste (gos.i, homepage) A compiler to generate Javascript code from Haskell.
  25. ghcjs (gos.i, homepage) ghcjs is a Haskell to Javascript translator. It aims to provide solution to compile modern Haskell libraries to Javascript files and use them in Ajax applications or develop entire Ajax application in Haskell
  26. Outlet (gos.i, homepage) Outlet is a programming language. It is Lisp-like in nature and compiles to JavaScript.
  27. SibilantJS (gos.i, homepage) Sibilant is a language that is parsed by javascript and compiles to javascript. Sibilant is inspired by lisp and follows many lisp conventions, although it is still relatively close to the underlying javascript. Sibilant is entirely written in sibilant and can recompile itself.
  28. Scriptjure (gos.i, homepage) Scriptjure is a Clojure library for generating javascript from Clojure forms. Its primary goal is to make it simple to embed “glue” javascript in Clojure webapps. Generated Scriptjure javascript is intended to be readable. At the moment, Scriptjure is very simple, but is still under active development.
  29. clojurescript (gos.i, homepage) ClojureScript is a new compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler.
  30. BiwaScheme (gos.i, homepage) BiwaScheme is a Scheme interpreter written in JavaScript.
  31. JSIL (gos.i, homepage) JSIL is a compiler that transforms .NET applications and libraries from their native executable format - CIL bytecode - into standards-compliant, cross-browser JavaScript. You can take this JavaScript and run it in a web browser or any other modern JavaScript runtime. Unlike other cross-compiler tools targeting JavaScript, JSIL produces readable, easy-to-debug JavaScript that resembles the code a developer might write by hand, while still maintaining the behavior and structure of the original .NET code. Because JSIL transforms bytecode, it can support most .NET-based languages - C# to JavaScript and VB.NET to JavaScript work right out of the box.
  32. Doppio (gos.i, homepage) Doppio is a project to get Java running in the browser without any plug-ins. Right now it comprises a fairly complete VM and an implementation of the javap bytecode disassembler. (Doppio is also the Italian word for 'double', and is another name for a double espresso). Doppio started out as the mid-term project for a Graduate Systems Seminar. It has since taken on a life of its own, and is complete enough to run implementations of GNU Diff, LZW compression, and the Java 4 compiler.
  33. Skulpt (gos.i, homepage) Skulpt is an entirely in-browser implementation of Python. No preprocessing, plugins, or server-side support required, just write Python and reload.
  34. Pyjs (gos.i, homepage) Pyjs is a port of Google Web Toolkit to Python, and thus enables the development of Rich Media AJAX applications in Python, with no need for special browser plugins. Pyjs contains a stand-alone python-to-javascript compiler, and also a Widget Set API that looks very similar to Desktop Widget Set APIs (such as PyQT4 or PyGTK2). Pyjs also contains a Desktop Widget Set version, running as pure python, with three useable Desktop ports available. With web-engine technology at it's core, HTML, CSS, plugins and other related features work out-of-the-box.
  35. Objective-J (gos.i, homepage) Objective-J is a new programming language based on Objective-C. It is a superset of JavaScript, which means that any valid JavaScript code is also valid Objective-J code. Anyone familiar with JavaScript and object-oriented programming concepts, classical inheritance in particular, should have no difficulty learning Objective-J.
  36. Opal (gos.i, homepage) Opal is a ruby to javascript compiler. Opal aims to take ruby files and generate efficient javascript that maintains rubys features. Opal will, by default, generate fast and efficient code in preference to keeping all ruby features. Opal comes with an implementation of the ruby corelib, written in ruby, that uses a bundled runtime (written in javascript) that tie all the features together. Whenever possible Opal bridges to native javascript features under the hood. The Opal gem includes the compiler used to convert ruby sources into javascript.
  37. Red (gos.i, homepage) Red takes the Ruby you write and turns it into JavaScript for your browser. The all-new Red is a Ruby-to-JavaScript transliterator backed by a custom ruby.js library designed to let your code run in the browser exactly the way Ruby would run on your machine. The JavaScript output is optimized to contain only the fraction of the ruby.js source library needed to run your code. What does this mean for today’s Ruby developer? Simple. You don't need to learn JavaScript.
반응형

+ Recent posts