5 ms·
Horses for courses, surely? I've never coded in Lisp except for one undergrad assignment in the early 90s... but I know it's good for functional, heavily recurs
by 3chelon 9y ago
Horses for courses, surely? I've never coded in Lisp except for one undergrad assignment in the early 90s... but I know it's good for functional, heavily recursive, algorithmic type problems.
But the world is far messier than that and if, like me, you come from a systems or real-time programming background then Lisp basically did not exist and you were using C-based languages (or even assembler) that were close to the metal so you could code interrupt handlers, asynchronous I/O drivers and the like. Obviously trying to tackle those kinds of problems from a Lisp-centric viewpoint would seem slightly crazy, so why bother?
- Jach 9y agoSounds like you coded in Scheme, not Lisp. (https://news.ycombinator.com/item?id=16584082 https://news.ycombinator.com/item?id=16584082) Common Lisp was designed for the messy real world, it's a workhorse, even at the cost of 'prettiness' that Scheme fans like to point out as a benefit for Scheme. So it's been used (either directly or to output a lower level machine code) for all sorts of real world things like OSes (see the Lisp Machines), video games, CAD systems, Mars rovers (subject of this submission), etc... From the most basic level of syntax, something like https://github.com/TeMPOraL/cl-wiringpi2/blob/master/examples/blink.lisp https://github.com/TeMPOraL/cl-wiringpi2/blob/master/example... doesn't seem that different to me than the C equivalent I've written for embedded devices.
- 3chelon 9y agoYeah, I remember very little about it except a _lot_ of parentheses. Interesting to hear it is a lot more "real world" than I thought - seems my understanding is flawed... but equally interesting that I was unaware of it, having never once encountered it in my entire career.
- zeveb 9y agoYeah, it's crazy what a well-kept secret Common Lisp is. I keep on running across situations in other languages where Lisp has been sitting on the solution for decades (literally) and yet no-one knows! Despite how much I like it, it's really not the Platonic ideal of languages: it has its warts, and it could develop even further than it has. But as it stands it's an amazingly good language which could be used for anything from writing operating systems and device drivers to web browsers to text editors to expert systems. I really don't understand why it's not more popular.
- kazinator 9y agoThe average engineer has some dozen things they encountered in their career, and everything else is something that they haven't encountered once. Off the top of my head, I've never encountered such tools as: Visual Basic, PowerShell, VHDL, and IBM 370 assembly language.
- wglb 9y agoAh, but think of what you are missing!
- deleted 9y ago[deleted]
- mtreis86 9y ago"lisp is one of the least functional languages ever created" -Doug Hoyte https://letoverlambda.com/index.cl/guest/chap5.html#sec_1 https://letoverlambda.com/index.cl/guest/chap5.html#sec_1 Here is the source for how Unix interrupts are handled in SBCL https://github.com/sbcl/sbcl/blob/master/src/code/signal.lisp https://github.com/sbcl/sbcl/blob/master/src/code/signal.lis... And the manual for handling async threading in SBCL http://www.sbcl.org/manual/#Threading http://www.sbcl.org/manual/#Threading