+1!

I have never in all my years using make had trouble with tabs.  But the stuff
mentioned here, on the other hand.....

--- [EMAIL PROTECTED] wrote:
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2356
> 
> *** shadow/2356       Wed Jun 27 08:46:48 2001
> --- shadow/2356.tmp.5254      Wed Jun 27 08:46:48 2001
> ***************
> *** 0 ****
> --- 1,48 ----
> +
>
+============================================================================+
> + | There are much better reasons that makefiles are evil                    
>  |
> +
>
+----------------------------------------------------------------------------+
> + |        Bug #: 2356                        Product: Ant                   
>  |
> + |       Status: NEW                         Version: unspecified           
>  |
> + |   Resolution:                            Platform: All                   
>  |
> + |     Severity: Minor                    OS/Version: All                   
>  |
> + |     Priority: Other                     Component: Documentation         
>  |
> +
>
+----------------------------------------------------------------------------+
> + |  Assigned To: [EMAIL PROTECTED]                                 
>  |
> + |  Reported By: [EMAIL PROTECTED]                                           
>    
>  |
> + |      CC list: Cc:                                                        
>  |
> +
>
+----------------------------------------------------------------------------+
> + |          URL: http://jakarta.apache.org/ant/index.html                   
>  |
> +
>
+============================================================================+
> + |                              DESCRIPTION                                 
>  |
> + The infamous tab bug mentioned in the introduction has been fixed for years
> in
> + modern makes, and in any case, it's inessential.
> + 
> + Make's inherent evils include
> +     It's almost impossible to tell what rule is going to apply
> +     It encourages adding obscure pseudo-dependencies that exist for 
> technical
> reasons
> + only
> +     Macro expansion rules are hairy as hell and vary from flavor to flavor. 
> In
> + particular, it's almost impossible to tell what's going to be expanded when
> +     Underlying much of this is a poor distinction between declarative and
> imperative
> + programming.  Specifying dependencies is meant to be delarative, but the
> actions
> + to be taken are inherently imperative.
> +     There are the usual problems with evolving yet another ad-hoc turing
> complete
> + language over years -- see also the shells, awk, visual basic . . .
> +     Actions are inherently platform dependent, while dependencies are less 
> so,
> + leading to mammoth sets of rules in cross-platform environments.  The
> problem
> + here is that people tend to try to solve all cross-platform problems with
> make,
> + instead of abstracting build mechanisms and leaving dependencies to make. 
> Which
> + brings us to the most fundamental flaw . . .
> +     Make doesn't even handle it's core task of tracking dependencies that
> well.  Or
> + at all.  You have to tell it explicitly that module A depends on module B,
> then
> + keep that information in sync with the code.  Some modern makes fix this,
> at
> + least on an ad hoc basis, but the sad, evil fact is that for years and
> years
> + make did nothing of the sort.  The best you could do was run some other
> tool to
> + generate a makefile, and hope make knew enough to take the changed makefile
> into
> + account (which it usually didn't).  This in turn led programmers to believe
> that
> + tracking dependencies was a hard problem, and perversely that since it was
> a
> + hard problem, you needed a "powerful tool" like make to help you.
> + 
> + If you condense any of the above, or your own opinions about make, into a
> couple
> + of polite but scathing paragraphs, I think the introduction will be the
> better
> + for it.
> \ No newline at end of file


__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

Reply via email to