On Fri, 25 May 2018 17:34:08 +0100
Peter Steele <[email protected]> wrote:
>
> Had a quick look at Bazel from Google, sounds like an interesting
> concept. Multi language build system. This seems to match the
> ethos  of netbeans quite well (being multi language). 

Problem with Bazel and Buck, is they both have python bits... ew...
Python 2.7 of all things in Bucks case, not sure about Bazel. Which
maybe necessary for building python not sure.

    Java 87.4% Python 4.1% Shell 3.5% C++ 3.5% Smarty 1.4% HTML 0.1% 
https://github.com/bazelbuild/bazel

    Java 88.1% Python 6.5% JavaScript 3.1% C 0.9% Objective-C 0.6%
    Shell 0.2% Other 0.6% 
https://github.com/facebook/buck

For Netbeans I think a more pure Java dependency would be better. At
least from the building perspective. Both Ant and Gradle are mostly
Java, less the Groovy parts of Gradle. Ant is pure Java just has
legacy deps I hope go away.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61894

But Groovy is built on Java so its basically Java still. Maven does not
even push its own jars to Maven repos... That part cracks me up, so you
get stuck having to generate Java code from Mavens deps nothing else
uses, modello and plexus. Thus far the ONLY Java code generator I
cannot build nor get to generate the java files from their other format.
https://github.com/apache/maven/tree/master/maven-core/src/main/mdo

If they pushed their own jars to maven repo, I would not need to
generate that stuff and have an alternative way of building maven. Not
sure if Gradle does that. But its funny Maven doesn't eat its own dog
food. No maven pom.xml or jars in Maven repos. Not that I have seen.

> I don't know how established it is in the open source community but
> it could be something popular in the future (c/c++ build systems are
> all horrible!)

The FOSS world has been taken over by Meson...
http://mesonbuild.com/

Most any FOSS project I come across for C/C++ is moving to or has moved
to Meson. Look around and you will see that trend. I personally prefer
CMake, as Meson is python. Plus CMake can do make or ninja, which most
speed of Meson in ninja vs make. Also CMake has CPack to easily create
Linux packages or other, rpm, deb and tar.gz of the binary built
project.

I am not a big fan of Meson, mostly due to its python aspects. Bit of a
pain in Travis. Plus it is just a wrapper. It uses make or ninja for the
real building. I rather see something that does not use any of that.
Which is the one thing that all Bazel, Buck, and Gradle have in common.
Pro and con, but they do not spit out makefiles, or ninja.build, etc.
That is a new approach and I think more next generation.

Do we really need makefiles or ninja.build? If the build system is
smart enough. No intermediate format should be needed.

Downfall, Bazel and Buck only target C++ and have nothing for C. I
assume because both Google and Facebook dislike C and favor C++ over C.
Though C++ at Google got so hairy, GoLang was the result... But neither
seem to be looking to add C support. Though mostly just a difference of
compiler most the rest would carry over. But both lack C support.

Seems only Gradle has support for C. Going forward I may experiment
with replacing Meson and/or CMake with Gradle. The holy grail would be
1 build system for any language. Given I do Java and C, if Gradle can
do  both well. That maybe the way to go.

Meson, CMake, and the awful Make are the worst choices for Java. Next
to building the JDK itself or other like GraalVM. If Gradle keeps being
furthered, maybe it could become that for JDK and other stuff like
GraalVM as well. Ditching the make stuff.

P.S.
I have like 2 minor projects in Gradle. I have a bunch of legacy stuff
in Ant. I have nothing in Maven. I have 2 current projects in Meson and
2 in CMake, all 4 C. It is a pain to deal with multiple build systems.
Though each have pros and cons. Hardly a big Gradle fan. But it does
seem to be rising to the top.

-- 
William L. Thomson Jr.

Attachment: pgpP1EhkyMRl5.pgp
Description: OpenPGP digital signature

Reply via email to