WHS: Programming projects: wsh

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.

Design goals

More to come soon.

Download

To come

Copyright

BSD 2 clause. Contact me if you have any questions.

About me


valid html 4.01valid css 2.1 FreeBSD
Well, mostly valid :) And no Flash, no Java, for a fast website... This site is made using open source software, in particular FreeBSD.