bld advocacy ideas
-
@ethauvin and I have been wondering how to better spread the word about
bld
. Please share any thoughts and ideas you have that could motivate people to at least givebld
a try.There seems to be a lot of skepticism and preconceptions, causing immediately dismissal of the possibility of an alternative Java build tool.
In the meantime we've started writing up a number of
bld
advantages as a starting point:Some of bld's advantages:
- use the many powerful and mature Java IDEs and tools
- projects open nearly instantly in IDEs
- tracing a build problem can be done with a Java debugger
- build logic can be reasoned about like any Java project
- multi-projects, shared deps, reused tasks can all be encapsulated with Java ideoms
- bld can use any Java library directly
- dependency resolution is optional, bld uses the project's classpath
- all paths, including classpaths can be changed
- default set of commands provide a predictible default lifecycle
- bld's API is documented with Javadoc, appearing right in the IDE
-
-
a lot of skepticism and preconceptions
What kind are you facing?
For my two cents, I'd say Android is probably a lost cause. For better or for worse, Android is going to be locked in to Gradle for a very long time.
I think bld's other advantage is that it fits the bill for a simple and stable tool like
ant
before it.Gradle fits the bill for a very complex build tool, and has costs in stability since all the features necessitate refinement over time and that turns into churn/toil. That's not bad, some problems are legitimately complex and they benefit from a complex tool -- I also don't think that's a majority of projects at all.
Maven is less complex and more stable (and has a larger user base according to some surveys I've seen from JetBrains and JRebel), but Maven 4 is coming out and who knows what to expect as people try to upgrade all their maven plugins. I actually think it might put people in the mood to try something different
So... it's not really an idea, but a thought that there's a storm-a-brewing, and it might position bld really well for people that want something a little more simple and stable. (But not ant)
-
We've had quite a few reactions from people assuming that there's no way that a new build tool can replace decades old build tools like Maven and Gradle. They assume that it would take decades of a catching up just to get to the same functional spot, even for simple projects. From that mindset, they're not even giving bld the benefit of the doubt, and just dismiss or even denigrate it outright.
-
@ethauvin said in bld advocacy ideas:
I think people have a hard time picturing how easy bld is to use, just by looking at the description, etc. Not until you actually try it will you realize that you can get project compiling and running in just a few minutes.
You might be onto something here, any thoughts on how to better convey that?
-
@gbevin said in bld advocacy ideas:
You might be onto something here, any thoughts on how to better convey that?
I'm not entirely sure yet. I was thinking a short video or maybe a nice graphic outlining the process. But those require extra steps, which people don't usually go for at first.
We need to figure how to convey all of this in a concise and appealing form.
-
@ethauvin said in bld advocacy ideas:
@gbevin said in bld advocacy ideas:
@ethauvin maybe a short video as an animated gif that can play directly on the website?
That's an idea. Will be catchy too.
I'll try to work on something in the next few weeks.
-
@booniepepper said in bld advocacy ideas:
For my two cents, I'd say Android is probably a lost cause. For better or for worse, Android is going to be locked in to Gradle for a very long time.
Agreed.
I think bld's other advantage is that it fits the bill for a simple and stable tool like
ant
before it.Gradle fits the bill for a very complex build tool, and has costs in stability since all the features necessitate refinement over time and that turns into churn/toil. That's not bad, some problems are legitimately complex and they benefit from a complex tool -- I also don't think that's a majority of projects at all.
Completely agree. I've converted over 30 projects to bld, and I've yet to find something I did in Gradle that I couldn't simply do in bld.
That's why I created the TestNG and JaCoCo extensions, etc. I just didn't want to copy-paste the same build code over and over. Like you often have to in Gradle, or Maven.
I've written plugins for Gradle before, and once again that is infinitely more complicated than doing an extension in bld.
So... it's not really an idea, but a thought that there's a storm-a-brewing, and it might position bld really well for people that want something a little more simple and stable. (But not ant)
I think Geert and I are a pretty big proponent of the KISS principle. Do one thing and do it well, don't throw in the kitchen sink.
I'm pretty sure we could make bld cook breakfast in the morning, but we won't. Now, if you want to write an extension to do just that, be my guest.
Thanks for the great feedback.
-
@gbevin said in bld advocacy ideas:
@ethauvin I've found that really tricky, since at first glance, the Gradle version there looks actually easier and more concise, until you actually have to evolve and work with it. That's been imho the most difficult thing to convey.
I wasn't looking at making it more concise. I could have made the bld version a lot shorter, but I purposely made it the exact same number of lines. I was just trying to showcase what you can do in bld.
But I can see your point.
-
@ethauvin that was one of my takeaways from that Reddit thread a while ago. Many people seem to just look at the code verbatim and do a direct comparison, not taking into account what the implications are and how it actually can be used. It's a really tough nut to crack when trying to show of what's possible with bld imho.
-
I totally underestimated how hard it would be to spread the idea of a new Java build tool. I'm struggling with JeKa too. It's a bit different, so now I’m focusing more on the simplicity aspect (concise configuration).
That said, I still feel there's potential for wide adoption. I’ve seen some great reactions to ideas about Java scripting (e.g., Inside Java Newscast #63).
To make an impact, maybe we need a "manifesto" explaining why Java needs a new build system. It should stay neutral but could mention tools like bld or JeKa as examples.
One comment that stood out to me:
"Java won’t feel truly attractive (or 'sexy') to new developers as long as it requires XML or Kotlin DSL for builds."What do you think about this idea? Where would be the best place to publish it? And how can I find co-authors?