Twitter github

Posts Tagged with “javascript”

The Importance of Semantic Versioning

I don’t know if it’s just the last sprint before the end of the year for people, but there’s been a decent amount of buzz around software versioning lately. Maybe people (like Mirko Jahn) are just so frustrated with the status quo around versioning.

Frustration

In the first case, the OSGi community has been blogging about the importance of semantic versioning in regards to the blah approach taken by the Jigsaw project. I find that Peter Kriens wrote an eloquent post about the importance of versioning in module systems like OSGi, especially when it comes to the semantics. In response to JSR 294’s versioning policy (vaguely Debian-like strings), Alex Blewitt has written a funny “JSR294 Fantasy Version Series” featuring a Linux and Roman Numeral versioning scheme. I highly recommend reading Alex’s blog series if you’re in need of a laugh.

I also learned today that the Groovy project is going through a modularization stage since the main Groovy JAR is now over 4MB and there’s a desire to break things apart (I wonder what monsters lurk under that big JAR). I hope the Groovy team considers a hard look at OSGi and also the importance of semantic versioning for its modules. Since it seems Groovy uses Maven as part of its build infrastructure, it should be easy to adopt OSGi with the upcoming Maven3 release and Tycho.

Ok, what about modularity and versioning outside the Java world? Well, to my surprise and excitement, there’s some activity in the Javascript space via the CommonJS group. The purpose of the CommonJS group is to build a JavaScript ecosystem for web servers, desktop and command line apps. As part of this effort, the group is developing a module and package system. While I still think they are a bit crazy, I’m happy to see that they are standardizing their versioning scheme (called SemVer) to include semantics.

Semantic Versioning

If you look deeper into CommonJS and their module system, a lot of the metadata that they are defining for their modules map quite nicely to OSGi. Is it time that OSGi considers stepping out of the comfortable Java space and embrace modularity for other languages like JavaScript? There’s a lot of lessons the OSGi community can give to the modularity newcomers.

Has anyone seen anything else good when it comes to modularity and software versioning?

On a side note, sometimes I wonder if we need something like the Agile Manifesto but for Semantic Verisoning. I’d call it a Semantic Versioning Manifesto where people could sign it and support it. What do people think?

Eclipse Goes Online?

I recently came across a post about Eclipse Going Online while on my blackberry this morning. The author seems to think that:

we will see a viable online alternative to the desktop IDE soon.

This quote is interesting because I’ve been recently dealing with folks that insist everything can be done within a web browser using AJAX. Call me naive, but I don’t think we will ever see a flow-blown IDE on the web until certain criteria are met. Sure, we may see something to help draw diagrams and spit out EMF models… but something to help you setup a toolchain to work with your Nokia S60, no.

Some of the problem stems that a lot of people doing “Web 2.0” development are using JavaScript. One of the big problems with JavaScript is that you have access to nothing involving local resources (ie., native things). Ever try to do something simple like playing a sound in JavaScript? Of the 9 ways to play sound, it seems the recommend way is to use Flash, nice! I’ll leave the programming model discussion out of this post as that’s another issue to deal with.

In conclusion, until JavaScript provides something like “JSNI” and grants web applications the ability to work offline, we will most likely not see a full-blown IDE on the web. By the time we get there, we’ll realize the technology existed awhile ago and it was called ActiveX and was just as bad.