Soundbyte 135: Being the best


Looking through the new strategy document, or booklet that is, I found one of the pages to be brilliant. It’s the page with a photo of Lebron James, one of the best NBA players ever.

“Our Goal is to be the best at what we choose to do, and to be famous for it”

says the top of the page. What does it mean to be the best in our field? I think this has everything to do with being a leader instead of a follower. Not just following trends and using technology that everyone else is using, but having our own vision on how software is built best. Sure, we can’t control everything, and it’s not useful to just do everything different from everyone else just for the sake of it. This is where we have to focus on the things that we choose to be best at. For me personally this is the modularity theme; having an architecture and technology stack that embraces change. And we’re on the right track here I think with a growing Amdatu community, participation in related communities, a high profile showcase (PulseOn), visibility at a lot of developer conferences and a book.

But why care about being the best? I had an interesting discussion about this with one of my best friends who, by his own words, chooses NOT to be the best at what he’s doing because he believes it’s not worth the energy. And he has a point, because being the best does require hard work and focus. For me this is about making a difference; moving our field forward.

Unfortunately you can’t be the best at everything, which I’m reminded of every time I pick up my guitar ;-) The gentleman in the video below is doing a pretty good job at being “the best” at this however with an awesome street performance. (Thanks Laurens for sharing!).

Amdatu Bootstrap

On another page in the strategy booklet there is some code shown in the background from a new project that I have been working on in the past few months. It started out as a fun project during the Christmas holidays, just to see if I could get something useful working in a short amount of time. This worked out better than I had expected and the idea even proves to be useful. We now decided to make this an Amdatu project and we’re finalising towards a release which should be out within a few weeks.

Amdatu Bootstrap is a command line tool that helps setting up Bndtools (OSGi) projects and help with common tasks such as baselining and creating run configurations. The tool is supposed to be used next to Bndtools and is designed to be extendable with plugins. Because you don’t need any Eclipse RCP knowledge it’s trivial to create your own plugins to simplify work with certain libraries or even project specific tasks. Hopefully this will soon lead to a lot of plugins contributed by the community. I’m excited to see how this plays out in the next few months.

Web development like we mean it

At PulseOn we’re currently working on improving our web development stack even further. We are already using AngularJS as an important part of our stack, but there is a lot more to look at. As a general step we separate web development and backend development further at the technology level. Instead of integrating web development within our Java IDE and toolset, we set up a separate tool stack specialised at web development. We’re using tools such as RequireJS, Grunt, Bower, Sass and TypeScript to create the large amounts of JavaScript that we now have. The idea is simple; JavaScript is becoming a significant part of our code base, so there’s only one way to deal with this: Become the best at it.

One of the interesting technologies we are experimenting with is TypeScript; a language developed by Microsoft. TypeScript is a superset of JavaScript, meaning that valid JavaScript is also valid TypeScript. TypeScript adds some really nice feature to JavaScript such as static typing, classes and interfaces, and integration with module systems such as RequireJS. The code compiles to JavaScript which is very similar to how you would write it yourself when emulating classes with prototypes.

While there are a lot of goodies in the JavaScript ecosystem, it’s also clear that it’s still a very young ecosystem. Libraries, tools and best practices are changing continuously. I’m wondering how this ecosystem will develop in the next few years.

Although I’m enthusiastic about the front end technologies that we are using, I still don’t really get the whole Node hype for backend development. Sure its fun to play with something completely new, but I don’t see any problems solved that aren’t or can’t be solved using Java for example. So why becomes an immature stack so popular, even while it’s built on top of a language that most developers I know wouldn’t immediately pick as “most beautiful”. We should learn from the new ideas formed while developing this new stack however. Doing something completely different can give interesting insights in the things that you are already doing.