"Nick Sabalausky"  wrote in message news:20120723171909.00000527@unknown...

On Mon, 23 Jul 2012 22:51:19 +0200
"Stuart" <stu...@gmx.com> wrote:

On Monday, 23 July 2012 at 15:56:37 UTC, Paulo Pinto wrote:
> Am 23.07.2012 14:49, schrieb Stuart:
>> On Saturday, 21 July 2012 at 22:16:52 UTC, Nick Sabalausky
>> wrote:
>>>
>>> C++ is living in the 70's.
>>
>> Precisely what I have been thinking. It's a loose wrapper
>> around
>> assembly, nothing more. Certainly not the "high-level language"
>> it's touted as.
>
> Only due to the lack of modules.
>
> Everything else is a pretty modern language I would say.

Hardly. No RTTI. No GC. No properties. No events. No closures. No
extension methods. No interfaces. No writable references.


Null-terminated strings. Preprocessor. No reflection. Effectively
undefined sizes for primitive types. Undefined behavior galore. Neither
default initialization nor enforced initialization before variable
usage. No reference types (Foo& isn't what I mean). Horrendous type
syntax for mixed arrays/ptrs or functions ptrs, etc. No forward
references (or at least very limited). And a grammar that forces
compilation to be very, very slow.

Null-terminated strings are a consequence of C compatibility, which is very 70's. Nowadays I mostly use std::string or QtString, no null-terminated strings for me, unless talking
with C apis.

Preprocessor is quite handy as long as you don't abuse it.

Undefined sizes for primitive types is the only way to have a language that doesn't impose restrictions on the target processor. D on the other hand is not able to target anything lower than 32 bits, if I understand
correctly.

Compilation slowness is true, that was my complaint regarding modules. It all boils down to the 70's compiler/linker model inherited from C, instead of the module system introduced by languages
like Modula-2 already in 1983.



And a lot more still that's lacking if you don't count C++11 which
isn't widely supported yet (ex: foreach, basic type inference).

And the fact that static analysis tools are as super useful as they are
is plenty proof alone that the language itself is WAAAY behind the
curve.

This is valid for C as well.

My main point is that despite C++ issues it still feels very modern to me, specially when you compare with what Go, a modern language from 2009 offers. I'll take C++
over Go any day.

But in the end I really miss that Turbo Pascal/Delphi lost the mainstream language game.

Luckly there are quite a few languages where their spirit lives on, C# and D being two of them.

--
Paulo


Reply via email to