[HN Gopher] C Isn't a Programming Language Anymore
___________________________________________________________________
C Isn't a Programming Language Anymore
Author : jasonpeacock
Score : 30 points
Date : 2022-03-16 21:56 UTC (1 hours ago)
(HTM) web link (gankra.github.io)
(TXT) w3m dump (gankra.github.io)
| _3u10 wrote:
| Nah it's a programming language author just don't like it.
|
| You don't have to write FFI for Linux. Use your great new
| language to write an OS, or one of the many OSes not written in
| C.
|
| Let's face the facts, your new language probably solves some
| pretty theoretical problems and not problems people actually have
| like, hey I need to layout these structs exactly so the hardware
| will work. Or I can parse a packet off the wire in a reasonable
| amount of time.
| rayiner wrote:
| My Google SoC project was writing a c++ bindings generator for
| Common Lisp: https://lwn.net/Articles/147676/ (In my head this
| was ten years ago, but apparently it'a nearing 17. Shit I'm
| getting old.)
|
| C isn't ideal, but it's actually not so bad and it could be worse
| (it could be C++). Yes parsing C is non-trivial, but that's true
| of every language. Kids these days have libclang and a dozen
| other decent C parsers. Back in my day I had to use a hacked up
| version of GCC.
|
| Also, C doesn't have a standard ABI, but every real world
| platform defines a C ABI. And it's pretty simple. Meanwhile
| trying to handle all of the cases of C++ vtables took up weeks of
| my life (and I ended up shipping without fully supporting
| multiple inheritance, which is stupid anyway).
|
| The bigger problem for writing FFIs is, in my opinion, memory
| management.
| dleslie wrote:
| This is a strange complaint that seems to reduce to C not having
| a week defined ABI.
|
| Of course it doesn't. C implementations do. This isn't really any
| different than most other languages, but feels different because
| C doesn't have a blessed implementation that all other
| implementations must interact with.
|
| That's a strength. It means C is found on esoteric
| microcontrollers as well as powerful modern desktops. That
| wouldn't work as well as it could if the ABI were uniform on all
| targets and implementations.
___________________________________________________________________
(page generated 2022-03-16 23:00 UTC)