106
submitted 2 months ago* (last edited 2 months ago) by CoderSupreme@programming.dev to c/programming@programming.dev
top 50 comments
sorted by: hot top controversial new old
[-] zcd@lemmy.ca 63 points 2 months ago
[-] dohpaz42@lemmy.world 57 points 2 months ago
<?php
declare(strict_types=1)

😏 😁

πŸƒβ€β™‚οΈπŸ’¨

[-] Kissaki@programming.dev 7 points 2 months ago

πŸƒβ€β™‚οΈπŸ’¨

The dash emoji. Always looks like a fart.

[-] mox@lemmy.sdf.org 51 points 2 months ago

With no context, this could be an honest attempt to learn about different tools, a thinly veiled set-up to promote a specific language, or an attempt to stir up drama. I can't tell which.

It's curious how such specific conditions are embedded into the question with no explanation of why, yet "memory safe" is included among them without specifying what kind of memory safety.

[-] Ephera@lemmy.ml 11 points 2 months ago

Yeah, arguably the only answer to this question is Rust.

Java/C#/etc. are not fully compiled (you do have a compilation step, but then also an interpretation step). And while Java/C#/etc. are memory-safe in a single-threaded context, they're not in a multi-threaded context.

[-] starman@programming.dev 8 points 2 months ago* (last edited 2 months ago)
load more comments (1 replies)
load more comments (17 replies)
load more comments (2 replies)
[-] Dhs92@programming.dev 50 points 2 months ago
[-] FizzyOrange@programming.dev 45 points 2 months ago

Rust for now, by a wide margin. But I'm following other languages that I think have the potential to surpass it, including Vale (promises way more than it delivers currently), Koka, Hylo, maybe Lobster.

[-] tooLikeTheNope@lemmy.ml 6 points 2 months ago* (last edited 2 months ago)
load more comments (4 replies)
[-] germanatlas 37 points 2 months ago

That is a very specific subset

[-] sus@programming.dev 31 points 2 months ago

Garbage collection is still allowed, and technically JIT languages are still compiled so it really isn't that restrictive

load more comments (1 replies)
load more comments (1 replies)
[-] bonus_crab@lemmy.world 31 points 2 months ago

C# is good too. If you havent heard of lobster you should look into it.

[-] warlaan@feddit.org 6 points 2 months ago

C# isn't exactly compiled, at least not into machine language. It is transpiled into byte code that is run on a virtual machine that on turn is an interpreter/JIT-compiler.

Depending on why someone is asking for a compiled language that may or may not be a problem, because to the one writing the code it looks like a compiled language, but to the one running it it looks like an interpreted one.

[-] sarahduck 17 points 2 months ago

Not necessarily these days! With NativeAOT, C# can be compiled to machine code.

[-] GetOffMyLan@programming.dev 12 points 2 months ago

It is compiled to bye code. Just to be clear transpiling is completely different. It is also not interpreted.

But ahead of time compilation is available now. So you can compile straight machine code.

The newer tiered JIT can actually give better performance than a traditional compiler as well.

Overall C# is an awesome language. If performance is absolutely critical you can use raw pointers and manual memory management, but obviously you lose safety then.

load more comments (1 replies)
[-] demesisx@infosec.pub 27 points 2 months ago* (last edited 2 months ago)

As others have said, Haskell and Rust are pretty great. A language that hasn’t been mentioned that I REALLY want to catch on, though, is Unison.

Honorable mention to my main driver lately: Purescript

load more comments (2 replies)
[-] lambdabeta@lemmy.ca 24 points 2 months ago

Ada, hands down. Every time I go to learn Rust I'm disappointed by the lack of safety. I get that it's miles ahead of C++, but that's not much. I get that it strikes a much better balance than Ada (it's not too hard to get it to compile) but it still leaves a lot to be desired in terms of safe interfacing. Plus it's memory model is more complicated than it needs to be (though Ada's secondary stack takes some getting used to).

I wonder if any other Ada devs have experience with rust and can make a better comparison?

load more comments (3 replies)
[-] apoisel@discuss.tchncs.de 22 points 2 months ago
[-] cyclohexane@lemmy.ml 8 points 2 months ago

Sad I had to scroll to the end to see this.

Ocaml is brilliant and has the nicest type features. It's almost like Haskell but more approachable imo.

load more comments (7 replies)
[-] AsudoxDev@programming.dev 17 points 2 months ago
[-] Andromxda@lemmy.dbzer0.com 17 points 2 months ago

Hands down, Rust πŸ¦€

[-] BorgDrone@lemmy.one 16 points 2 months ago
[-] hessnake@lemmy.world 16 points 2 months ago

I started learning Go about 3 months ago and it quickly became one of my favorite languages. It feels like C with a bunch of Python niceties thrown in. And performance isn't super critical in my work so being garbage collected is fine with me.

[-] skulbuny@sh.itjust.works 14 points 2 months ago

People don't understand that JIT languages are still compiled, JIT literally describes when it's compiled.

That said, F# and/or OCaml.

[-] 1rre@discuss.tchncs.de 13 points 2 months ago* (last edited 2 months ago)

C is memory safe if you program it well enough, so I guess C

[-] sus@programming.dev 27 points 2 months ago* (last edited 2 months ago)

every single language (except Vlang of course) is memory safe if you program it perfectly.

Very, very few humans are capable of doing that, especially with C.

[-] pathief@lemmy.world 22 points 2 months ago

Every car has airbags if you drive well enough. Right?

[-] WolfLink@sh.itjust.works 7 points 2 months ago

You can still make stupid mistakes in Rust. It may make it harder to make the most common mistakes, but pretending the guardrails are prevent any type of mistake is asking for a problem to happen.

load more comments (1 replies)
[-] SatouKazuma@programming.dev 20 points 2 months ago
load more comments (4 replies)
[-] MajorHavoc@programming.dev 6 points 2 months ago* (last edited 2 months ago)

Lol. The people downvoting your comment need to get good.

load more comments (1 replies)
[-] ICastFist@programming.dev 13 points 2 months ago

Nim. Small compiler, small executables, easy to understand (except the macros, I still can't get my head around them).

FreePascal. Yeah yeah, Pascal's dead, etc etc, but it being so verbose and strict certainly help programmers (or at least me) keeping things somewhat tidy.

Also shoutout to V

[-] KindaABigDyl@programming.dev 11 points 2 months ago

Rust and Haskell (I think Haskell counts)

[-] UFODivebomb@programming.dev 10 points 2 months ago

Scala 3 native. If the compiler was faster I'd be even happier. Curious to try Ada

[-] pelya@lemmy.world 10 points 2 months ago

C++ with -Wall -Werror, and no pointer diddling.

[-] FizzyOrange@programming.dev 15 points 2 months ago

Its definitely best to try and avoid raw pointers, but even if you try really hard I found it's not really possible to get a Rust-like experience with no UB.

Even something as simple as std::optional - you can easily forget to check it has a value and then boom, UB.

The C++ committee still have the attitude that programmers are capable of avoiding UB if they simply document it, and therefore they can omit all sanity checks. std::optional could easily have thrown an exception rather than UB but they think programmers are perfect and will never make that mistake. There are similar wild decisions with more recent features like coroutines.

They somehow haven't even learnt the very old lesson "safe by default".

If I wanted memory unsafety I think I would consider Zig instead of C++ at this point.

load more comments (1 replies)
[-] bradboimler@lemmy.world 10 points 2 months ago
[-] cinnamon_tea@programming.dev 9 points 2 months ago* (last edited 2 months ago)

You forgot that beauty - "undefined behavior"!

Memory-safety can guarantee only so much safety! C++ can still blow up in your face, even with all the alleged memory-safety built into C++, thanks to all the UB traps in C and C++.

Rust is the closest language that has no such "gotchas".

[-] cafuneandchill@lemmy.world 9 points 2 months ago* (last edited 2 months ago)

After months of no practice, I forget quite a lot of stuff about them, regardless of language; therefore, none

EDIT: None of them is memory safe, that is

[-] MajorHavoc@programming.dev 9 points 2 months ago* (last edited 2 months ago)

Python with MyPy.

(Almost any language can meet those criteria, with enough shenanigans.)

load more comments (2 replies)
[-] frankenswine@lemmy.world 8 points 2 months ago

You mean... except Ada?

[-] 30p87@feddit.org 7 points 2 months ago

C++, with some Skill

/s

but seriously, I don't know any language with a good, C/Cpp-like Syntax (so not Rust), with a good compiler (again not Rust). So I'm sticking to Cpp.

[-] uthredii@programming.dev 7 points 2 months ago

You should check out zig, its compiler can even be used for c/c++. If you have time to listen to an interview, this developer voices interview on zig explains some of the advantages of this: https://www.youtube.com/watch?v=5_oqWE9otaE&t=3970s

[-] InverseParallax@lemmy.world 7 points 2 months ago

Thinking about zig for some stuff.

Mostly because those rusticles are pissing me off.

load more comments (2 replies)
load more comments (1 replies)
[-] yogsototh@programming.dev 6 points 2 months ago* (last edited 2 months ago)

purescript if you count β€œcompile to js” as compiled.

Otherwise Haskell

load more comments (3 replies)
load more comments
view more: next β€Ί
this post was submitted on 05 Oct 2024
106 points (100.0% liked)

Programming

17655 readers
106 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS