6 ms·
> which means that in the real world you have to learn and deal with all of it. That makes as much sence as claiming that to develop software in, say, Python o
by rumanator 7y ago
> which means that in the real world you have to learn and deal with all of it.
That makes as much sence as claiming that to develop software in, say, Python on the real world you have to learn and deal with all of its standard library.
That is not the case. That has never been the case ever for any programming language, be it large or small. Specially in C++, where since it's inception the standard approach is to, at best, adopt a subset of all features and stick with it.
- tonyedgecombe 7y agoMaking a language so big and complex that you can't expect to understand it all isn't a good idea. You might be able to get away with using 50% of the language but if some project you depend on uses a different 50% then you have a problem.
- rumanator 7y agoIMHO C++ is unfairly singled out with regards to it's extension. That criticism rings true if applied to pretty much every single programming language ever devised, including "small" languages such as C.
- downerending 7y agoC, even today, fits entirely in my head. C++ does not. I suspect this is not an uncommon situation among programmers.
- 2zcon 7y agoOK but if you're a competent, adult software engineer it should be fairly easy to overcome that problem.
- tonyedgecombe 7y agoThen why is it so common for people to try and select a subset of the language. Arguing about what people should do is pointless, you have to look at what they do do.
- 2zcon 7y agoIf there are multiple ways of achieving the same result (e.g. assignment) and you want to be consistent, you have to choose a subset. If there are features that time has shown to be less-than-ideal (e.g. malloc/free) you choose a subset while the language avoids removing breaking backwards-compatibility. So when you go to another project that made different decisions, what you should do is understand the decisions. It's quite easy. And that's why it's what people do do, and it's why people are capable of contributing to projects other than their first. If you program in C++, it's the same skill you used to learn one or more of {CMake, Makefiles, scons, bash, python} except it's easier because you already understand the programming language's model.
- rumanator 7y ago> OK but if you're a competent, adult software engineer "No true Scotsman" and all, please refrain from posting messages that add nothing of value besides petty insults thrown in broad brush strokes.
- 2zcon 7y agoMuch as I didn't mean to insult anyone with my post, I'm sure you meant to add value by calling it petty and fallacious. Picking up features in a language you already use is easier than learning the language to begin with which itself is easier than learning to program at all. If you were able to read the documentation to get to 50%, you have all the skills needed to pick up the rest and get to the difficult part of picking up a new project: understanding the problem space. If you're capable of learning the meaning of an API you've never seen before - and you will, if you're not writing your last project verbatim - then you're capable of learning what a lambda means. This is not me saying that all programmers should be able to do this, it's me saying that doing this is a predicate of engineering software.
- rumanator 7y ago> Much as I didn't mean to insult anyone You accused anyone who did not agreed with you of being incompetent and immature. In the very least own your own claims.
- dang 7y agoWould you please stop posting in the flamewar style to HN? You've been doing it a lot lately, and it's really not what this site is for. What we want here is curious conversation, which generally requires stepping away from the keyboard when feeling provoked, even if other people are doing or saying bad things. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- downerending 7y agoIf your job involves maintenance or support of multiple Python codebases, you do have to learn it all. And at least before Python 3, this wasn't that hard. (Python 3, unfortunately, has made the language a lot more complex.)