Live data from Hacker News

Why I Hate Frameworks (2005)

factoryfactoryfactory.net

381–390 of 407 posts

Re: Why I Hate Frameworks (2005)

#381

Earlier quoted context omitted.

Right but the earlier you catch your mistake the more time you'll save in total. Generally people use 10x on cost at every subsequent step. Andy Grove famously talked about how this made the FDIV pentium bug cost Intel untold millions instead of pennies. He said when the mistakes and decisions seemed free early on, that's actually when they were the most expensive. As more commitments were made towards the design, it…

I'm a little bit confused. At first, we were talking about people using React for Hello World or similarly small and simple project, but here you're talking about making architecture decisions for huge projects?... In context of a simple project: yes, React is not the best tool for the job if you look at project requirements. But also consider the fact that the bundle size and optimization might not be that important…

Who is going to maintain the React app in 3 years? Who is going to work with the various "repairments" made to get normal browser behavior back into a SPA? History, back button, forward button, bookmarkability, context menu (if modified). The original developer will have moved on to the next gig. Are you going to rebuild, or pay even more for the next developer with more experience, to subject themselves to work with this?

This is the hidden cost associated with such decisions. If you decide to make it an SPA, you are automatically opting in for paying wages of frontend devs for the next years and not only that, you are probably opting in for them to need longer time to get browser staples back working. Things like a navigation, that could be a rather simple construct, maybe 1 or 2 days of work for rendering simple HTML templates on the server, with some nice CSS styling, can suddenly take weeks to implement and adjust. Can the most likely little need for SPA justify this extra cost?

Usually you are also not only having one frontend developer, but multiple ones to pay, since you don't want all the knowledge in one hand only.

Take a good developer salary and this can easily get into the millions over the years.

Re: Why I Hate Frameworks (2005)

#382

Earlier quoted context omitted.

Yes, something like that. On the other hand young workers usualy greatly overestimate their impact on getting things done and the work required to check their work. (I know I was like that)

Yeah... That's not wrong. On the other hand, those kind of "fake" internships are rampant here in France, specially with smaller companies or startups. From personal experience they don't bother checking their work. And how could they, the other employees are interns too.

Same in Poland - none of my friends who did their required internship at studies was ever actually taught anything.

It was always just "do your job, don't cause problems".

And for free. Of course. My uni literally bans us from being paid. If we do, they won't acknowledge it as internship.

Re: Why I Hate Frameworks (2005)

#383

Earlier quoted context omitted.

I'm a little bit confused. At first, we were talking about people using React for Hello World or similarly small and simple project, but here you're talking about making architecture decisions for huge projects?... In context of a simple project: yes, React is not the best tool for the job if you look at project requirements. But also consider the fact that the bundle size and optimization might not be that important…

Who is going to maintain the React app in 3 years? Who is going to work with the various "repairments" made to get normal browser behavior back into a SPA? History, back button, forward button, bookmarkability, context menu (if modified). The original developer will have moved on to the next gig. Are you going to rebuild, or pay even more for the next developer with more experience, to subject themselves to work with…

> Who is going to maintain the React app in 3 years?

Uhm, developers? Using projects documentation?

> Who is going to work with the various "repairments" made to get normal browser behavior back into a SPA? History, back button, forward button, bookmarkability, context menu (if modified).

I never had to manually “repair” any of that. Most often you just don't need them. Why would you use a back button in an image editor or an IDE?

> The original developer will have moved on to the next gig.

Developer, singular? Are we taking about small projects here again?

> Are you going to rebuild, or pay even more for the next developer with more experience, to subject themselves to work with this?

In my personal experience, React projects were one of the nicest codebases to work with. I came to projects 2-4 years old, found great documentation, good architectural decisions, and was able to compete a ticket on the first day.

Overall, I think it’s a difference in experience. I build complex web applications. IDEs. User interfaces with complex, customisable data widgets updated in real time. People I talk with about web development are building 3d visualization platforms with C++ compiled to WebAssembly. Games. Image editors.

What your are talking about seem to be simple CRUD apps. I have built those with server-rendered templates, yes (here's a takehome for some company from a couple of years back: https://github.com/golergka/url-shortener).

However, a lot of apps _seem_ to be simple CRUD apps in the beginning, until you anticipate future features and other requirements that will force you to adopt a frontend framework all too late. Do you need a form with search over content from the server? You need a system to query data and cache the results. Update data in real time with websocket connection, while also allowing your user to edit it? You need a system to consolidate state. Save user's data in local storage? Also local state, but also schemas and migrations for when your app updates. Table of 100s of thousands units of data, which user should be able to filter, sort and edit, with updates from the server too? Don't even get me started. There's a lot of other examples I'm too lazy to type. Overall — you either adopt a proper frontend framework or try and implement it in “simple JS” and then spend much more time fighting a lot of subtle bugs that simply would not happen if you used proper abstractions and tools.

Re: Why I Hate Frameworks (2005)

#384
post #292

Earlier quoted context omitted.

Sounds like you haven't really understood the benefits of polymorphism, encapsulation etc. The general idea is to compartmentalize your logic and only expose the important parts like if you need to generate pdfs from html you may need to use a lot of moving parts to make that happen but you hide all of it and only expose an interface with a single action that takes html and returns a pdf. If you later need to change…

Not everything needs a hyper-abstracted solution. Most people suck at writing neat abstractions, so they spend an excessive amount of time writing shoddy solutions which no one really wants to deal with but there's a soft, begrudging agreement to use them anyway while the business sees no value in having their devs rewrite it. This goes double when you step into the world of microservices, where you now have another…

But factory is not "hyper-abstracted". For that matter, factory factory can be annoying, but still does not require all that much abstract thinking to understand.

It would be different if people complained about actually complicated stuff ... but, you know, factories are not difficult to understand. Even when I disagree with design decision to create a factory, it is clear what factories do.

Re: Why I Hate Frameworks (2005)

#385

Earlier quoted context omitted.

That’s how I got through calculus. I learned how to integrate/differentiate once, then programmed those operations into my TI-82 using whatever awful version of basic those things supported.

You programmed SYMBOLIC integration on a TI-82 but couldn't do it by hand? Are you sure you are remembering that right? Symbol integration is non-trivial.

Almost certainly not. It happened over 20 years ago so my memory is fuzzy, but I’d guess I still had to tell it which formula I wanted to integrate with. So to study I just had to be able to identify the correct formula. You might argue that’s the not much harder than by hand, but I was exceedingly lazy (still am, but now married with kids so it’s buried deep haha).

Re: Why I Hate Frameworks (2005)

#386
Show, don't tell. You know what would be more effective than these dozen "frameworks are bad, React is bad, programming sucks these days..." posts a day? Just show me your work. Link to your websites and repos that you built by flipping bits with a magnet or whatever other level of abstraction you prefer and let me judge its worth. Let me see how clean the code is, how easy it was to build, how mature the final product is.

In practice, what I have seen is there are people who endlessly talk about the right and wrong ways of working and others who realize that tools are secondary to actually getting your work out there in the world.

Re: Why I Hate Frameworks (2005)

#387

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…

There are quite a few titles which have appeared on the HN front page more than once. I've got an archive that's current as of a week or so back, and it shows 1,734 repeated titles. The following 39 titles have appeared on the front page 5+ times, based on an exact text match, excepting a year indicator in parentheses, e.g., "(2023)". Note that the apostrophe glyph differs in the 2nd & 3rd entries for Peter Roberts A…

Why doesn't "Why I Hate Frameworks" appear in your list? From dang's post it looks like that exact title has appeared 8 times?

Possibly related: have you considered making your aggregator ignore punctuation and case in addition to the year indicators?

Re: Why I Hate Frameworks (2005)

#388

Earlier quoted context omitted.

There are quite a few titles which have appeared on the HN front page more than once. I've got an archive that's current as of a week or so back, and it shows 1,734 repeated titles. The following 39 titles have appeared on the front page 5+ times, based on an exact text match, excepting a year indicator in parentheses, e.g., "(2023)". Note that the apostrophe glyph differs in the 2nd & 3rd entries for Peter Roberts A…

Why doesn't "Why I Hate Frameworks" appear in your list? From dang's post it looks like that exact title has appeared 8 times? Possibly related: have you considered making your aggregator ignore punctuation and case in addition to the year indicators?

Not all appearances are front-page appearances. And my very quick & dirty shell one-liner requires precise text matches.

"Why I Hate Frameworks" does appear six times on the front page, though with case and phrasing variants which mean that an exact text match won't pick it up:

  Why I Hate Frameworks
  Why I Hate Frameworks
  Why I hate frameworks (2005)
  Why I Hate Frameworks
  [dupe] Why I Hate Frameworks (2005)
  Why I Hate Frameworks (2005)
By my shell one-liner, it would have been counted as appearing four times (instances 1, 2, 4, and 6 above).

I could tweak the script by lowercasing (or title-casing) titles (I've a script that does the latter), and eliminating any instances of "[dupe]". While I'm at it, "[flagged]" and "[dead]" possibly as well, though I think the latter won't appear in the archive. And let's convert all apostrophe variants to a single apostrophe character (') (ASCII hex 0x27).

With those adjustments, I see "Why I Hate Frameworks" appearing six times, as expected, and there are 57 titles appearing 5+ times, rather more than the 39 initially posted above. There are 3,077 repeated front-page titles in total.

The one-liner, FWIW (rearranged to multiple lines):

  egrep '^  Title:' parse.log |
    sed 's/^  Title: //' | 
    sed 's/([0-9][0-9][0-9][0-9]) *$//; s/\[dupe\]//; s/\[flagged\]//; s/^  *//; s/  *$//; s/  */ /g; ' |
    sed "s/’/'/g" |
    titlecase |
    sort |
    uniq -c |
    sort -k1nr |
    gawk '$1 > 1' |
    cat -n
"titlecase" itself is a sed script that uppercases words, with specific exceptions. I've just augmented it with a few more technology-related terms.

"parse.log" is the output of my first stage of parsing of the HN front page archive, which lists specific story properties in a tagged format, e.g., "Title:" "Date:" "Site:", etc.

Re: Why I Hate Frameworks (2005)

#389

Earlier quoted context omitted.

Why doesn't "Why I Hate Frameworks" appear in your list? From dang's post it looks like that exact title has appeared 8 times? Possibly related: have you considered making your aggregator ignore punctuation and case in addition to the year indicators?

Not all appearances are front-page appearances. And my very quick & dirty shell one-liner requires precise text matches. "Why I Hate Frameworks" does appear six times on the front page, though with case and phrasing variants which mean that an exact text match won't pick it up: Why I Hate Frameworks Why I Hate Frameworks Why I hate frameworks (2005) Why I Hate Frameworks [dupe] Why I Hate Frameworks (2005) Why I Hate…

And the updated list, 5+ appearances:

       1   14 I'm Peter Roberts, Immigration Attorney Who Does Work for YC and Startups. AMA
       2   11 Richard Feynman and the Connection Machine
       3   10 Openssl Security Advisory
       4   10 The TTY Demystified
       5    8 Why GNU Grep is Fast
       6    7 Cool URIs Don't Change
       7    7 How to Read Mathematics
       8    7 The Architecture of Open Source Applications
       9    7 You and Your Research
      10    6 -2000 Lines of Code
      11    6 A Primer On Bézier Curves
      12    6 Advanced Programming Languages
      13    6 Bit Twiddling Hacks
      14    6 Dictionary of Algorithms and Data Structures
      15    6 How Not to Sort by Average Rating
      16    6 How to Be a Programmer: a Short, Comprehensive, and Personal Summary
      17    6 How to Write a Spelling Corrector
      18    6 Keep Your Identity Small
      19    6 Ten Rules for Web Startups
      20    6 The Bipolar Lisp Programmer
      21    6 The Tao of Programming
      22    6 Why I Hate Frameworks
      23    6 Why Lisp?
      24    5 A Regular Expression to Check for Prime Numbers
      25    5 A Spellchecker Used to Be a Major Feat of Software Engineering
      26    5 Akin's Laws of Spacecraft Design
      27    5 Ask HN: Idea Sunday
      28    5 Ask HN: What Are You Working On?
      29    5 Ask HN: Who's Hiring?
      30    5 Beej's Guide to Network Programming
      31    5 Data Structure Visualizations
      32    5 Dna Seen Through the Eyes of a Coder
      33    5 Game Programming Patterns
      34    5 How Software Companies Die
      35    5 How to Become a Good Theoretical Physicist
      36    5 How to Design Programs, Second Edition
      37    5 Latency Numbers Every Programmer Should Know
      38    5 Learn C and Build Your Own Lisp
      39    5 Learn You a Haskell for Great Good
      40    5 Learning Advanced Javascript
      41    5 Let's Build a Compiler
      42    5 Notation As a Tool of Thought
      43    5 Statistical Data Mining Tutorials
      44    5 Structure and Interpretation of Classical Mechanics
      45    5 Teach Yourself Programming In Ten Years
      46    5 Terms of Service; Didn't Read
      47    5 The Book of Shaders
      48    5 The Case of the 500-Mile Email
      49    5 The Early History of Smalltalk
      50    5 The Scientist and Engineer's Guide to Digital Signal Processing
      51    5 What ORMs Have Taught Me: Just Learn SQL
      52    5 Who Can Name the Bigger Number?
      53    5 Why I Left Google
      54    5 Why Lisp Macros Are Cool, a Perl Perspective
      55    5 Why Open Source Misses the Point of Free Software
      56    5 Why to Start a Startup In a Bad Economy
      57    5 You Can't Tell People Anything

Re: Why I Hate Frameworks (2005)

#390
post #277
post #59

Yes, the state of the industry is a hot mess, but I'm not sure this article rings true. Failing to leverage good frameworks is as big a problem as over using the bad ones. I would point to Rails as an example of an appropriate framework (and Laravel if PHP is your jam). The trouble is so many others are bad, incomplete or defunct, but I don't think the answer is the golang mantra of 'we don't need no stinking framewo…

Laravel is prime example of a bad framework trying to reinvent the language, educating young developers to use it and its ecosystem and to never get out of the stranglehold. I'm not sure what made you think it's an "appropriate" framework, it's literally antipattern on antipattern and it's not even the worst thing, neither is the fact it's 10x slower than anything else out there - what's worst is the blatant lying, b…

What's a good framework from your point of view?

Or do you prefer to not use any framework and instead write your own one on the fly because you're probably going to do it a lot better with all the best practices and no bugs and great documentation?

Post reply on HN