• melfie@lemy.lol
    link
    fedilink
    arrow-up
    12
    ·
    4 hours ago

    I worked in heavy JavaScript codebases back in the IE days and wasn’t too crazy about it. Then JIT compilers like v8 came along and made it run a lot faster and TypeScript also made it more usable for larger codebases. I now consider TypeScript among my favorite languages. I’ve also written a lot of Go lately, and while I appreciate its speed and smaller memory footprint, the missing language features kind of grate on me and I don’t mind taking a bit of a performance hit for the (IMO) superior ergonomics of TypeScript, especially for workloads where I/O is more of the bottleneck than compute.

  • addie@feddit.uk
    link
    fedilink
    arrow-up
    7
    ·
    4 hours ago

    I’m in this photo and I don’t like it.

    More specifically, my programming background is in industrial automation and I’d like to add some more ‘robust and flexible’ algorithms to CoolerControl so I can control my system fans / temperature better, but it’s written in a mix of TypeScript and Rust.

    I’ve spent 20 years programming hard real-time z80 assembly and know quite a few higher-level languages. (Although I prefer the lower-level ones.) Not those ones, however, so it’s not just a couple of hours work to raise a PR against that project. Going to need to crack some books.

  • termaxima@slrpnk.net
    link
    fedilink
    arrow-up
    11
    arrow-down
    3
    ·
    6 hours ago

    JavaScript really depends on the people writing it restricting themselves to a sane (ish) subset, just like C++

    My personal gripe with JavaScript is how horribly slow it is. C++ at least has the merit of being fast once compiled. I wouldn’t feel great contributing to a JS project knowing fully well that a rewrite in a faster language would be 10x as effective as anything I could improve as is.

  • Redkey@programming.dev
    link
    fedilink
    arrow-up
    28
    ·
    9 hours ago

    JS has saved me many hours of mind-numbing, error-prone manual keyboard work by giving me a way to hack together a simple bit of automation as a web page.

    Even when a computer has been ham-fistedly locked-down by an overzealous IT department, I can almost always still access a text editor and a browser that will load local HTML files.

    • mirshafie@europe.pub
      link
      fedilink
      arrow-up
      11
      ·
      7 hours ago

      Add to that the beauty of bookmarklets.

      It’s silly that IT departments forces us to resort to techniques used before browser extensions became a thing, and it’s ironic that it’s because they don’t know how to code, but here we are.

  • MonkderVierte@lemmy.zip
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    5 hours ago

    Just now localsend, which would be really convenient. But the desktop app needs a while to start and render each time (because a electron flutter app) and then always runs an animation. Is there something like this (sharing files/text with phone) in cli or with support for tray?

    • thevoidzero@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      5 hours ago

      I don’t know what you mean by supports tray but have you tried KDE connect? It has a lot more features than just sending files but I use it for a few things.

      And if you don’t care about having GUI, I love miniserve for sharing files. It’ll open a web server and you can connect to it to download/upload files.

    • termaxima@slrpnk.net
      link
      fedilink
      arrow-up
      12
      arrow-down
      3
      ·
      6 hours ago

      Yes and no. “Real” programmers care about engineering choices ; and JS is the cardboard of programming languages.

      Perfect for packaging (which in this metaphor is UI), horrible for building a bridge with. And vice-versa, I wouldn’t try and make amazon packaging out of reinforced concrete.

    • arcterus@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      68
      ·
      13 hours ago

      For something you’re getting paid for, sure. But if you’re contributing in your free time for fun or whatever, presumably you’d prefer to use a language you actually like.

    • TeamAssimilation@infosec.pub
      link
      fedilink
      arrow-up
      49
      arrow-down
      20
      ·
      edit-2
      12 hours ago

      Real programmers will write in a way that user’s resources are not being wasted because you need a full browser, a JS runtime, and DOM juggling, to show even the simplest application.

      It’s not rare for simple JS applications to consume over half a gigabyte of RAM on startup, and way more CPU than their native counterparts. That this was normalized and even defended is stupid.

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        44
        ·
        11 hours ago

        I think you’re thinking of Electron apps, but that’s not really a criticism of JavaScript, that’s a criticism of Electron. There are plenty of JS platforms that don’t require a browser/DOM. React Native is the biggest example. Also, GJS if you want native Linux apps.

  • SethranKada@lemmy.ca
    link
    fedilink
    English
    arrow-up
    45
    arrow-down
    6
    ·
    15 hours ago

    Feels the same whenever a project is written in python, but I uninstall it too.

      • rhabarba@feddit.org
        link
        fedilink
        arrow-up
        59
        arrow-down
        5
        ·
        14 hours ago

        Same, so I’ll only answer for me: Python is dependency hell, also breaking existing code with every second update. Hard pass.

        • lauha@lemmy.world
          link
          fedilink
          arrow-up
          16
          arrow-down
          1
          ·
          10 hours ago

          breaking existing code with every second update

          Still remembering python 3 release from 17 years ago?

        • SSUPII@sopuli.xyz
          link
          fedilink
          arrow-up
          16
          ·
          11 hours ago

          We are no longer in the Python 2 days. You have lots of wiggle room for using the version you want and are rarely forced to use specific releases.

          • Jesus_666@lemmy.world
            link
            fedilink
            arrow-up
            23
            ·
            10 hours ago

            There still plenty of “this version of pytorch doesn’t run reliably with Python 3.12, please use 3.10”, though. It’s not all sunshine and roses.

            • FishFace@piefed.social
              link
              fedilink
              English
              arrow-up
              2
              arrow-down
              1
              ·
              9 hours ago

              If you’re writing python code you have to deal with versioning, yeah. But the end user basically never has to care.

              • Jesus_666@lemmy.world
                link
                fedilink
                English
                arrow-up
                8
                ·
                9 hours ago

                Except if they then have to run it on their machine and the setup instructions start with setting up a venv. I find that a lot of Python software in the ML realm makes no effort to isolate the end user from the complexities of the platform. At best you get a setup script that may or may not create a working venv without manual intervention, usually the latter. It might be more of a Torch issue than a Python one but it still means spending a lot of time messing with the Python environment to get things running.

                This may color my perception but the parts of the Python ecosystem I get exposed to as an end user these days feel very hacky. (Not all of it is, though; I remember from my Gentoo days that Portage was rock solid.)

                • The Quuuuuill@slrpnk.net
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  56 minutes ago

                  if they do that’s not release ready software that you should concern yourself with imo. that’s a problem of project maturity not runtime choice

                • Confused_Emus@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  1 hour ago

                  Figuring out venvs was a bit frustrating for me. Particularly since the steps I was following to install a particular app mentioned nothing about them, so I just got an error when I tried to follow their instructions. Thankfully managed to get it figured out, but yeah, definitely wouldn’t have been my first choice for an install method if others were available for that app.

                • Valmond@lemmy.world
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  4 hours ago

                  Security issues aside, you can freeze python code to an executable, linux, mac, windows.

                  Kind of neat IMO. Except the security concerns ofc.

                • rhabarba@feddit.org
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  7 hours ago

                  There are reasons why Common Lisp (that I absolutely prefer as well) is still a big thing in AI-related applications. Some of those are listed in your comment.

                • FishFace@piefed.social
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  8 hours ago

                  ML is a very new field and so most programs are not mature, and indeed they can have you messing around with venvs and such.

                  But most python software people actually used is packaged by a distro already.

      • Ephera@lemmy.ml
        link
        fedilink
        English
        arrow-up
        34
        arrow-down
        1
        ·
        13 hours ago

        Personally, I find that (complex) software implemented in Python tends to be so unreliable that I typically don’t want to use it after all, but I only find that out after wasting a bunch of time learning the software.
        It’s just frustrating, especially if I come back to the software every so often, naively thinking that it’s been a few versions, so maybe they’ve fixed it. It’s always just different bugs, which still end up being too frustrating to use the software.


        To give an example, I like to compose music using Lilypond, which is more-or-less a programming language to create sheet music. And there is a program that’s supposed to give you a well-integrated workflow for that (i.e. an IDE), called Frescobaldi.
        The first time I tried it, playback of the composed music wouldn’t work.
        The second time, I couldn’t click on notes to jump to the respective code snippet.
        And I tried it again a few weeks ago and it just crashed immediately with an obscure error message.

        Instead, I’ve slapped together a script, which just opens the sheet music in my PDF viewer, the code in my normal editor and then uses a CLI tools to generate and playback the sheet music. And while it’s definitely not perfect, it has been working more reliably for me than Frescobaldi ever has.

  • hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    10
    ·
    14 hours ago

    Some of the best software is written in JavaScript.

    • Uptime Kuma
    • Immich
    • Supabase
    • VS Code/VSCodium
    • Ionic (what the Voyager Lemmy client is written in)
    • Expo/React Native (which powers probably a third of your apps)
    • MonkderVierte@lemmy.zip
      link
      fedilink
      arrow-up
      2
      ·
      7 hours ago

      Using only VSCodium in this llist. But not much, because i always have to close it on evening, or the casual game with 300 mods wouldn’t run beside it and the webbrowser reserving about half of my 32 GB RAM.

    • arcterus@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      33
      ·
      13 hours ago

      This doesn’t really conflict with the post. They use and appreciate the software, so presumably it’s decent. You can write good software in any language, so it doesn’t prove that the language itself is good. IMO JS is a popular language, not a good language.

          • hperrin@lemmy.ca
            link
            fedilink
            English
            arrow-up
            6
            ·
            edit-2
            9 hours ago

            I’ve never really found the type conversions that bizarre, unless you’re doing something weird like casting an array to a string or number. I don’t really use strange type casts, since I use TypeScript and avoid using the “==“ operator. What other things make it not good?

            • arcterus@piefed.blahaj.zone
              link
              fedilink
              English
              arrow-up
              13
              arrow-down
              1
              ·
              9 hours ago

              I mean, just the fact that you’re using TS instead of plain JS (and that TS even exists) should tell you that the language has issues…

              • hperrin@lemmy.ca
                link
                fedilink
                English
                arrow-up
                5
                ·
                9 hours ago

                It’s just strict typing on top of plain JS. I like strict typing. Some people like loose typing.

                • SaharaMaleikuhm@feddit.org
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  5 hours ago

                  Yes, but some are VERY opinionated about it. It’s almost religious with them. I think it’s silly. Both have their pros and cons. I honestly enjoy both and never had a big issue with loosely typed languages. I assume it’s just bad developers that mess up and get confused about it.

                • arcterus@piefed.blahaj.zone
                  link
                  fedilink
                  English
                  arrow-up
                  8
                  ·
                  8 hours ago

                  I’m pretty sure most people do not like JS’s loosey-goosey, who-knows-what-ur-gonna-get type system, which is why TS is so popular. Not really surprising since the bones of the language were basically spat out in a couple weeks. TS is a custom type system on top of JS, meaning it’s not just JS’s type system expressed through strict typing. They added a bunch of useful features like discriminated unions and so on to make using TS more pleasant than raw JS.

                  TS is actually usable (although NPM and the environment built around it still suck). It’s inherited a bunch of weird shit from JS, but the type system generally makes them bearable.

                • ChickenLadyLovesLife@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  7 hours ago

                  I started my career with Visual Basic (3!) and I appreciated the loose typing because it meant I could get going and actually have something running quickly as a newbie. A few years later I switched to C# and saw how an entire class of errors disappeared because of the strong typing. Both have their place, depending on the skill level of the coder and the needs of the application.

              • hperrin@lemmy.ca
                link
                fedilink
                English
                arrow-up
                2
                ·
                9 hours ago

                Considering TypeScript is a superset of JavaScript, you certainly can. But, that generally means you’re using TypeScript poorly.

    • Fushuan [he/him]@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      7 hours ago

      Technically typescript. I know it transpiles to J’s but half the complaints I read are about the typo conversion and so on, which ts heavily alleviates.

    • CeeBee_Eh@lemmy.world
      link
      fedilink
      arrow-up
      14
      arrow-down
      1
      ·
      13 hours ago

      Taking Immich as an example, there’s a lot of heavy lifting happening there behind the scenes in external libraries that are not written in JS.

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 hours ago

        It’s written for Node and Svelte. But sure, just like nearly all other software, they use external libraries.

    • Oisteink@lemmy.world
      link
      fedilink
      arrow-up
      9
      arrow-down
      6
      ·
      14 hours ago

      So uptime kuma being written in JS proves what about the language?

      90% of the worst software and websites are made in js

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        11
        arrow-down
        1
        ·
        14 hours ago

        Well, all websites are written in JS (on the frontend), so I don’t think that’s fair. And I don’t think 90% of the worst software is made in JS. Even if you’re an Electron hater, Electron apps aren’t bad software, they’re just bloated. There’s tons of shit software written in C. I would guess a lot more than is written in JS, just because more software is written in C. C is also way easier to shoot yourself in the foot.

        Uptime Kuma (and others) show that JS can be used to make awesome software. The language doesn’t really hold you back, it’s just your own skill. If you suck at writing software, it doesn’t matter what language you use, your software will be shit.

        • The_Decryptor@aussie.zone
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          8 hours ago

          Well, all websites are written in JS (on the frontend)

          Not true anymore unfortunately, some sites are using frameworks compiled to WASM instead.

          e.g. X is apparently using Yew now.

          Edit: Ok the “apparently” is doing heavy lifting, since now I can’t find the original source I read about it. Turns out “X” is a garbage name with no searchability, only an idiot would use it.

        • Oisteink@lemmy.world
          link
          fedilink
          arrow-up
          9
          arrow-down
          4
          ·
          13 hours ago

          So any language is good as I can make great software using it?? IMO js is still a mess and NPM is really full of shit code to prove it.

          • hperrin@lemmy.ca
            link
            fedilink
            English
            arrow-up
            5
            ·
            edit-2
            11 hours ago

            I didn’t say that. You can make great software in Brainfuck, but I don’t think anyone has ever said it is good because of that.

            People do make good software in JavaScript. Knowing JavaScript is an exceptionally useful skill, and JavaScript is pretty easy to become decent at. The learning curve for JavaScript is relatively low. As such, there are tons of JS devs, many of which want to make cool things. JavaScript is undeniably an approachable language. Whether you personally think it’s a good language doesn’t have any bearing on that, but that means tons of people are going to use it to make cool software. To me, its approachability is one of the many things that make it good.