News for hackers. Stuff that matters.
Re:Cello – High Level C by 37ef_ced3 on Saturday March 05, 2022 @02:06AM (#30565130)
Consider using Go instead, as a replacement for C.
Re:Cello – High Level C by kaba0 on Saturday March 05, 2022 @03:33AM (#30565625)
Go is a high level language, it doesn’t share any quality with C, other than perhaps bad expressiveness.
Re:Cello – High Level C by pjmlp on Saturday March 05, 2022 @04:19AM (#30565882)
"C Is Not a Low-level Language Your computer is not a fast PDP-11."

https://queue.acm.org/detail.cfm?id=3212479

Re:Cello – High Level C by badsectoracula on Saturday March 05, 2022 @05:45AM (#30566292)
That article completely misses the point - assembly (or machine code) might not be how the "metal" works on a modern desktop(-like) CPU, but that is irrelevant when that is the lowest level that said CPUs are exposing. On such CPUs C is at the lower levels possible.

But also C isn't just for Intel, x86 and (some) ARM CPUs, there are other targets it has.

Re:Cello – High Level C by pjmlp on Saturday March 05, 2022 @06:34AM (#30566570)
Nothing of that is exclusive to C, please provide an example of a CPU where C is the only compiler toolchain available, and exposes CPU capabilities without using language extensions.

Any example with language extensions to ISO C, allows me to provide a counter example with language extensions.

Any example where only a subset of ISO C is allowed, allows me to provide a counter example with a language subset.

Re:Cello – High Level C by badsectoracula on Sunday March 06, 2022 @09:44AM (#30577859)
Are you replying to the correct comment? I never claimed anything that would be exclusive to C. What i wrote applies equally to something like, e.g., most Pascal dialects that are around the same "level" as C.
Re:Cello – High Level C by pjmlp on Sunday March 06, 2022 @05:38PM (#30581991)
This leaves room for such interpretation "On such CPUs C is at the lower levels possible.".

Sorry if I misunderstood it.

Re:Cello – High Level C by saagarjha on Saturday March 05, 2022 @05:09AM (#30566124)
But many microcontrollers are and their toolchains do treat it as such.
Re:Cello – High Level C by pjmlp on Saturday March 05, 2022 @06:31AM (#30566541)
Re:Cello – High Level C by relyks on Saturday March 05, 2022 @02:07AM (#30565132)
What about Rust?
Re:Cello – High Level C by 37ef_ced3 on Saturday March 05, 2022 @02:10AM (#30565157)
Too complicated. Rust is more similar to C++ than it is to C.
Re:Cello – High Level C by wejick on Saturday March 05, 2022 @03:57AM (#30565767)
I tried multiple times to grok rust, but it's still too difficult for me to understand and be comfortable. In contrary go other than the struggle of unused variable compile error, I can use it within hours.
Re:Cello – High Level C by thayne on Saturday March 05, 2022 @03:22PM (#30571508)
Maybe. But it's still closer to C than go is.
Re:Cello – High Level C by eternityforest on Saturday March 05, 2022 @03:09AM (#30565481)
What's wrong with that? Rust seems to be fully capable of doing low level things like drivers and kernels, so why would you choose less abstraction and safety instead of more?
Re:Cello – High Level C by sk0g on Saturday March 05, 2022 @03:18AM (#30565535)
In a time where C++ exists, C still gets used. C interop is even easier in C++ than Rust IIRC, so given the choice, C++ would get the nod much earlier I'd imagine.

That said, people use C because it forgoes abstractions and complications. Neither C++ nor Rust provide that experience. I think Go comes the closest, while being a bit nicer to work with overall.

Re:Cello – High Level C by eternityforest on Saturday March 05, 2022 @06:30AM (#30566529)
The question is whether they should be foregoing those abstractions and complications.

C is not a language known for high security or reliability, nor is it known for being fast or easy to develop in, so by my guess based on vague anecdotal evidence, it seems that defaulting to the highest level of abstraction unless forced to do otherwise by some specific requirement is a better plan.

C and direct C replacements advertise simplicity, but if the simplicity doesn't buy you any reliability in practice, why bother with it?

Re:Cello – High Level C by gefhfffh on Saturday March 05, 2022 @03:23AM (#30565559)
C++ is way more complicated than Rust though.
Re:Cello – High Level C by jack_pp on Saturday March 05, 2022 @03:46AM (#30565696)
C++ has more features than Rust but you can limit yourself pretty severely and use "simple" features to get far more safety and convenience than C without having to wrap your mind around Rust.
Re:Cello – High Level C by gefhfffh on Saturday March 05, 2022 @03:57AM (#30565771)
True for your new project from scratch when you already sucked up C++ such that you know what&when.

But at this point you know C++ pretty well (including all what you don't want to use, take a look at the CPP Core Guidelines), and using Rust is almost trivial, since Rust doesn't really introduce anything really new you wouldn't be already familiar with.

At least that was my experience.

Re:Cello – High Level C by PaulDavisThe1st on Saturday March 05, 2022 @07:46AM (#30567068)
> That said, people use C because it forgoes abstractions and complications. Neither C++ nor Rust provide that experience.

There's almost no C code you could write in an effort to "forego abstractions and complications" that isn't also C++.

Re:Cello – High Level C by pjmlp on Saturday March 05, 2022 @04:20AM (#30565888)
Due to UNIX clones, and religious cargo cult on some embedded circles.
Re:Cello – High Level C by nicoburns on Saturday March 05, 2022 @05:50AM (#30566308)
I’d say zig is closest C replacement.
Re:Cello – High Level C by eggy on Saturday March 05, 2022 @01:12PM (#30570137)
I agree, and much easier than Rust to get going and then some. Other than playing with Nannou in Rust to 'get' the language, and the Rust book, I started a toy game in Zig without more than the skeleton put together here:

https://github.com/michal-z/zig-gamedev

I like Raylib, and there are bindings for most popular languages, but I like the minimalism I can start with fairly quickly in Zig. I tried Bevy for Rust, but it is a lot more involved, and Rust, so Zig it is for now.

For safety, and high-integrity software, I am sticking with SPARK2014. Rust will get there soon, but Ada/SPARK2014 have such a lead, maturity, and industry take up that I am putting Rust down for another year or more.

Re:Cello – High Level C by eternityforest on Sunday March 06, 2022 @08:28AM (#30577465)
I kinda wish SPARK were mainstream. Ada kind of aims for the same things as Rust, but it's been around such a long time. It's amazing how long C has stayed around.
Re:Cello – High Level C by Tozen on Sunday March 06, 2022 @01:19AM (#30575472)
That's a bit debatable. Vlang is right there too. This would all be relative to what people are trying to do. Many people might really be looking for a C and C++ replacement, of which there are a number of viable alternatives (including good old Object Pascal), but then preferences and other factors makes things cloudy.
Re:Cello – High Level C by eternityforest on Sunday March 06, 2022 @08:23AM (#30577425)
Rust is the one Torvalds seems most interested in, and I suspect that's a deciding factor.

Zig might be the most direct upgrade from C, but it seems like rust can mostly replace the entire concept of portable assembly, since it has zero cost abstractions.

Re:Cello – High Level C by thayne on Saturday March 05, 2022 @03:19PM (#30571475)
For some cases that's fine, but go has terrible FFI, which make it unsuitable for some use cases, and being garbage collected makes it unsuitable for others.
Re:Cello – High Level C by dvh on Saturday March 05, 2022 @02:29AM (#30565279)
Isn't there a danger that go will be cancelled?
Re:Cello – High Level C by phendrenad2 on Saturday March 05, 2022 @02:32AM (#30565298)
I think Go has gained enough fans that it'll survive somehow, in some form, for a long time.
Re:Cello – High Level C by bitcharmer on Saturday March 05, 2022 @02:36AM (#30565328)
How can a programming language be cancelled?
Re:Cello – High Level C by astrobe_ on Saturday March 05, 2022 @03:03AM (#30565452)
By accusing it of discrimination against generic classes.
Re:Cello – High Level C by mirekrusin on Saturday March 05, 2022 @04:03AM (#30565798)
Yet discriminating unions are all fine and nobody speaks up.
Re:Cello – High Level C by Trex_Egg on Saturday March 05, 2022 @10:00AM (#30568110)
Gold
Re:Cello – High Level C by snorkel on Saturday March 05, 2022 @08:21AM (#30567319)
Did you ever hear the tragedy of Perl the wise?
Re:Cello – High Level C by N3Xxus_6 on Saturday March 05, 2022 @11:29PM (#30575037)
Lmfao
Re:Cello – High Level C by blowski on Saturday March 05, 2022 @02:38AM (#30565334)
Stop providing security patches, for example.
Re:Cello – High Level C by bitcharmer on Saturday March 05, 2022 @02:40AM (#30565344)
I thought golang was open source. What am I missing?
Re:Cello – High Level C by eternityforest on Saturday March 05, 2022 @03:13AM (#30565500)
You can't literally kill a FOSS project like you can with proprietary, but it can go away if nobody else wants to maintain it.

FOSS projects die all the time. You might want to write a patch here and there, but do you want to do all the DevOps, pay for hosting, manage testing, etc?

Maintaining a project kinda sucks.

Re:Cello – High Level C by nicoburns on Saturday March 05, 2022 @05:51AM (#30566313)
Sure, but there are enough huge companies using Go (including organisations like banks for whom a couple of developer salaries are small change) that I’m sure someone would step up to maintain it.
Re:Cello – High Level C by paskozdilar on Saturday March 05, 2022 @02:30AM (#30565290)
Not at all, as long as Rob Pike is alive, I believe.
Re:Cello – High Level C by johndough on Saturday March 05, 2022 @02:44AM (#30565369)
Rob Pike is 66 and the average male life expectancy in America is 76 years. Of course I wish him to live happily for many more years, but it would be presumptuous to expect him to work on Go for the rest of his life.

But although google has killed 264 projects so far [1], I believe that Go has too many dependents at Google and in industry to cancel. And even if it should happen anyway, the community will fork it.

[1] https://killedbygoogle.com/

Re:Cello – High Level C by veltas on Saturday March 05, 2022 @03:11AM (#30565490)
Life expectancy of a 66 year old is 83.
Re:Cello – High Level C by johndough on Saturday March 05, 2022 @04:28AM (#30565927)
I stand corrected. I also forgot to consider that Rob Pike is Canadian, which further improves his statistical chances.
Re:Cello – High Level C by mirekrusin on Saturday March 05, 2022 @04:04AM (#30565810)
Must be at least 10y more if you don’t use Java.
Re:Cello – High Level C by gompertz on Saturday March 05, 2022 @01:06PM (#30570064)
Yeah... Exactly. Look at all the stuff Bell Labs came out with in the 60s and 70s that still survives today, without their involvement. Go will live on regardless.