• hperrin@lemmy.world
    link
    fedilink
    arrow-up
    243
    arrow-down
    1
    ·
    edit-2
    1 year ago

    You can definitely tell how old it is because both Rust and 3D printed guns have gotten way better.

    And TypeScript is just the JavaScript sword, but with a cheap leather hilt.

    • ours@lemmy.world
      link
      fedilink
      English
      arrow-up
      47
      ·
      1 year ago

      And C# now can be taken off the donkey and mounted on a penguin and works rather well.

    • flying_sheep@lemmy.ml
      link
      fedilink
      arrow-up
      36
      ·
      edit-2
      1 year ago

      It’s a heavy duty hilt that’s easily detachable by a small recessed switch labeled “any”.

      (It does its job very well as long as you don’t opt out of using it)

      • frezik@midwest.social
        link
        fedilink
        arrow-up
        18
        ·
        1 year ago

        Except the tool you use to build the hilt in the first place has 100 permutations of settings, and most of them kill you on the spot.

    • alokir@lemmy.world
      link
      fedilink
      arrow-up
      28
      arrow-down
      1
      ·
      edit-2
      1 year ago

      Also C# (or should I say the .net framework) is now cross platform, which wasn’t really the case when I first saw this meme.

      This joke made sense when instead of .net you could only use Mono with C# on other platforms, which wasn’t very good at the time.

      • r00ty@kbin.life
        link
        fedilink
        arrow-up
        9
        ·
        1 year ago

        Yes, especially when you’re running linux, and the project you started on windows that uses serial ports suddenly doesn’t work any more and you wonder why.

        Hint: The events for serial data received didn’t fire under mono, for reasons.

      • dan@upvote.au
        link
        fedilink
        arrow-up
        8
        ·
        edit-2
        1 year ago

        I hosted my personal site using Mono over 10 years ago now and it mostly worked well. I contributed some code to Mono to fix a few edge cases where their behaviour deviated slightly from Microsoft’s.

        Of course, I couldn’t actually look at Microsoft’s shared source code when doing that, so I had to just observe its outputs. At the time, Mono code had to all be clean-room implementations, since Microsoft’s shared source program, where they released parts of the .NET Framework 4.x source code publicly, had a very restrictive license that didn’t permit reuse (it wasn’t open-source). Even just looking at the code meant you couldn’t contribute to Mono.

        I was very happy when .NET Core was announced and switched to a beta of 1.0 as soon as I could.

      • ours@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        ·
        1 year ago

        Mostly right. Microsoft showed off how .NET 1.0 worked on FreeBSD but it was absolutely pointless since they didn’t provide commercial licenses to run it on anything else but Windows until .NET Core.

    • pingveno@lemmy.ml
      link
      fedilink
      English
      arrow-up
      17
      ·
      1 year ago

      And Python’s migration to 3.x is more or less complete. Took a while (15 years since 3.0), but it’s to the point where migration is not a common topic of conversation.

    • Pyro@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Perhaps a paper hilt. It’ll trick some people into thinking it’s safer but as soon as you begin using it you realise it still has all the same problems as before.

      • hperrin@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        I don’t know, man. I migrated one of my libraries and found 3 bugs just from that. It’s prevented a number of other bugs and issues too.

    • DieguiTux8623@feddit.itOP
      link
      fedilink
      arrow-up
      40
      ·
      1 year ago

      Thank you! The original source of truth! 💎 As IT people, this is part of our culture and should be transmitted. 🤣

      • Deebster@programming.dev
        link
        fedilink
        English
        arrow-up
        12
        ·
        1 year ago

        It seems the image is a screenshot of the original page, slightly upscaled, but since the source page includes links to larger images we can make the HD remaster. Shotgun not me.

  • morrowind@lemmy.ml
    link
    fedilink
    arrow-up
    77
    ·
    1 year ago

    C++ and ruby are weird, especially since C is somehow considered a reliable rifle. Rust betrays it’s age

    • fckreddit@lemmy.ml
      link
      fedilink
      arrow-up
      75
      arrow-down
      4
      ·
      1 year ago

      C is reliable in the sense that your C program reliably has memory leaks and security holes.

      • 420stalin69@hexbear.net
        link
        fedilink
        English
        arrow-up
        19
        arrow-down
        2
        ·
        edit-2
        1 year ago

        Unlike your Java program amirite.

        The benefit of java is that you didn’t write the security holes in your software.

        • PaX [comrade/them, they/them]@hexbear.net
          link
          fedilink
          English
          arrow-up
          5
          arrow-down
          2
          ·
          edit-2
          1 year ago

          Programmers can trust language security features too much…

          Of course, they’re nice to have and really can make things easier to implement securely but it’s still very easy to introduce security problems or bugs into any code. This is just an unsolvable problem of writing imperative code. All imperative code will reliably have memory leaks (even in Java!) and security holes because no compiler can check to see if you thought of everything.

          And large and complex compilers/interpreters with these security features can end up introducing their own security problems or bugs in the process of implementing them.

          I’m just tired of people entirely dismissing languages like C because they don’t have these features. Especially when the operating systems their code runs on and their languages may even be implemented in C!

          • frezik@midwest.social
            link
            fedilink
            arrow-up
            4
            ·
            edit-2
            1 year ago

            Buffer overflows were last seen on the OWASP top 10 list in 2004. Favoring of anything else over C for most things is a pretty obvious reason why. A language change destroyed an entire class of bugs.

          • space_comrade [he/him]@hexbear.net
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            1 year ago

            because no compiler can check to see if you thought of everything.

            We can try to get closer to that with better language design. You’ll never get there but I think there are obvious benefits as to why you’d want to do that.

            I write way less bugs in Rust than I have in Java or C++, and that’s mostly thanks to the language design.

            I’m just tired of people entirely dismissing languages like C because they don’t have these features. Especially when the operating systems their code runs on and their languages may even be implemented in C!

            Because that code has been review and re-reviewed and patched by experts in the field for years. You’re not gonna write a backend for an app with short deadlines in C because that would be absolutely fucking insane.

          • abraxas@sh.itjust.works
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            It’s a “tool for the job” game. I don’t trust a junior developer to write a login system. I’ve found security flaws in login systems written by senior developers who “know what they’re doing TM”. Unless I’m the expert in a given domain, it’s better to trust something written by those experts.

            For the record (since it’s fixed anyway), I discovered a common login timing vulnerability on one of our production systems that had been in place for nearly 15 years. Luckily we didn’t have enough traffic for anyone to notice it before me.

        • abraxas@sh.itjust.works
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          I don’t trust Masterlock, so I’m gonna make my own lock out of duct tape, then tape scissors to the door to use as the key.

    • Jesus_666@feddit.de
      link
      fedilink
      arrow-up
      25
      ·
      1 year ago

      As does C#. The Windows-specific parts are not the parts most developers will use these days.

        • _danny@lemmy.world
          link
          fedilink
          arrow-up
          12
          ·
          1 year ago

          C# is .Net though. It’s only syntax without it.

          I think it’s definitely a dig at windows, because that used to be the primary issue with c#, you could only really target windows and you could only write it using windows. You could run .net framework applications on Linux, but it was a lot of work and it really underperformed (which would fit the timeline of 2015, when this comic was first posted). Now with .net core you can make a self contained executable that can run on anything.

    • frezik@midwest.social
      link
      fedilink
      arrow-up
      15
      ·
      1 year ago

      The M1 Garand is known for having a problem during reloading where you have to stick your thumb in a slot that’s about to shut very hard. There are techniques to avoid getting pinched, but “Garand thumb” is a well-known phrase among vintage rifle enthusiasts.

      This fits C very well.

    • CarbonScored [any]@hexbear.net
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      1
      ·
      edit-2
      1 year ago

      And does anything require Python v2 anymore? I work almost exclusively in Python and haven’t run into that in many years.

    • PaX [comrade/them, they/them]@hexbear.net
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      2
      ·
      edit-2
      1 year ago

      C is very reliable. It works almost everywhere with very little resources or overhead and many of the most fundamental parts of our systems (that have to work reliably) are written in C. Many of the languages in that image are even implemented in C.

      If you want to write portable, fast, and simple code C can help you with that if you use it in the right way.

    • Pipoca@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      The old joke is that C++ is an octopus made by nailing legs to a dog.

      So it should probably be a rifle-chaku made by connecting two Garands with a chain.

      C# vs Java is also really weird since C# started out as basically a Java clone.

    • sexual_tomato@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      I watched Jon Gjenset’s stream where he implemented the beginnings of a BitTorrent client in Rust and of the four hours about 25% of it was spent wrestling with quirks in serde and reqwest.

      It was pretty discouraging watching a pro have to fight the ecosystem so hard.

      • space_comrade [he/him]@hexbear.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        How long ago was this? I think the ecosystem got waaay better in the last 1-2 years. 3-4 years ago it was rough but shit still worked with a bit of trouble.

          • space_comrade [he/him]@hexbear.net
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            1 year ago

            Eh, that’s unfortunate. Yeah the whole ecosystem is still a bit wonky, probably more wonky than most popular languages but tbh I rarely used a stack that just worked out of the box, it almost always took some dicking around, I’d rather do the dicking around with a language that doesn’t always seem to work against me.

    • marcos@lemmy.world
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      And before the time people actually talked about the multidimensional clusterfuck that C become.

    • dan@upvote.au
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      It’s not as common any more, but there’s still things using logic programming languages (Prolog and similar) even today.

      Java uses it in the type checker. From the JVM spec:

      The type checker enforces type rules that are specified by means of Prolog clauses.

      There’s some other compiler and NLP (natural language processing) use cases for it too. I’ve seen some companies use it to define restraints for their business logic, which isn’t too different from the type checker rules use case.

      It’s definitely fallen out of common use though.

      • Treczoks@lemm.ee
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        We did Prolog in university - actually it was one of the two languages we had to learn in CS, the other one being Pascal.

        I always considered Prolog a pain in the ass and unsuitable for anything bigger than a piece of homework due to the “we don’t do loops, we have tail recursion” making the code unnecessary complex and hard to read. On a list of Write-Only languages I’d rate it a few steps below Perl.

        • dan@upvote.au
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          There’s a few things it’s very good at, but anything outside of that tends to be painful.

          I also used Pascal and Prolog in university, in my first year. That was… 15 years ago now. Wow.

  • GamesRevolution@programming.dev
    link
    fedilink
    arrow-up
    44
    arrow-down
    2
    ·
    1 year ago

    It’s a pretty good representation of Rust, being 3d printed means that it’s the only gun where you can’t shoot yourself in the foot

  • roo@lemmy.one
    link
    fedilink
    arrow-up
    39
    ·
    1 year ago

    It’s funny because people describe PowerShell as powerful, but really they mean it’s also a hammer to mash everything with. “Powerfull!”

    • 𝘋𝘪𝘳𝘬@lemmy.ml
      link
      fedilink
      arrow-up
      30
      ·
      1 year ago

      Powershell suffers from the typical Microsoft problem: Ignore for decades, and then go completely over the top with it.

      • BestBouclettes@jlai.lu
        link
        fedilink
        arrow-up
        18
        ·
        1 year ago

        I see Powershell as a nuclear bomb. It is extremely powerful and complex and barely anybody uses it because of it.

          • BestBouclettes@jlai.lu
            link
            fedilink
            arrow-up
            22
            ·
            edit-2
            1 year ago

            Powershell is so much more than bash, not in a derogatory way.
            It’s a full fledged object oriented programming language, and it’s written in .Net I believe. You can integrate tons of plugins to manage your whole infra (exchange, Cisco, AD, VMware etc), just from the Powershell shell.
            I hate it because it’s slow, clunky and overly complex for its prime use, which is scripting.

          • alokir@lemmy.world
            link
            fedilink
            arrow-up
            13
            ·
            1 year ago

            Yes and no. They serve roughly the same purpose.

            I actually hated Powershell until I was forced to work on some automation scripts with it and realized that it’s actually pretty cool.

            Bash is good for quickly doing something in the terminal but for longer script files I prefer PS now. It feels much more modern and has a less janky syntax.

            Funnily enough the reason I had to use it was to make my scripts cross platform between osx, linux and windows.

          • dan@upvote.au
            link
            fedilink
            arrow-up
            7
            ·
            1 year ago

            People tend to hate on PowerShell but it’s cross-platform these days, and far easier to write than shell scripts once you understand the syntax.

            You can pipe objects between functions, rather than just string streams like in Bash. Often there’s no cut, sed, grep, etc needed as what you want is probably a property on an object.

            It’s not just a basic scripting language like Bash. It’s built on top of .NET, so most of things you can do in C#, you can also do in PowerShell (and if not, you can call into C# code).

            It’s especially popular for administration of Windows systems - if there’s anything you want to do on a Windows system, it’s likely there’s a PowerShell module for it.

  • tiredofsametab@kbin.social
    link
    fedilink
    arrow-up
    31
    ·
    1 year ago

    “perl was probably useful once”?!

    I’m willing to bet a TON of medical and banking data is still making its way through perl today. (I’m not necessarily saying this is a good thing, but I have years of experience in healthcare IT).

    • For that matter, there are still folks out there coding, professionally, in FORTRAN.

      Thing is, back then, we didn’t know any better. Software was a commodity, and both the people who wrote it and the people who bought it had grown up in a time before the internet, before SaaS; people whose parents who, if they made things, made widgets.

      Back then, you could write a piece of software, and it was done. Then you sold it, and moved on. If the old software had bugs, if they weren’t catastrophic enough to cause a lawsuit, buyers learned to live with them. It was too bad; you already shipped the tapes. And few companies employed their own software developers unless they were software development companies. Man pages have a BUGS section, and that’s because there’s no intention to ever fix those bugs, because that software is done.

      Software today is never finished. Our first reaction if we see a project with no recent releases is that it’s abandoned, or dead, and certainly that it’s worse than a project with recent commits to the repo. Github is a huge culprit in reinforcing this mentality, but mobile app platforms (stores and OSes) are terrible about this, too. Google constantly changes the Play store in ways that force developers to tweak their apps lest they become incompatible, booted, or get flagged as being “old” a.k.a. “inferior.”

      Yet, still, there’s so much software out there that’s complete. An institution may hire a developer to come in and make a change, but it’s usually a contract one-off; it’s more like taking your car in to have the starter replaced. Those systems are going to continue keeping “dead” programming languages (commercially) alive for years to come.

    • r00ty@kbin.life
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      I use perl for that stuff (mostly automation) that’s a bit too complex for bash, but doesn’t need a proper project. Modern people would use python for this kind of thing. But, I’m too old to change!

    • frezik@midwest.social
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      When it comes to surprising behavior, Perl isn’t any worse than JavaScript. Which admittedly isn’t a great comparison for either language. Most of the bellyaching around Perl has to do with regular expressions, but every other language out there picked up Perl’s regex syntax in a mostly verbatim way (PCRE).

    • palordrolap@kbin.social
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Perl is still as good an interpreted language as any of the others tbh.

      Most of its “problems” are cosmetic, which is probably why Python ended up being its successor in many fields.

      Given the choice between brutalist and Fisher-Price architecture, most people are going to opt for the latter even if everything’s effectively the same inside.

    • mindbleach@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Perl is a language for programmers. This turns out to be a terrible idea. Everything actually works the first time, so you move on, and you’re left with the sloppiest inscrutable stream-of-consciousness mess that someone banged out whilst working through the problem.

      Perl is the only language where you can write more code than you read.

      • tiredofsametab@kbin.social
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        That’s a problem with no coding standards, peer review, etc.

        write_good_code() or die(qw(enough rope to hang yourself));

        or die unless write_good_code();

  • calypsopub@lemmy.world
    link
    fedilink
    arrow-up
    27
    ·
    1 year ago

    I spent my career writing COBOL. Sad not to see it on the list. I think it would be a shield you can bash people with; clunky but effective

    • MajorHavoc@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      1 year ago

      Cobol as a shield would also fit with it inexplicably still be in popular use long after anyone expected!

      • spauldo@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        What’s that I hear? It sounds like Grace Hopper cackling from the grave…

    • pingveno@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      I, too, have met Richard Stallman.

      (I kid. Mostly. He’s amazing in so many ways, but he’s a little off sometimes.)

      • r00ty@kbin.life
        link
        fedilink
        arrow-up
        8
        ·
        1 year ago

        And someone would pick up the phone 30seconds from the end, and there was no resume!

        • dan@upvote.au
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          there was no resume!

          IMO the HTTP Range header (the thing that lets you resume downloads) was one of the best innovations back then. It let the client tell the server where to start the download from, and how much of the file to download. This means it also let you speed up downloads by downloading multiple pieces in parallel. I used to use a program called GetRight and loved it.

          We still split up downloads like this today. These days, internet connections are often fast enough that you can’t reach full speed with a single connection, so speed tests and things like Steam will open multiple concurrent connections for their downloads to maximize download speed.