Earlier quoted context omitted.
You could argue that it's specifically true for projects, but the definition of average absolutely doesn't require that. If for example you had 100 projects were 50 of them were built by expert teams who poured love into their work, and 50 were made by 12 year olds who spent one day on their projects before giving up, the "average" quality of the 100 would be a long way from either the great or the shit products. Lik…
I have a fairly high confidence it’s normally distributed. Of course me having confidence doesn’t really mean anything, but I’ll work off that assumption anyway.
Why I Hate Frameworks (2005)
251–260 of 407 posts
Re: Why I Hate Frameworks (2005)
#252Earlier quoted context omitted.
Everyone needs to learn to do calculus by hand before advancing to the calculator. People picking up frameworks without fundamental understanding is a shockingly common fallacy.
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…
For a professional MBA that's taken over a department, it's not so much that they won't pay you to learn what's not definitely part of the job but that they can get away without doing so. It appear superficially to be the low risk option.
It's the same reason that manufacturing gets outsourced instead of invested in as a core competency that sets you apart from the competition.
To a lot of people anything that makes the numbers go in the right direction is what's important. They'll even pretend that the sole fiduciary duty is to raise short-term profits at the expense of long term value.
When so many of the world's largest corps are now hollowed out marketing operations reselling generic products, it's hard to argue against using the latest trending framework.
Re: Why I Hate Frameworks (2005)
#253The problem with frameworks is instead that they assume that they're in control. They're the program, you're just writing a plugin.
This makes it unnecessarily hard to use them in all but the most straight-forward use cases. And they're usually also trying to do too much; config for starting, special way of testing, incompatible with other frameworks and libs etc.
Contrary to that, a library does one thing and one thing well. Like a Unix tool. Much easier to use, better coverage, and usually easy to combine. And you can plug them in anywhere.
Frameworks are overreaching, but not in the way that the article paints it.
Re: Why I Hate Frameworks (2005)
#254Earlier quoted context omitted.
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…
You have such an idyllic view of the college environment. My experience was struggling to motivate my teammates to do anything beyond the minimum, and an endless barrage of "will this be on the exam?" questions during class. Looking back it's no wonder I am a self-learner now.
For example, in our algorithms course, we needed to implement a lot of small algorithms for various things in Java. (Eg A-star, quicksort, etc). For each algorithm, we were provided a standard API to implement against so they could use automated marking. Well, me and some friends made our own benchmarking harness and web frontend around that api. Before the assignment was due, we would all upload our .class files (and upload test cases), and compete to see who wrote the fastest code.
I think I learned at least as much from doing that as I did from the algorithms course itself.
We didn’t have that much fun in all of our classes. But I cherish a lot of memories from that time in my life. I’m really glad I went to college and wouldn’t trade it for anything.
Re: Why I Hate Frameworks (2005)
#255Earlier 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.
After a career completely unrelated to manufacturing I've come back to basic metalwork as a hobby. What interests me is working with non-computer driven tools like lathes and mills.
What really surprises me is how much can be achieved just with hand tools like saws, files and chisels. I have books on filing as a way to shape metal by hand.
This is worth knowing because sometimes it's sometimes the quickest way get something done. Especially, when the first part of an alternative process would be "order tool X from the internet".
So it goes with solving problems with software. It's sometimes quicker to implement something I learnt on my second degree in CS than to spend time searching to see if a well supported library covers exactly what's needed for a very specific, temporary use-case.
Re: Why I Hate Frameworks (2005)
#256Earlier quoted context omitted.
The way I like to explain the difference between the two approaches — and therefore the two educational requirements — you are outlining here is the difference between being a software developer and a software architect. A software developer is focused on developing a certain feature or fixing a certain bug within the context of an architecture that's already determined, rarely making decisions about how to structure…
does what you’re making matter to people or not? It’s like that no matter what you’re doing. Y’all can sit around here and discuss, “what is a software architect” all you want.
I think you're on to something. We ought to hire an architect architect to architect the role of the architect. Maybe we can build an architect factory to abstract that away and have architects set up on demand...
Re: Why I Hate Frameworks (2005)
#257Earlier quoted context omitted.
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 problem is that bootcamps were incentivised to churn out graduates within 3 months to get ISAs. This contributed to a junior coder market where people are not ready. I only found a handful of resources out there which are really preparing everyone for a long journey. Long gone are the promises of a $500k job after 3 months of studying...
Re: Why I Hate Frameworks (2005)
#258I disagree with the problem statement; that the framework is trying to solve a meta-problem. The problem with frameworks is instead that they assume that they're in control. They're the program, you're just writing a plugin. This makes it unnecessarily hard to use them in all but the most straight-forward use cases. And they're usually also trying to do too much; config for starting, special way of testing, incompati…
Re: Why I Hate Frameworks (2005)
#259Re: Why I Hate Frameworks (2005)
#260Earlier quoted context omitted.
Which is precisely why a framework is necessary, but knowing how to write what you want without the framework is even more necessary. If you only know how to code within the constraints of the framework, you're gonna fail for anything non-trivial. If you try to ditch frameworks entirely, same deal.
There is an art to translating whatever idea you have into large building blocks rather that coding it from small primitives. Actually knowing how to code is important, but so is knowing how to take a problem and implement it without ever doing anything the framework authors didn't think of. You might need a nasty hack like exporting a bitmap to a ramdisk and then importing it again to read a pixel value, to avoid me…
I think the analogy does not quite fit. A framework is certainly not a dialect. For me a dialect is a variant of the language in which you can accomplish almost the same.
A framework provides you with a couple of blocks for building something specific.
In terms of language, I'd say a framework is like technical jargon. Additional abstract terms that describe concepts useful in that domain. So domain experts don’t need to always explain everything from the beginning.