More ES6 Modules Reactions, Dojo 1.8 Calendar, Maria, Brackets

2012-06-28 00:00:00 +0100 by Alex R. Young

More ES6 Modules Reactions

Yesterday I mentioned Isaac Schlueter's post about ES6 modules, and now James Burke has responded with Comments on Isaac's ES modules post. James' comments are interesting given his background with RequireJS, and it's easy to see how much his thoughts are influenced by AMD.

James has also written ES Modules: suggestions for improvement, in which he states "I want AMD and RequireJS to go away":

They solve a real problem, but ideally the language and runtime should have similar capabilities built in.

New Dojo Components

Dojo calendar

The new Dojo calendar and gauges are explored in Introducing new visualization components in Dojo 1.8. A lot of client-side developers have asked me about full-blown calendar libraries over the years, and this one looks extremely elaborate.

The calendar documentation shows off how simple the API is:

require(["dojo/parser", "dojo/ready", "dojox/calendar/Calendar"],
  function(parser, ready, Calendar){
      calendar = new Calendar({
                   dateInterval: "day",
                   style: 'position:relative;width:500px;height:500px'
                }, 'someId');

There's also a stunning amount of documentation, with examples, diagrams, and CSS styling details.


I really love the TodoMVC project by Addy Osmani. It showcases lots of client-side MVC frameworks. However, seeing as most people seem to misinterpret what MVC means, Peter Michaux has created Maria to set the record straight:

An MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC.

In Maria, models are event targets that can be observed by any other objects (including views, controllers, and other models). Views observe models and represent their current state. Controllers determine what happens when users interact with views.

There's a TodoMVC example for Maria that breaks down like this:

The view files change elements based on models, but you won't see a fragment of HTML in them. In Maria, the concept of a view is distinct from a template. For example, TodoTemplate.js contains the list element HTML fragment.

This stricter interpretation of MVC may be beneficial because views become easier to reuse, and the event-based design seems natural in JavaScript.

Now, you're probably not going to replace your Backbone.js projects with Maria anytime soon, but it's definitely worth trying out Peter's project to see how it can better inform development with your MVC-style library of choice.



Brackets (GitHub: adobe / brackets, License: MIT) from Adobe is an open source editor aimed at web developers. There's detailed blog post all about it here: Building a Desktop-Quality App on Web Technologies.

Although it's built with web technology, it includes a native desktop application to make working with local files easier. It seems like they'll be working to remove this dependency in the future, and there's always the possibility of using something like Filepicker.io for accessing files from services like Dropbox.

Coincidentally, Cloud9 IDE has been updated with new collaboration features, compilation (gcc) and interpreter support (Ruby, Python) support, and offline editing.