• 13 Posts
  • 1.54K Comments
Joined 4 years ago
cake
Cake day: May 31st, 2020

help-circle
  • It does have that, the ecosystem is just really fractured and also not good.

    Sort of the ‘standard’ way of managing dependencies is with Pip and a requirements.txt. By itself, that installs dependencies on your host system.
    So, there’s a second tool, venv, to install them per-project, but because it’s a separate tool, it has to do some wacky things, namely it uses separate pip and python executables, which you have to specify in your IDE.
    But then Pip also can’t build distributions, there’s a separate tool for that, setup.py, and it doesn’t support things like .lock-files for reproducible builds, and if I remember correctly, it doesn’t deal well with conflicting version requirements and probably various other things.

    Either way, people started building a grand unified package manager to cover all these use-cases. Well, multiple people did so, separately. So, now you’ve got, among others:

    • Pipenv
    • Pip-tools
    • Conda
    • PDM
    • Poetry
    • Rye

    Well, and these started creating their own methods of specifying dependencies and I believe, some of them still need to be called like a venv, but others not, so that means IDEs struggle to support all these.

    Amazingly, apart from Rye, which didn’t exist back when we started that project, none of these package managers support directly depending on libraries within the same repo. You always have to tag a new version, publish it, and then you can fix your dependent code.

    And yeah, that was then the other reason why this stuff didn’t work for us. We spent a considerable amount of time with symlinks and custom scripts to try to make that work.
    I’m willing to believe that we fucked things up when doing that, but what makes still no sense is that everything worked when running tests from the CLI, but the IDE showed nothing but red text.


    • AFAB = assigned female at birth; basically because they happened to have a vagina at birth, so they were supposed to like pink and dolls and a lower paycheck and whatever else society has decided the female experience should be like.
    • AMAB = assigned male at birth
    • NB = non-binary; a person that identifies neither as male nor as female. They might be something in the middle, or they might be something completely different.
    • femme = basically the way women have traditionally looked or behaved (long hair, pink etc.)
    • fundie = fundamentalist Christian; basically very conservative, very eccentric people with world views they claim to be traditionally Christian
    • bussy = boy pussy; the anus of a man, or it may also be used to describe the vagina of a transmasc person
    • transmasc = transmasculine; a person who was assigned female at birth, but who rather identifies with masculinity and may have taken measures to be perceived as such (clothing, hormones, surgery etc.)




  • 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’ve been telling all the juniors we have, that they’re free to use a GUI tool, but they do not get around learning the CLI. If you fuck up or Git breaks, you’ll need to look up how to unfuck it and that’s where the only help you find is for the CLI.

    In particular, it’s also been my experience that you rapidly come into a situation where suddenly you’re the Git expert and need to help others. If you only know one specific GUI, you can only help others who use that GUI. If you know the CLI, you can help anyone.

    It also happens that you need to interact with Git repos on a server where you simply won’t have a GUI.

    And yeah, given that whole opinion, personally I seriously do not care to learn a GUI in addition to the CLI.



  • As I see it, the difference is that we now have capable game engines freely available. Indie studios can, for the most part, offer the same quality of gameplay. AAA studios can only really differentiate themselves by how much content they shove into a game.

    In particular, this also somewhat limits creativity of AAA games. In order to shove tons of content into there, the player character has to be a human, the gameplay has to involve an open world, there has to be a quest system etc…