10 ms·
The article mentioned the value of static typing for "ahead-of-time more-correct programs" and "faster or leaner programs", but overlooks an even greater contri
by georgia_peach 4y ago
The article mentioned the value of static typing for "ahead-of-time more-correct programs" and "faster or leaner programs", but overlooks an even greater contribution: being able to quickly understand unfamiliar or ancient long-forgotten code without having to run experiments on it or call someone out of retirement.
It's the difference between having a plain cadaver, completely drained of its life fluids, and having one where every empty tube, regardless of size, has been labeled with something like "blood, to heart" or "lymph". If you aren't intimately familiar with human anatomy, the latter is an immense time saver.
Most software that has been continuously developed over a long period of time is either C or C++, even though Lisp predates both by over a decade. There's a reason for that.
- medo-bear 4y ago> Most software that has been continuously developed over a long period of time is either C or C++, even though Lisp predates both by over a decade. There's a reason for that also a reason for memory leaks :)
- georgia_peach 4y agoI run hundreds of C/C++ programs on a daily basis. Many of these have been running for months on end, yet my memory chart remains a flat line. Can the Mossad hack me? Sure. Would Lisp stop them? Probably not. Ron Minnich gave a talk a few years back titled, "If You Trust Your Computer, You're Crazy!" How many of Ron's points do Lisp & Rust fully address? By my count, zero.
- medo-bear 4y agothey might make the job harder
- pjmlp 4y agoThe reason is called free beer UNIX V6, with C compiler on the box, and the subsequent POSIX specification. Additionally, people keep forgetting that C++ was born on the same building as them, thus rode on their wave as companion in crime. Just like there is a reason most Web software uses JavaScript on the browser.
- georgia_peach 4y agoI've seen more VB (1991, proprietary) programs than Lisp programs. I've seen more Delphi (1995, proprietary) programs than Lisp programs. Using a jumble of symbols language without any text hint as to what they are, or even when they run, is a crippling tax on scale--be it LoC, timeframe, or contributors. It's the same reason why people are flocking to TypeScript. And I like Lisp--as a not-systems language.
- pjmlp 4y agoAnd yet LispWorks and Allegro are still in business, go figure.
- mepian 4y agoYou can specify types in Common Lisp just fine if you so desire: https://lispcookbook.github.io/cl-cookbook/type.html https://lispcookbook.github.io/cl-cookbook/type.html
- georgia_peach 4y agoYes, I know this. Most people on HN know this. When most of the base libs, built-ins, & legacy code don't declare types, static typing loses a lot of its value. In something like Go/Pascal/Java/Rust/C, if I introduce an impedance mismatch during a re-factor, the compiler catches it in seconds or less, and can tell me every file & line to adjust. In classic Lisp, this becomes a runtime error, and it can be days/weeks/months/years (if ever!) before the bugs are shaken out. In typed Lisp, it's a split between the two. Splitting the difference for the sake of a legacy codebase (like PHP->Hack), or because you've had a language thrust upon you (Javascript->Typescript) is a reasonable choice. To double-down on a predominantly type-declarations-optional language in 2022 is nuts. Lisp is good, but it's not that good.