4 ms·
As someone who picked up C++ in the late 90s, the discussion on the language resonates with me: "Other books can tell you how using any of dozens of object-ori
by bradford 3y ago
As someone who picked up C++ in the late 90s, the discussion on the language resonates with me:
"Other books can tell you how using any of dozens of object-oriented languages can make programmers more productive, make code more robust, and reduce maintenance costs. Don’t expect to see any of these advantages in C++..."
"That’s because C++ misses the point of what being object-oriented was all about. Instead of simplifying things, C++ sets a new world record for complexity. Like Unix, C++ was never designed, it mutated as one goofy mistake after another became obvious. It’s just one big mess of afterthoughts. There is no grammar specifying the language (something practically all other languages have), so you can’t even tell when a given line of code is legitimate or not."
- pjmlp 3y agoC++ was born into UNIX, on the same corridor as UNIX and C folks were, hence why its adoption grew alongside UNIX and C. I suggest reading Design and Evolution of C++.
- fsckboy 3y agono. c++'s growth was large projects building largescale apps on MSWindows (Microsoft Office et al), and that started just before "the internet/web". unix grew in somewhat coincidentally the same timeframe, and the timeframe that the internet did because tcp/ip/servers/linux/everything's a stream; client-server was "the thing" and that gave http a place to stand. unix and C are inextricably bound, and that gives C++ some free apron strings to tug, but C++ has never really associated itself with *nix per se. (MS window handles providing a cute place to put a link to the C++ class really cemented it as a "natural" way to interface to C++ OOP for handling UI events)
- anthk 3y agoThis. Unix/Linux are bound to C. Unix's API it's just libc. NT Objects and C++ was the natural binding as you say. Even ReactOS has an NT object viewer in their explorer.exe/shel32.dll reimplementation.
- pjmlp 3y agoThat is the urban myth that keeps saying Microsoft did it, forgetting how C++ was used everywhere else. On UNIX powering CORBA and Motif projects, on Apple taking over Object Pascal, on OS/2 alongside Smalltalk, on BeOS, on Epoch (later Symbian), on IBM replacing PL.8, PL/S usage.
- lproven 3y ago> Epoch (later Symbian) EPOC32. Allegedly, "electronic piece of cheese". AIUI largely unrelated to EPOC16, the 8086 version from the Psion 3/3A/3C/3MX. A history, from my employers but before I even freelanced for them: https://www.theregister.com/Print/2007/06/26/psion_special/ https://www.theregister.com/Print/2007/06/26/psion_special/ Otherwise, you are 100% on target.
- anthk 3y agoNo, a lot of C++ and Motif as developed under Unix, but the giant for C++ software by a HUGE margin it's Windows and Win32 since forever. Similar on how the web was born in a NeXTStep and then GNU/Linux servers (and lots of clients, libre sourced Mozilla and Konqueror's KHTML) ate nearly all the cake.
- StressedDev 3y agoThe original Windows NT kernel was written in C. Dave Cutler liked C and did not like C++. I believe the graphics (not GUI) portion of Windows NT may have been partially written in C++. Also, a lot of the Windows management code (message processing, RegisterWindowClassEx, CreateWindow, SendMessgae, PostMessage, GetMessage, etc.) probably came from Windows 3.x . This code was also written in C.
- anthk 3y agoOK, now have a look on MFC and the tons of software for Windows written in C++ from VisualC/C++ days.
- pjmlp 3y agoThat is a urban myth, as many never looked elsewhere besides Windows.
- mianos 3y agoI use C++ and Python every day. There are ways to make C++ pretty tidy but it is always some tidy stuff in a few files with the rest being a working, but, steaming pile of crap. I always laugh when people seem to jump on a code base and use a few new features. That said, if, say my 15 year old crappy car has a hand built twin turbo, hand built multiple times, v8, that revs to 8500 with a custom built diff and suspension. Given a choice of one of those fancy new, clean lined, reliable cars and mine, I know which one I would take to out if I wanted to have fun and go fast. Now relate this to go, rust and C++.