←back to thread

1087 points smartmic | 1 comments | | HN request time: 0.359s | source
Show context
PaulHoule ◴[] No.44303560[source]
Content 1, Style 0

Thinking you are too smart leads to all sorts of trouble, like using C++ and being proud of it.

If you think your intelligence is a limited resource however you'll conserve it and not waste it on tools, process and the wrong sort of design.

replies(4): >>44303999 #>>44304040 #>>44304316 #>>44305090 #
guywithahat ◴[] No.44304040[source]
It would be really embarrassing to use one of the most popular, time-tested languages.

Even if we decided to use Zig for everything, hiring for less popular languages like Zig, lua, or Rust is significantly harder. There are no developers with 20 years experience in Zig

replies(2): >>44304265 #>>44304290 #
shadowgovt ◴[] No.44304290[source]
Being at a firm where the decision to use C++ was made, the thought process went something like this:

"We're going to need to fit parts of this into very constrained architectures."

"Right, so we need a language that compiles directly to machine code with no runtime interpretation."

"Which one should we use?"

"What about Rust?"

"I know zero Rust developers."

"What about C++?"

"I know twenty C++ developers and am confident we can hire three of them tomorrow."

The calculus at the corporate level really isn't more complicated than that. And the thing about twenty C++ developers is that they're very good at using the tools to stamp the undefined behavior out of the system because they've been doing it their entire careers.

replies(4): >>44304409 #>>44304546 #>>44305200 #>>44306652 #
kragen ◴[] No.44304409[source]
How does someone know twenty C++ developers and zero C developers though?
replies(3): >>44304676 #>>44305559 #>>44306016 #
flkenosad ◴[] No.44304676[source]
Born in the 80s.
replies(1): >>44304737 #
Jtsummers ◴[] No.44304737[source]
That wouldn't stop someone from knowing any C developers. It's still a common language today, and was more common when those 80s kids would have become adults and entered the industry.
replies(2): >>44304824 #>>44304871 #
1. PaulHoule ◴[] No.44304871[source]
As a kid in the 1980s I thought something was a bit off about K&R, kind of a discontinuity. Notably C succeeded where PL/I failed but by 1990 or so you started to see actual specs written by adults such as Common Lisp and Java where you really can start at the beginning and work to the end and not have to skip forward or read the spec twice. That discontinuity is structural though to C and also C++ and you find it in most books about C++ and in little weird anomalies like the way typedefs force the parser to have access to the symbol table.

Sure C was a huge advance in portability but C and C++ represent a transitional form between an age where you could cleanly spec a special purpose language like COBOL or FORTRAN but not quite spec a general systems programming language and one in which you could. C++, thus, piles a huge amount of complexity on top of a foundation which is almost but not quite right.