• 22 Posts
  • 155 Comments
Joined 1 year ago
cake
Cake day: July 17th, 2023

help-circle









  • I dint know many OO languages that don’t have a useless toString on string types.

    Well, that’s just going to be one of those “it is what it is” things in an OO language if your base class has a toString()-equivalent. Sure, it’s probably useless for a string, but if everything’s an object and inherits from some top-level Object class with a toString() method, then you’re going to get a toString() method in strings too. You’re going to get a toString() in everything; in JS even functions have a toString() (the output of which depends on the implementation):

    In a dynamically typed language, if you know that everything can be turned into a string with toString() (or the like), then you can just call that method on any value you have and not have to worry about whether it’ll hurl at runtime because eg. Strings don’t have a toString because it’d technically be useless.


  • Everything that’s an Object is going to either inherit Object.prototype.toString() (mdn) or provide its own implementation. Like I said in another comment, even functions have a toString() because they’re also objects.

    A String is an Object, so it’s going to have a toString() method. It doesn’t inherit Object’s implementation, but provides one that’s sort of a no-op / identity function but not quite.

    So, the thing is that when you say const someString = "test string", you’re not actually creating a new String object instance and assigning it to someString, you’re creating a string (lowercase s!) primitive and assigning it to someString:

    Compare this with creating a new String("bla"):

    In Javascript, primitives don’t actually have any properties or methods, so when you call someString.toString() (or call any other method or access any property on someString), what happens is that someString is coerced into a String instance, and then toString() is called on that. Essentially it’s like going new String(someString).toString().

    Now, what String.prototype.toString() (mdn) does is it returns the underlying string primitive and not the String instance itself:

    Why? Fuckin beats me, I honestly can’t remember what the point of returning the primitive instead of the String instance is because I haven’t been elbow-deep in Javascript in years, but regardless this is what String’s toString() does. Probably has something to do with coercion logic.




  • Ah well that’s certainly fair enough, I had no idea it’s a Google-encumbered format.

    Not sure I’ve ever “voluntarily” converted something to webp. Many Lemmy instances’ pict-rs setups seem to use it, my home instance sopuli.xyz obviously being one of them, which I guess is a sort of a funny choice considering




  • hydroptic@sopuli.xyzOPtoMemes@lemmy.mlThis is unironically fine
    link
    fedilink
    arrow-up
    21
    ·
    edit-2
    5 months ago

    Exactly so!

    While I’ll definitely do what I can to try and influence the trajectory we’re on I’m just one person with very little power, and I’m not exactly optimistic about how things are going and figure that at some point something like this meme will be the best I can do




  • hydroptic@sopuli.xyztoMemes@lemmy.mlMath
    link
    fedilink
    arrow-up
    40
    arrow-down
    1
    ·
    edit-2
    5 months ago

    Yeah it was a middle school thing in Finland too, at least in the 90’s.

    I did an exchange year in the US in my 2nd high school year, and I was honestly a bit surprised at how… well, simple it all was. I was a senior in the US and I’d learned just about everything they taught that wasn’t specific to the US or the English language (and even some of those…) either in my 1st year in high school or in middle school.




  • With “guarantees” I meant things like whether you want to have perfect forward secrecy, or whether you want to provide some degree of deniability, and so on, not so much what kinds of guarantees you’re relying on although they’re definitely also good to keep in mind.

    “As secure as possible” is a very all-encompassing goal which doesn’t really say much – what I was trying to get at with my point about the guarantees you want to make is that you’ll want to have a clear idea of what you actually mean with “as secure as possible” so you’ll know what sort of eg. architectural decisions to make before you do a lot of work and paint yourself into a corner.

    It’s a very ambitious project, but I can guarantee it’ll probably be very interesting to work on and you’ll learn a lot regardless of the outcome, and I’m definitely rooting for you.