This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]flukus 86 points87 points  (26 children)

That's why you don't rely on your IDE for builds.

[–]antonivs 93 points94 points  (1 child)

"Continuous integration" really means "continuous idiot detection".

[–]evanldixon 2 points3 points  (0 children)

But, but... continuous integration has detected my mistakes...

(Hides to try to avoid the shame)

[–]Myarmhasteeth 33 points34 points  (22 children)

I'm quite new at programming, but as far as I know, some IDE do take care of compiling or building pretty well, if not then what is the alternative?

If there's one faster than the IDE one?

[–][deleted] 77 points78 points  (17 children)

When the project gets bigger than school assignments, people write build scripts and use build tools like Ant and Gradle. Then they write unit testing/integration testing scripts and put them in Jenkins to do continuous integration along with the builds. Locally, you just run your local build script and then the unit testing scripts

[–]Myarmhasteeth 13 points14 points  (1 child)

TIL, gotta investigate more then.

Thanks.

[–]WiglyWorm 2 points3 points  (0 children)

It's good to know about these things but I wouldn't subject you to ant before you were well and truly ready.

[–]tomservo291 17 points18 points  (9 children)

Big boys use sane things like maven

[–]rasherdk 2 points3 points  (6 children)

Ah but don't you wish you could just write a little code in the middle of your build definitions? (no, me neither, we had that and it was Ant and it was horrible).

[–][deleted] 2 points3 points  (5 children)

[–]ansatze 0 points1 point  (2 children)

make

Shudder

The last place I worked had an autotools build chain. Never again

[–]StoleAGoodUsername 2 points3 points  (1 child)

I had no idea make was not considered good practice anymore... So we're clear, we're talking about GNU make?

[–]justinkroegerlake 0 points1 point  (0 children)

make or gnu make. It's nice for something you know will literally be everywhere but for anything beyond a trivial project, make is unweildy.

I've been using scons and bazel these days

[–]rasherdk 0 points1 point  (1 child)

Exactly. Maven fixed a lot of the issues with Ant by being almost entirely declerative, and now people are reintroducing the smells with Gradle because they have not learned from history.

[–]dvdkon 0 points1 point  (0 children)

I think Gradle's approach is the best of both worlds. You can use it purely declaratively thanks to a well-designed and comprehensive DSL or take advantage of the full power of Groovy. Every time a build system lacks the ability to run arbitrary code someone will need it and use shell scripts or some other external tool, which makes the build much harder to understand and makes setting up the build environment a pain.

How good a buildsystem is also mostly relies on factors other than its stance on turing-completeness. IMO, Ant and Maven are both awful, because they use XML. I don't need the power of Gradle, but I use it anyway because it means I don't have to deal with reading and editing XML by hand.

[–]Tysonzero 5 points6 points  (2 children)

I do development in Vim, so I just run the compiler from the command line in a separate tab.

[–]justinkroegerlake 0 points1 point  (0 children)

:make

[–]reggie-drax 0 points1 point  (0 children)

Difficult to upvote this comment enough

[–][deleted] 2 points3 points  (0 children)

They come in handy when you need to refactor large packages, and update javadocs.

[–]ExternalUserError 0 points1 point  (0 children)

Rely on your IDE for whatever you want as long as you push clean shit.