7 ms·
http://www.ensisoft.com/temp/cplusplus_stack.png http://www.ensisoft.com/temp/cplusplus_stack.png Just replace that Josuttis's C++ standard library with C++11
by ensiferum 9y ago
http://www.ensisoft.com/temp/cplusplus_stack.png http://www.ensisoft.com/temp/cplusplus_stack.png
Just replace that Josuttis's C++ standard library with C++11 version and throw in Mayers new effective book for good measure and you're all set
- mi_lk 9y agoSurely you are joking right? I just can't imagine one has to go through all those books to be proficient in one language.
- zelos 9y agoIf you read, understood and remembered all of those you'd be way beyond just proficient in C++.
- fsloth 9y agoOne is never proficient in C++. One merely... learns to adjust ones ignorance to practical constraints. I.e you choose such a subset that you can deal with it. But which subset? Hence, a shitload of books. The point is to read about all sorts of styles and pick whatever feels practical for you. And I'm completely serious. I've earned my living with C++ for over a decade, am considered a valuable contributor and still... so clueless towards so many details.
- lloydjatkinson 9y agoThen C++ has failed. If it has so many competing standards and subsets, then it is too fragmented. This is why when you see C++ written in one standard it looks like a whole other language when you look at other C++. If after a decade there are so many details still obscured from you, then that's pretty much again a fault of the overly-engineered and tacked on language called C++. Other mainstream language work fine and allow you to still write clean and modern code without having literally dozens of subsets and implementations. So why is it that C++ feels the need to have so many?
- pjmlp 9y agoThen by that point of view, C (hello UB), Python, Ruby, JavaScript, Java, among many other programming languages have failed as well. Using my favorite scripting language (Python) as an example, I always need to check which version is installed on a given OS and then validate at https://docs.python.org/ https://docs.python.org/ if all the features I want are actually available on that version. Not to mention CPython, PyPy, Cython, JPython differences on top of that.
- fsloth 9y agoWe use C++ because of the C++ the ecosystem not because of the C++ the language. There really is no other language that fits all of the constraints C++ fits. If there was, I'd be using it. And before you ask 'Have you looked into...' the answer is yes, unless the language is obscure, in which case it lacks the ecological robustness of C++.
- FiveDegrees 9y agoI hope Jai ends up being made interoperable with C++.
- imron 9y agoI just hope Jai end up being released. jblow, I know you read HN, lots of us are looking forward to Jai.
- cr0sh 9y agoGotta say I'm looking forward to it too, even though I might not ever use it. There are some things I disagree on with it, but most of those are orthogonal to the domain of which the language was meant to be applied, namely game programming. For that end, I can get behind those. That said - the main things I don't like are the lack of exception handling, and no automatic memory management. I understand for game programming why these aren't going to be a part of the language. At the same time, I fear that without these, it may relegate the language to something of a niche language only used for game development and nothing else. While it is laudable to think that these features aren't needed, there is a reason they became available - and it mainly has to do with the fact that even "good programmers" aren't "perfect programmers"; we are all humans, not machines. Features that make the language stand out, though, are the ideas of functions that run at compile time, which allow for a build system that is written in Jai and builds on compile (so you don't need to learn some other "language" just for building your world), the whole AOS/SOA mess that is made simple to implement with only one keyword (kinda neat!), plus the whole "uplift" of code from inner to global usage, with minimal changes, as it morphs from "lines of code" to "capture" to "anonymous function", etc - that's pretty powerful. The inverted typed declaration syntax for variables and functions will take some getting used to, but that part is very minor. There's one part on this that I question - namely that variables are declared like: name: type = value ...so: foo: int = 0; ...but functions are defined as: name := () -> return_type {} ie: bar := () -> float {} I would have thought that a function would be defined as: name: return_type = () {} so: baz: float = () {} ...thus more like the variable declarations (plus it would allow for turning a variable into a function easier, perhaps). There is probably something about compiler design, parsing, etc that I don't know that pre-empted things? That would be my first guess as to why this difference exists, but I would love to hear the actual reason from the author, if he reads this.
- pjmlp 9y agoMy subset is the one that I require to interoperate with managed languages (Java, .NET, Swift,...) and makes me feel as I if am using Ada/Turbo Pascal with curly bracket syntax instead.
- theHazardMan 9y agoMy philosophy is "If you have fewer than 5 years' experience with C++ and think you are an expert, you just don't know how much you don't know. If you have more than 5 years', then you're a liar."
- jeeyoungk 9y agoOnly time I had C++ on my resume was when I was looking for my first internship and was desperate to pad my resume with _something_... Hey, I took a course in C++, so I can put it down, right? I soon removed it afterwards after knowing what "knowing c++" implied.
- geezerjay 9y ago> "If you have fewer than 5 years' experience with C++ and think you are an expert, you just don't know how much you don't know. That pretty much applies to any subject. Some bachelor's degrees take longer than that, and no one becomes an expert with a bachelor's or even a master's degree.
- 0xbear 9y agoTherein lies its strength. It filters out both those too weak and those who want to appear smarter than they are. The first group just never can get anything done in C++, the second writes code they can't understand themselves 3 months after they wrote it, so it either ends up in Boost or nobody uses it.
- ensiferum 9y agoWell no, but if you do and can retain even some of that knowledge it's very helpful :)
- seanwilson 9y ago> Surely you are joking right? I just can't imagine one has to go through all those books to be proficient in one language. It's easily one of the most complex mainstream languages and one with the most pitfalls which is why higher level languages are preferable when feasible.
- kabdib 9y agoNope, that's a pretty good stack. Of course, you don't (A) read the books, and then (B) start programming. You read a chapter, try stuff out, read another chapter, read some code, try more stuff out, read a LOT more code . . . and about ten years later you're a very good C++ programmer. I'm not kidding. I've got several linear feet of C++ books on my bookshelf, have read most of those books, and I consider myself an average C++ programmer, not a language guru by any means.
- deleted 9y ago[deleted]
- slavik81 9y agoYou don't. By the time you've read a few of those books, the rest will be rather boring. I also wouldn't bother with Effective STL or More Effective C++. They're ancillary to the main books of that series and are somewhat outdated.
- rezashirazian 9y agoAm I the only who think reading 15 books to be proficient in a modern, non-trivial language like C++ seems reasonable?
- PopsiclePete 9y agoThis is C++ we're talking about. There's roughly 28 people in the world who understand it completely.
- geezerjay 9y ago> I just can't imagine one has to go through all those books to be proficient in one language. I don't know if you know the meaning of "proficiency", but if you are trying to argue that it takes work to become an expert in a subject then it seems you aren't aware of what being an expert actually entails. Moreover, Those books appear to be a lot mainlyl because the subjects covered by half of them actually overlap.
- torrent-of-ions 9y agoAnd remove the Stroustrop book?
- krona 9y agoIf you're already proficient at programming, I recommend the more recent (and thinner) A Tour of C++ by Stroustrup.