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

Hey, thanks. :)

The problem with evangelizing the Right Way is that the benefits tend to come later; if you haven't experienced the pain of dealing with the Wrong Way's fallout once it hits critical mass, it seems easy to brush off. "SQL injection? Pfft, no one cares enough to attack my site." "Transactions? I only write one or two rows at a time anyway." "Templates? What's wrong with string formatting?"

Our profession is a bit lacking in context. Nobody believes the lessons of others. (Granted, we're so crazy that half the time we learn the wrong lessons.)

Still a young discipline, though. Maybe we'll grow out of it.



Not only true for web dev, true for all software related stuff. I listened to a podcast of a bunch of conferences held in the 90s about software. The most clever guy of the bunch did say something that stroke me as very true and very important, but so big and so scary that no one seem to see it: the simple fact that we have absolutely no idea about what the object "software" really is.

We know what are cars pretty well, and spaceships too. We know how they work, how to build them so they don't break easy, how to check for their health, etc.

But we have no firm grasp on software, we have no (economically sustainable) way to build them rationally and safely. Bugs are piling and the more we remove the more they are. No widely accepted method allow us to build software that has a quantifiable guarantee to work as planned under a fixed approximation interval. Etc. We programmers know that. Software development is at alchemy (magic) stage.

Funilly, this guy did specially point at OOP, saying that this was adding even more uncertainty to the mess. All that is well explained in SICP, and FP might be one of the strings we should pull to us out of the dark ages of software engineering. IMO.


Cars and spaceships built on existing engineering and physics principles. We've never had anything like programming. We can't even decide if it's a math, a science, or some kind of engineering.

We have languages with built-in async support (and some that fake it decently), languages with syntax for safe and unsafe pointer use, languages that bundle impurity away from everything else.

It's a slow process, since any new language has a massive uphill battle to gain any traction. But I think we're getting there.




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

Search: