5 ms·
How much experience do you have from C, Forth & Lisp? Spend enough time in these languages and you start seeing the world differently. Less syntax (when designe
by sifoobar 8y ago
How much experience do you have from C, Forth & Lisp?
Spend enough time in these languages and you start seeing the world differently. Less syntax (when designed well) doesn't have to be unreadable.
- fooker 8y agoHow much experience do you have with 10000 lines+ codebases written in Forth or Lisp? There is a reason people choose boring imperative languages for large projects. I did an internship at an 'Big 4' company which (from folklore) had a moderately large server written in Haskell, the codebase was a nightmare and eventually they ended up rewriting it in C++, which I believe they still use.
- sifoobar 8y agoNone, but that has very little to do with how capable the languages are in the hands of experienced coders. There's a ton of Forth being written in embedded circles, and several well known Lisp projects that are most probably even bigger. And that's fine, they can keep writing their big projects using dumbed down languages and fresh out of school code monkeys. But there is plenty of code written that doesn't fit into that description.
- fooker 8y agoSure, they are awesome languages. We are talking about readability though, which unfortunately means your code has to be readable by "fresh out of school code monkeys" and not just experienced coders.
- kazinator 8y agoSo the Haskell to C++ rewrite in your earlier example is supposed to be beneficial, because fresh-out-of-school code monkeys will understand it? How so if all they speak is JS and Python.
- fooker 8y agoSomeone only speaking JS or Python will have a significantly easier time with a C++ codebase than a huge Haskell codebase. You can have someone totally new to the project fixing bugs in a few days.
- lispm 8y ago10kloc is not a large code base for Lisp. There are much larger codebases for Lisp - some which have been maintained for decades.
- fooker 8y agoSure, but how many? I'd bet that that C, C++, Java or even Python has a numbers advantage by one or two orders of magnitude. Also, how many of these codebases attract new contributors regularly? That's a pretty direct metric for readability of a codebase.
- lispm 8y ago> I'd bet that that C, C++, Java or even Python has a numbers advantage by one or two orders of magnitude. That's a numeric argument, not a qualitative. Common Lisp is not popular in the mass market, but not because one can't easily write large applications. Something like Common Lisp actually was designed for the development of large and complex applications. If you develop a large C application, you could shrink by porting it to Lisp. Lisp's code density in larger applications is much higher than C and large C applications tend to reimplement half of what Common Lisp brings out of the box (objects, code loading, runtime scripting, automatic memory management, error handling, ...) - see Java. There are systems written in Common Lisp which are much larger than 1MLoc. Some applications like Macsyma easily reached already >100kloc in the 80s - vor example the commercial version with the GUI UI. Lisp Machine operating systems had around 1.5MLOC in the end 80s. I use a web server, which has a few 10kloc code. My development environment I use is a few 100kloc Lisp code. There are a a dozen Lisp implementations/compilers maintained, which have all >10 kloc, some have several 100kloc (especially the larger commercial ones). Historically there have been a bunch of databases, cad systems, etc. written in Lisp, which all had/have >100kloc, PTC sells a CAD system largely written in Lisp with >7MLOC Lisp code. Take for example the theorem prover ACL2: https://github.com/acl2/acl2 https://github.com/acl2/acl2 Roughly 4MLOC Lisp code. Maintained over almost three decades. Used in a bunch companies for verification of chip designs.
- fooker 8y ago