If you think about suckless as keeping things simple and not wasting
computer resources, this little story is relevant --
John von Neumann, when he first heard about FORTRAN in 1954, was
unimpressed and asked "why would you want more than machine language?"
One of von Neumann's students at Princeton recalled that graduate
students were being used to hand assemble programs into binary for
their early machine. This student took time out to build an assembler,
but when von Neumann found out about it he was very angry, saying that
it was a waste of a valuable scientific computing instrument to use it
to do clerical work.
Of course, now with many architectures and complexity of operating
systems, it's not practical to use machine language only, but the next
step above that would be a language like C and it seems to be enough.
Something better than using fancy (aka: complex) languages with
garbage collector, memory safeness, etc. is to formal verify your C
program[0]. There's even a kernel, seL4 that's been formally verified
to not contain certain bugs like buffer overflow and that kind of
stuff.[1]
The amount of work to assure that is many orders of magnitude higher
than simply writing the program, though. But I think it's a step in
the right direction for system critical software.
[0]
http://www.di.ens.fr/~cousot/publications.www/CousotCousot-Marktoberdorf-2009.pdf
[1]
https://wiki.sel4.systems/FrequentlyAskedQuestions#What_is_formal_verification.3F
On Mon, May 2, 2016 at 6:21 AM, Kamil Cholewiński <harry666t_AT_gmail.com> wrote:
> On Mon, 02 May 2016, FRIGN <dev_AT_frign.de> wrote:
>> Benjamin Franklin said this:
>> “Those who surrender freedom for security will not have, nor do they
>> deserve, either one.”
>> And this defines what it's all about.
>> C is all about freedom, and any measure a higher level language applies
>> is a cut in freedom while increasing "security". There's no way around
>> it.
>
> Pretty interesting take. However there's a big difference between the
> state and a programming language - you can easily choose the one you
> like, to get one job done, and you don't have to give up on another for
> a different job.
>
> I wouldn't write an OS kernel in Python, and I would never bother
> writing a webapp backend in C. If I were writing a compiler for a new
> language (even C-like), I would start in Python! Then rewrite the
> compiler in the target language, and throw away the initial Python
> implementation.
>
Received on Mon May 02 2016 - 12:35:50 CEST