Hacker Newsnew | past | comments | ask | show | jobs | submit | TheHegemon's commentslogin

> Apparently most people never delved deeper then surface level on how to use these things and everything else went right over their head...

This is really the truth of all things in life.


The problem is that they actually work. I've been involved in having to implement these nightmares and it turns out that normal people do actually interact with them and it does result in increased revenue.


> If I work with a human Junior and they make an error or I familiarize them with any quirk of our workflow, and I correct them, they will recall that correction moving forward

I really wish that were the case. Most of the Jr Engineers I work with have to be told the same thing multiple times, in different ways, for things to stick.


Do you have some examples for that?

Most cases I've seen with more complex interfaces is due to the fact that it is what the interface truly expects. Usually making it simpler tends to mean it's actually wrong or incomplete.


This is hand-wavey, but that can't be true: less complex type systems manage to express all kinds of interfaces correctly all the time (sometimes at the cost of verbosity, but that that’s usually a good trade-off is the point).

You're asking me to tell on my coworkers, and I'm too loyal to throw them under the bus :)

Well, OK, here's one, but I'll keep it as blameless as possible. We had a thing where we wanted to register some event handlers. The primary use of these event handlers was to run a selector, and if the selected data changed, trigger an update, passing the selected data along. The initial implementation used existential types to store a list of callbacks, each returning different selected data. The "driver" then did the equality checking and update triggering. We later changed this, so that the callbacks - as far as the driver was concerned - all returned `void`, eliminating the need for an existential type. We just had to move the equality checking and update triggering to inside the callbacks.

Some features are straightforward translations: anywhere you have overloading and/or optional arguments you can (and often should) simplify by refactoring into multiple functions.

For a concrete, public example...well, I remember the Uppy library had a lot of stuff like this. A lot of work goes into making it's "Plugin" interface look the way it does (start at [1] and keep reading I guess) for instance, and while I haven't sat down and re-engineered it I don't think it needs to be this way, if you're willing to give up some of the slickness of the interface.

[1] https://github.com/transloadit/uppy/blob/main/packages/%40up...



Are miscarriages then involuntary manslaughter?


If the miscarriage was caused by reckless or criminal negligence


Also agree that the example code base is not the best example to use.

The Chromium code base is a joy to read and I would routinely spend hours just reading it to understand deeper topics relating to the JS runtime.

Compared to my company's much smaller code base that would take hours just to understand the most simplest things because it was written so terribly.


Yes, the ability to have critical thinking skills is the key differentiator between the two types of developers mentioned.

I think that is what a lot of these discussions seem to be miss: the issue is not really the hard tech skills/knowledge. It is more about the softer critical thinking abilities or personalities that allow someone to become skilled at something or solve a problem easier/better.


What were you expecting them to do instead: use mmap instead?


How could it not be?

If someone was doing much better than you it would be hard to know or it was more formalized within the social hierarchy itself: nobles, kings, etc.

Now all you have to do is open social media and see dozens of people doing things you could never even dream of doing.


> to be honest I have no idea why

Generally because the chargeback-rate of typical paid-for porn providers was exceptionally high. When I worked at one we had to use special merchant providers that would charge up to 10% or higher for each transaction because of it.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: