3 ms·
Ultimately, though, this is the real tragedy of D. It started as a C clone, and continues to be named like it's a C clone, but it is no longer a C clone. It is
by scythe 7y ago
Ultimately, though, this is the real tragedy of D. It started as a C clone, and continues to be named like it's a C clone, but it is no longer a C clone. It is a general-purpose memory-aware compiled programming language inspired by C++, but it is pretty different by now! People expecting a C clone miss what else it has to offer.
(Can it be a C replacement? Sure, but so can Rust/Swift/Go/etc)
- riffraff 7y agoI don't believe it ever was a C clone. I remember it always presented as a C _successor_, like C++, but in a different direction.
- makapuf 7y agoGo (and some others, swift surely) cannot be used as a C replacement since they need a runtime.
- pjmlp 7y agoJust like C does for calling into main(), doing floating point emulation if CPU not available, calling library initializers (common C extension), handling VLA allocations. Just because it is tiny does not make it inexistent. Then there is the whole POSIX, which is kind of runtime that wasn't made part of ISO C, but follows it everywhere.
- makapuf 7y agoIt's not necessarily tiny but it's optional (besides main() ). Linux kernel, baremetal embedded does not use this.
- pjmlp 7y agoLinux kernel surely used it during the time they had VLAs in, they are now mostly removed thanks to Google efforts reducing memory exploits on the Linux kernel. One just links another implementation, just like printf() vs printk().
- GoblinSlayer 7y agolibc.so.6 is about 2MB.