November 17th, 2015
by Jonas Pommerening

It has been just a month since we released LaxarJS v1.1.0. Even though we had to refrain from introducing any breaking changes (after all, v1.1.0 was a minor release) we were able to ship some improvements that make working with LaxarJS much more pleasant.

It might take some time before v2.0 will be released but we already have a few big changes in mind! Overall we’re aiming to further reduce the amount of dependencies, modernize our code and throw in some new features to better support the needs of modern, appealing web apps.

Here are the things we’re planning to do this winter:

  • Translate our source code to ES2015. Most of us already use the new JavaScript features whenever we start a new project and we think it’s time to upgrade LaxarJS! With the help of Babel we will be able to write code that is more expressive and concise without sacrificing browser support. Additionally, the new module syntax decouples the code we write from any specific module loader, which is nice, because we’re hoping to …

  • Drop the need for RequireJS. Configuring RequireJS has always been a real hassle, especially as your app grows larger, which is sad because that’s exactly the problem LaxarJS tries to solve. As your app evolves, usually, so does your RequireJS configuration. More often than not you end up with a hundred lines of paths, shims, and whatnot. Unfortunately we can not “just use another module loader”, because we rely on some features of this particular implementation, as well as the associated bundler, r.js. To fill the gap, we are having a look at alternative module loaders and bundlers, SystemJS in particular.

  • Another dependency we’re trying to remove is Angular. While Angular still serves us well for developing apps & widgets, we will modify the LaxarJS runtime to not use Angular at all and move the Angular adapter to its own GitHub project. Thereby making room for the …

  • Angular 2 adapter! After what amounts to almost a complete rewrite, the next major version of Angular is nearing completion. Now that the API has mostly settled down, it shouldn’t be much of a problem to integrate Angular 2 widgets into existing applications. Once we have the two different Angular adapters working, you’ll be able to run Angular 1 and Angular 2 widgets side-by-side, giving you a way to incrementally upgrade your app to Angular 2 (or just trying it out in the context of your existing app) without the risk that comes with a complete rewrite.

  • One part of LaxarJS that is currently relying heavily on Angular is routing and navigation. We don’t know yet what will take the place of angular-router but we will make sure it supports page transitions (such as these) for that special PowerPointesque pizazz your managers are asking for!

  • We’re also working on the internals. For example, we’re looking to make it possible to change page configurations during runtime, which requires changes in the way we load static assets.

  • Last but not least we’re working on a super secret debugging tool to give you the super power to better understand the communication between your widgets.

As you can see, these are all evolutionary changes. We are not going to rewrite LaxarJS or come up with a whole new API. There will be a few breaking changes, however, but we’re confident that upgrading your app should not be too much work if you’re already using LaxarJS v1.1.0.

Also, don’t worry if upgrading right away is not an option: We are also working on minor improvements for LaxarJS v1.2.0 and will be releasing bugfixes for some time to come.

Stay tuned for updates on our progress to v2.0 and drop into our IRC-channel or issue tracker if you want join us working on the new features!