• 5 Posts
  • 95 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle






  • … and are keeping the hate to the appropriate boards (X, I believe it’s called nowadays). Should we contract his work and apply it where applicable?

    There is no “appropriate board” for hate speech, whether it’s antisemitism, transphobia, or anything else. If you wouldn’t want someone to be a nazi in your office, why would you pay them if you know they’re a nazi somewhere else? Is it fine as long as it’s someone else’s problem?

    On another level, if you had to pay a developer, and you have reason to think they might donate the money you give them to an antisemitic cause, or directly use it to fund their own antisemitism, would you still want to give them that money? Or maybe look elsewhere, even if it means getting something slightly worse?



  • Zangoose@lemmy.worldtomemes@lemmy.worldGive us a shoutout
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    4 months ago

    Obviously, it’s a silly semantic debate, and someone could equally judge me for wanting my coffee beans roasted and ground “why not eat the berries fresh if you say you love coffee‽”.

    My point is that it would be silly to judge someone for this, just like it’s silly to judge someone for putting creamer in coffee.

    Edit: also, what about drinks like mochas, cappuccinos, macchiatos, etc. which also have other ingredients mixed in? Generally it’s still fine to call those forms of coffee, no?

    Random side note: I’ve had chocolate-dipped espresso beans before and they’re actually a pretty good snack. You just can’t eat too many of them because of the caffeine content.


  • Zangoose@lemmy.worldtomemes@lemmy.worldYelon
    link
    fedilink
    arrow-up
    1
    ·
    4 months ago

    I think the idea is that you can eventually get an approximation of whatever wave-like curve you want by merging several pure sin/cos functions with varying amplitudes, wavelengths, and offsets

    Fun fact: this is mostly how JPEG works - it uses fourier transforms to approximate an image in a way that takes up much less storage than storing information about each pixel.


  • Zangoose@lemmy.worldtomemes@lemmy.worldGive us a shoutout
    link
    fedilink
    arrow-up
    4
    arrow-down
    3
    ·
    edit-2
    4 months ago

    Yeah that’s still gatekeeping though. Coffee is coffee regardless of what you put in it. Even if it’s gross according to my own individual taste, it’s still coffee. Saying anything else is just “better-than-you” gatekeeping.

    Edit: it’s also nothing like your example at all, because coffee with creamer is still literally made with real coffee, while an apple jacks pop tart is almost definitely not made with real apples.







  • That’s entirely fair for the usecase of a small script or plugin, or even a small website. I’d quickly get annoyed with Python if I had to use it for a larger project though.

    TypeScript breaks down when you need it for a codebase that’s longer than a few thousand lines of code. I use pure JavaScript in my personal website and it’s not that bad. At work where the frontend I work on has 20,000 lines of TypeScript not including the HTML files, it’s a massive headache.


  • Zangoose@lemmy.worldtoProgrammer Humor@lemmy.mlEvil Ones
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    7 months ago

    This is the case for literally all interpreted languages, and is an inherent part of them being interpreted.

    It’s actually the opposite. The idea of “types” is almost entirely made up by compilers and runtime environments (including interpreters). The only thing assembly instructions actually care about is how many bits a binary value has and whether or not it should be stored as a floating point, integer, or pointer (I’m oversimplifying here but the point still stands). Assembly instructions only care about the data in the registers (or an address in memory) that they operate on.

    There is no part of an interpreted language that requires it to not have any type-checking. In fact, many languages use runtime environments for better runtime type diagnostics (e.g. Java and C#) that couldn’t be enforced at runtime in a purely compiled language like C or C++. Purely compiled binaries are pretty much the only environments where automatic runtime type checking can’t be added without basically recreating a runtime environment in the binary (like what languages like go do). The only interpreter that can’t have type-checking is your physical CPU.

    If you meant that it is inherent to the language in that it was intended, you could make the case that for smaller-scale languages like bash, Lua, and some cases Python, that the dynamic typing makes it better. Working with large, complex frontends is not one of those cases. Even if this was an intentional feature of JavaScript, the existence of TypeScript at all proves it was a bad one.

    However, while I recognize that can happen, I’ve literally never come across it in my time working on Typescript. I’m not sure what third party libraries you’re relying on but the most popular OAuth libraries, ORMs, frontend component libraries, state management libraries, graphing libraries, etc. are all written in pure Typescript these days.

    This next example doesn’t directly return any, but is more ubiquitous than the admittedly niche libraries the code I work on depends on: Many HTTP request services in TypeScript will fill fields in as undefined if they’re missing, even if the typing shouldn’t allow for that because that type requirement doesn’t actually exist at runtime. Languages like Kotlin, C#, and Rust would all error because the deserialization failed when something that shouldn’t be considered nullable had an empty value. Java might also have options for this depending on the serialization library used.


  • As a TypeScript dev, TypeScript is not pleasant to work with at all. I don’t love Java or C# but I’d take them any day of the week over anything JS-based. TypeScript provides the illusion of type safety without actually providing full type safety because of one random library whose functionality you depend on that returns and takes in any instead of using generic types. Unlike pretty much any other statically typed language, compiled TypeScript will do nothing to ensure typing at runtime, and won’t error at all if something else gets passed in until you try to use a method or field that it doesn’t have. It will just fail silently unless you add type checking to your functions/methods that are already annotated as taking in your desired types. Languages like Java and C# would throw an exception immediately when you try to cast the value, and languages like Rust and Go wouldn’t even compile unless you either handle the case or panic at that exact location. Pretty much the only language that handles this worse is Python (and maybe Lua? I don’t really know much about Lua though).

    TLDR; TypeScript in theory is very different from TypeScript in practice and that difference makes it very annoying to use.

    Bonus meme:


  • Zangoose@lemmy.worldtolinuxmemes@lemmy.worldLinux and Chill
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    7 months ago

    Rust is only huge because it doesn’t have an ABI. If you had an ABI (and didn’t have to compile every single dependency into the binary) the binary sizes would probably drop a lot to the point where they’re only slightly bigger than a C counterpart

    Edit: I don’t know if Go has an ABI but they also include a runtime garbage collector in their binaries so that probably has something to do with it.