Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

781–790 of 869 posts

Re: The pool of talented C++ developers is running dry

#781

Earlier quoted context omitted.

Seems to be found by grep fine: % echo 'int x = (int)1.2f;' > foo % grep '(int)' foo int x = (int)1.2f; Does greppable mean something else in this context?

I'm assuming they didn't mean "grep" in a literal sense, rather that it is easier to find keywords like "reinterpret_cast" when scanning your eyes through code, whereas with C-style casts you'd have a much harder time.

Yes I meant this. But grepping can also be a real problem.It is not just plain int what you cast.

Re: The pool of talented C++ developers is running dry

#782

Earlier quoted context omitted.

c & c++ are backend languages, in my experience - what do you mean?

I mean web backend, web apps, services, microservices.

I mostly do backend and devops at work, and C++ is quite present, not as main language, but writing libraries to be plugged into Java, .NET and node frameworks.

Re: The pool of talented C++ developers is running dry

#783
post #771

Earlier quoted context omitted.

Rust is way easier to learn than C++.

Until one needs to deal with async/await, write GUI code, the upcoming GAT, or macros.

Except that the C++ substitutes for those features (where applicable; C++ has nothing like GAT, and has to make do with complex template meta-programming) are a lot harder too.

Re: The pool of talented C++ developers is running dry

#784

Earlier quoted context omitted.

> Long story short: other professions clearly delineate between jobs that are (creative) problem solving and jobs that are more "grunt work" like Ikea-assembling CRUD apps. Why don't we? Is that even possible? It's difficult to separate grunt work and problem solving, because you often need similar levels of context to solve both. They also tend to intertwine a lot.

Of course it is possible. There's just currently more reasons for companies not to care and not to do it than to do it: Capital P Professions have education requirements and licensing/certification commitments. Capital P Professions have ethics bodies and mandate professional standards. Capital P Professions have professional societies that sometimes can organize industry wide negotiations (not quite to the same exte…

Software Engineering is also a capital P profession on the countries where it is a professional title, and not something that one is allowed to call themselves after a six weeks bootcamp.

Re: The pool of talented C++ developers is running dry

#785

Earlier quoted context omitted.

There are lots of reasons to keep using C++ on existing projects in C++ but there are not many reasons to choose C++ for a new project.

That's only true if you're writing code with zero dependencies, which is rarely the case.

Not only that: toolchains, IDEs, static analyzers, mature frameworks for Protobuf, Capnproto, C compatibility, Python wrapping of APIs including little friction: deriving classes and exception conversion in pybind11 for example...

There are lots. It is just that some ppl think real world is just like when they sit down to code a zero-dep, no time-pressure thing.

Re: The pool of talented C++ developers is running dry

#786
post #485

Earlier quoted context omitted.

I am from Brazil. If you saw the news, the current president that just lost elections, been insisting for years, that elections here are untrustworthy. Reason is simple: electronic voting machines with no logging, paper trail or anything. And the common people doesn't have permission to do penetration tests or read the entire source. All of it is proprietary and secretive with no public testing basically. For years t…

Most American voting machines print a ballot an let the voter review it, but not all. There have been some jurisdictions that have given up on that for reasons that seem bad and vague to me. I think mandating that voting machines be open source is a good idea to me. Here in the US we have 3rd party auditing companies. Various US State and the Federal Government all have different testing/auditing labs that they have…

> Do Brazil have anything similar with auditors or inspectors?

Every year before elections, the government entity responsible for the voting machines invites hackers to run penetration tests [0].

> Or at least some crypto connecting the vendor to the polling locations?

The machines have no internet access at all.

[0, Portuguese]: https://www.tse.jus.br/comunicacao/noticias/2020/Abril/voce-...

Re: The pool of talented C++ developers is running dry

#787

Earlier quoted context omitted.

> I'm still wondering why `(int)` is spelled `reinterpret_cast ` in C++ 1. because it is greppable and unsafe 2. because there is also static_cast and dynamic_cast 3. Because in C (int) is all three at once and not greppable -> C will let you do whatever, C++ will not let you do with a static_cast everything you can do with a (T) cast. All in all, it is nice to ask, but if you do not know what you are talking about e…

Seems to be found by grep fine: % echo 'int x = (int)1.2f;' > foo % grep '(int)' foo int x = (int)1.2f; Does greppable mean something else in this context?

Now find casts that are known to be as unsafe as reinterpret cast for the whole set of types your codebase deals with to audit a violation of the type system. What would you grep?

I would grep 'reinterpret_cast' and I would set warning as error for the c-style casts. So you can assume my codebase does not have any.

I will find any cast to reference, pointer, etc. for any type. How would you do tjat if you do:

(int)a ((int)(MyType*))

and many, many more...

Re: The pool of talented C++ developers is running dry

#788
post #767

Earlier quoted context omitted.

This is exactly equivalent to saying that all existing C++ coders should be demoted or fired. It is, among worse things, damned rude.

The only thing worse would be if you were a C++ programmer in the coal industry...

how does that look?

Re: The pool of talented C++ developers is running dry

#789
post #775

Earlier quoted context omitted.

This is exactly equivalent to saying all existing C++ programmers should be demoted to doing only maintenance work, or fired. As such, it is in violation of site terms and conditions, and damned rude.

If you take criticism of any activity you partake in as being "damned rude" and a violation of site T&C, then there'd never be any discussion at all. You are not your job, and prepare yourself for listening to honest criticism of the things you base your identity around or you will find it very difficult to learn and grow.

It was not the criticism that was damned rude. Criticize anything you like, or don't.

What was rude and, frankly, hateful, was the call to demote or lay off all C++ programmers.

Re: The pool of talented C++ developers is running dry

#790
post #771

Earlier quoted context omitted.

Until one needs to deal with async/await, write GUI code, the upcoming GAT, or macros.

Except that the C++ substitutes for those features (where applicable; C++ has nothing like GAT, and has to make do with complex template meta-programming) are a lot harder too.

C++ has had GAT like capabilities on templates since forever.

Complex template meta-programming only if one is stuck in pre-C++17 compilers.

Post reply on HN