Spring Slaves


Just some thoughts about Spring and the Spring family.

Beloved by companies that are always searching for the "panacea", it pretends to provide the community with the magic combination of simplicity, wide scope (batch, web, cloud, messaging, etc) and closed ecosystem. The objective: to find the final framework in a common, well-known language to produce applications as fast as possible and with the less training as possible.

Simplicity because any complexity should be encapsulated and hidden from the developers.
Wide scope to use the same platform absolutely for everything.
Closed ecosystem to simplify documentation, training, resources and even better, reduce the range of possible solutions.

I'm sure you, smart reader, already know what are we talking about...
It is evident: "SOFTWARE FACTORIES"!!

These types of platforms are focused to build software factories. The arguments are always the same ones:
  1. Members in teams should be exchangeable between different project.
  2. Projects solve problems and produce assets.These assets should be usable in all of the projects in a company. 
  3. Training and skills of developers are limited. Job market is in a very specific status for now and is really difficult to find good developers. Probably will be even more difficult in the close future.
Nothing to be argued of the points above. Companies need to extract the maximum productivity of their resources, technical and human.

But it is the wrong way.

Software Factories failed in the past because there are not platforms that provide everything.
They failed because developers felt isolated and frustrated in projects from boilerplates that were not appropriate. Specifications for projects were always too special and the most of time the factories needed specialists to remove and modify the parts of these "magical solutions" to accomplish the real requirements.

Spring has evolved from a simple IOC library to a true platform that tries to cover everything.


Performance, creativity and adaptation are simply out of the scope. Remember the big failure of the reactive platform  (yes, Reactor). It's difficult to find a bigger failure. Why? Of course, performance is simply out of the scope and the quality and matureness of other frameworks/libraries (Akka, Play) was too advanced to compete with some possibility to success.

The key word is "simpler". That explains the success of interpreted languages like Python, more used everyday in direct competence with Java, C, C++ and C# !!!

Honestly, it is difficult to understand.

While technical managers in companies think that (for instance) is impossible that Java developers learn high concurrency, Scala or C++ to produce better and better software and bet on simpler and simpler solutions the future is uncertain.

Cheers and talk you soon!





Comments