- nous ( @nous@programming.dev ) English63•1 year 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 ( @JustEnoughDucks@feddit.nl ) 2•1 year 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 ( @DrWypeout@programming.dev ) 8•1 year 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.
- JustEnoughDucks ( @JustEnoughDucks@feddit.nl ) 3•1 year ago
Perfect, I develop mostly on ST, Espressif, and some Nordic! I will check it out!
- nous ( @nous@programming.dev ) English2•1 year 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.
- sebsch ( @sebsch@discuss.tchncs.de ) 1•1 year ago
If you have an avr you could just use avr-hal.
The documentation is ok and if you used to work with arduino it should be straight forward.
- rekabis ( @rekabis@programming.dev ) 51•1 year 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 ( @GissaMittJobb@lemmy.ml ) 7•1 year 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
- interolivary ( @interolivary@beehaw.org ) 6•1 year ago
I’ve been meaning to give F# a go but I never seem to get around to it. Seems like an interesting language
- AdamBomb ( @AdamBomb@lemmy.sdf.org ) English3•1 year ago
Get around to it, F# is fantastic! 😄
- eluvatar ( @eluvatar@programming.dev ) 4•1 year ago
And you can even run it in the browser with Blazor! Love C#
- Undertaker ( @Undertaker@feddit.de ) 0•1 year 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.
- eluvatar ( @eluvatar@programming.dev ) 3•1 year ago
Nope. You can compile it to web assembly and run it in the browser.
- atheken ( @atheken@programming.dev ) 3•1 year ago
You should do some research on
wasm
.You can run frickin’ docker containers in the browser now.
I don’t make the rules.
- SokathHisEyesOpen ( @Anticorp@lemmy.ml ) English1•1 year 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.
- aport ( @aport@programming.dev ) 27•1 year ago
C, because it can run everywhere and I won’t be limited on the things I can make
- Troy ( @troyunrau@lemmy.ca ) 20•1 year ago
Python. I’m in data science. Sure I could write all that code in C or C++, but my time spent coding all that extra boilerplate is better spent on analysis.
- Paolo Amoroso ( @amoroso@lemmy.ml ) English20•1 year ago
Lisp, the language that has them all.
- bedrooms ( @bedrooms@kbin.social ) 1•1 year ago
If I can choose a single language that’d be lisp. Very beautiful to write.
- CameronDev ( @CameronDev@programming.dev ) 18•1 year 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.
- sudotstar ( @sudotstar@kbin.social ) 18•1 year 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.
- abclop99 ( @abclop99@beehaw.org ) 5•1 year ago
Malbolge
- interolivary ( @interolivary@beehaw.org ) 3•1 year ago
INTERCAL
- Knusper ( @Knusper@feddit.de ) 16•1 year 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.
- sizeoftheuniverse ( @sizeoftheuniverse@programming.dev ) 16•1 year ago
It would be C++. Its versatile enough to do everything with it.
- java ( @java@beehaw.org ) 14•1 year ago
Rust.
- MagnoliaMayhem ( @MagnoliaMayhem@programming.dev ) 1•1 year ago
I see that user name
- marietta_man ( @marietta_man@yall.theatl.social ) English14•1 year 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 ( @interolivary@beehaw.org ) 3•1 year 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 ( @SrTobi@feddit.de ) 3•1 year 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.
- interolivary ( @interolivary@beehaw.org ) 1•1 year ago
That’s a good point about the synergies, something like eg. a type system that’s expressive enough to be Turing-complete is going to have some effects. You’re right that it might just feel like a “kitchen sink language” due to complexity of the features it has, but then again I suppose it’s sort of one and the same where a language’s complexity comes from.
But it’s no Swift, at least; now that language really does have everything and the kitchen sink.
- UFO ( @UFODivebomb@programming.dev ) 2•1 year ago
Seconded. The metaprogramming aspect of Scala is getting better and better.
- KSP Atlas ( @KSPAtlas@sopuli.xyz ) 12•1 year ago
Likely either C or C++, both languages have been around for a long time and both are still used in huge projects
- 🇰 🌀 🇱 🇦 🇳 🇦 🇰 ℹ️ ( @Kolanaki@yiffit.net ) English11•1 year ago
I’m already resigned to using C for the rest of my life 🤷🏻♂️
- MagnoliaMayhem ( @MagnoliaMayhem@programming.dev ) 2•1 year ago
What bucket of that are you in? There are a lot of different reasons people take your position.
- 🇰 🌀 🇱 🇦 🇳 🇦 🇰 ℹ️ ( @Kolanaki@yiffit.net ) English5•1 year ago
Personally, I just do modding for games as far as using my programming knowledge. C is used damn near everywhere, does pretty much anything I can think of and it’s easy to work with.
- KseniyaK ( @KseniyaK@lemmy.ca ) 11•1 year ago
For me it would be C/C++.
- deadcatbounce ( @deadcatbounce@reddthat.com ) 11•1 year ago
Probably Ruby. For some reason … no, that’s a lie … playing with Exherbo, Gentoo and Funtoo, but mostly Exherbo, made me loathe Python. However, everyone in the data processing arena seems to use it, so I’m bound to have to change my ways eventually! For “Ruby”: read “Python”.
My days of needing high-speed low level languages are long gone. I learned C on Borland C++ back in 1990 to price derivatives on 386s. Loved it.
If I mess around with any language it’s for fun. I intend to commit suicide, when my time is done, by the percussive head trauma that learning Haskell will cause me.
- milicent_bystandr ( @milicent_bystandr@lemm.ee ) 4•1 year ago
See, I love Haskell, and the reason I’d choose Rust for my one language is the feeling that in principle anything I can do in Haskell I can do in Rust, with a little extra percussive head trauma; but I can never have the control in Haskell to do the beautiful efficiency I can do with Rust if I ever actually did any programming.
- deadcatbounce ( @deadcatbounce@reddthat.com ) 2•1 year ago
That’s rather beautifully put and extra marks for p-h-t! 😁😜
I learned low level stuff to give prices to traders before the trading interval ended. I’m serious. Our four man hedge fund was under the wing of huge French bank. Pricing in the era was painful.
Asked for a price in the era used to take minutes for derivatives; I was told much faster wasn’t possible; that’s a red rag to me. I had no choice but to get dirty and go low level again.
The traders were old style barrow-boys, their like disappeared maybe a year or so after. Derivatives have a load of parameters that go with the actual price, “the Greeks”, and market traders easily remember sets of shopping lists and prices and quantities at the same time. They were a shoe-in before computers were actually useful on a trading floor.
I learned to program on a 6502 RISC chip in Acorn Assembler. I liked it because BASIC was shit in the era (GOTO Fcuk My Life), like it got much better … 🤣😂 Knowing how programs work allows me to try to make it faster. These days I think know compilers are smarter than me.
Rust appeals too for the time-travel aspect. I’d like to learn to write a threaded program. I would have loved to do that when back in the day, I always regretted the way it worked, but it was way beyond me 😭 .
I wouldn’t mind looking at my old original killer pricing program, I knew it could be optimised then, but I just didn’t have the time or the skills to go that extra mile. I regret that bitterly. 😡
If you get time, let me know of your (t)rust travels. Bon voyage.