Live data from Hacker News

Using a framework will harm the maintenance of your software

berk.es

201–210 of 550 posts

Re: Using a framework will harm the maintenance of your software

#201

Earlier quoted context omitted.

> perhaps all of them (every single one) have not actually experienced writing an application without a framework I actually have written software without a framework, so by this standard I feel qualified to comment. Not all software has an implied framework within it. Most Unix command-line utilities do not, for example, with only a few exceptions, and discounting the C standard library as something worthy of the la…

> or some wiser developer refactors substantial parts of the interface, business logic, persistence, and runtime configuration, effectively creating a framework within that application That's not what people commonly understand as a "framework". Nor is it a helpful definition because then where does "abstracting things" and "framework" start and end? No, the main difference between frameworks and what you describe is…

Sorry, I don't accept this very mechanical definition; not only is it a needlessly narrow one, it's downright meaningless in some paradigms, such as when implementing coroutines via continuations, but that doesn't mean you can't have frameworks in Scheme. Conversely, we could describe tuplespaces (a la Linda), or many event- or interrupt- driven systems (like an Ethernet port), as an inversion of control, but whether they're frameworks or not would be an open question, and indeed in the end almost everything happening inside a modern computer consists of one element calling back to another, up and down a stack.

Heck, it's not even true of some of those specifically called out in the article above. For example, I've written programs that use Rails as a library - or rather, suite of libraries - of functions and classes to be called, but anyone suggesting that Rails is somehow "not a framework", on the flimsy grounds that it did not dictate the flow of control, is gonna get some funny looks at morning standup.

But the greater problem is that narrow, mechanical definitions omit purpose, and talking about software without purpose being front-and-center becomes rapidly theological. If you're wondering what I mean by that, look up the wikipedia article for "Software framework", scroll through its desultory talk page, and recognize the inevitability of the boilerplate it got stuck with: "This section is written like a personal reflection, personal essay, or argumentative essay that states a Wikipedia editor's personal feelings".

Re: Using a framework will harm the maintenance of your software

#202

To put it simply, this reflects an amateur understanding of frameworks. I know where the author is coming from, because I've been there/done that/tried that. It sounds nice on paper, but experience has shown that this is a poor way to approach software development. I see this kind of mindset with developers who think only about code, and not about solving problems at scale with other people.

Totally agree. Hiring is the big one for me. As a business owner, you need to be able to easily find new developers to slot into your team who can get up to speed quickly. This is much more easily done when your app is something like Rails, Django or Laravel.

Don't you want the engineers who are language agnostic, and have seen many a many framework and can quickly learn any quirks from your existing team?

Re: Using a framework will harm the maintenance of your software

#203
the real reason frameworks are a burden is that you re not allowed to edit their code. We should be able to change every bit of the architecture for whatever reasons to make it an organic , coevolving part of our project. But for this to be possible we will need AI to perform external upgrades without breaking our code

Re: Using a framework will harm the maintenance of your software

#204

>> A team that defines the standards, processes, practices, frameworks or architectures that other teams must follow..are amongst the lowest performers. It is a matter of degree. If teams responsible for this are legitimately trying to make things better (and not just trying to infallible high priests), it can be helpful. If there are established ways of doing things, it can sometimes alleviate the need to make the s…

At a minimum, Technology Standards Czar has to be earned. You can't just conjure up a spot on the org chart one day and staff it with some outside rando with a long, jargon-stuffed resume. The Technology Standards Czar should be an internal hire with a history of making good technology decisions for the org.

Re: Using a framework will harm the maintenance of your software

#205
Rails will harm the maintenance of your software*

*Is really the accurate summation of the article. And yes, this is well known. Every article about a company upgrading Rails is "it took us several years and only three people died." And we know better than to use MVC nowadays.

No offense to Rubyists, but in the Ruby ecosystem, I have seen a disturbing lack of absorbing information from other programming ecosystems. This article smells like that to me. If you've only used Ruby and Rails, you might not realize some of the dangers and inherent limitations of the design unless you've worked in other ecosystems.

Re: Using a framework will harm the maintenance of your software

#206
This article seems wrong on every possible level.

> This makes sense: if everyone in a company is forced to use, say, Django, for any project, regardless, there will be a lot of projects where Django is a very poor choice.

Sorry, if you are forced to use a framework that's your beef with the company not the framework.

> if the use of framework slows down shipping of new features today, it is causing harm. ... when the use of a framework allows shipping features fast early on, at the cost of slowing down the shipping of new features or changes later on, that is harming maintenance. ... when the framework diverts resources into work that has nothing to do with delivering value to your customers.

You just described tests. Any app will become slower to maintain as you need to update the increasing amount of tests. Guess what, framework does the bunch of it letting you focus on testing business logic, and it does so at a cost of imposing a structure.

> a last type of harm, is when a framework that was once a good fit for a project, is no longer a good fit.

That's just reality. I guess coming up with your own structure somehow makes your app immune to having to ever refactor it?

IMO the author thought framework is a silver bullet that allows you to not think or care about the architecture at all and now is channeling misplaced disappointment.

Re: Using a framework will harm the maintenance of your software

#207
post #196

Earlier quoted context omitted.

If that were true, what would be the difference between a library and a framework? Is a library not also factoring out common parts? Or is a framework just a bunch of libraries? No, this definition doesn't describe what people understand as frameworks.

Maybe common structure, not common parts. "Framework" is a good description: it gives you the shape, you fill it in.

Care to elaborate the difference? In both cases common code is extracted.

Re: Using a framework will harm the maintenance of your software

#208

Earlier quoted context omitted.

> or some wiser developer refactors substantial parts of the interface, business logic, persistence, and runtime configuration, effectively creating a framework within that application That's not what people commonly understand as a "framework". Nor is it a helpful definition because then where does "abstracting things" and "framework" start and end? No, the main difference between frameworks and what you describe is…

Sorry, I don't accept this very mechanical definition; not only is it a needlessly narrow one, it's downright meaningless in some paradigms, such as when implementing coroutines via continuations, but that doesn't mean you can't have frameworks in Scheme. Conversely, we could describe tuplespaces (a la Linda), or many event- or interrupt- driven systems (like an Ethernet port), as an inversion of control, but whether…

I'm not saying that I gave the perfect definition of a framework. But if anything the original definition is even worse or less meaningfull.

Also, it is certainly possible to have a mix of a library and a framework where parts use IOC and others don't. Maybe that's try for Rails (never used it) and that's where your confusion comes from?

Re: Using a framework will harm the maintenance of your software

#209
post #17

1. Every sufficiently complex framework-free application contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a framework. 2. If you have a talented team, that half of a framework can be much better than using a one-size-fits-all framework that is popular because it used to be lean and mean with a small surface area, but has grown over time to do everything for everyone, becoming a com…

> 1. Every sufficiently complex framework-free application contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a framework. After 25 years of experience writing software I can honestly say I have encountered many people that agree with this, and perhaps all of them (every single one) have not actually experienced writing an application without a framework. This sentiment sounds correc…

Maybe you should master your tools before using them.

You can use frameworks where they fit, and not where they don't. Knowing when to do which takes time and experience, but it is definitely do-able, and better.

Frameworks allow you to update, and maintain your app for free, since others will do it for you. If you do it yourself, you have to do all the work and that's keeping you from adding value elsewhere.

To not use frameworks these days would be objectively stupid unless you're working on extremely low-level things.

Re: Using a framework will harm the maintenance of your software

#210

Earlier quoted context omitted.

> 1. Every sufficiently complex framework-free application contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a framework. After 25 years of experience writing software I can honestly say I have encountered many people that agree with this, and perhaps all of them (every single one) have not actually experienced writing an application without a framework. This sentiment sounds correc…

> perhaps all of them (every single one) have not actually experienced writing an application without a framework I actually have written software without a framework, so by this standard I feel qualified to comment. Not all software has an implied framework within it. Most Unix command-line utilities do not, for example, with only a few exceptions, and discounting the C standard library as something worthy of the la…

> Not all software has an implied framework within it. Most Unix command-line utilities do not, for example, with only a few exceptions, and discounting the C standard library as something worthy of the label “framework”.

The C standard library is exactly that though, a framework for writing UNIX command line tools :)

(for anything else it's much less useful)

Post reply on HN