Black sheep or what C++ developers do on a Java conference 

JS TalkI’m growing a habit of starting my posts with “my wife took me to”. This time to Confitura’13, the biggest free polish Java conference.

The conference was really great – the atmosphere, talks, free food, tons of free merchandise. The number of talks to choose from was also enormous. Every time slot was filled with interesting speeches both technical and soft-skill. Definitely I will try to attend conferences as often as possible from now on.

I kept to architecture, performance and JS related talks. First was a very fast-paced one by Paweł Szulc from Wrocław about evolution of MVC architectures towards 4 layer ones and CQRS. He advocated that for lots of reasons you need to enclose the business logic in a separate layer and make the controller part really thin. Funny that also on the conference as a part of free merchandise we were given a Open Source Journal containing article NO DB, by Robert C. Martin, who rants there about SQL leaking even to the UI layer. With the whole NoSQL movement (thanks to MongoDB and JSON growing popularity) the SQL domination is coming to an end and I am also grateful for it.

The JavaScript presence was considerable. The two JS talks were full of people and the comeback of JS supported by its major frameworks (Google’s Angular, Jasmine and also present in corridor discussions – Node.js) is a fact that can’t be ignored. You can start preparing for future already with this deep look into modern JavaScript by Michal Ostruszka.

Other great talk was one on the lack of single way to approach all organizational problems given by Michał Bartyzel. I specifically liked the example of a company that was making games following one scheme for but customizing it for different clients. Instead of having a single core game and only adapting it for each client they hired a programmer to make THE SAME GAME from the start every time they had a new customer. To us enlighted software engineers and (wanna-be) architects it sounds plain stupid – what about DRY, reuse and eliminating waste? Well, what about management of expectations, conflicting customer requirements, maintenance costs and risk?

In my company we have a single organization working on radio modules which are used by 3 different mobile network technologies – GSM, WCDMA and LTE. The complexity of coping with all three at once is a real pain in the neck. I also often get into discussion with my PM on why I would write a new software piece from a scratch rather than reuse one from previous SW release. He thinks that we even should develop it on same branch as the previous release and I’m convincing him that it would be too bug prone. However, those are exceptions that prove the rule that rewriting is one of the Things You Should Never Do.

Edit:
Photo gallery by Szymon Bogacz