5 ms·
I don't know about a list online but here's what I know off, in the C/C++ realm Odin - https://odin-lang.org/ https://odin-lang.org/ Zig - https://ziglang.org
by frfl 3y ago
I don't know about a list online but here's what I know off, in the C/C++ realm
Odin - https://odin-lang.org/ https://odin-lang.org/
Zig - https://ziglang.org/ https://ziglang.org/
Beef - https://www.beeflang.org/ https://www.beeflang.org/
Jai (not public yet) - [1]
Carbon (C++) - https://github.com/carbon-language/carbon-lang https://github.com/carbon-language/carbon-lang
D Lang - https://dlang.org/ https://dlang.org/
Rust - https://www.rust-lang.org/ https://www.rust-lang.org/
cppfront (Herb Sutter's C++ frontend/syntax) - https://github.com/hsutter/cppfront https://github.com/hsutter/cppfront
Nim - https://nim-lang.org/ https://nim-lang.org/
Crystal (not sure if this counts) - https://crystal-lang.org/ https://crystal-lang.org/
Vale - https://vale.dev/ https://vale.dev/
Hylo (formerly Val, just found it now) - https://www.hylo-lang.org/ https://www.hylo-lang.org/
Vala (compiles to C, some GTK apps are written in this) - https://vala.dev/ https://vala.dev/
C3 - https://github.com/c3lang/c3c https://github.com/c3lang/c3c
Rune (last commit 7 months ago) - https://github.com/google/rune https://github.com/google/rune
Kit (dead, last commit 5 years ago) - https://github.com/kitlang/kit https://github.com/kitlang/kit
There's probably more. That's all I can recall off the top of my head and/or what I have in my notes.
There's also Haskell [2], which compiles down to C-- [3] (a C like language). Not sure if this counts either.
[1]: https://en.wikipedia.org/wiki/Jonathan_Blow#2017%E2%80%93present:_Jai_programming_language,_untitled_Sokoban_game,_and_Braid,_Anniversary_Edition https://en.wikipedia.org/wiki/Jonathan_Blow#2017%E2%80%93pre...
[2]: https://www.haskell.org/ https://www.haskell.org/
[3]: https://en.wikipedia.org/wiki/C-- https://en.wikipedia.org/wiki/C--
- jimbob45 3y agoCarbon is really exhibit A of why MVPs exist. Jai and Cppfront have the same problem but Blow and Sutter probably don’t care if they never gain much traction. Conversely, Carbon is Google-backed (IIRC) and will soon die if it can’t justify its continued existence.
- pjmlp 3y agoCarbon has been explicilty announced as an experiement by Google for Google, as means to transition their own C++ code. Chandler Carruth is on the record stating it doesn't matter if it eventually dies, it is an experiement, where they hope to learn something out of it. For some strange reason people keep giving more value to Carbon, than its own design team.
- xhevahir 3y agoCarbon is Facebook.
- deleted 3y ago[deleted]
- steveklabnik 3y agoCarbon was started by Chandler Carruth, at Google, but they wanted to move it to broader governance quickly. It's not under the Google GitHub today, but its own org. https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/evolution.md#governance-structure https://github.com/carbon-language/carbon-lang/blob/trunk/do... And Meta is pretty clearly committed to Rust at this point.
- frfl 3y agoI can't comment on Herb Sutter. But Jonathan Blow, from what I've seen and heard, is deeply passionate about the domain Jai is targeting and appears to have Jai already in pre-production use in his next in-development game/engine. I agree about the MVP stuff; in contrast to things like Zig, Jai is the completely opposite, it's being built behind closed doors with little to no community feedback, with the creator and inner circle have say in the direction. I'm not sure how well it will pan out. Seems like, from the outside, Blow is scratching his own itch and maybe it's possible Jai will never take off. The only real world similar example is Elm, which while open source, is/(was?) also heavily design behind closed doors in many ways, albeit not to the degree to which Jai is. There's also Mojo, the Python-like language. It's also being built behind closed doors, but it seems to have a lot of hype behind it already.
- mtillman 3y agoCrystal counts. I’m not sure why it doesn’t get more love as it’s one of the fastest.
- nerdponx 3y agoIsn't it garbage-collected? Seems more like Go than C. Nim and D also I think are not particularly C-like unless you use some custom compiler settings. And Haskell belongs nowhere near this list. Or is Gambit Scheme also "C-like"?
- frfl 3y agoI should not have included Haskell, more than a stretch.
- j-james 3y agoNim is particularly C-like. The automatic memory management is optional and exposes destructors, it exposes pointers and is quite usable on embedded systems (see: Futhark, Ratel), there are a wide variety of design decisions made to ease interop with C... I do not know about D.
- frfl 3y agoD has something called "Better C" [1], that's why I mentioned it. [1]: https://dlang.org/spec/betterc.html https://dlang.org/spec/betterc.html
- throwaway17_17 3y agoThis is an odd list when responding to a ‘C-alternative’ question. I’m not saying the list is bad or outrageous, just that the parent uses ‘C’ and in a topic about a language like Odin I would expect for a response list to not include C++ and it’s competitors. Again, not saying your list is not a good capsule of C and C++ ‘strata’ languages (with one very notable exception), but people looking for C alternatives in 2024 are (most likely) explicitly ignoring complex languages like C++. About that exception, Haskell may compile to C, using an ill-maintained and not up to date, part of GHC, but it is still Haskell and so compiles to C program source with GC included via header. The Haskell source code does not offer the bit-banging, memory manipulating abilities of C (in any way an imperative language programmer would recognize) and is practically devoid of memory management capabilities to assist in achieving C level performance requirements.
- steveklabnik 3y ago> I would expect for a response list to not include C++ and it’s competitors. While it is a common trope on the internet that C and C++ are totally different and nobody that prefers C over C++ would like the more "complex" languages that are "C++ replacements, not C replacements," in the real world, it's not that clear-cut. I happen to work with a bunch of people who used to be C folks, never really liked C++, but now happily write Rust instead of C. What any "x replacement" needs to be accurate is to define what "x" actually means to you. C means different things to different people! And that's okay. (That said I agree with you that Haskell, at least, is quite the stretch.)
- throwaway17_17 3y agoWhile I don’t disagree with your point in general, and if this was an article about Rust, D, or maybe even Zig, I may have left off the part about C-esque vs C++-esque languages. However, in a topic about Odin, Hare, or Go, I think the comment was germane. These languages value simplicity as a stated goal, and whatever one thinks of the position of C on the simplicity scale, I’d like to think that it is a valid consideration in language comparisons. I will certainly acknowledge a subjective basis for defining and assessing ‘simplicity’ in PL design, but I can not put a language as complex as Rust in a bucket with C, Odin, Go, or Hare. The syntax, semantics, and implementation issues associated with ad-hoc polymorphism alone take it into another strata. I am obviously aware of who I’m talking to and that you would certainly be the person who would know plenary of dev’s from any number of backgrounds happy to have replaced C with Rust. So I’m not trying to imply or say that it doesn’t happen. But there is a difference in working in Rust (happily, preferably, or otherwise) vs C, and in compiling a list of language similar to C. I took the question to hinge on similarity (in at least the complexity characteristic, if not the syntax or type characteristics), while I think you looked at it as a question about valid or preferable replacements for development. Finally, I’m sure it was personal preference and philosophy that led me to assume complexity characteristics were inherently at issue in the GP post’s request for a list. You were certainly correct to point out it is a pretty narrow POV.
- npn 3y agoAnd jakt, the language made by SerenityOS team. It has a very pragmatic design.