Hacker News new | ask | show | jobs
Postmodern Programming (github.com)
45 points by anandabits 4641 days ago
9 comments

I didn't read beyond the first few sections of the post, but it wasn't really clear to me how it relates to postmodernism (ctl-f "modern" didn't turn anything up either). If you're interested in a paper attempting to actually relate postmodernism and programming, the best I've read can be found by querying your local search engine for [Notes on Postmodern Programming].
Yeah, it doesn't have a whole lot to do with postmodernism. On the other hand, it is a useful and practical guide to refactoring imperative code to declarative form, with all the associated benefits.
This is what happens when you are drunk and can type 150 words per minute. :)
I misread the titles as "Postmortem Programming" and clicked on it...
Sounds like your reading hit a dead end.
You're not the only one.
you too :)
Can someone give a quick TL:DR because I honestly can't make sense of what this trying to say.
TL/DR: It's apparently the full text of a talk in which he's basically that saying declarative programming, having its roots in mathematical logic, is an excellent tool for abstraction, the primary tool we as programmers use to manage complexity, and that he wishes he'd discovered it earlier in his 12 year career of commercial programming.

For the moment let’s think of it as “not imperative programming,” where “imperative programming” is you, the Grand Imperator, telling the program what to do. Declarative programming would instead make you the Grand Declarator: you instead tell the program what it is. And, with that, the program no doubt walks away enlightened. (Even if we don’t.)

All declarative systems are abstract, but perhaps not all abstractions are declarative. What makes an abstraction declarative?

some of those declarative solutions may well be qualitatively better than how we might be solving them otherwise—in fact, I think that’s extremely likely

Declarative code is simpler. It’s usually easier to read, in my experience. It’s smaller, if more spread out; easy to get around. It’s more reliable simply because each component has fewer moving pieces which could fail, and fewer joints between them that could break. On top of all of that, the lack of ordering means that declarative code is immune to race conditions, the single largest issue with concurrency. And it is clearly the direction that the market and the industry is heading in: there is a lot of ongoing, exciting research being done in declarative languages and systems and how to survive in an imperative world.

Nice turn of phrase, Grand Declarator, sir! (Personally, I have been getting right in to ABNF of late - generating regex and API systems and such based upon that.)

Is this article by any chance related to the pomo generator?[1]

[1] http://www.elsewhere.org/pomo/

I think this article might well be the kick in the pants I needed to get into i0S/OS X programming. It and the new i0S 7 look.
seems as though it's as good a time as any to remind us all that programming has been post-modern for at least 11 years http://homepages.mcs.vuw.ac.nz/~kjx/papers/nopp.pdf
ugh, postmodern in the title is link bait in one manner, nauseating in another.

If he had replaced "post modernism" with the term "post structuralism" he would have realised he should not write the piece from the get go.

i remember i read an article under the same title, that said more or less

that postmodern programming, is googling for code snippet to paste in your ide or framework

and all the effort you will do is configure and glue stuff together

sounded cool at the time

I think you're referring to this maybe:

http://www.wall.org/~larry/pm.html

Perl, the first postmodern computer language

Though its a bit deeper than your summary so perhaps not.

While I have not read the OP (yet... it's looking kind of long), the title immediately reminded me of Larry's talk/essay. Which I have read, in the past, and considered quite worthwhile. Thanks for digging up the link to that.
> and all the effort you will do is configure and glue stuff together

I've been assigned to my first Java project at work, and during training they would show how much you could do without 'coding'. I guess editing XML files and inserting program code in the strings of said XML files isn't technically 'coding', where I guess 'coding' means writing scary Java code with, you know, type checking and relvant error messages and stuff. Why I need to be able to redefine the class name of our 'beans' internal to the working of our system using a user editable configuration file is beyond me.

/rant

Oof! I dealt with a SASL and CAS system that had much of its flow control built into XML strings. Yeah, you may not have to "compile" things, but you end up with a system where everything is a runtime exception. I believe this style of coding was referred to as "inner platform effect" by Martin Fowler.

Glad that I'm far from that project now.

Inner-platform effect: A system so customizable as to become a poor replica of the software development platform

Source: http://en.wikibooks.org/wiki/Introduction_to_Software_Engine...

Sort of a poor man's Greenspun's tenth rule…

[see http://philip.greenspun.com/research/]

Really? I think that sounds like a dreadful way to code anything useful.
Although it's a pretty decemt way to get something up and running while you're learning to program.