That probably will be a shortest post in this blog. Shortest coz I do not think that this subject deserve more. I should admit, more and more noise I can hear around this. I would say an any thread about a build system eventually diluted by Gradle. And you know what I think about this?
I think, that is how fashion works. Perhaps I become old, and as many old men, I like to watch the latest news in front of TV. With cup of good coffe in hands, I like to be distracted by something else, unexpected. You know, that is broadcast, yes you may switch channels but, effectively you can't control what you will see in next couple minutes. Especially if control panel is outside of your control. But, what am I about? Sometimes you can see the fashion show. (My daughter love that.) And if you would be not so careful and have a look it, you may note how weird clothes could be. Non-practical, sometimes even dangerous. Each time I can't get why people doing that, what drives people who design this? It smells like a masochism, no?
The fashion is, probably a brightest side of humanity, it could be most colorfully representation of our irrationality. Is there any explanation why somebody can decide to move from Ant to Maven, and after - to Gradle?
The Ant is empirical building tool. Yes it is flexible, but its flexibility very often hammer a complex build and make it totally unmanaged. And problem is not in lack of dependency management. I saw some custom solutions. It simplify things, but it don't fix a main problem - it is empirical by nature. Everybody is free to do what he/she wants and such freedom leads to situation when the build is more complex then application it supposed to build.
An opposite the Maven, declarative. When I met it in its first reincarnation, version 1, I loved it, despite many clumsiness and lack of plugins. It revoluted the idea of build and brings kind of standarts in build system. So far, I had no problem to get familiar with a new project. Just look through the POMs, and you easily may pick up what you may expect. You only need to get what Maven is. I saw people who approaches Maven with their own understanding of build, that not always matches the Maven's one. Their complains very often recall me these fashion shows. Weird ideas, sometimes even dangerous. But not for them, they sincerely believe that it is Maven problem that it can't satisfy their requirements. I hope, eventually they got an idea.
And Gradle - kind of mix of both, but effectively - the same as Ant. I do not know what smoke those people, but I really came accross such situation when people decided to move build from Maven to Gradle. I do not want to be more specific, yes the product is very old and complex. And they managed put in shit the Ant build first. After, when they moved to Maven, did the same with Maven, by introducing plugins with doubtful intentions. And believe you or not, they started do the same in Gradle, when decided to move on. Yes, that is clinic, they can't learn from their own mistakes. But what drive them to go through all this pain?
The similar story with Groovy. It is actually useful and flexible scripting language. As I've been told once I asked what is that: "the Java, but without semicolon". (Funny how important it could be to avoid semicolons, for some.) It allows you quickly write script that can leverage the Java without any hassle. But I can't imagine how that is possible to decline the compile time verification in Java and move to the language with late binding for a real application? Ok, I can understand if that is a single-man proof-of-concept or something simplest like a tests. But that was done for a multimodule project that supposed to be supported by international team.
I can't get this really. As well as a fashion, however. So, may be that has the same nature?
No comments:
Post a Comment