Welcome to JaernCloud

JaernCloud is a domain specific language for web apps. It uses a hierarchical type system called Closure Unified Documents to unify HTML, CSS and data transformations on the server-side into a single coherent programming language. Written in C# with the Dynamic Language Runtime.

Why a new Language

So why create yet another programming language? The short answer is that web development is still a lot of work and quite prone to errors. Any web developer will tell you there's no shortage of web development frameworks out there, but most of them share the same inherent problem: the applied language or framework doesn't understand how the chain of web technologies that make up a website connect together. Break one link in the chain of data models, queries, logic, templates, markup, styling and graphics and the site breaks. JaernCloud is one attempt at solving this problem.

An Introduction to JaernCloud is available in the documentation, or you can learn more about the Language right here in the JaernCloud Wiki.

Show me the code!

Here's an example of what JaernCloud looks like:

JaernCloud-front-puzzle.png

JaernCloud on CodePlex

The JaernCloud Project has three primary components:
The current state and progress of the project is described on the Roadmap.

Philosophy and Goals

The principal idea behind JaernCloud is the notion of Closure Unified Documents (Cudocs). In simple terms Cudocs says that “everything is trees and transformations applied to those trees represent programs”. Take CSS rules, HTML mark-up and JavaScript manipulation of the DOM on the client. All trees and transformations. On the server, the data model, queries on the data model, the processing into view data and rendering all fit under the Cudocs umbrella of trees and transformations.

With Cudocs, JaernCloud unifies all major levels of a web application into a single coherent language and syntax. This, combined with the language features of JaernCloud, has some rather desirable consequences:
  • Refactoring support across model, view and controller
  • Fewer breaking code changes
  • Verifiable navigation, presentation and model access
  • Less “plumbing code” and better abstraction
  • Exceptions that make sense for the problem domain
  • Overall better code quality and productivity

Getting Started

Need more information? We've got a couple of ways for you to get into JaernCloud while the Alpha release is being developed:

We're looking for developers and people to contribute!
The language specification and implementation is still in its early stages. Comments, questions and suggestions are encouraged.

Technology

JaernCloud is built using C# 4.0 and the Dynamic Language Runtime. The parser is based on Coco/R. Managed Extensibility Framework is used for dependency injection. The Web framework is built on top of MVC 2. Inspiration has been drawn from many sources, including Groovy, Ruby, various MVC and Rails projects and WebDSL.

Behind the Name

The inspiration to the name came from IronRuby, IronPython and “Jern” – the Danish word for Iron. The last part of the name is a conjunction of “Closure Unified Documents”. Jern is pronounced more like Jaern, so there you have it: JaernCloud.

Links

Last edited Nov 3, 2010 at 8:58 PM by jimmeyer, version 31