News for hackers. Stuff that matters.
Re:Using a Framework will harm the maintenance of your software by piokoch on Thursday October 13, 2022 @03:33AM (#33188271)
Where do you draw the line between using and not using framework.

Programming language is a framework over machine language. Java garbage collector is a wrapper around manual memory management. Java Servlets is a pretty thin wrapper over HTTP request/response, is this a framework already? How about Java JAX-RS, it is built on top of Java Servlets and built to handle mostly REST type requests.

Same with database connectivity. Where framework starts? On JDBC/ODBC driver layer? ORM mapper like iBatis? JPA/Hibernate "true" ORM with automatic dirty checking?

Re:Using a Framework will harm the maintenance of your software by planede on Thursday October 13, 2022 @04:28AM (#33188605)
For me the most important defining characteristic of a framework is inversion of control. With a framework high level control flow is dictated by the framework itself. It follows from this that using two different frameworks can be challenging.

An abstraction layer over a database is not necessarily a framework, it can be just a library. I'm not familiar enough with specific ORMs to comment on those.

A programming language is interesting to look at from this point of view. While sure, you need to use the programming language's features to implement control flow, it typically doesn't actually dictate a high-level control flow itself. There are probably languages where this is not completely true.

Re:Using a Framework will harm the maintenance of your software by NoGravitas on Thursday October 13, 2022 @09:59AM (#33191043)
By this definition, though, which does seem to be the one used by the article, both Flask and Sinatra are frameworks. Which I don't necessarily disagree with, but there are tons of people here in the comments arguing the opposite.

For that matter, it seems to me that CGI would be a framework in this sense - the high level control flow is that you are called by the web server, run, take input from environment variables, output an HTTP response, and exit. Not fundamentally different from "Django views take a request object as an argument, and return a response object, and are called by the framework". Just a matter of degree.

Re:Using a Framework will harm the maintenance of your software by throwaway0asd on Thursday October 13, 2022 @05:38AM (#33189018)
It appears you are falsely using the word framework to describe abstraction. Language is not a framework. APIs are not frameworks. A framework is a tool providing conventions that dictate exactly how to proceed, typically demonstrated as a packaged architecture. The appeal, it seems, is not having to independently form many minor decisions.

It appears bias, and possibly even neurological limitations, largely account for framework dependence. Typically this is self evident when you step back and examine the opinions qualifying that dependency as most such arguments are fallacies from ignorance. Decision avoidance is the primary indicator of ASD.

For example many of the arguments in favor of frameworks will sound something like: ”I tried without a framework once and produced a framework anyways, so therefore you must use a framework”.

Another example: ”The code must broken and slow if not using a framework.” Without evidence (numbers) this is a bias (or a lie). Before making that claim there is likely no performance measure or comparative defect count. In my experience doing this for 25 years rarely measure anything and instead invent assumptions to qualify whatever opinion they want. Example (look at the parent and peer comments for comparison): https://news.ycombinator.com/item?id=33004060

Re:Using a Framework will harm the maintenance of your software by BlargMcLarg on Thursday October 13, 2022 @06:57AM (#33189446)
>The appeal, it seems, is not having to independently form many minor decisions.

No. It's also to make the work easier and do the heavy lifting, too. Conventions alone are useless if the work becomes more difficult.

It's a vague term but it is pretty darn obvious what the desired intent is behind frameworks and why the endless discussions on their costs and benefits exist. Frankly, most developers couldn't care less about the semantics, they only care if the outcome is beneficial.

Re:Using a Framework will harm the maintenance of your software by throwaway0asd on Thursday October 13, 2022 @07:11AM (#33189524)
Easier versus decision avoidance... I don't see the difference. When you have confidence easiness is dictated by the goal, not the approach.
Re:Using a Framework will harm the maintenance of your software by Aeolun on Thursday October 13, 2022 @07:09AM (#33189512)
> I tried without a framework once and produced a framework anyways, so therefore you must use a framework

In my experience, the correct way of saying this is: I tried without a framework once, and I found myself rebuilding everything that the framework previously gave me. Therefore, I must use a framework (for things that are remotely similar to the thing I built a framework for).

Re:Using a Framework will harm the maintenance of your software by Test0129 on Thursday October 13, 2022 @11:59AM (#33192811)
Seat of pants definition is that a library is something with a single function. Add postgres support, logging (sort of a grey area sometimes), etc.

A framework is something that provides an ecosystem for you to develop in. Rather that using your own style/glue/etc a framework provides all of this for you. Another key aspect of a framework is how much it hides. It's not uncommon that a framework (like rails) hides almost everything from you down to exactly how it's launched. I suppose you could say the hallmark of a framework is it's closer to writing a giant configuration in a bespoke DSL than actual programming.