3 ms·
It seems like there would be a large space (that's sidestepped here) between learning basic syntactic differences and 'mastering' Lisp. Are there not novel conc
by westoncb 5y ago
It seems like there would be a large space (that's sidestepped here) between learning basic syntactic differences and 'mastering' Lisp. Are there not novel concepts (outside of syntax) which programmers struggle with in that space? And does gp's comment about needing to learn 'restraint' from experience not apply to that middle space too?
IME if you were diligent about only hiring very smart + intrinsically interested programmers, the kind of outcome you're describing might be realistic. But I don't see this going well if you draw from the large pool otherwise available of more paycheck-motivated programmers who may or may not have a strong grasp of conceptual underpinnings of programming languages.
- reikonomusha 5y agoIn anything, Lisp included, there are difficult concepts to comprehend. You can throw a dart and it’ll probably land on an interesting and difficult subject. throws dart How does finalization of objects in a generationally garbage collected implementation of Lisp work? throws dart How does a local dynamic variable interact with a new thread being spawned? throws dart What is a “three-comma macro” and how do I write one? You get the picture. Lisp has plenty of concepts that you can spend ages mulling over. But I contend that Common Lisp is in a sweet spot where it’s not particularly dogmatic about those concepts and as such don't consistently present themselves as hurdles to learning the language and being productive. Honestly the biggest hurdle of Common Lisp is that Emacs is the #1 doctor-recommended solution for editing Lisp—in the open source world at least. Paycheck programmers are “easier” to teach in fact because they don’t care about the “zen” of Lisp or any of that. Tell them the rules, tell them what code to mimic, and tell them what issue tickets need servicing. If they’re otherwise fine programmers, they’ll make some mistakes, but those mistakes get ironed out during code reviews, and they happen less and less frequently. But of course, the “intrinsically motivated” programmers are likely to produce better solutions to problems more consistently, and I try to hire for that regardless of the language.
- westoncb 5y agoThat makes a lot of sense.
- e12e 5y ago> What is a “three-comma macro” and how do I write one? Had to look that up: https://www.cliki.net/Three%20Comma%20Programmer https://www.cliki.net/Three%20Comma%20Programmer Are there genuine cases where you need a sigle "three-comma" macro, rather than layering a handful of simpler macros?
- pfdietz 5y agoI always break up that sort of thing using auxiliary functions. It's much more understandable.