4 ms·
C++, like most technology, works better if you put in the work to learn about it. (Admittedly there are languages like python and ruby that buck this trend.)
by fooker 2y ago
C++, like most technology, works better if you put in the work to learn about it.
(Admittedly there are languages like python and ruby that buck this trend.)
- motorest 2y ago> C++, like most technology, works better if you put in the work to learn about it. There's also the impact of software entropy: if someone has little to no experience developing software and has to grow it by adding features and fixing bugs, over time their contribution to the project invariably results in degrading it beyond the point they can possibly salvage it. At that point, they blame the tools.
- Symmetry 2y agoSure, but the effort/reward ratio bears some consideration. I've put a lot more effort into learning C++ than any other programming language but I'd still say it's just the language I'm maybe 4th most proficient in.
- 01100011 2y agoProgramming languages are a means to an end. I'd rather have my cognition going towards solving the actual problem and not worrying about implementation details.
- zahlman 2y agoPython does work better if you put in that kind of work. Otherwise you'll get bit by the way mutable default arguments work[0] (or never learn to use it to your advantage), or by late binding of closures[1] (and maybe you'll pick up the awful habit of exploiting the confusing early binding of default arguments to make the `lambda`s that you constructed in a loop work properly[2]). Or you won't get the big picture of the descriptor protocol[3] and how method lookup[4] is related to the implementation of properties[5]. Or you won't get the fancy metaclass[6] thing that your favourite framework is expecting you to treat as an opaque abstraction[7], or how and when you might use a class decorator[8] instead of a metaclass to do that kind of metaprogramming. [0]: https://stackoverflow.com/questions/1132941 https://stackoverflow.com/questions/1132941 [1]: https://stackoverflow.com/questions/2295290 https://stackoverflow.com/questions/2295290 [2]: https://stackoverflow.com/questions/3431676 https://stackoverflow.com/questions/3431676 [3]: https://docs.python.org/3/howto/descriptor.html https://docs.python.org/3/howto/descriptor.html [4]: https://eev.ee/blog/2013/03/03/the-controller-pattern-is-awful-and-other-oo-heresy/ https://eev.ee/blog/2013/03/03/the-controller-pattern-is-awf... (yes, this was partly an excuse to get one of Zed Shaw's critics [9] into the discussion) [5]: https://stackoverflow.com/questions/3798835 https://stackoverflow.com/questions/3798835 [6]: https://stackoverflow.com/questions/100003 https://stackoverflow.com/questions/100003 [7]: e.g. https://medium.com/@miguel.amezola/demystifying-python-metaclasses-understanding-and-harnessing-the-power-of-custom-class-creation-d7dff7b68de8 https://medium.com/@miguel.amezola/demystifying-python-metac... - I didn't have a good link for this and didn't spend a long time searching, but this seems okay [8]: https://stackoverflow.com/questions/681953 https://stackoverflow.com/questions/681953 [9]: https://eev.ee/blog/2016/11/23/a-rebuttal-for-python-3/ https://eev.ee/blog/2016/11/23/a-rebuttal-for-python-3/
- pdimitar 2y agoYou are forgetting these teeny tiny teensy little things called "return of investment" and the ratio of energy expended vs. the results achieved.
- vrighter 2y agoPython has a lot of footguns (and special __ methods), and insane, alien, scoping rules. And lots and lots of syntax, as well. It is not easy to learn (I have no idea why it's considered a beginner friendly language). It benefits from putting in work to learn it. It's not as bad as c++, but it is not a shining example of how to get it right either.