Bluejack ([info]bluujack) wrote,
Another thing these three tools have in common is that they contain considerable amount of implicit logic. Great shortcuts if you're the guy who wrote the tool. A minefield for everyone else.

In Make, for example, I had a very sophisticated makefile that I was very proud of; it handled support for two different languages (C, Java); it handled builds across N directories of arbitrary depth; it handled builds for library objects, applications, and supported both static and dynamic linking of said applications.

And then, after I completely forgot the details, I made a change somewhere, and it stopped working.

Why? Because it had only ever worked by accident. The rules I thought were doing a core part of the job were not doing the job at all: implicit rules were. When I added some tweak to something, that I thought was just an option to the explicit rule, it blocked the ability of the implicit rule to do its job.

Bison and Flex are much the same: they're doing all kinds of nifty work for you, which means you actually have no idea what they're doing or whether it's going to actually work. And these tools are just about as undebuggable as Make.

(Not that I like ant or maven any better, to tell you the truth. Maven is just as implicit as make, only it has a philosophy behind it: "convention over configuration". Pshaw. And Ant might as well be perl.)


Advertisement


(Read 6 comments)

Post a comment in response:

From:
Help
Identity URL: 
Username:
Password:
Don't have an account? Create one now.
Subject:
No HTML allowed in subject
   Help
Message:
 
Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…