7 ms·
> People are seemingly scared away from the language by a terrible stigma: the notion that it is a legacy program. My personal experience: Universities (in Ger
by Kelteseth 4y ago
> People are seemingly scared away from the language by a terrible stigma: the notion that it is a legacy program.
My personal experience: Universities (in Germany) simply stopped teaching C++. Most of it is now Python or C#.
- stingraycharles 4y agoDid they? I know that when I did my CS in early 2000s, they didn’t even teach a specific language — you were expected to pick one up yourself in your own time. Perhaps it’s just part of a bigger zeitgeist that people just care less about C++ than they did before, faster than the actual job pool is decreasing?
- LeanderK 4y agoThat hasn't changed, you are still expected to pick one up yourself except (for me) Java, the first and only language that really got "taught". Maybe that was C++ a few decades ago or something. We had to do a little bit of C for some system programming lecture.
- zaphar 4y agoI mean, I don't think it's a legacy language at all. But I do think it's a minefield of annoying problems with no two codebases speaking the same subeset of C++ evolved to work around those annoying problems. All told I would fine it more frustrating to work in C++ than enjoyable.
- soinus 4y agoWould not say it's true at least for robotics related fields. I personally taught C++ some years ago and the new guys have taken over since, adopting and improving on my course. There are many specializations where C++ is still a must.
- bodhiandphysics 4y agoYes... it’s the lingua franca of graphics and scientific computation (including low level ML)
- lumost 4y agoHaving recently learned C++/C.. I don't see why it would be taught as a first language outside of specializations. The gains from C/C++ coding are vastly outweighed by the costs. The reality is that there is no good, agreed upon standard in C++ for how to manage memory... how would you teach this to junior engineers at university?
- insanitybit 4y agoHaving learned C/C++ as my first languages I can say I'm quite glad for it. I was able to learn so fucking much. 1. Object oriented programming, complete with inheritance and virtual dispatch 2. Pure Functional Programming, lambdas, const correctness, template metaprogramming 3. Type system fuckery - the things you can do in C++'s TMP is insane. Both nominal and duck typing in the language. 4. Hardware - I watched so many talks on how CPUs work that explained things via C/C++. I learned about tools like valgrind and cachegrind, how to profile code, etc. 5. Security - The original reason I wanted to learn them, to understand how to exploit C and C++ programs and their common vulnerabilities 6. Data structures - C++ is awesome for building data structures from scratch and understanding their low level semantics I don't want to write them professionally, but learning them was massively helpful, with skills propagating through every other language I've used.
- magicloop 4y agoI'm glad someone pointed out these things, as I concur. I learnt C++ via the C++ programming language book, and it gave me many of the above benefits/insights. (The book has its faults though). It is akin to trawling through the CLRS book. It does make you a better programmer but no-one knows why. (An attempt at sarcasm - I know most of us never need to do advanced data structures/algorithms but it helps refine the mind for programming challenges).
- gridspy 4y ago7. Fundimental underpinnings - Every other language is written essentially in C - you can often understand how their features WORK if you know C extremely well. ... I'd argue that 1,2 are covered by rust. 3 and 6 by unsafe rust. Once you have that, a transition to pure C for the full 7 makes sense, and would be trivial for a rust dev.
- hardware2win 4y agoAnd thats right choice Why students should waste their sacre time on mess of c or cpp world where even basic things may be crazy like strings Stop wasting peoples time on subpar technology and let them learn algorithms, ds and foundational knowledge instead of quirks and pain Go, python, c#, etc. are way better for students Later teach them Rust
- Barrin92 4y agoNot surprised to see Python but when I went to uni in Germany 10 years ago Java absolutely seemed to dominate as a teaching language (and on the job market). Has C# gained ground?
- Kelteseth 4y agoYes, Java is still big. Python is popular because it is a synonym for machine learning at this point. C# mostly because of Unity3d is the preferred game engine.
- tannhaeuser 4y agoA recent curriculum of languages taught at a German TU I skimmed over includes C, C++, and Haskell. Can't help but agree with that choice: C gives you understanding of low level operations and appreciation of higher level concepts such as GC and/or verification etc. while Haskell lets you experiment with functional and logic idioms, type theory, DSLs, etc. Starting with Java or C# might be ok for training and getting a job, but would be unsuitable for foundational education IMO.