Live data from Hacker News

How knowing Lisp destroyed my programming career (2006)

coding.derkeiler.com

301–310 of 433 posts

Re: How knowing Lisp destroyed my programming career (2006)

#301

Earlier quoted context omitted.

There's a real tension in this field between capital-C Computer Science and the work of writing code for businesses. The business doesn't care about your toolset, probably. What they care about is solving a problem. I've met no small number of very gifted, very creative developers that had this same mindset -- didn't give a crap about the Cool New Language or pure CS, but really DID get excited about building connect…

It's like saying a doctor isn't doing interesting things if they're just content to apply medical knowledge to improve community health. The doctor is just using tools developed by other people.

I'd feel better about this if it weren't for the growing evidence that an awful lot of what we actually get is cargo-cult medicine - procedures that have been supplanted or invalidated, but are still widely used by non-research doctors who don't know better.

Obviously doctors are still good, and don't need to be doing research to make the world a better place. I agree that dismissing 'plumbing' programmers or 'rote' doctors would be a serious mistake. But... well, I can't help drawing some connections between programmers implementing already-broken security, and doctors putting in heart stents that don't actually help patients.

I don't think we're just being metaphorical here, I think research vs practice doctors often show the same patterns as programmers, for the same reasons. Creating new knowledge is neither necessary nor sufficient for keeping up with other people's knowledge, but we seem to be worryingly bad at keeping people who implement that knowledge up to date.

(Context on the doctors: https://www.theatlantic.com/health/archive/2017/02/when-evid...)

Re: How knowing Lisp destroyed my programming career (2006)

#302
post #47

Honestly curious why Lisp has so much admiration and praise on HN. I played around with Scheme some long time ago, read SICP, learned a lot. And I know Lisp inspired many programmers like the founder of Ruby. But I would not think of Lisp when it comes to solving day to day problems. I rather pick Python because it helps me solve all kinds of problems. There are many more solutions I can think of (Ruby, Node, Go, eve…

>why Lisp has so much admiration and praise on HN. I played around with Scheme some long time ago, read SICP, learned a lot

Just consider that, while being a very beautiful language, Scheme is different to Common Lisp.

If you are faced with doing a production system, you'll feel the benefits of Common Lisp, particularly now in 2018 where the tooling and libs are much better.

Scheme can do everything that CL can do IF you add a ton of extensions and libraries and stick to a particular scheme implementation. So you would have a "custom" platform. Where as with plain-vanilla Common Lisp you would have all these features but in a totally standardized way.

Re: How knowing Lisp destroyed my programming career (2006)

#303

On a tangential topic : I am intimidated by how myriad experiences with programming languages HN commentators on this thread have. I have been in this industry for about 8 years and am considered an above average developer in my current company. I have primarily worked with Java, while fiddling with others here and there. No experience with pure functional languages such as Lisp or Haskell. Am I missing out some impo…

You can get good work done in Java (where good means providing value for your company), but sticking to any one language or paradigm means that you will miss out on the lessons from others.

Lisp is not a pure functional language, by the way. It's very multi-paradigm and has one the best object and exception systems ever designed. Not only are all these excellent features available to you, but they are available to you at the metalevel as well.

Re: How knowing Lisp destroyed my programming career (2006)

#304
post #235

Earlier quoted context omitted.

I imagine this varies, but for me most of college was very much about the pure bits of computer science - how things tick, so to speak. But very little of your day to day at most enterprises is about writing new versions of data structures, or academic-level operating systems/database work (obviously there are some roles in the industry where this is the task, but it's not the majority). That's not to say learning it…

Thank you for your thorough reply. Colleges are under fire, even from their own ranks, by people whom I believe confuse training with education , but it's clear that's not your issue. It sounds to me like there needs to be some sort of deep-dive "onboarding" program where new hires can work on a curriculum of projects and learn the SOPs of the organization. Colleges could take some of it on, of course (testability an…

It sounds to me like there needs to be some sort of deep-dive "onboarding" program where new hires can work on a curriculum of projects and learn the SOPs of the organization.

My employer does exactly this, both within the R&D organization and within our services/consulting group. All new hires from college do a 3-4 week "boot camp" where they do all the common indoctrination stuff, from HR paperwork, to learning the shared tools, to a mini programming project.

Expecting a college graduate to show up ready to contribute like a 5 year veteran is ridiculous. As the parent message says, college is mostly for education, not training. Internships and co-ops fill some of the gaps, but high quality internships are few and far between.

Re: How knowing Lisp destroyed my programming career (2006)

#305

Earlier quoted context omitted.

> Maintaining a distinction between "actual software development" and "plumbing" is elitist... Is the distinction between an aerospace engineer and aircraft mechanic "elitist"? Which would you prefer to have designed the next aircraft you fly in? Plumbing is really what the vast majority of us do. With varying levels of skill, we glue various pre-written libraries and packages together with a bit of business logic, s…

I could go and say that the aerospace engineer is also just doing "plumbing". The engineer is not going to design an engine for instance. "All" he does is specify what kind of engine he would use and then plug it to the fuel system and the wing structure. The engine was designed by someone else at a different company most likely. (Example: the Airbus A320neo uses PW1000G turbofan engines made by Pratt & Whitney. "neo…

From what I read on /r/engineering, a lot of engineers complain that their jobs look like what you described - compiling together parts from different vendors' catalogs. A lot of people are resentful that they get to use maybe 2% of the cool math-based knowledge they got in university. It looks very similar to the resentment a lot of CS grads working in software engineering are experiencing.

Re: How knowing Lisp destroyed my programming career (2006)

#306
post #6

The conclusion was inescapable: the problem wasn't Perl or C++ or Java, it was me. I just wasn't a very good programmer any more. Lisp's power had made me complacent, and the world had passed me by. Lisp can't help you if you're too smug for your own good. Disclaimer: I'm a Lisper.

See http://wiki.c2.com/?SmugLispWeenie for an in depth view of the phenomenon.

Re: How knowing Lisp destroyed my programming career (2006)

#307

Earlier quoted context omitted.

It really depends on some pretty subjective values held on faith, that position, power, and profit ought to be shared.

Or, as seems more accurate in this example, subjective belief that anyone should get arbitrary amount of praise for just showing up, instead of having to earn it through the process of honing and applying their skills.

In my experience the innovators must toil in obscurity because they see a vision that others cannot yet see, until the thing is realized.

Then the prototypes get handed off to the main engineers to run with, and support is provided. By the time the thing sees production usage, the original inventor has long since moved onto solving other problems on the horizon.

Praise is attributed to the last and loudest to have touched a project. Innovators are deeply satisfied by that and don't need the praise because it actually gets in the way.

Re: How knowing Lisp destroyed my programming career (2006)

#308
post #260
post #166

Earlier quoted context omitted.

Lisp user base is so small enough that these categories largely look pointless to people outside. For all practical purposes CL, Scheme, Clojure and Elisp are all lisps.

> For all practical purposes CL, Scheme, Clojure and Elisp are all lisps. Since only CL and Emacs Lisp can and do share actual Lisp code, I call only them Lisp for practical purposes. For 'unpractical' purposes - they share no source code but are influenced by practical Lisp - , Logo, Javascript, Ruby, Clojure ... are also Lisp.

>>Since only CL and Emacs Lisp can and do share actual Lisp code

But what exactly is 'actual lisp'. I mean what is this strict definition?

Forgive me, I understand calling Scheme and CL as same might feel like saying Java and C++ as same. But one would be right in saying Java and C++ both come from a C based paradigm.

On the same lines one could say CL and Scheme come from lisp paradigm. At this point in time both communities compared to any major language community are so small that one could refer to both as Lisp.

Re: How knowing Lisp destroyed my programming career (2006)

#309
post #187

Earlier quoted context omitted.

*how many languages would have given you [the luxury of programming effectively] for twenty years? C++ doesn't qualify, to my mind, because the language has had many iterations and also because, as the post's author points out, writing C++ in the early 90s was not always a pleasant experience. Python and even Perl are good contenders, as they have both been relatively stable languages. I'm not sure Java counts - Java…

I know that Lisp has been largely stable, but are you sure it hasn't changed much? Programming paradigms advance, we didn't even have unit tests or continuous integration 20 years ago (at least not widely adopted in the industry). I find it hard to believe that even a Lisp programmer would be completely "static" across 20 years, i.e. the code written 20 years ago would be truly similar to the code he writes now. So I…

I was paging through some old symbolics lisp machine code the other day and while I found some subtle differences in style, it was not so different from modern CL code. I think the differences that are to be found are less about the way one writes lisp and more that these days people make use of "standard" things like quicklisp, alexandria, fiveam, and other utility/portability libraries that didn't exist back then.

Edit:

I suppose a major change was that back then, CLOS was not yet part of the standard. There was a competing system being used at the time called flavors that had a lot of the same features. No one uses that anymore to my knowledge.

Re: How knowing Lisp destroyed my programming career (2006)

#310
post #25

This is from 2006 though. Since then functional programming has picked up a lot of steam again, and I'm pretty sure having been a lisper for 30 years gets you good jobs. If not in Lisp, haskell, F#, clojure or whatever...

Keep in mind there's a part of the Lisp crowd that prefers loop and setf over more functional idioms. Unlike many other languages, Lisp is good for writing functional code, but people tend to forget that it's also a pretty kickass imperative and object-oriented language.
Post reply on HN