Live data from Hacker News

Using a framework will harm the maintenance of your software

berk.es

231–240 of 550 posts

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

#231
post #92

Earlier quoted context omitted.

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

Every single codebase doing anything nontrivial is mess. Show me a code base that you can marvel at it's beauty, elegance, and how neat and tidy everything is organized and one of two things will be true about it. 1. It has never touched the real world, real hardware, or real users. 2. All the mess is hidden in some dependencies that handle the integration points with the outside world. You cannot escape the fact tha…

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 remains true.

Alas.

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

#232

Earlier quoted context omitted.

Exactly. The framework I’m most familiar with, Symfony, specifically is arranged to be antithetical to this statement.

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".

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

#233

"Frameworks are designed to take your project hostage" Wow, that is some enterprise level FUD, and with zero citations to back up that assertion. While one could possibly see 3rd party external dependencies pose a variable cost, service risk, or security issue... a standalone/maintainable site should not have 25 domains for every lame js widget a designer thought looked cool. Those who do not use a good framework, ar…

If library is deprecated. You replace the library. If framework is deprecated. You give up the project or rewrite 'everything' to use another framework because essentially your project is build on it. That's the difference. If you make abstract to make it suitable to port to another framework. Then you are writing yet another framework on the top of a framework. In my opinion, it's even worse.

If framework is deprecated. You give up the project or rewrite 'everything' to use another framework because essentially your project is build on it.

Or you just carry on using the deprecated version. It doesn't stop working.

If your team is sufficiently skilled you fork the framework and carry on developing it yourself.

There's lots of options other than just giving up.

Besides, how often is a framework deprecated? It hardly ever happens. This line of reasoning is the same as the old "We'd better use a database abstraction just in case we change database!", something that no one has ever done in the history of IT projects (this is hyperbole on my part, but it's pretty much true.)

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

#234
post #51

He likes to generalize the kinds of problems he has with Rails and Rails-like frameworks to all frameworks. This seems impertinent, since Rails-style frameworks are a particular style/flavor of framework, those of which I'm sure experience the problems he describes, but more generally? I'm not so sure about that.

What even is a framework-free web application? Do you have to write the HTTP server yourself?

The author started their post by defining what they mean by "framework" and it's pretty clear that your snark "do you have to write the HTTP server yourself" is way off from that definition.

Also, if you don't have any experience with framework-free web applications - to the point where you can't imagine how one might exist - perhaps it would be a good idea to familiarize yourself with one? Yes, they exist. I've written several.

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

#235

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. Of which you are the creator and expert, and have complete control and insight, and can change it in any way you want any time. It is in 100% alignment with your goals at all time. If you use a framework your organisation becomes incredibly complex, because you a…

> Of which you are the creator and expert, and have complete control and insight, and can change it in any way you want any time. It is in 100% alignment with your goals at all time. And then you change a job and you take 80% knowledge with you and your now-past project is in deep trouble.

If knowledge is on a single person alone, then your ex-company has bigger issues than framework or no framework.

Not to mention that the interesting parts of your app should be the domain logic and workarounds and solutions used in it for business issues and historical layers of bussiness logic choices. And that a single person can take with them whether there's a framework or not.

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

#236
It's not an "or" proposition.

E.G: a complex django project will have parts that don't use the framework at all. In fact, I never ever use forms with Django, and I do use raw SQL.

Not to mention you can start with a framework, and remove pieces you don't need on the way. Like Instagram did with the django ORM.

Of course, you have to choose a framework with the proper balance for this to work.

Purists want their project to be homogeneous, but it never ends up that way because engineering is a about compromises and dev is only partially about code.

And in the end, you framework will not harms more your maintenance that home made structure, it will just put the burden of maintenance on different levels, which may or may not be what you want depending of your objectives.

But usually, you are not Google, and you have neither the requirements or abilities of such a big structures. Which means a framework is likely bringing more than it's going to cost you if you look at the project average cost during it's entire life. Provided the framework is well made, chosen and integrated, which is a big if, but then you have similar ifs for custom systems.

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

#237

Earlier quoted context omitted.

Rails really does not scale. In performance or development. It’s still a great option for small sites though.

Done Rails my entire career. It scales more than you think if you’re willing to throw some hardware at it and avoid turning your controllers and models into logic layer soup. What kills scaling is inexperienced developers doing what I just mentioned. Also, ActiveRecord is not your friend at scale. It’s wonderful in small amounts, but callbacks and memory overhead will kill you. You really need to learn SQL to avoid d…

To be fair, any framework scales if you throw hardware at it and stop using the slow bits.

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

#238

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…

> 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 adaptable.

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

#239
post #31

This is like saying game engines can be clunky and get in your way (absolutely true), therefore you should just glue a bunch of libraries together. In practice, that almost never works out well. You want to carefully pick the right tools for the job, but those tools will be enormously helpful when dealing with any kind of complex task, even if you can recite a litany of annoyances. Of course if you don't have a compl…

Your point works better in game dev than it does in web dev.

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

#240

Earlier quoted context omitted.

> Of which you are the creator and expert, and have complete control and insight, and can change it in any way you want any time. It is in 100% alignment with your goals at all time. And then you change a job and you take 80% knowledge with you and your now-past project is in deep trouble.

If knowledge is on a single person alone, then your ex-company has bigger issues than framework or no framework. Not to mention that the interesting parts of your app should be the domain logic and workarounds and solutions used in it for business issues and historical layers of bussiness logic choices. And that a single person can take with them whether there's a framework or not.

It will always happen to a degree anyway. The more people are experts because of specifics to this company, the worse. Using a framework also improves hiring.
Post reply on HN