Live data from Hacker News

The Problem with Frameworks

plbrault.com

1–10 of 111 posts

Re: The Problem with Frameworks

#2
I keep saying it again and again: Dependencies strangle dev teams to death. A massive framework tangle of interlocking dependencies is enough to default most teams to never-never-upgrade-land, even when struggling to compensate for a too-early release's flaws.

And I'll add that a lot of frameworks (I'm thinking of Spring here) devote most of their effort to creating "value add" wrappers around technologies that work more than well enough without, and that create even more problems for a dev who now has to understand both original and wrapper's attempt at enhancement. Enough wrapping! Create something real, just once.

Re: The Problem with Frameworks

#4
I think a lot of the issues here (particularly around version management) are more advising against frameworks that aren't firmly established as popular.

If you're using something like Rails, a lot of the issues are minimized to a huge degree:

- Work required from updates to Rails itself, while sometimes painful, usually has a lot in the way of community support, and it hasn't been really bad since Rails 2/3/4.

- Libraries are highly, highly incentivized to keep up to date with the latest version of Rails, since so much of the ecosystem revolves around it. Not supporting the latest version of Rails basically signals you've abandoned the project.

Regarding switching libraries and frameworks, this depends on the scale I think. With React (an example he gave of a library, although I personally think it's in a bit of a grey zone) switching to something else basically means re-writing your front end - even your state management is likely written in something fairly coupled to React. If you're replacing a single-purpose library, sure the impact is smaller, but those sorts of libraries are ones you'd probably be using in a framework world anyway.

For me, the biggest value of frameworks is eliminating low-value decisions. With an opinionated framework, there doesn't need to be arguments about how to structure your project, how logging, or authentication, or database interaction, or one of a million other things with a lot of OK answers is going to work. This eliminates arguments when initially developing things, and massively reduces onboarding time. I can get a git repo of a Rails project and be more or less productive in a few days - with bigger Node apps I sometimes feel like it takes weeks or months to really get how things are structured sometimes.

Re: The Problem with Frameworks

#5
Most frameworks (web-frameworks at least) get you from 0 to 80% in very little time. Nice layout/css etc, but they require you to learn how they want to do everything; which can be both cumbersome and time consuming. Frameworks also gives management false expectations of how long it takes to make something.

"It looks like you're 80% done with the web-page already, and we've just started - great!" — Management

Re: The Problem with Frameworks

#6
post #5

Most frameworks (web-frameworks at least) get you from 0 to 80% in very little time. Nice layout/css etc, but they require you to learn how they want to do everything; which can be both cumbersome and time consuming. Frameworks also gives management false expectations of how long it takes to make something. "It looks like you're 80% done with the web-page already, and we've just started - great!" — Management

"But we'd like a quick chat to understand why the last 20% took so long" — Also Management

Re: The Problem with Frameworks

#7
post #3

But at some point, isn't the hand-picked approach going to result in the same morass of version dependencies on any site of moderate complexity?

Ideally you would choose dependencies with minimal dependencies of their own (very few if any common dependencies), so you have a manageable number of versions and near complete freedom of choice of those versions.

Re: The Problem with Frameworks

#9
I think the issue here is with non-modular frameworks or opinionated frameworks and libraries. For example, Laravel is very much a framework, but at every level it allows you to opt-out of it's conventions and provided modules and do things your own way. And it doesn't end up with these problems.

Re: The Problem with Frameworks

#10
post #6
post #5

Most frameworks (web-frameworks at least) get you from 0 to 80% in very little time. Nice layout/css etc, but they require you to learn how they want to do everything; which can be both cumbersome and time consuming. Frameworks also gives management false expectations of how long it takes to make something. "It looks like you're 80% done with the web-page already, and we've just started - great!" — Management

"But we'd like a quick chat to understand why the last 20% took so long" — Also Management

The good old "a quick chat"; that's when you know some blame is about to be handed out...
Post reply on HN