[ email | About W.H.Scholten | WHS: programming projects » wsh | Engels: English version of this website ] |
wsh was developed based on an assembler for which I developed almost a complete programming language, so why not make that a new separate language?
A motivation to do this was especially to make a replacement for current shells: bourne/bash/korn/c-shells are all truly awful when used as a programming language. They suck in speed, they report errors badly or even just continue doing something stupidly despite an error, and they are extremely limited.
Programs I write for shells never work properly the first time, it's all very unintuitive and I often get weirdnesses (one method working fine in one version of the shell, not in another). Shell programming is also notoriously difficult to do portably over various (unix-like) operating systems, so I want to use wsh as a shell, make replacement (see further on), programming language for utilities and prototyping etc.
The goals are: small, fast as possible, useful and intuitive, proper error checking, proper diagnostics.
Another major suckage in programming is 'make' which suffers from similar issues as shells, such as TABs or spaces being treated differently in some places, and it does things differently than sh, e.g. conditionals, so you need to know 2 different programming types. Also 'make' is quite ungainly in concept... Most of the functions you want in a 'make' program are already there in a shell type program and build rules can easily be specified in a proper programming language, so combining them seems logical to give a system language.
Btw., even worse than any of these are autoconf and automake, as so often with gnu stuff they just embrace and extend even if it's stupid. Most of what's in those programs should be placed in compiler files as I noted many many years ago somewhere else already (possibly in discussions about EIffel in the late 1990s, I'd need to look it up). In case of autoconf: instead of each program running a 'configure' script to determine compiler capabilities (which is slow), such a script should only be run once and stored as a compiler-capability file, and updated only if a newer or different compiler is used or if other tests need to be done.
More to come soon.
BSD 2 clause. Contact me if you have any questions.
About me |
Nou, grotendeels correcte html :) En geen Flash, geen Java, voor een snelle website... Deze website wordt gemaakt met open-source software, i.h.b. FreeBSD.
Last modified: Tue Jan 28 03:56:22 CET 2014