• 11 Posts
  • 883 Comments
Joined 4 years ago
cake
Cake day: May 31st, 2020

help-circle
  • Big difference to the Wikimedia Foundation is how much money they need. The Mozilla Corporation (which develops Firefox) has around 750 employees.

    Optimistically, only 500 of those are devs and work on Firefox. If you pay those a wage of 100,000 USD, that makes 50 million USD of costs just for wages.

    Firefox has less than 200 million monthly active users, so everyone using it would need to donate $0.25, or alternatively 1% of users would need to donate $25, yearly.

    That’s a lot of money to hope people donate, and this is a very optimistic ballpark estimate.


  • Yeah, the amount of money they get from donations is so tiny compared to what they need for developing Firefox, that they don’t even divert it for Firefox.
    They use it for activism, community work and in the past, they’ve also passed it on to other open-source projects, which are also important for the web but don’t have the infrastructure or public awareness to get donations directly.



  • I mean, if we’re talking about all those problems, the no-type-annotations issue is rather specific for Python, JS/TS and Ruby.

    But in general, I feel like there’s somewhat of an old world vs. new world divide, which happened when package registries started accepting libraries from everyone and their cat.

    In C, for example, most libraries you’ll use will be quite well-documented, but you’ll also never hear of the library that Greg’s cat started writing for the niche thing that you’re trying to do.

    Unfortunately, Greg’s cat got distracted by a ball of yarn rolling by and then that was more fun than writing documentation.
    That’s the tradeoff, you get access to more libraries, but you just can’t expect all of them to be extremely high-quality…


  • Honestly also annoying as a not-so-new folk. I just thought about this yesterday, I reasonably expect to clone a random project from the internet written Java, Rust et al, and to be able to open it in my IDE and look at it.

    Meanwhile, a Python project from two years ago that I helped to build, I do not expect to be able to reasonably view in an IDE at all. I remember, we gave up trying to fix all the supposedly missing dependencies at some point…



  • I don’t know, man, far too many people seem to think that “easy to learn” means they’ll know all they need to know in relatively short time.

    Like, you talk to our data scientists and they’ll tell you doing anything in Python, no problem. But you talk to our seasoned software engineers and you see the war flashbacks in their eyes, because it racks up in complexity so fucking quickly, it’s insane.






  • I wouldn’t get my hopes up. Them announcing something like this looks good PR-wise, so they’ll do it, even if they don’t actually expect this effort to lead to anything.

    But even if they do implement such an API, companies won’t start adopting this API until its capabilities are roughly comparable to the kernel-level solution AND it’s available on most Windows systems in the wild. So, we’re likely talking more than a decade before this sees sufficient adoption…


  • The guy keeps on picking on Go, which is infamous for having terrible error handling, and then he has the nerve to even pick on the UNIX process return convention, which was designed in the 70s.
    The few times he mentions Rust, for whatever reason he keeps on assuming that .unwrap() is the only choice, which’s use is decidedly discouraged in production code.

    I do think there is room for debate here. But error handling is a hellishly complex topic, with different needs between among others:

    • short- vs. long-running processes
    • API vs. user-facing
    • small vs. big codebase
    • library vs. application code
    • prototyping vs. production phase

    And even if you pick out a specific field, the two concepts are not clearly separated.
    Error values in Rust usually have backtraces these days, for example (unless you’re doing embedded where this isn’t possible).
    Or Java makes you list exceptions in your function signature (except for unchecked exceptions), so you actually can’t just start throwing new exceptions in your little corner without the rest of the codebase knowing.
    I find it quite difficult to properly define the differences between the two.