Live data from Hacker News

Why I Hate Frameworks (2005)

factoryfactoryfactory.net

131–140 of 407 posts

Re: Why I Hate Frameworks (2005)

#131
post #121
post #40

Earlier quoted context omitted.

Calculators do a lot more than arithmetic these days. Without knowledge of calculus, most people think of a calculator as a magic “black box” that outputs square roots and cosines.

Roots were calculated at least as far back as 1800BC thousands of years before calculus existed. Trig functions were indirectly messed with since around at least 300BC and was definitely discovered by Indians around 600AD. Meanwhile Calculus wasn't published until the 1700s.

Those techniques were precursors of calculus. They're often taught in introductory calculus courses (at the university level). I consider them part of the field of mathematics we now call calculus. Indeed, if you study the history of mathematics you'll find that calculus isn't just something Newton invented out of whole cloth, as he himself was well aware:

"If I have seen further, it is by standing on the shoulders of giants."

Re: Why I Hate Frameworks (2005)

#133
post #22

Related: Why I Hate Frameworks (2005) - https://news.ycombinator.com/item?id=28920095 - Oct 2021 (296 comments) Why I hate frameworks (2005) - https://news.ycombinator.com/item?id=12635142 - Oct 2016 (66 comments) Why I Hate Frameworks (2005) - https://news.ycombinator.com/item?id=9203959 - March 2015 (63 comments) Why I Hate Frameworks (2005) - https://news.ycombinator.com/item?id=6542817 - Oct 2013 (37 comments) Wh…

If only there was a framework to locate Why I hate framework posts...

Clearly we need a framework to generate frameworks to locate threads on your favorite posts

Re: Why I Hate Frameworks (2005)

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

This misses the mark. CS classes and degrees are akin to reading books about swinging hammers rather than just swinging the hammer.

A lot of people think CS is "learning how to program in xyz."

In fact programming is just a tool used to implement CS ideas and demonstrate their application in the real world.

In my degree we spent maybe the first 6 weeks on actual learnjng-to-program (in turbo pascal.) Then another later on in Scheme. In 3nd year we did C, I don't recall what instruction we had there - maybe a week? Then 2 weeks in 3rd year where we did 10 different languages in 10 days.

Language was considered a distraction from the science part.

No, it's not reading books about swinging hammers. We were learning about physical forces on wood, and by wood, and other construction materials. We learned the difference between a spice rack, the drawer, and the 40-floor building to house the spice rack.

Sure we wielded the hammer like Thor. But the focus was on the hammered not the hammer.

Re: Why I Hate Frameworks (2005)

#135
post #48

I don't get it. I assume the author is trying to make it sound absurd that you would need all these layers of factories to build a simple spice rack and, by analogy, that frameworks are also absurd. But if you were building spice racks at scale, of course you would build them in a factory! And you'd use machinery made in other factories. And those factories would have tools and machines made in yet other factories. T…

I think you might actually be surprised at the level of non-sophistication of most of these factories. Especially for the "made in China" items, but even in the US. My friend works at Masterbrand, a HUGE houseware manufacturer and it is essentially a massive workshop of people using the most basic tools within reason for the job. This is specifically by design because they found that the more advanced tools required more advanced workers and upkeep that ultimately made them more vulnerable to labor and tooling disruptions. Now 99% of the jobs are setup where anyone can step in with very minimal training.

Re: Why I Hate Frameworks (2005)

#136

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.

> Use whatever you like on your home projects, but at work you should be using whatever is most efficient.

Where's the incentive to do the latter?

Re: Why I Hate Frameworks (2005)

#137
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.

Which is bad on some level. It'll bring the mediocrity of frameworks, since there's no reason to adopt or create anything new.

Re: Why I Hate Frameworks (2005)

#138
I will give a counter point. I love well-designed opinionated frameworks. Whenever I want to do something simple, I agree that a framework may be overkill. A micro-framework is nice for those scenarios though. However, whenever I build a project that will be maintained or extended by many people, opinionated frameworks give me the advantage that they force you to do things in a particular way.

Django is a perfect example. If all I am doing is two or four pages that just return static HTML, then why would I pick that at all? A new django project creates a specific file structure: urls.py, models.py, settings.py, views.py, middleware.py, etc. If I get a new Django developer that is not familiar with the project, I can pretty much drop him in and he will not what is going on quickly. I don't need to explain what a viewset is because chances are that the dev has used Djano Rest Framework before. Whatever changes are made, will follow the same patterns, so maintainability overhead is reduced.

When you add a project that is built from scratch without using a framework that has strong stances on how files should be organized, all bets are off. You have to spend a lot of time trying to wrap your head around the custom abstractions that have been built - and it is hard to argue that some of that will translate to a different job.

Yes, of course when you want to do something else that forces the opinionated framework to do things that it was not designed to do, it is a true pain - but you have to ask yourself if for that particular case it makes sense to use that framework at all (most likely not).

Frameworks also evolve. I use to curse constantly when I had to touch a Backbone JS project in the past, but now, I can jump and look at a React project that uses Redux and get to make changes right away without paying high cognitive cost. It may not be perfect, but it gives me structure and pre-defined patterns to worry about solving the actual problem I want to attack - and not waste time trying to create yet another leaky abstraction. My two cents.

Re: Why I Hate Frameworks (2005)

#139
After reading this I understand why angularjs is a different kind of framework. Instead of a factory factory factory you get a provider provider provider, which is 1000x better.

Re: Why I Hate Frameworks (2005)

#140
post #126
post #25

Earlier quoted context omitted.

> In my experience, it's always the junior who shouts "This could all be so much simpler!" Don't have time now to find links of Jonathan Blow, George Hotz, Casey Muratori, and many other decidedly non-junior programmers complaining about the absurd, unnecessary complexity of modern software development. The people who complain are the people who know how much simpler it can be. Now, there is a separate phenomenon of…

I just listened to George speak to Lex. He talked about the engineering time they spend in tinygrad to make it simpler. A lot of hours goes in to refactoring to make it as simple as it is. Writing simple software for complex problems takes a lot of work. The path of least resistance at every step is definitely more complexity, so that’s what happens. Fighting complexity has to be actively prioritized.

Exactly this.

And it's not only about time: it's a hard skill to learn. Often, the simple solution won't occur to some engineers, no matter the time allotted.

Post reply on HN