Hacker News new | past | comments | ask | show | jobs | submit login

MVC in Web frameworks won by being watered down to almost nothing, repackaged, and sold in a manner that appealed to non/novice/intermediate devs. They were told that if they put their code in these tightly-coupled boxes, then they wouldn't have to worry about all those hard things like design or coupling. Instead, development could almost be a process of coloring by number so that anybody could do it. And they were told it was good design because it was MVC, which is an acronym that smart people talked about long ago, so it must be good. And they were told they were being saved from those other developers who have the gall to do things differently!

I cannot overstate the appeal of a prescribed architecture. This removes some of the essential anxiety a newer developer has when building things by narrowing the available choices. Rather than fret about where to put things, and how much objects should do, they have two neat categories to choose from. The problem is a novice/intermediate dev often knows they should be thinking about the design, but they don't know where to put things, so they waffle about things rather than just putting it somewhere and trusting themselves to fix it when they're wrong.

Combine a prescribed architecture with a relentless marketing campaign that repeatedly tells developers exactly what they want to hear: "blog in 15 minutes!", "design is wankery, just use the framework!", "testing just isn't worth it, it's too hard".

This is anti-intellectualism. It advocates ignoring software engineering principles established over the past few decades, and ignoring design feedback in the name of pragmatism.

Don't entrust your skills to a crappy framework. It will fade, much like the Web.

    Don't entrust your skills to a crappy framework. It will fade, much like the Web.
I've been lambasted for my agreement with that statement. But, regardless, I'll go so far as to suggest that one shouldn't entrust their skills to a framework at all. They're all crappy.

Yes, they are.

The near-religious association devs have with frameworks seems to have almost displaced the association they had with languages. I'm not sure what prompts it, but frameworks die out even faster than languages. You don't have to work very long in the industry to see this happening.

Don't sweat that opinion, BTW. HN is not very kind to any sort of software engineering discussion. I presume this is a direct fallout of the Lean/"move fast and break things" ideology.

Ironically, I'm in favor of using frameworks for when you need to move fast and break things. You're effectively creating a working prototype to test the idea in the market and thats one area where frameworks are useful. The problem is that then the developers always build the actual production version on that working prototype instead of taking what they learned and doing it right.

I'm sure someone will say, "but it takes too much time to rewrite it!" which in my experience is wrong. In fact you'll rebuild it faster because of what you learned in developing the prototype.

Sometimes the best thing that can happen to you is that you never get around to backing up your laptop with your working prototype, and somebody breaks into the trunk of your car late Tuesday night while you're parked on the street around the corner from the Stud at 9th and Harrison, eating grilled hot dogs wrapped with bacon and smothered with caramelized onions at Trannyshack, and steals all your hard work, so you have to rewrite it all from scratch.

I've felt the same way about ORMs. I've never understood the appeal of abstracting away from writing your own queries which is the closest to natural language as programming comes.

The appeal of an ORM has never been about abstracting away the writing of queries...almost every developer I've met is comfortable writing SQL queries. But the appeal of an ORM framework is in not having to write the code that maps the results of the sql query to/from the properties of an object. When you combine the annoyance of writing and maintaining that type of code with the realization that the majority of queries you end up making are one of the CRUD operations and you it completely explains the popularity of ORM frameworks. It's about not having to constantly write code that could just as easily be written by a CS 1 student.

ORM systems almost universally suck, but so does the alternative.

Applications are open for YC Summer 2019

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