Live data from Hacker News

The pool of talented C++ developers is running dry

efinancialcareers.com

821–830 of 869 posts

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

#821
post #619

Well, hire me and train me. I'm a mediocre Python data engineer but self taught myself a bit of C and C++ plus I don't ask for high salary. Something like 90K CAD is good for me.

Most places need people who have production C++ experience. If someone is self-taught and hasn't done production-level C++, then some places are willing to train but don't expect to be hired in anything above a junior-level role.

That's definitely expected. I'm fine with that.

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

#822

Earlier quoted context omitted.

I can recommend pola.rs instead of pandas. For my use case it was insanely faster, I did not try it on Windows however.

Try to update your Python environment and also install ALL recommend dependencies for Pandas (and for Geopandas if you use it). I had one old env in Anaconda (Python 3.9.12, Pandas 1.4.2) and then created a new one in Mambaforge (Python 3.10.6 with Pandas 1.5.0). It gives me speed up one of experiment project from ≈30 min to ≈5 min. Use Python code only for glue and leave extensive calculations for C/C++ code. Pandas…

> Use Python code only for glue and leave extensive calculations for C/C++ code.

That would completely defeat the point of Python for me. I’d rather switch to typescript or C# / Java before I code in C again, but you’re right. Fast Python is an oxymoron. However, in my case my bottleneck is the pandas library. I have to see whether workarounds like Dask work

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

#824
post #732

Earlier quoted context omitted.

I also love Python the language, but it’s hard to keep using it when it’s so slow. Parallel processing helps, but it’s still slow. Definitely dumping pandas the first chance I get. It’s one of two major bottlenecks with the other being anaconda for Windows. Maybe the culprit is running Python on Windows since it relies on so many parts of nix?

I thought parallelism was pretty limited in python due to the GIL (global interpreter lock, iirc)?

Thread based concurrency is limited and near pointless. Parallelism, ie using multiple cores in separate processes, is not

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

#825

Earlier quoted context omitted.

I can't help but wonder if developers are simply off-put by the complexity of the language itself. Way back in 1989 I was fortunate enough to get Borland's C/C++ compiler, the K&R C book, and Stroustrup's C++ book - which, at the time, was about the same size as the K&R C book. The C++ language was relatively simple to learn at that time: no STL, no odd pointer types, no template metaprogramming, etc. Fast-forward to…

> I only have a guess as to what a `shared_ptr` or `unique_ptr` type is, and I certainly don't know when to use them, and concepts/traits outlined in the STL documentation seem to be some sort of generalizations that the STL might provide default implementations for, but might not? What exactly is the syntax and/or type of a lambda function and how do they interact with C function pointers? etc., etc. And that's exac…

I tried to find a book which assumes knowledge of and experience with C++98 and brings you up to speed as far as C++17. Do you know of such a thing?

I read some of Effective Modern C++ but it seemed to be more a list of footguns and poor design decisions in the later C++ editions.

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

#826
My personal anecdote. I used to be a top-notch C++ developer, if I do say so myself. I was able to quote the ARM by chapter and verse as it were. I left C++ a little over 20 years ago. Honestly, Java had gotten to the point it could do everything I needed to do. I've stayed abreast with the changes in C++11, 14, and 17 - but only out of curiosity. I really wouldn't want to go back to that world.

If I were starting new and needed a systems language I wouldn't even think about C++. Rust would be my choice, no question about it - and I'm certainly not a Rust fanboi by any means! As others have mentioned I'd use Rust just for Cargo alone! Seriously, package management for C++ is, was and will probably forever be an absolute mess. Who wants to go back to that?

Now that I think about it that's the difference between "legacy" languages and "modern" languages - dependency and artifact management. In modern languages I expect that to be taken care of uniformly regardless of operating environment. The legacy languages do not do this. This is akin to the separation of classical and modern physics based off quantum theory.

That's why new developers don't want to use "legacy" languages and even many of us older ones don't want to mess around with those environments anymore! Too much work is involved in maintaining your tools rather than getting work done!

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

#827

Earlier quoted context omitted.

Yeah -- I thought it meant something along the lines of "for example" or "one instance being"?

id est (i.e.) = that is (literally "it is") exempli gratia (e.g.) = for the sake of example, for example See: https://en.m.wikipedia.org/wiki/List_of_Latin_phrases

Thanks.

Coincidentally, I had years of Latin so I knew those, but thought this had some other contextual meaning, a name of something (like IE for Internet Explorer). Apparently not!

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

#828

Earlier quoted context omitted.

Usually people use the lower case with dots, i.e. `i.e.`. Also one usually uses `e.g.` in those situations with `i.e` reserved for "that is". To illustrate: "We had to come up with some way to cut our burn rate, e.g. lay off (i.e. fire) some of our workforce; cut facilities (i.e. get out of our leases),..." As an aside, I wish there were "minor aside" conversations that wouldn't pollute the main thread so I could res…

In AE it's also usual to have a comma following them, so "We had to come up with some way to cut our burn rate, e.g., lay off (i.e., fire) some of our workforce; cut facilities (i.e., get out of our leases),..." The reasoning being that these expressions are "parenthetic and should be punctuated accordingly" The Elements of Style

+1 for the comma (Strunk and White and Chicago Manual of Style for references)

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

#829
post #765

Earlier quoted context omitted.

Jane Street is doing it in Ocaml (which is pretty similar to Rust + GC) and they seem to be pretty serious. Are you working at a more "serious" company where they only use languages with the safety level of Assembly?

a) Yes I run technology at a more serious HFT firm than Jane Street. b) Jane Street also use FPGAs, so you cannot exactly say they just use ocaml, it’s more nuanced than that, they are using a mixture of technologies. I think they made a very unfortunate choice early on and are still paying for it.

Do you have actual technical explanation? (other than argument of authority)

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

#830

Earlier quoted context omitted.

they are unsafe because if you try to cast something that's not valid the compiler won't let you. you can then choose to ignore it and be unsafe, or figure out the problem and fix it.

You can still cast INT_MAX to short no matter how you spell the cast, and the result won't be correct.

You shouldn't be using INT_MAX for the last decade or so. That's why std::numeric_limits exist.
Post reply on HN