Having a bit if fun on stackoverflow

Idan Arye GenericNPC at gmail.com
Thu Jun 27 13:20:59 PDT 2013


On Thursday, 27 June 2013 at 04:15:27 UTC, H. S. Teoh wrote:
> Anything else is just the formula for endless frustration, 
> untraceable
> bugs, and project failure. If your IDE's build function doesn't 
> support
> full end-to-end reproducible builds, it's worthless and should 
> be
> thrown out.

The IDE's build function is not defective - it's just incomplete. 
It does what it does well - the problem is that what it does is 
not enough. Most IDEs I know rely on plugins to do advanced 
stuff. So if you insist on using the IDE's build function, you'll 
want to get a flex plugin for your IDE(hopefully there is one...) 
and that plugin will enhance the IDE's build function to 
auto-generate the .yy.c file, and if it's a good plugin it'll 
also enhance the IDE's clean function to delete that file and/or 
it's SCM interface to ignore that file.

It's a shame, really - IDEs could do so much more. A few years 
ago I programmed in C#, and I was using Vim. I used MSBuild as my 
build system - it's the build system Visual Studio runs behind 
the scenes, and it's buildfiles are the .csproj files. Those 
.csproj files are basically XML. VS makes them very messy, but 
after you clean them up and understand the format they look 
pretty much like Ant's build.xml files, and you can use them like 
a proper build system.

I used those .csproj files to automate the build process, the 
testing, and the deployment. But I could only do it because I 
broke away from Visual Studio! I doubt it would accept those 
.csproj files after I cleaned away all the metadata it put 
there...

So people who use VS's build function are actually using a decent 
build system - but they can't utilize it to it's fullest! VS has 
menus that allow you to change some paths and switches, but you 
can't do things like one target that does multiple tasks 
sequentially. So, Visual Studio uses a build system that could 
automate our .lex file - it just forgets to give you access to 
that functionality...

> Or rather, you throw the IDE out the window, 'cos its build 
> function is
> defective. :-P

The IDE is a software - you can't *physically* throw it out the 
window.

> Then they only have themselves to blame when they face an 
> endless stream
> of build problems, heisenbugs that appear/disappear depending 
> on what
> extra commands you type at the command prompt, inability to 
> track down
> customer reported bugs in old versions, and all sorts of neat 
> and handy
> things like that.

If they work alone on the project, it's their problem. If you 
need to join that project - now it's your problem as well. Good 
luck with introducing a build system to an existing project and 
making everyone use it...


More information about the Digitalmars-d mailing list