• nous@programming.dev
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    1
    ·
    10 months ago

    Rust, it is a pleasure to work with and far more flexible in where/what it can run then a lot of languages. Good oneverything from embedded systems to running on the web. Only really C and C++ can beat it on that, but those are farlesss pleasant to work with. Even if it is not as mature in some area quite yet, it just gets more support for things as time goes on.

    • JustEnoughDucks@feddit.nl
      link
      fedilink
      arrow-up
      2
      ·
      10 months ago

      I have been wanting to get into Rust, but as an Electronics Engineer I essentially only have experience coding on embedded devices along with python scripting for test automation and data processing (fuck MATLAB lol)

      I am not a good at coding by any stretch. Everything I find on rust focuses on rust user-level or OS-level applications. Most of those concepts I don’t follow well enough in any case.

      Do you know of where I can follow tutorials, find more information, and dive into HALs for embedded applications?

      • DrWypeout@programming.dev
        link
        fedilink
        arrow-up
        10
        ·
        10 months ago

        Rust actually has a shockingly good embedded story for some parts. ST-micro is very well covered. Espressif has first party support. Nordic parts are supported by Ferrous Systems who certify rust for ISO 26262 use. Msp430 is workable, but requires a fair bit of knowledge. The story is less good for anything else that’s not a Cortex part. RiscV is definitely getting there though.

        https://doc.rust-lang.org/stable/embedded-book/

        Ferrous systems knurling is actually a pretty incredible set of tools. I’d argue that they’re a better experience than most command-line c environments.

        https://github.com/knurling-rs

        They also have some pretty good walkthroughs for the Nordic and Espressif parts.

      • nous@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 months ago

        I would start by learning rust at a user level via the rust book to get you familiar with the language without the extra layers that embedded systems tend to add on top of things. Keep in mind that the embedded space in rust is still maturing, though it is maturing quite quickly. However one of the biggest limitations ATM is the amount of architectures available - if you need to target one not supported then you cannot use rust ATM (though there is quite a few different projects bringing in support for more architectures).

        If you only need to use architectures that rust supports than once you have the basics of rust down take a look at the embedded book, the Discovery book and the Embedonomicon. Then there are various crates for different boards such as ruduino for the arduino uno, or the rp-pico for the raspberry pi pico, or various other crates for specific boards. There are also higher and lower level crates for things - like ones specific to a dev board and ones that are specific to a chipset.

        Lastly, there are embedded frameworks like Embassy that are helpful for more complex applications.

  • rekabis@programming.dev
    link
    fedilink
    arrow-up
    40
    arrow-down
    4
    ·
    10 months ago

    DotNet Core as a whole (C# + F# + other languages that are being ported to compile down to a DotNet binary).

    Because it has all the things Java promised us - frictionless, painless, cross-platform programs - but is implementing it far better than Java ever could.

    Honestly, DotNet Core is now at least a half-decade or more ahead of Java in terms of the base platform and C# language functionality/ease-of-use. The only advantage Java has at this point is it’s community ecosystem of third-party features and programs.

    • GissaMittJobb@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      10 months ago

      I remember my first job working with C# - this was the common sentiment: it’s a Java that is better than Java at being Java. I mostly agree with that.

      Try using Kotlin some day, though. I consider that language to be even better than C#, and it additionally gets to leverage the JVM ecosystem.

      Kotlin > C# > Java, in my book

      • Undertaker@feddit.de
        link
        fedilink
        arrow-up
        0
        arrow-down
        4
        ·
        10 months ago

        You may explained it unprecisley or simply wrong. You can not run it in browser. It is done on web Server side like PHP. In browser you run JavaScript.

    • interolivary@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      I’ve been meaning to give F# a go but I never seem to get around to it. Seems like an interesting language

    • SokathHisEyesOpen@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      4
      ·
      10 months ago

      And those are enormous advantages. It will also get you a lot more jobs. I see Java jobs everywhere. I barely see C job postings at all.

  • KSP Atlas@sopuli.xyz
    link
    fedilink
    arrow-up
    19
    ·
    10 months ago

    Likely either C or C++, both languages have been around for a long time and both are still used in huge projects

  • Knusper@feddit.de
    link
    fedilink
    arrow-up
    18
    arrow-down
    1
    ·
    10 months ago

    Rust:

    • It covers all bases, from embedded to backend to webdev to gamedev.
    • I could create libraries with it, which can be called from other languages.
    • It’s good.
  • CameronDev@programming.dev
    link
    fedilink
    arrow-up
    16
    ·
    10 months ago

    C, can build any other language from that :D

    And if i am gonna be miserable, may as well inflict as many vulnerabities on everyone else while I am at it.

  • Gremour@lemmy.world
    link
    fedilink
    arrow-up
    14
    arrow-down
    1
    ·
    10 months ago

    I’ve already made this choice. Switched from C++ to Go, and now I never want to touch another language at all. Since I’m not writing kernels or embedded, Go is pretty fast for everything else. Not very popular in gamedev, but that’s just a lack of 3rd party libs, specifically native graphics support.

    As for other languages, I can’t justify unnecessary complexity that is generally welcome by those language communities. Go is straight simple yet powerful, and I admire that.

    • MajorHavoc@lemmy.world
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      10 months ago

      I think I’m with you on this one. As another polyglot, I’m hesitant to pick anything, but the language I like working with most, today, is ‘go’.

      I think I would risk it and hope that ‘go’ gains libraries (or I just discovery existing ones) for other things I want to do later.

  • Matty_r@programming.dev
    link
    fedilink
    arrow-up
    12
    ·
    10 months ago

    Ideally I’d choose Rust because I enjoy working with it, but don’t have enough time to commit to it at the moment. But being Practical I’d probably say Java, its easy to get stuff going and has been around forever so it’s easy to find solutions etc.

  • marietta_man@yall.theatl.social
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    1
    ·
    10 months ago

    Scala. Expressive, concise, can scale from simple to sophisticated. Sufficiently powerful - has metaprogramming, advanced types. Runs on a world-class runtime and takes advantage of a huge, mature package ecosystem that isn’t going anywhere.

    • interolivary@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      10 months ago

      “Sufficiently powerful” is a bit of an understatement when it comes to Scala. Honestly may have a bit too many features for my taste, it’s not a small language

      • SrTobi@feddit.de
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

        Actually the language is quite small. The features, it has, are just quite powerful and have huge synergies so that it seems that you have a lot of complex features. It has a lot of weird corner case stuff, but most of that is because of the jvm and other languages have that too unfortunately.

  • cout970@programming.dev
    link
    fedilink
    arrow-up
    10
    ·
    10 months ago

    Kotlin without a doubt.

    Gives you more flexibility and freedom that most scripting languages. The syntax is clean and concise, the tooling is amazing and can compile to JVM, JS, Native and WASM.

    • CodeMonkey@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      10 months ago

      I have used Kotlin a bit for a hobby project and it felt like they were 95% done with a 1.0 version. I love the promise of a single code base that can run on the JVM and browser, but it is not all there. Until recently, the API was not guaranteed to be stable. Every one in a while, I hit a feature that is JVM only or does work right in JavaScript. The JS compiler will “helpfully” remove uncalled public functions unless you explicitly mark them with JsExport.

      Also, from what I can tell, only InteliJ is the only supported IDE (which makes sense, since they are the language developers). There is an official Eclipse Plugin, but the last time I tried it, it did not work and tried to take the entire IDE down with it.

      Having said that, it was very close to complete and I have not worked on that project for a few months, so it could all be perfect now.

      • snowe@programming.devM
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

        Kotlin jvm is extremely stable, not sure what issues you could be encountering there. The API has been guaranteed to be stable for years and years now. And sure, the other stuff has experimental functions, but they’re clearly marked.

        • CodeMonkey@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          Kotlin jvm is extremely stable

          I don’t want to use Kotlin on (just) JVM. The reason I am working with Kotlin is Kotlin Multiplatform (so JVM and JavaScript). The JavaScript side is where all of my frustrations have come from.

  • sudotstar@kbin.social
    link
    fedilink
    arrow-up
    10
    ·
    10 months ago

    I’d probably pick something esoteric and then just stop programming, tbh. I enjoy being a polyglot programmer, and learning many languages and learning from many ecosystems is incredibly interesting to me, far more than hyper-specializing in a single language would be.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    10 months ago

    Unison. If it were to gain mainstream adoption, it would change the world. It’s a crazy futuristic idea and no one else seems to even remotely be approaching the same thing.

    • mindbleach@sh.itjust.works
      link
      fedilink
      arrow-up
      6
      ·
      10 months ago

      Right? C++ feels like cheating. It has every conceivable feature, and you maintain sanity by not using most of them.