• 0 Posts
  • 67 Comments
Joined 3 months ago
cake
Cake day: March 23rd, 2025

help-circle



  • Because it’s not real. It’s purely for marketing, not for actual wide-spread implementation.

    Even in the best of cases, even factoring in economy of scale and all that, a robot like that will cost upwards of €50k at least, probably closer to double that, will require constant maintainance, and the risk of vandalism or accidental damage is really high. And you’ll likely need a (skilled) human operator nearby anyway, because the delivery vehicle doesn’t drive itself.

    The purpose of projects like this is marketing and public perception.

    • The company looks futuristic and future proof. That’s good to get investors.
    • The company looks like they could replace humans with robots at any time. That’s good with negotiations with unions and workers.
    • The company gets into headlines worldwide. That’s advertisement they don’t have to pay for.

    This robot is not meant to ever go mainstream. Maybe there will be a handful of routes where they will be implemented for marketing purposes, but like drone delivery and similar gimmicks, it won’t beat a criminally underpaid delivery human on price, and that’s the only metric that counts for a company like Amazon.


  • “Prescription glasses” only mean “glasses with optical properties”, so glasses that actually do anything with focus, as opposed to e.g. non-prescription sunglasses or non-prescription accessory glasses that people wear to look smart or something.

    It doesn’t mean you need a prescription for them.

    (That said: in some countries you need a prescription for your prescription glasses if you want your health insurance to pay for them.)



  • A friend of mine was applying for a job where they required “at least 5 years knowledge with Angular version X.Y.Z” (can’t remember the exact version, but they asked for all three numbers).

    He said “I’ve got 7 years of knowledge with version X-2 to X+2”.

    The HR person was like “But you don’t have 5 years of knowledge with version X.Y.Z, so you don’t fit for the job”.

    The real fun part was that version X.Y.Z had only been out for two years at that time.





  • I once had a company give me an assignment that sounded very much like what you are describing. They said I should allocate 10h at once to implement a real-life task that they had and that their developers “already solved”.

    At that point I only wrote a handful messages with their recruiter and hadn’t even spoken to a human there. I didn’t even know anything about the team, my potential boss or the project at that time.

    I didn’t even answer back, just ghosted them. I’m not going to spend multiple hundreds of Euros of my time just for some assignent to maybe qualify for an interview.




  • You always have to balance: Do you want the user to have “some” user experience, or none at all.

    In the case of image viewers or browsers or stuff, it’s most often better to show the user something, even if it isn’t perfect, than to show nothing at all. Especially if it’s an user who can’t do anything to fix the broken thing at all.

    That said, if the user is a developer who is currently developing the solution, then the parser should be as strict as possible, because the developer can fix stuff before it goes into production.




  • Yeah, especially in peace time. When war heats up and resources get scarce, you use the cheapest thing that does the job. But in peace time you feed your military contractors to keep them happy and to keep them researching and developing so you don’t lose out on modern technology development.

    (For clarification, with “war time” I mean “being in a war that actually threatens the country”. The US hasn’t been in a war like that for a very long time. They’ve essentially being in “peace time” while having military training and testing facilities in the middle east.



  • You basically defied the whole NaN thing. I may even agree that it should always throw an error instead, but… Found a good explanation by someone:

    NaN is the number which results from math operations which make no sense

    Well, technically this is the explanation, it really isn’t a good one.

    x + 1 with x not being defined also doesn’t result in a NaN but instead it throws a reference error, even though that undefined variable isn’t a number either. And x = 1;x.toUpperCase(); also doesn’t silently do anything, even though in this case it could totally return "1" by coercing x to a string first. Instead it throws a TypeError.

    It’s really only around number handling where JS gets so weird.

    Yeah but actually there can be many interpretations of what someone would mean by that. Increase the bytecode of the last symbol, or search for “1” and wipe it from string. The important thing is that it’s not obvious what a person who wrote that wants really, without additional input.

    That’s exactly the thing. It’s not obvious what the person wants and a NaN is most likely not what the person wants at either. So what’s the point in defaulting to something they certainly didn’t want instead of making it obvious that the input made no sense?

    A similarly ambiguous situation would be something like x = 2 y. For someone with a mathematical background this clearly looks like x = 2 * y with an implicit multiplication sign. But it’s not in the JS standard to interpret implicit multiplication signs. If you want multiplication, it needs to explicitly use the sign. And thus JS dutifully throws a Syntax Error instead of just guessing what the programmer maybe wanted.

    Anyway, your original suggestion was about discrepancy between + and - functionality. I only pointed out that it’s natural when dealing with various data types.

    My main point here was that if you have mathematical symbols for string operations, all of the acceptable operations using mathematical symbols need to be string operations. Like e.g. "ab" * 2 => "abab", which many languages provide. That’s consistent. I didn’t mean that all of these operators need to be implemented, but if they aren’t they should throw an error (I stated that in my original comment).

    What’s an issue here is that “1” + 1 does a string concatenation, while “1” - 1 converts to int and does a math operation. That’s inconsistent. Because even you want to use that feature, you will stumble over + not performing a math operation like -.

    So it should either be that +/- always to math operations and you have a separate operator (e.g. . or ..) for concatenation, or if you overload + with string operations, all of the operators that don’t throw an exception need to be strictly string-operations-only.


  • There is operator overloading happening - the + operator has a different meaning depending on the types involved. Your issue however seems to be with the type coercion, not the operator overloading.

    For string + string and number + number there is operator overloading, that’s correct. For string + number there is not, there’s only type coercion. It becomes string + string(number). All of that is fine. Other languages do that as well.

    What’s not fine is that JS also looks the other way on the type coercion tree: There’s no string - string overloading, so it goes down the type coercion tree, looking for any - operation that it can cast to and it ends up with number(string) - number(string), which makes no sense at all.

    If you don’t want it to happen either use a different language, or ensure you don’t run into this case (e.g. by using Typescript). It’s an unfortunate fact that this does happen, and it will never be removed due to backwards compatibility.

    It’s not the point of the discussion that there are other languages that are better. This here is about complaining about bad language design, and no matter how you turn this, this is not a matter of taste or anything, this is just bad language design.

    You are obviously right that this crap will stay in JS forever. That doesn’t make it good design.