Live data from Hacker News

Using a framework will harm the maintenance of your software

berk.es

281–290 of 550 posts

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

#281
post #23

Earlier quoted context omitted.

> I think many, maybe most, companies that try to build loosely coupled and highly cohesive code bases end up failing and it ends up being a mess. Companies who try to build any type of codebase end up with a mess. Always. No exception. There is no reason to pretend software development's natural tendency to increase entropy is exclusive to a specific type of software architecture. In fact, some developers even go to…

> Companies who try to build any type of codebase end up with a mess. Always. No exception. I love how demonstratively wrong this is

I would love to see some demonstration of how wrong this is.

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

#282

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…

> 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 correct in theory, but it isn't based on any experience from any one of the people making such a claim I also have 25 years of experience and started my career w…

This isn't about NIH syndrome. This is about other people's code which is composable and can be mixed and matched with other code from other sources, compared to other people's code which dictates to you how your code is written, how it runs, and what contexts you can use it with. Libraries vs. frameworks.

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

#283
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…

The adhoc framework will also be half known to 5% the current team and barely known outside of happy path use cases to the rest. If you find a bug with the adhoc framework you need to convince a busy person in another team to spend time to unblock you. Or chuck in another hack and move the ticket to done and walk away slowly with stretched out arms.

> If you find a bug with the adhoc framework you need to convince a busy person in another team to spend time to unblock you.

Which is not so difficult, because that busy person is in the same organisation as you, and therefor working towards the same goal.

Fixing that bug is much more difficult if that person is in an outside organisation, serving many other customers on the same code base (with possible conflicting needs), and/or is not actually in any way accountable for it (open source).

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

#284
post #232

Earlier quoted context omitted.

Same for it's Java-based cousin, Spring :-)

Say what? That unholy mess of annotations, unusable outside of the Spring "walled garden" where you have to search the internet on how to do the most basic thing (with annotations)? Spring(Boot) is the perfect example --to me-- of a framework that dictates, and does not allow to be get out of your way when all you want is "just libraries".

Yeah Spring is obviously deliberately obfuscated, which makes perfect sense considering the business model.

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

#285
post #258

Earlier quoted context omitted.

I'd rather wallow in my own mess than wade through someone else's though

That maybe true but what happens when people, including yourself, switch teams? At some point we all wade through someone else’s mess. Hell, even your own mess revisited after a period of time is unpleasant. The more you can do to make your software predictable and boring the less unpleasant it will be for everyone.

I actually got to a point where I don't mind my own code. Even code I wrote years ago feels natural to me when I revisit it.

And about the switching teams part. I much rather take over code that is written for our specific use cases than trying to wrap my head around some huge generic framework.

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

#286
post #259

Earlier quoted context omitted.

> There have been a few times that I have ripped out my own code in favor of a popular library when I discovered it. I'm much more likely to rip out the one function I need out of a framework or library and put it in my code, with a comment "// stolen from ". I've spent lots of time untangling the crux of someone's implementation away from the problematic abstractions they built up around it to make it universally ad…

And of course you regularly check back for bugs and security issues, right?

Usually the security issues come from the wrapper code that tries to hammer the square peg of an algorithm into the round hole of the abstraction they provide. Dropping the wrapper code is the safest thing you can do.

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

#287

Most sufficiently complex codebases that aren’t “framework” based will have a poorly implemented, feature-lacking, bug-ridden version of a framework eventually. If Django doesn’t fit the use case for your thing, don’t use it? Just don’t use flask and then start reimplementing Django. Also, Rails is better Django. It’s not even a close comparison.

The issue starts if you start with Django, but later on you discover that there it does not support your use case anymore.

It’s impossible to predict the future. I would rather start with rails and rewrite portions later on, than start with Sinatra and shoddily reimplement rails features.

I also just think Django is terrible compared to rails, and that may be why the author has such a dim view of frameworks in general.

It’s worth noting huge companies started with frameworks initially. Just looking at rails: Twitter, Shopify, Airbnb, Basecamp, ..

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

#288

Earlier quoted context omitted.

The author carefully distiguishes precisely what type of framework they mean. The definition includes multiple parts, but the part that really stands out to me is that a framework dictates the overall flow of control. The suggestion in TFA is to ensure that you consume your dependencies in a decoupled fashion, a move toward utilizing libraries rather than following a framework. I've spent lots of development time in…

The author uses Django as an example of a framework... but Django doesn't really fit the definition used. Django does not dictate the flow of your code. It provides some libraries and there are common patterns, but Django is more or less just a set of Python modules you can import and use as you want (A bit of configuration is done for you if you follow common layouts, but you don't have to and can manually do the co…

Ok, let's use Django with Flask and web2py then, since Django apparently doesn't dictate the flow of your code?

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

#289

Earlier quoted context omitted.

That’s why I always start a new app by writing my own operating system for it first. Use frameworks, use libraries. They will save you time, make your code less buggy, make it easier to hire other people. Writing your own ball of mud is great for a hobby but not for business.

I started using a framework for a task at work, was immediately tripped up by an obvious stupid bug in the config files, reported it and it was closed because "too many people already depend on this behaviour". So now I've in-sourced other companies legacy and taken on a huge liability in depending on the evolution of undefined number of other organisations and their code bases. And even worse when these frameworks a…

Then your architect needs a fresh course in how to decide what open source project to use. When its a critical spot you first check how it is maintained. Its that easy.

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

#290

Earlier quoted context omitted.

I first thought to post some links to code bases that, in my eyes, aptly counter argue your claim. Then I realised that you have already solidly placed yourself in a corner and are bound to defend that corner no matter what I am going to post. Since there's no objective measure of what constitutes as a mess (in contrast to what is simply not perfect) it's also easy to convince yourself that the statement always remai…

"I really have proof for my argument, I swear, I'm just too petty to provide it, trust me bro". Are you serious?

I am. But the words you so freely attribute to me are not what I wrote or meant, and no amount of quotation marks around them will change that. Bro.
Post reply on HN