[-] FizzyOrange@programming.dev 6 points 7 months ago* (last edited 7 months ago)

For bare metal definitely get a microcontroller and do some fun electronics project.

Easiest to get into is Arduino, but don't stick with that because its only redeeming feature is that it's easy to get into. The IDE sucks, the build system sucks, the APIs really suck, and the code quality is very low (probably because it's easy to get into so you get a lot of inexperienced people doing stuff).

After Arduino I would recommend either going to the Nordic nRF5x series - you can do some cool Bluetooth stuff, or even make you your own radio protocol since the radio peripheral is fully documented... Or ESP32 with Rust and Embassy is probably the most modern and slick way to do microcontrollers.

It does require learning Rust but Rust is really really good so you should do that anyway.

There are some extremely good videos on YouTube about that: https://youtube.com/@therustybits

I would probably still start with Arduino though since you know C. Just don't stay there for too long.

[-] FizzyOrange@programming.dev 6 points 8 months ago

because someone believed an ANSWER on a different question answered my question

Yeah that is actually their official position. Your question is duplicate if an answer elsewhere might answer it, which is clearly absurd. Essentially they think "what's 1+3?" is a duplicate of "what's 2+2?".

I think fundamentally they gamified moderation too well, and for many people they turned the site into a mod-maxing game, which obviously makes it an abysmal place to be for normal users.

[-] FizzyOrange@programming.dev 6 points 1 year ago

Yeah you can use it for normal software. It is very complex though, and the documentation assumes you already have a PhD in formal verification.

[-] FizzyOrange@programming.dev 6 points 1 year ago

Stop linking this, please! Any benchmark where Typescript and JavaScript are different is trash.

[-] FizzyOrange@programming.dev 6 points 1 year ago

If you find yourself needing this, the correct thing to do is to stop writing that shell scripts and switch to a proper language.

[-] FizzyOrange@programming.dev 6 points 1 year ago

That's nitpicking. It is statically typed. Is Dart not statically typed because it has dynamic.

You could call it "gradually typed" if you want to be pedantic.

can be circumvented pretty easily

That means it isn't sound.

[-] FizzyOrange@programming.dev 6 points 2 years ago

He did call it a "shiny language of the day". That's criticism. He's saying the popularity of Rust is due to temporary hype rather than because it is intrinsically good.

[-] FizzyOrange@programming.dev 6 points 2 years ago

I dunno if you're being deliberately obtuse, but just in case you really did miss his point: the fact that type hints are optional (and not especially popular) means many libraries don't have them. It's much more painful to use a library without type hints because you lose all of their many benefits.

This obviously isn't a problem in languages that require static types (Go, Rust, Java, etc..) and it isn't a problem with Typescript because static types are far more popular in JavaScript/Typescript land so it's fairly rare to run into a library that doesn't have them.

And yeah you can just not use the library at all but that's just ignoring the problem.

[-] FizzyOrange@programming.dev 6 points 2 years ago

A sane language, you say.

Yes:

Operator '+' cannot be applied to types 'number[]' and 'number[]'.

We're talking about Typescript here. Also I did say that it has some big warts, but you can mostly avoid them with ESLint (and Typescript of course).

Let's not pretend Python doesn't have similar warts:

>>> x = -5
>>> y = -5
>>> x is y
True
>>> x = -6
>>> y = -6
>>> x is y
False
>>> x = -6; y = -6; x is y
True
>>> isinstance(False, int)
True
>>> [f() for f in [lambda: i for i in range(10)]]
[9, 9, 9, 9, 9, 9, 9, 9, 9, 9]

There's a whole very long list here. Don't get be wrong, Python does a decent job of not being crazy. But so does Typescript+ESLint.

I’ve worked professionally in python for several years and I don’t think it’s ever caused a serious problem. Everything’s in docker so you don’t even use venv.

"It's so bad I have resorted to using Docker whenever I use Python."

[-] FizzyOrange@programming.dev 6 points 2 years ago

It's not moot. The Safe C++ is opt-in to safety. It has to be because otherwise it wouldn't be compatible with existing C++.

[-] FizzyOrange@programming.dev 6 points 2 years ago

submitting a merge request with changes that don’t compile is an absolute no-go.

Right but unless the tests for all 50 filesystems are excellent (I'd be surprised; does Linux even have a CI system?) then the fact that you've broken some of them isn't going to cause a compile error. That's what the linked presentation was about! Rust encodes more semantic information into the type system so it can detect breakages at compile time. With C you're relying entirely on tests.

[-] FizzyOrange@programming.dev 6 points 2 years ago

From what I could tell it's just because he cared about things a lot, and maybe is a little on the spectrum. He definitely wasn't wrong, and maybe other people would have just given up and gone on with their lives but I don't think that's necessarily a trait to encourage.

To put it another way, sometimes when people kick up a fuss it's because they are obstinate naysayers, and sometimes it's because they're doggedly holding decision makers to account. This seemed more like the latter from what I read.

view more: ‹ prev next ›

FizzyOrange

0 post score
0 comment score
joined 3 years ago