• menas@lemmy.wtf
    link
    fedilink
    arrow-up
    7
    ·
    16 小时前

    bonus feature : you server is now a toaster. Well there is nowhere to pu bread, but your watt/heat ratio is definitely closer to toaster than with a decent stack

  • hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    edit-2
    1 天前

    I wrote an entire email service (https://port87.com/) in JavaScript (Node.js and SvelteKit). I know some people have strong feelings against JavaScript, but the fact that you can build basically anything in it is pretty nice.

    • douglasg14b@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      14 小时前

      I mean yeah you can do anything with it like most other languages. The problem comes in with the unstable ecosystem JavaScript has.

      You simply don’t have longevity with libraries and frameworks. They churn and become deprecated far too quickly for really any stable project that requires a low maintenance burden.

      • hperrin@lemmy.ca
        link
        fedilink
        English
        arrow-up
        3
        ·
        12 小时前

        When I say “build anything”, I mean it works in nearly every environment, including natively in the browser. I can write the same code on the server as in the browser as in a mobile app as in a desktop app.

        React has been around, and improving, for 12 years. You can run code from the first version today. The DOM has been stable since about 1998, so anything built on it should still run today.

        It is true that JavaScript libraries tend to change quickly, but that doesn’t mean old versions stop working. It’s not like the native Linux ecosystem, where you need to build on the current kernel and libraries or it won’t work, it’s more like Docker or Flatpak, where you can build your libraries into your bundle and they will keep working. That’s why websites that were built 20 years ago, with the libraries of the time, still work today.

    • iglou@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      16 小时前

      There is many languages that you can build anything with… Although I’ll agree the front end side is more tedious

  • palordrolap@fedia.io
    link
    fedilink
    arrow-up
    64
    ·
    2 天前

    I am old. I am still not over JavaScript existing outside of a browser. I’m not sure I ever will be. And that’s from someone who uses a Linux DE that uses JavaScript and XML as part of its GUI.

      • NotSteve_@piefed.ca
        link
        fedilink
        English
        arrow-up
        20
        ·
        1 天前

        I hate Microsoft but honestly Typescript makes JavaScript one of my favourite languages. Its how it should have been

        • douglasg14b@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          14 小时前

          Yes, typescript is my favorite language. There’s literally no other language out there that is as expressive and has as strong of a type system as typescript. It is the master of making impossible states unrepresentable through meta programming. Being able to move domain complexity into the type system instead of into the runtime is some of the best ways you can reduce your runtime complexity and defects.

          Though .net is my favorite ecosystem, by far. It’s first party frameworks are unmatched in performance and developer experience. And its ecosystem is incredibly stable, unlike JavaScript. C# Is unfortunately a much less capable language from a type perspective than typescript though.

          If C# got discriminated unions and strings as first class type citizens that would launch it pretty far.

          • expr@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            11 小时前

            Umm, there are plenty of languages with a stronger, more expressive type system than Typescript. Like Haskell. And there are languages with an even stronger type system than Haskell (dependently-typed programming languages like Idris). Typescript, while having some small innovations and certainly an improvement over the rather sorry state of OOP type systems, is fairly low on the totem pole as far as type systems go. Also, Typescript’s type system is famously not sound.

            There’s a ton of stuff Typescript simply can’t do. Higher-kinded types, GADTs (type narrowing gives you a little bit of their functionality kinda, but misses a lot of stuff), etc… Not to mention that it has a fairly lackluster type inference system.

    • dohpaz42@lemmy.world
      link
      fedilink
      English
      arrow-up
      9
      ·
      2 天前

      If you have an evening (or all weekend), and really want to blow your mind, look up Low Byte Productions on YouTube and look up their JavaScript videos.

    • TheRedSpade@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      2 天前

      I am old. I am still not over JavaScript existing outside of a browser.

      I’m in my mid thirties and didn’t know this was a thing until now.

      • vithigar@lemmy.ca
        link
        fedilink
        arrow-up
        15
        ·
        edit-2
        1 天前

        Even if you don’t count desktop applications like VSCode or Discord or whatever that are written in primarily JavaScript due to those arguably just being packed inside their own little browser engine that they ship with, still yes.

        Node.js is an extremely widely used JavaScript runtime environment that people are using to write server back ends and command line utilities and god knows what else in JavaScript.

  • Timberfang@pawb.social
    link
    fedilink
    English
    arrow-up
    21
    ·
    1 天前

    We need a mobile app? Believe it or not, JavaScript, right away. We have the best/worst software in the world because of Javascript.

  • Iced Raktajino@startrek.website
    link
    fedilink
    arrow-up
    28
    arrow-down
    2
    ·
    2 天前

    For the longest time (relatively speaking), I would do full stack Javascript (like the meme). But I have to frequently tie into AD/LDAP and the only decent NodeJS library for LDAP is no longer maintained because the community was shitty to the dev. Now I’ve had to venture out into Go (I can’t stand working in Python).

    Let this be a reminder to be nice to the developers who are giving you their hard work for free.

    • Eager Eagle@lemmy.world
      link
      fedilink
      English
      arrow-up
      22
      ·
      edit-2
      2 天前

      whoa, that email is wild, wtf

      it’s not even just a shitpost troll you can shrug off, what’s wrong with that person

      • ripcord@lemmy.world
        link
        fedilink
        arrow-up
        16
        ·
        1 天前

        Depending on your use case, it can be fantastic.

        There’s good reasons why it is the world’s most popular programming language (by a wide margin).

        You are not, generally, going to be using it to write kernels or device drivers, though.

      • Iced Raktajino@startrek.website
        link
        fedilink
        arrow-up
        7
        ·
        1 天前

        For me, it’s the rigid and wonky virtual environments. I get why they’re useful and necessary, but they’re awkward to use. Like, Node just works from the working directory with no fuss and python has to be all source {venv}/bin/activate and lord help you if you need to move it.

        Plus, I have never liked that the spacing is load-bearing.

        • Eager Eagle@lemmy.world
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          1 天前

          uv mostly gets rid of the “venv activation” thing (mostly bc you can still use it if you really want, but you don’t need to), you can do uv run main.py and it’ll just work, no need to even install packages explicitly, it’ll also do that for you and make sure your uv.lock is in sync with your environment.

          it’s the most hassle-free experience I’ve had with python, by a long shot.

          • Iced Raktajino@startrek.website
            link
            fedilink
            arrow-up
            4
            ·
            1 天前

            Sounds like at least a minor improvement. Can those me moved and still work? Like, if I move the project folder, do I have to reinitialize it and download all the packages again?

            • WhyJiffie@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              1
              ·
              17 小时前

              you can always keep the venv dir in the project dir, even without uv. that’s what I do most of the times

            • Eager Eagle@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 天前

              ah, it’s a massive improvement. Everything is in your project dir, so you can move it around. But uv is the fastest package manager, so reinstalling most things doesn’t take time; with the exception of dependencies that need to compile code in different langs.

      • Contramuffin@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        2 天前

        Python is extremely high level and slow. Great for scripting and prototyping but you really shouldn’t build any infrastructure off of it.

        It also has dynamic variable typing, which depending on your use case (see above), can either be nice or a headache

    • Jayjader@jlai.lu
      link
      fedilink
      arrow-up
      4
      arrow-down
      12
      ·
      2 天前

      Wow, it’s rare that I encounter a tech spat where I can so thoroughly empathize with both parties simultaneously. Thank you for sharing that link, I’d never heard of node-ldap nor it’s history.

      • Iced Raktajino@startrek.website
        link
        fedilink
        arrow-up
        18
        arrow-down
        1
        ·
        2 天前

        You’re empathizing with the troll, too? 👀

        FYI: What the troll is describing is not required all. I don’t know what they’re on about, but I’ve used ldap-js in many projects without having to do any of that.

      • douglasg14b@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        13 小时前

        Honestly, the people that shit on C# as a Microsoft product are just as bad as the Microsoft Fanboys. It’s an asinine position.

        Point at the objective reasons to use it such as first party frameworks, being incredibly stable and having some of the best devex and performance in the ecosystem. There are many reasons to use this, especially for large performance orientated, cross platform, long term stable applications.

        It’s a FOSS language anyways, the majority contributions aren’t even from Microsoft employees, seeing crazy high levels of community contributions… Its also supported by a legally separate entity from Microsoft themselves.

  • melfie@lemy.lol
    link
    fedilink
    arrow-up
    4
    ·
    1 天前

    I had to deal with large JavaScript codebases targeting IE8 back in the day and probably would’ve slapped anyone back then who suggested using JavaScript for everything. I have to say, though, that faster runtimes like v8 and TypeScript have done wonders, and TypeScript nowadays is actually one of my favorite languages.

      • melfie@lemy.lol
        link
        fedilink
        arrow-up
        1
        ·
        19 小时前

        The JavaScript code is compiled to native and is heavily optimized, as opposed to being interpreted.

        • Fair Fairy@thelemmy.club
          link
          fedilink
          arrow-up
          1
          ·
          17 小时前

          Compiled to native what?
          Typescript is only used at development time it won’t do shit in the browser for you.
          Where did u see any performance improvements? TS doesn’t do that

          • melfie@lemy.lol
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            16 小时前

            TS transpiles to JS, and then when that JS is executed in Deno, Node.js, a Blink browser like Chrome, etc., it gets just in time compiled to native machine code instead of getting interpreted. Hope that helps.

  • bleistift2@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 天前

    When you add TypeScript on top and with EcmaScript finally caving in to classism, and with all the new shiny APIs (fetch, Temporal, Set and the like), I really don’t get the hate for JavaScript anymore.

    Especially TypeScript’s type system is so awesome that I’ve found my self cursing at Java for not doing types well enough.