Live data from Hacker News

Why I Hate Frameworks (2005)

factoryfactoryfactory.net

141–150 of 407 posts

Re: Why I Hate Frameworks (2005)

#141
post #5

Simplicity is easy to mandate: "just use simple tools!". It's not always obvious when the finished product looks wonky and slanted and has to be retrofitted several times that the complexity was always there, in the world. The complexity in our tools is hopefully there to help with some complexity in the world. In my experience, it's always the junior who shouts "This could all be so much simpler!".

> the complexity was always there, in the world

Essential complexity is exactly that. The entire game is to separate it from the accidental complexity. My career/life was revolutionized by a paper that is 100% focused on this very topic:

https://curtclifton.net/papers/MoseleyMarks06a.pdf

The solution to eliminating accidental complexity is ultimately presented as a flavor of relational model, which I simply read as "please just use SQL for most things". This perspective has served me exceptionally well over the last ~4 years now.

A quote I like from Chapter 8:

> The relational model [Cod70] has — despite its origins — nothing intrinsically to do with databases. Rather it is an elegant approach to structuring data, a means for manipulating such data, and a mechanism for maintaining integrity and consistency of state. These features are applicable to state and data in any context.

Chapter 9 offers an actual proposed solution - Functional Relational Programming.

At the end of the day, suffering in a cesspit of complexity is a choice. The relational model is the answer for untangling highly-complex (aka high-dimensional) problem domains, especially ones that require arbitrary downstream views of the data. The central piece of magic with the relational model (as applied to the real world) is the query planner. You should start thinking of this as an actual code-writing super AI that can answer optimization questions 1000x faster than your best developers. All you have to do is give it a tiny pile of hints to work with, and almost any arbitrary request will be satisfied in a nearly-ideal amount of time.

Re: Why I Hate Frameworks (2005)

#142

Earlier quoted context omitted.

Yea it’s nonsense. Factories are fantastic. If you want to do something as a hobby, sure don’t use the most advanced tools and do it by hand, but for everyone else especially professionals who are charging other people for their time and effort using the best possible tooling is essential. In fact, if somebody didn’t use a common library or framework and instead “rolled their own” it’s downright irresponsible, obnoxi…

I use the same argument for IDEs versus fancy text editors like EMACS. Sure, you might prefer the specific keyboard shortcuts, but IDEs objectively make developers more productive through features like source code integration, debuggers, and refactoring capabilities. Use whatever you like on your home projects, but at work you should be using whatever is most efficient.

> fancy text editors like EMACS.

Them fighting words my friend.

Re: Why I Hate Frameworks (2005)

#143
post #94

Earlier quoted context omitted.

That's the reason why CS classes and degrees exist. Or at least it should be. No company will pay you for several years just to learn complexity theory, write sorting algorithms, study schedulers, rewrite UNIX tools, understand hardware architectures, etc... They want you to be productive right away, and the shortest path is just to follow recipes with the latest framework. That's the point of education, universities…

I see a lot of people online advising against taking CS degrees (in europe, where it's not economically impossible to study). They argue that bootcamps and quick courses are enough, or that chatgpt exists now so programming is a dead profession. I disagree, I think I've had a lot of use from having had education… but I might be biased. But I've had to explain things occasionally.

The carpenter doesn't need a degree. The architect and structural engineer do.

If you plan to be a programmer all your life, and a journey-man one at that, then feel free to learn-programming-in-21-days.

If you're planning a career in software, then I think understanding fundamentals (database normalisation, the Order of a solution, the ideas of Coupling and Uncoupling, memory usage versus performance, the impact of CPU cache, multi-threading safely, operating system task priorities, compilers, and a good few more things that underpin the science behind building software, then a degree is helpful.

Not because of the books, you can get those at home, but because of the structure (ie the path through the carriculim) the mentorship from professors, TAs and so on, and most of all the exposure to your peers - the wonder of collectively pushing each other to explore beyond the curriculum, beyond just this week's assignment.

Most of all it teaches intellectual curiosity- that spark some people have to see something in code they don't recognise, understand the novelty of it, and go and find out about it. It's easy to keep up because you have the structural foundations to absorb new things all the time.

ChatGPT can't do the things I do, and even calling it ChatGPT is a shallow understanding of why not. Broadly speaking LLMs are a tool I can use to learn new things, which is great, it knows how to weild many kinds of hammer. But it doesn't understand the nuance and context of building a whole building. One which has never been built before.

Precisely because LLMs are good at regurgitating the past, but understand literally nothing, they only replace programmers who are good at regurgitating the past (writing code) but understand very little about what that code -means- (as distinct from what it -does-)

Of course each College is different, and YMMV, but if you gave the time, and resources, and opportunity to do a formal degree, then I think it worth it in the long run. But like most things in life you get out what you put in. The curriculum is just the hint of a starting point to what you learn there, don't go to "be taught", go to suck the marrow from each moment, to actively "learn" from the challenges you set yourself.

Re: Why I Hate Frameworks (2005)

#144
post #106

Earlier quoted context omitted.

Yea it’s nonsense. Factories are fantastic. If you want to do something as a hobby, sure don’t use the most advanced tools and do it by hand, but for everyone else especially professionals who are charging other people for their time and effort using the best possible tooling is essential. In fact, if somebody didn’t use a common library or framework and instead “rolled their own” it’s downright irresponsible, obnoxi…

What with Google and now GPT, it's critical that your framework is well talked about on the internet. Otherwise searching "show me some code to do XYZ using the frankenframework" will come up empty and then it's game over for your framework. That makes building your own framework even less of a good idea than it used to be.

OTOH, if you build a framework/library, you might be able to use AI to generate thousands of examples of using your framework/library, then publish those examples. If it's too difficult for the AI to generate correct examples, then that may be a sign of what parts would also be difficult for humans.

We may in fact see an explosion of new frameworks and libraries that use this strategy.

Re: Why I Hate Frameworks (2005)

#145
Bad frameworks suck, good frameworks are good, that's about it.

Factories in Java, like the URL hints at, are just bad. Maybe they made sense in older versions for reasons that I forget. Haven't felt the need to make factories in modern Java or in any other language.

Re: Why I Hate Frameworks (2005)

#146
post #47

I remember following up the Angular tutorial. I was about 15min into the tutorial, and I was already editing 8 different files. I never got lost so quickly. I lost a job because I could not use angular, but never felt bad about it. I remember somebody commenting here on HN about a developer conference, where the speakers were bragging about their software being complex. This is an awful trend with software, and is re…

Same experience with Angular; idk what they were thinking. Just a button is like 10X harder than vanilla JS. React showed that you can accomplish the same thing with a lot less repetition, which is odd because there's supposedly less going on under the hood than with Angular.

Re: Why I Hate Frameworks (2005)

#147

Earlier quoted context omitted.

I use the same argument for IDEs versus fancy text editors like EMACS. Sure, you might prefer the specific keyboard shortcuts, but IDEs objectively make developers more productive through features like source code integration, debuggers, and refactoring capabilities. Use whatever you like on your home projects, but at work you should be using whatever is most efficient.

> fancy text editors like EMACS. Them fighting words my friend.

I knew mentioning EMACS would get the HN crowd riled up, that's the point. :)

For laughs: Interview with an Emacs Enthusiast in 2023: https://www.youtube.com/watch?v=urcL86UpqZc

And to keep things fair and balanced, an Interview with a VIM Enthusiast: https://www.youtube.com/watch?v=9n1dtmzqnCU

"I actually wrote a vim versus IDE comparison. Do you know how much faster vim was? 4.3 seconds! 4.3 seconds I saved every day! All those months learning were totally worth it."

Re: Why I Hate Frameworks (2005)

#148

Yeah but React is really good. A lot of these articles[0] delve into an analogy that they twist into a complicated mess and say "hey look at how complicated frameworks are." But React isn't complicated. Most kinds of interaction, even for the smallest apps, are easier with React than with vanilla JS. I've never felt like I'm managing a factory factory factory when using React. And if I do, it's easy to peel back the…

React is arguably just a library though. NextJS is React as a framework

React:

- completely changes how you write your frontend

- changes the language itself (JS -> JSX with embedded HTML)

- has lots of react-* libs built around it

- comes with a script initializing an app skeleton

I would call that a framework. And it's a very good one.

Re: Why I Hate Frameworks (2005)

#149

Earlier quoted context omitted.

There must be some metric of the resonance of a particular piece by looking at the number of reposts and distribution of comments amongst them (plus an analysis of the sentiment of the comments and characteristics of the thread trees in each separate posting). Just looking at this listing, without looking at the comments in each one, this seems to have a sustained resonance. Maybe I’m biased–it certainly resonates wi…

Its resonance may sustain because theres always people entering the field who are trying to build something, and either get caught up on a frameworks hypetrain or have fond enough memories using a given framework to build something quickly, and then getting burned trying to build something ambitious with a given framework because its opinionation proves to be too rigid one way or another, and a perpetual new influx o…

One of the very first times I was paid to professionally develop software for someone else I totally fucked it up by trying to build some kind of “modular” “reusable” contraption, that in reality was a vague collection of ill-defined ideas for what I wanted to make.

I have since come to believe that this is a trap that many people fall into.

Even a colleague of mine at my current job might be sort of in this track himself at the moment I think. And I don’t feel that he is interested in listening to me at all. Even though we are supposedly on the same team.

I think these kinds of things, when you fall into the trap, is something that you have to eventually realise on your own why it was a bad idea.

Meanwhile I am at the verge of quitting because I find it frustrating that we are working on this thing where it seems I am not being listened to and we are implementing something in a way that I recognise from my own past mistakes as a patently poor way of going about things.

But at the same time, I love the company I work for, and the pay is really good, and I am scared that if I quit I won’t find another job for a long time that will pay well enough to support myself and my girlfriend and our expenses.

Anyway. Point is, I agree with you, there will always be people trying to build these frameworks and what have you.

Re: Why I Hate Frameworks (2005)

#150

This is taking a shot at Java, and a pretty old "joke" but I've heard of this actually being a thing out in the wild: https://stevenheidel.medium.com/a-factoryfactoryfactory-in-p...

Reminds me of an issue I submitted against Apache WS-XMLRPC 15 years ago, related to a class named RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory:

https://issues.apache.org/jira/browse/XMLRPC-147

Post reply on HN