Build: the VM Nightmare No One Can Wake From
Build: the VM Nightmare No One Can Wake From
Why build tools like Ant, Maven, and Gradle are not what they're cracked up to be.
Join the DZone community and get the full member experience.Join For Free
DevOps involves integrating development, testing, deployment and release cycles into a collaborative process. Learn more about the 4 steps to an effective DevSecOps infrastructure.
So we all kind of knew that Java‘s rapid rise to hegemony was mostly predicated on the promise of APIs and implementations for everything you could ever need to do. Of course, to make that possible, we needed to open up our notion of how resources were assembled into built products. Twenty years later, it‘s safe to say the appropriate theme song would be the Bowie/Eno classic from Low: 'Always Crashing in the Same Car.' Ant, Maven, Gradle. I am obsessed with how Gradle sounds like cradle, which is kind of not what you want to invoke, and grateful. Like you are going to be a swaddled baby. Rescued from the din of nasty builds. But alas, it turned into just another flavor of what's wrong with all its predecessors. What do you call it when Evolution fails? Is it atavism?
Not long after I concluded that Kotlin was the only organism in the VM world I was interested in, I found that Cedric was also on its trail. Today I found out that he‘s doing a new build tool, using Kotlin. Joy, terror, night sweats, all happened at the same time. My eyes glassed over and I thought for a minute my tongue might slide back. Really? Nothing against Cedric‘s ideas or his motivation, frankly, I think it‘s a brilliant idea. I just of course thought, 'Wait, will this finally be how this demon gets staked?'
It makes me laugh hysterically that Hillary is running as a Progressive. It‘s like a 30 year veteran of Waterfall beaming as he spits out 'Agile.' It is really super hard to be progressive. So much about the tech world is progressive, but then there are also so many parts of it that are deeply regressive, recessive, or even worse, addled and manic. You can almost feel the anxiety in the tool chain.
Apple's tools are not perfect, and any day I am doing a search in the build settings, it‘s with the full consciousness that I am on a toe path over a very dark abyss. Underneath is a soaked and rotted C substrate that is impenetrable. If the 7 +/- 2 rule were to be applied to build, we would rapidly conclude that even the simplest stupid project requires so many return visits to grok the depths of its configured state that a part of your brain refuses to ever regard it as anything but unknown. That said, I prefer Apple‘s attempt to just handle build. I have Alcatraz now, which seems pretty promising. (If I had all the time back I spent fiddling with making internal jars available to Maven builds, I could probably build a vacation house out of toothpicks.) Apple should encourage this stuff, and really make modularity a priority, especially now that they have a language that is as or more capable than prior vehicles.
A lot of times in tech, the progressive is a movement in the margins, that allows itself to skirt the main issues and simply eke out less annoying interfaces to what is basically the same dysfunctional core. Does build eventually collapse like the Structured Programming model did? or did it already but we are allowed to just ignore it? Build is a flat wasteland of unidimensional applications of the same techniques. Or maybe build isn‘t even the site of the failure, it‘s maybe just one of the rash sites, and the real failure is the utter inability to deliver any modularity, which stretches the scope of our forensic investigation back another couple decades.
The second episode of Ken Burns‘ Cancer: The Emperor of All Maladies has an extended segment about radical mastectomy. It was invented at the turn of the 20th C, and it was not until the late 70s when a journalist was diagnosed, that someone questioned whether there was any data making the case for its efficacy. Took almost another decade to prove it did not outperform Lumpectomies. In case for it, 75 years earlier, rested on a single presumption: that cancer clusters around a center (the tumor).
Maybe Cedric is treating the rash, but perhaps doing so will also encourage others to take the same instrument(s) and go deeper. I look forward to using his tool. One thing is for sure: the latest Cambrian bloom of build crap in the JS world shows that despite a lot of necessity, there is not a sane build anywhere.
Published at DZone with permission of Rob Williams , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.