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