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 <harry6...@gmail.com> wrote: > On Mon, 02 May 2016, FRIGN <d...@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. >