• Tartas1995@discuss.tchncs.de
    link
    fedilink
    arrow-up
    99
    arrow-down
    6
    ·
    1 month ago

    It is so weird when people idolize programming languages. They are all flawed and they all encourage some bad design patterns. Just chill and pick yours.

    • CanadaPlus@lemmy.sdf.org
      link
      fedilink
      arrow-up
      61
      arrow-down
      3
      ·
      edit-2
      1 month ago

      Yeah, but that makes it sound like they’re all equal, and there hasn’t been any progression, which is untrue. You’re either insane or a historical reenactor if you write something new in COBOL.

      I think Rust is genuinely a huge leap forwards compared to C/C++. Maybe one day it will be shitty and obsolete, and at the very least it will become a boring standard option, but for now…

      • Vivendi@lemmy.zip
        link
        fedilink
        arrow-up
        6
        ·
        1 month ago

        C++ when it was new was exactly like this. Rust still hasn’t had 30 years of legacy, all these Rust prophets will shit on it’s name in 15 years when they have to maintain huge codebases with it

        Besides, C++ is very likely to adopt memory safety

        • CanadaPlus@lemmy.sdf.org
          link
          fedilink
          arrow-up
          2
          ·
          1 month ago

          Yeah, that’s my guess too.

          As to whether C++ can update enough to steal it’s thunder, I feel less qualified to answer. It’d be pretty impressive if they managed to preserve backwards compatibility and do that at the same time, though.

        • bufalo1973@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          Now it seems the way is unique_ptr and shared_ptr. And std::any to replace void*. At least is what it seems to me.

      • leftzero@lemmynsfw.com
        link
        fedilink
        arrow-up
        4
        arrow-down
        2
        ·
        1 month ago

        makes it sound like they’re all equal, and there hasn’t been any progression

        Programming peaked with Lisp (and SQL for database stuff).

        Every “progression” made since Lisp has been other languages adding features to (partially but not quite completely) do stuff that could already be done in Lisp, but with less well implemented (though probably with probably less parentheses).

          • akamar@feddit.cl
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            1 month ago

            You can use typed Lisp, there are plenty of them, from Typed Racket to Shen in their complexity. Or to make your own type system in 50-100 lines when you actually need

      • Tartas1995@discuss.tchncs.de
        link
        fedilink
        arrow-up
        3
        arrow-down
        5
        ·
        1 month ago

        There have been “improvements” but fundamentally in my perspective, these “improvements” could be revealed to be a mistake down the line.

        Assembly has produced some insane pieces of software that couldn’t be produced like that with anything else.

        Maybe types in programming languages are bad because they are kinda misleading as the computer doesn’t even give a shit about what is data and what is code.

        Maybe big projects are just a bad idea in software development and any kind of dependency management is the wrong way.

        I like modern languages, types and libraries are nice to have, but I am not the student of the future but of the past.

        • verstra@programming.dev
          link
          fedilink
          arrow-up
          12
          arrow-down
          1
          ·
          1 month ago

          That’s a valid argument, but a very weak one. If we are not completely sure something is an improvement in all aspects are we just to dismiss it altogether?

          • CanadaPlus@lemmy.sdf.org
            link
            fedilink
            arrow-up
            6
            ·
            edit-2
            1 month ago

            Yeah, you could dismiss combustion engines for the same reason, or like, carpentry. You wouldn’t be wrong, they have caused problems down the line at various points (modern climate change, medieval deforestation), but you bet I’d still call them an advance on mule power, or on no carpentry.

            This is pretty much an nullification of the idea of technological progress existing at all, which is a kinda hot take.

            @Tartas1995@discuss.tchncs.de, so you can reply in the right place.

            • Tartas1995@discuss.tchncs.de
              link
              fedilink
              arrow-up
              4
              arrow-down
              1
              ·
              1 month ago

              I see your perspective and I think you kinda miss my perspective which I am to blame for.

              I don’t say there weren’t improvements. I am saying that given the uncertainty of “goodness”. Maybe we shouldn’t idolize it. You can appreciate the attempt of creating memory safe code through a programing language without thinking the bare metal code should be written in that language. You can like a typeless easy to write language like Js without thinking desktop app should be written in it. You can like the idea behind functional programming while believing that any application is in the end about side effects and therefore a purely functional application impossible.

              You can approach the whole topic as an area of study and possible technological advances instead of a dogma.

              • CanadaPlus@lemmy.sdf.org
                link
                fedilink
                arrow-up
                3
                ·
                edit-2
                1 month ago

                Oh, well I can agree with that.

                You can like the idea behind functional programming while believing that any application is in the end about side effects and therefore a purely functional application impossible.

                It’s a bit of a tangent, but if you’re doing something completely deterministic and non-interactive, like computing a digit of pi, it’s great in practice as well. I use Haskell semi-regularly for that kind of thing.

                You could argue printing the output is a side effect, but is a side effect followed by termination really “side”?

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      21
      arrow-down
      4
      ·
      edit-2
      1 month ago

      [warning: “annoying Rust guy” comment incoming]

      I don’t think Rust is perfect, but arguably I do “idolize” it, because I genuinely think it’s notably better both in design and in practice than every other language I’ve used. This includes:

      • C
      • C++
      • Java
      • C#
      • Kotlin
      • Scala
      • Python
      • Ruby
      • JavaScript (…I’ve barely used this, but I doubt my opinion would change on this one)
      • Perl
      • Go
      • Bash (…look, I’ve had to write actual nontrivial scripts with loops and functions, so yes, Bash is a real language; it just sucks)
      • Tcl/Tk (if you don’t know, don’t ask)
      • CommonLisp (…again, I’ve barely used this, and I wish I had more experience with this and other Lisps)

      In a literal sense, I agree that all (practical) languages “are flawed.” And there are things I appreciate about all of the above languages (…except Tcl/Tk), even if I don’t “like” the language overall. But I sincerely believe that statements like “all languages are flawed” and “use the best tool for the job” tend to imply that all (modern, mainstream) languages are equally flawed, just in different ways, which is absolutely not true. And in particular, it used to be true that all languages made tradeoffs between a fairly static, global set of binary criteria:

      • safety/correctness versus “power” (i.e. low-level system control)
      • safety/correctness versus run-time efficiency (both parallelism and high single-thread performance)
      • ease-of-use/ease-of-learning versus “power” and runtime-efficiency
      • implementation simplicity versus feature-richness
      • build-time versus run-time efficiency
      • type-safety versus runtime flexibility

      Looking at these, it’s pretty easy to see where most of the languages in my list above fall on each side of each of these criteria. What’s special about Rust is that the core language design prevents a relatively novel set of tradeoffs, allowing it to choose “both” for the first two criteria (though certainly not the latter three; the “ease-of-use” one is debatable) at the expense of higher implementation complexity and a steeper learning curve.

      The great thing about this isn’t that Rust has “solved” the problem of language tradeoffs. It’s that Rust has broadened the space of available tradeoffs. The assumption that safety necessarily comes at a runtime cost was so pervasive prior to Rust that some engineers still believe it. But now, Rust has proven, empirically, that this is not the case! And so my ultimate hope for Rust isn’t that it becomes ubiquitous; it’s that it inspires even better languages, or at least, more languages that use concepts Rust has brought to the mainstream (such as sum-types) as a means to explore new design tradeoff spaces. (The standard example here is a language with a lightweight garbage-collecting runtime that also has traits, sum-types, and correct-by-default parallelism.)

      There are other languages that, based on what I know about them, might inspire the same type of enthusiasm if I were to actually use them more:

      • Erlang
      • Gleam
      • OCaml
      • Swift

      …but, with the exception of Swift, these are all effectively “niche” languages. One notable thing about Rust is that its adoption has actually been rather astounding, by systems language standards. (Note that D and Ada never even got close to Rust’s popularity.)

        • flying_sheep@lemmy.ml
          link
          fedilink
          arrow-up
          8
          ·
          1 month ago

          Because they just have their own brain chemistry as the basis of it whereas the above comment clearly states:

          Rust has proven empirically that the tradeoff between performance and safety doesn’t need to exist.

          Which is truth. And it’s much easier to base a coherent argument on truth rather than vibes.

          • beliquititious@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            1
            arrow-down
            2
            ·
            1 month ago

            Eh, technical merit is only one of many factors that determine what language is the “best”. Best is inherently a subjective assessment. Rust’s safety and performance is the conceptual bible rustacians use to justify thier faith.

            I also know religious people who have written books about their faith too (my uncle is a preacher and my ex-spouse was getting their doctorate in theology). Rust has the same reality-blind, proselytizing zealots.

            The needs of the project being planning and the technical abilities of the developers building it are more important that what language is superior.

            I like rust. I own a physical copy of the book and donated money to the rust foundation. I have written a few utilities and programs in rust. The runtime performance and safety is paid for in dev time. I would argue that for most software projects, especially small ones, Rust adds too much complexity for maintainability and ease of development.

    • orcrist@lemm.ee
      link
      fedilink
      arrow-up
      4
      ·
      1 month ago

      I probably wouldn’t describe them as flawed, because the goal wasn’t and couldn’t ever be perfection, so then everything is flawed, but then is it really a flaw? It sounds like more of an issue of what’s useful in what type of situation.

      • bufalo1973@lemmy.ml
        link
        fedilink
        arrow-up
        2
        ·
        1 month ago

        That’s something I don’t get about doing things in a language that is not meant to be used for that (like JS for something other than web).

    • leftzero@lemmynsfw.com
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      1 month ago

      They are all flawed and they all encourage some bad design patterns.

      On the other hand, Lisp.

  • bgschaid@programming.dev
    link
    fedilink
    arrow-up
    72
    arrow-down
    1
    ·
    1 month ago

    How can a rewrite in a completely different language violate this license? There should also be a clause “Once you looked at the source code you must not write anything with similar functionality … in any programming language”

    • ZILtoid1991@lemmy.world
      link
      fedilink
      arrow-up
      31
      ·
      1 month ago

      Leaked Windows code made Wine and ReactOS devs anxious, since MS could sue over it. On the other hand, I’ve looked up the keycodes from the Linux kernel for X11 (it’s literally just PS/2 with the unused codes being used in place of the E0 keys), and they haven’t yet came after us.

      • xantoxis@lemmy.world
        link
        fedilink
        English
        arrow-up
        36
        ·
        edit-2
        1 month ago

        It made them nervous because someone might put parts of the original source into Wine. You can’t do that in a rewrite in a different language, it doesn’t even make sense. The thing the people in this screenshot are gloating about isn’t even relevant to this license.

  • DumbAceDragon@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    51
    arrow-down
    6
    ·
    1 month ago

    That’s a lot of words for “I don’t understand the borrow checker”

    In all seriousness, yeah rust users are annoying, but I think rust is a welcome change over C/C++

    • zaphodb2002@sh.itjust.works
      link
      fedilink
      arrow-up
      36
      arrow-down
      1
      ·
      1 month ago

      Hey I’m both an annoying Rust user and I also don’t understand the borrow checker. I just put & and * in front of things until it works.

      • howrar@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        1 month ago

        Same. I keep thinking back to my time TAing for an intro programming course and getting students who just add random braces until their code compiles. That’s me right now with Rust pointers.

    • 5C5C5C@programming.dev
      link
      fedilink
      arrow-up
      35
      arrow-down
      7
      ·
      1 month ago

      Speaking as an annoying Rust user, you’re being bigoted. I’m annoying, but the vast majority of Rust users are normal people who you wouldn’t even know are using Rust.

      Don’t lump all the others in with me, they don’t deserve that.

    • ZILtoid1991@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      1 month ago

      While the borrow checker has its downsides, so its legitimate uses. A few people in the D community were thinking about implementing it as a library.

      • DumbAceDragon@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 month ago

        Didn’t know D still had an active community, that’s pretty awesome. Wonder if someone has ever worked on a borrow checker for Nim.

        • ZILtoid1991@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          1 month ago

          D seems to getting traction yet again, and some stuff might get better (D3, new GC, new standard library, etc).

  • katy ✨@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    26
    arrow-down
    1
    ·
    1 month ago

    you may not create, maintain, or distribute a forked version of the software

    ok, i’m just gonna host it on my website for archival purposes and if someone happens to download it that’s not my fault

  • TheObviousSolution@lemm.ee
    link
    fedilink
    arrow-up
    16
    ·
    edit-2
    1 month ago

    No distribution, but he didn’t say no distributing a language parser to change it into rust and then microcompile a new executable on the spot.

    Tell me you are having a midlife crisis over not wanting to change over from the programming language you grew up mastering without telling me you are having a midlife crisis over not wanting to change over from the programming language you grew up mastering.