@fediverse What type of social media do you feel is lacking most in the fediverse?

To elaborate, there are a lot of different types of social media already on the fediverse such as microblogs, regular blogs, image sharing, link sharing and video sharing.

Personally, I’d love to see a gaming-focused social media platform on the fediverse.

  • Patrick, the Linux guy
    link
    fedilink
    211 months ago

    @PeterPoopshit @petrescatraian

    * String concatenation using a “.” character (instead of a “+” like everyone else)
    * Namespaces using a backslash as path separator (“\” is for escaping!)
    * The whole idea of running an interpreter on every page request.
    * Untyped variables

    Just to name a few things on top of my head.

    • @ttmrichter@lemmy.ml
      link
      fedilink
      3
      edit-2
      11 months ago

      String concatenation with + is evil. Well-designed languages (Lua, for example, among many others—I’m not calling PHP well-designed!) doesn’t do this.

      Why?

      Because +, in every other context is commutative, but suddenly, in the case of concatenation, it is not. This is an unnecessary cognitive burden for no material gain.

      Concatenation can be accomplished by juxtaposition (e.g. SNOBOL4, Rexx, much of the C family tree), by .. (Lua), by . (Perl, PHP), by || (PL/I, Rexx again), by & (Ada, some BASIC dialects), etc. without this added cognitive burden of overloading + for no good reason.

      • @pingveno@lemmy.ml
        link
        fedilink
        English
        211 months ago

        I’ve never bought this argument. It really doesn’t take much brain power to figure out that if you are dealing with strings, the left side is going to be on the left and the right side will be on the right. That’s incredibly intuitive logic.

        I would offer up a different reason that neither should be used. Format strings do the trick nicely and allow you to start including literals, convert other types to strings, etc. as needed.

        • @ttmrichter@lemmy.ml
          link
          fedilink
          English
          2
          edit-2
          11 months ago

          A whole lot of misdesigns are only a “small amount of brain power” to use. As your language accumulates these, however, the load builds up.

          This also has the extra problem that overloading in general brings with it. What is the result of 3 + "string"? What is the result of "string" + 3? You have to have rules for this. These rules have to be learned. They have to be kept in mind. There is room for error. And of course the way different languages react to them will vary strongly.

          For example in Rexx, Python, and Ruby these are errors (and with the latter two the error changes depending on which order). In Awk and Perl the result is 3 in both cases.

          Format strings are better than + as concatenation, to be fair, but are still not very good compared to separate concatenation operators. It’s hard to make them type-safe. They separate the value from its location in the string.

          Using actual concatenation operators has the advantage of format strings, but add the possibility for type safety. For example in Ada:

          ...
              Put_Line("Distance: " & Distance_Value'Image & "km");
          ...
          

          See here, & will only concatenate string types. If you want to print something that’s not a string, you have to convert it to a string. This means you can’t accidentally mix types. Further, it’s immediately obvious where a given value will show up in the output. Compare and contrast with the C equivalent:

          ...
              printf("Distance: %skm\n", distance_value);
          ...
          

          Not only is location of the value obfuscated—trivial to spot here, but in a complicated string it’s very difficult to spot at times. And it’s easy, too, to have the format code not match the value. As this example illustrates. Again, easy to spot in trivial code like this, but horrifically hard in real-world code, especially if the variable type changes.