Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The programming world is like this too, only worse

Much worse. I think the problem is magnified by our obsession with languages - overlapping subsets of syntax features that have highly intricate relationships with programming techniques (making certain techniques easier to implement, others-harder, regardless of problem domain).



Exactly right.

There is also the language == word on your resume' issue. If something new and cool comes out, people will resist it because they will have to give up their "10 years of Foo experience" for "1 year of Bar experience". Sad but true. (I just say on my resume, "X years programming experience". Except I don't really know how to pick X, because I have been programming since I was 5 and writing useful programs since high school. Slightly different than going to a Java training class and showing up to work everyday for a few years...)


Would you say that focusing on programming paradigms, rather than language implementations, would help to counteract this?


I think so. The big ones I know of being:

- dynamic object oriented (Smalltalk)

- homoiconic for compile-time metaprogramming (Scheme, Lisp)

- dynamic for runtime metaprogramming, like continuations (Scheme, Ruby, Smalltalk)

- functional (Scheme, Haskell)

- strongly typed (Haskell, Scala)

- logical (Prolog)

These are the ones I've come across, but there are more on wikipedia: http://en.wikipedia.org/wiki/Programming_paradigm


There's some overlap, as well as actor/message-passing concurrency (Erlang), dataflow (Prolog, Oz, etc.), constraint, vector-oriented (APL), etc. Probably a dozen more, depending on where you draw some fine lines. (See CTM for a good overview.) FWIW, Prolog is just as homoiconic as Lisp, and has compile and runtime macros.

Still, I was more wondering about teaching methodology, not enumerating paradigms themselves. What could be done to counteract the "standing on the toes of giants" effect?


I was more wondering about teaching methodology

If I understand correctly, I'd imagine teaching everyone to implement languages using a system like Ian Piumarta's COLA might do the trick. The point is to break open these black boxes of abstraction (even though black boxes are good sometimes).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: