Hacker News new | ask | show | jobs
by hashkb 2887 days ago
Nobody here would deny the business value of gluing APIs together. We're not asking for your empathy, either; but we are telling you the truth about the difference between where the bar was and where it is now.

The idea that "computers are fast, my code just needs to work" is a really really horrible way to treat your users' devices. A whole host of similar ideas are now popular, and it's pretty obvious that it's because the industry is now dominated by people that are (just) good at gluing things together. This is a bad thing.

2 comments

I'd wager the bar wasn't as high back then as you think. Most people still wrote inefficient things. Lots of it. There is a hope that most of the inefficient things flat out stalled out due to needing to be much more frugal of resources, but I don't know of any data backing that.

So, seriously, do you have data showing that the bar is lower? Or are you just performing selection and survivor bias to get such a negative view? (Similarly, am I doing the same to get a positive view?)

My main qualm is people that seem to hold incoming folks to the bar that they have today, without acknowledging the growth that was necessary for some of that. As a parent, I fully know my children will be better at most everything than I am. In time. Same for most of the younger generation coming out of college into the industry. Most are or will be better than I am. Pretty much full stop.

I'd wager the bar wasn't as high back then as you think. Most people still wrote inefficient things. Lots of it.

Lots of those people who wrote inefficient things were the C students in Comp Sci. A lot of those people writing bad code were home-grown programmers who were completely missing pieces of knowledge. From what I saw as an undergrad, it wasn't the 3.75 GPA CS students who were doing those things.

So, seriously, do you have data showing that the bar is lower?

It's not my job to do such studies, however I do interview job applicants. A disturbingly large number of applicants, who all have 3.75+ GPAs, try to tell me nonsense, like "null pointers take up no data." I'd say I encounter something about as egregious as that with a bit short of half. In my recollections of interactions with classmates, I could take it for granted that CS students who made it past Freshman year knew enough to actually implement algorithms and could actually implement a recursive function. If you had tried to talk to them about such things as some kind of deep esoteric knowledge, they would've just given you a funny look.

More assertions that I just don't know that I buy. I don't ultimately think you have to take my assertions as valid counterpoints, but as things currently stand, I don't think either of us have actually presented any data. I'm just not asking anyone to believe that things are truly different than they used to be.

I've similarly been doing interviews for upwards of 20 years now. There are some particularly bad interviews I've done recently, but there were some particularly bad ones I did towards the beginning of my career, as well. Worse, some of the senior engineers I used to be under were quite bad, all told. (Which does not take away from many of the ones I was with that were bloody amazing.)

I don't ultimately think you have to take my assertions as valid counterpoints

Many of your supposed counterpoints are straw-man. No one is expecting someone to have memorized or to reinvent KMP or this algorithm or that. What we're looking at is basic understanding and conceptual tools.

I'm just not asking anyone to believe that things are truly different than they used to be.

But things are clearly different than they were years ago. The number of CS grads has fluctuated a lot, in response to increased investment and industry bubbles bursting. Things are clearly very different today than they were in the early 90's.

https://nces.ed.gov/programs/digest/d12/tables/dt12_349.asp

We also covered "gluing things together" in the early 90's. The concept was already very well worn even when I was a newly minted CS grad, with Jon Bentley discussing it in Programming Pearls using awk. The thing is this: We would also glue libraries together, but we did that while applying our generalist knowledge. It seems to me that there are a whole lot of CS grads who get through their entire undergrad education pretty much only doing that. Maybe that's all well and good, and they can accomplish many great things this way. However, it seems to me that much of the basic generalist knowledge is now mistakenly labeled as "specialist" and is needlessly missing from the general population.

(Just so it isn't completely lost, I basically merged my answer for this in the above branch. Realized it was both of us on both of these out croppings, didn't see the point in pretending it was two discussions. :) )
Maybe the counterpoint should be that gluing things together should produce better optimised products. You could probably even charge for tools like that. Why should the programmer have to know the best data structures and algorithms if the computer can do it for them? We don't hand-optimise assembly any more either, except in very narrow cases.
Maybe the counterpoint should be that gluing things together should produce better optimised products.

It can, if those doing the gluing have the requisite knowledge.