> Get serious! awk is a standard unix tool and is part of every > linux distribution. It has been around for at least as long > the C programming language. We make no attempt to explain C > programming or even lisp programming to anyone, so why should > we need to explain awk?
three points: 1) perl, python, asp, javascript, etc are all part of any standard linux distribution as are several dozen other langauges like m4 (used by sendmail). though i've written commercial applications in over 60 languages and used unix for over 20 years i do not speak any of these languages. axiom uses only a few languages, lisp, C, some trivial shell scripts, latex and make. it also (currently) includes boot which is completely undocumented. i'd much rather reduce the number of languages need to understand axiom rather than enlarge the number. some are necessary (like lisp, spad, aldor) but some are optional (e.g. java in the aldor merge) and more properly should be done using existing tools. there are many feasible solutions to a problem. and there are many "convenient" solutions in many different languages. but solutions which expand the needed skill set for maintainers are much less desireable than ones which do not. as a policy i favor minimizing the number of languages used. adding sed (1 language), awk (a second), clever bash shell scripts (a third), java (a fourth), auto* (a fifth), simply reduces the number of people who can reliably maintain the system and increases the work required to port, possibly to the point of being impossible. 2) sed and awk are NOT standard parts of a windows distribution. again as a matter of policy we need to reduce the requirements so we can work across a larger number of systems. ideally all of axiom would run in common lisp and porting becomes a copy operation. C is only slightly more problematic. in fact, the key reason that axiom does not currently run on the mac is breakage caused by C. awk/sed/autoconf all seriously complicate the port issue. frankly i'd much rather see the tools devolve into lisp implementations. gcl, sbcl and clisp generate native exe files on windows and executables on linux. given that lisp is a full programming language and is integral to axiom why don't we write code that is trivial to port rather than add requirements that are certain to make axiom unportable? as a policy i favor doing things in lisp unless it can be shown that such a solution is impossible. in the future i'd make the same claim about using aldor (assuming we free aldor). 3) in fact i'm making every attempt to explain the lisp programs as you'll see in the eventual bookvol5.pamphlet file. it is NOT necessary to explain the language idioms but it IS necessary to explain what is happening in a block of code. the noweb script will be sitting in a standalone pamphlet in src/scripts. it will not appear as an integral part of anything to a future maintainer. so the future maintainer can reasonably expect to have a (possibly redundant) explanation of why this script exists, what it does, what data it expect to work on, etc. this is NOT the same as explaining the awk language constructs. i would argue that literate programming is a fundamental change in mindset that requires you to explain to some future maintainer how and why any new code works. he should be able to read the paragraph and know where this code fits as well as what it is trying to accomplish. that's NOT the same as explaining the awk/sed language. but it IS the whole point of literate programming. t _______________________________________________ Axiom-developer mailing list Axiom-developer@nongnu.org http://lists.nongnu.org/mailman/listinfo/axiom-developer