GNU Autotools are one of the central parts when you want to
develop software with the final aim of world domination or at least world
scratching. But when I tried to use them, my makefile and unix wizardry led me
very fast to the obstacles and borders of autotools, making me to review and
patch the code for my needs.
So I was starting a git to import the latest libtool code, that made was
my first anchor point to change some of the real bad effects autotools
sometimes have.
Actually I tried that several times in the past but always gave up after a few
hours watching code that was nearly not documented, had no entry points that
were able to be found fast and absolutely no documentation about or
development guidelines.
That was hard: Such a prominent Software, so hard to read, so hard to
understand, so hard to get involved. I thought these times were gone, but
they aren't.
Let me show you an example for this: After finding out how to read and modify
the libtool main code that was found libltdl/config/ltmain.m4sh (not
very obvious,is it?) my real problems could be found there in a function called
func_mode_link at line 4292 (in my current version). Hmm, well that
bad, that file is quite long. So its quite hard to read. But that was not the
problem. I'm used to work on long files, and its easy to tag such functions,
so, who cares.
The real problem is that this function is over 4300 lines long! In words:
fourthousandandthreehundred. I don't know what you think, but thats definately
too long for me.
Ok, there are some inline comments here and there, but what is the use of
them, when I first need to overview over 80 pages of screen output (assumed
about 50 lines on one screen). That isn't a short story anymore. That is some
days of work, just to find the lines of code you are searching for and that's
not the kind of software I really want to use.
Well, what can we do. When we want to dominate the world, its hard to go over
such a tool, as it provides the abstraction for many systems. But I think we
should really start to redesign this usefull tool of software
development.
What do you think ... ?
Keine Kommentare:
Kommentar veröffentlichen