• 39 Posts
  • 978 Comments
Joined 1 year ago
cake
Cake day: September 1st, 2023

help-circle
  • I honestly don’t get why people like Go. Structural typing makes it so difficult to find classes that interpret an interface. Every dumb go project has to be opened in an IDE or something with a language server to find implementors of an interface. Also, forcing every capitalised object in a module or struct to be exported is just… wat? Returning a tuple of whatever, err also feels wrong. It’s like they couldn’t decide between throwing exceptions or an enum and went with something in between.

    I get that the inbuilt concurrency features are nice, but the rest of the language and stdlib feel very lackluster. At least that’s my impression after ~2 weeks of it. My retreat to Rust was rather quick.

    Anti Commercial-AI license


















  • nobody is really dependent on Github

    If that were true, moving away from github would be ezpz.

    The features like searching might not be optimal

    Requiring an account to find a project = not optimal is an understatement, IMO.

    I’m also just a little guy who does scripting and small CLI tools. So it does not matter at all what I do

    That sounds an awful lot like a fallacy. If you wait longer, then when something does drive you to say “I should switch”, you’ll run into the sunken cost issue. If you think you’re unimportant, that’s great for github because they have thousands of people that think they are unimportant but it adds up. You could be part of the solution, no matter how small.

    Anti Commercial-AI license




  • data NonEmpty a = a :| [a]
    

    Note that NonEmpty a is really just a tuple of an a and an ordinary, possibly-empty [a]. This conveniently models a non-empty list by storing the first element of the list separately from the list’s tail: even if the [a] component is [], the a component must always be present.

    Wat? How can I “store the first element of the list separated from the lists tail” when the list is empty? Whether a list is empty or not is a runtime possibility, not a compile-time possibility.

    Someone care to explain this part? It does not compute at all for me.

    Anti Commercial-AI license