MLOC.JS - A view from the speaker’s podium


Editor's note: Ken Walker is a lead on the Eclipse Orion project, a browser-based open tool integration platform that is entirely focused on developing for the web, on the web. He's also one of the extraordinary speakers who, earlier this year, spoke at the MLOC.JS international JavaScript conference, the first event in a series of tech conferences.

When Péter Halácsy asked me to speak about the Orion Project at MLOC.JS, I was both excited and a bit overwhelmed. The other speakers and their topics looked so impressive that I was really glad just to have my name on the same list. Before I get into more technical things, it’s important for me to acknowledge the team at Prezi and all the work they put into organizing the conference and taking care of all the travel and logistics, including a welcome dinner and help with reviewing the presentation material. The conference itself, from my perspective, ran without a hiccup. Peter kept it on schedule with his gentle nudges to the presenters and great introductions for each speaker.  The tech team also did a great job making sure everything ran smoothly. They even maintained a live broadcast over UStream for the duration of the conference. There was always coffee, snacks, and treats to keep us all going.

So, what about the concept of the conference? What exactly was meant by millions of lines of code? To me, it simply meant how do developers manage the complexity of growing web projects and what tools or languages do they use to achieve efficiencies and solid code. It turned out there was a great discrepancy between the speakers on these topics and that, to me, was the amazing part of the conference. Quite a few of the speakers, myself included, soon found themselves in the "native JavaScript" camp. This made me laugh because coming from a Java Virtual Machine team, native was assembly language, but I think the concept does a pretty good job of explaining the differences in approach to web development.

The native developers rely on the current state of the JavaScript language and the browser capability to code their solutions. They use the debug tools available to them to work through issues, and they put up with the typelessness of it all. In my Orion presentation, I brought up our Ohloh statistics, which include around 120,000 lines of JavaScript code.  Many people have asked how we could possibly work on such a large JavaScript code base?  For us, we develop Orion in Orion and while our toolset is not as robust as a desktop IDE yet, we manage using common team goals. One is to develop pages with a specific task in mind. For these pages we use AMD, so we know what our dependencies are and this allows us to keep these modules small and focused. Everything that is an extension of functionality or does communication to the server is done in a plugin and deferred promises are used consistently to deal with anything asynchronous. We unit test the core as best we can and we refactor and pay off our technical debt regularly. Also, we release frequently, every four months and during that time, we update our development site every day and our public facing site at least five times (http://orionhub.org).

Click on the photo for more pictures taken at MLOC.JS

 

There were so many interesting approaches to generating JavaScript that I think it would be hard to just pick one. They all had some opportunity to provide type safety, code optimization by leveraging the optimizers for the languages being compiled before generating the JavaScript code, and in some cases providing better tooling support for refactoring.  There was a wide range of approaches including the well known CoffeeScript, Dart and C/C++ cross compiling. Then there was the not so well known Elm, F#, Haskell, and Roy. And I shouldn’t leave out toolkits such as WebSharpen & Sharpkit (why are they all so pointy?) which were more commercial in nature. It was clear in all the various language presentations that each of the developers was very comfortable in how they were using that language to generate JS. There were some great expert compilers and code generators. The videos were recorded and are available at UStream (http://www.ustream.tv/mlocjs), and if you're considering a compiled or generated approach to Web development you should really check them all out. The conference team deserve to be commended for getting all the varied opinions in one location to talk about their approaches to large scale JavaScript development.

 

All of this, and we were treated to an amazing setting, too. This was my first trip to Hungary and I was really impressed with the city. I did as much as I could in my short time, including riding the yellow subway line to the Szechenyi Baths, taking the tram to the Gellért Baths (I like to stay clean), rising up the Budapest Castle Funicular and walking around all the major sightseeing sites. On my arrival in Budapest, I went out for a great dinner with some of the other speakers and on Thursday I hung around the open concept Prezi offices. I don’t think there was anyone who didn’t say hello or offer to help me with the coffee machine. During my stay, I talked to a lot of developers from other Budapest companies such as UStream. It has left me with a very positive feeling for the developer scene in Budapest.  Everyone was very energetic and positive about their decision to work in Budapest and very excited to talk about their thoughts on helping new companies to grow.

I'm really glad to have had the opportunity to attend and speak at MLOC.JS and meet so many incredible people, both in terms of their technical capacities and their personable approaches to collaboration. If you're part of the Budapest development community, you've got a great thing and you should engage and use this opportunity to grow both the scene and yourself.

Ken Walker, Lead of the Eclipse Orion Project, IBM Canada (@kwalker)

Do you want to take part in the next international tech conference organized by LogMeIn, Prezi and Ustream in Budapest? Good news, we are already busy working on RAMP, a conference about scaling engineering from 1 to 100 million users. Follow us on Twitter: @Rampconf