TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why I’m quitting the C++ Grandmaster Certification course

53 pointsby UberMousealmost 12 years ago

18 comments

azovalmost 12 years ago
Dealing with the lack of regex engine^ is such a tiny part of the monumental task of implementing C++ compiler from scratch - it&#x27;s like quitting Mt. Everest summit expedition because a three-story hotel on the way there doesn&#x27;t have elevator.<p>^ - which he probably didn&#x27;t need to begin with
评论 #5930199 未加载
评论 #5930229 未加载
评论 #5930360 未加载
评论 #5930693 未加载
cletusalmost 12 years ago
I know someone who is doing this course. I can understand both the desire to do this course (get a deeper understanding of the C++11 spec) and why this is the course matter (building a compiler will give you a deeper understanding of the spec).<p>Still, as others have noted, C++ is a daunting spec, probably the most complicated of any language. Perhaps they resolved this with C++11 but previous versions of C++ were also ambiguous in certain corner cases [1].<p>What I don&#x27;t really understand is why you can&#x27;t publish your code before or after. I guess I understand why: they want to offer this in later years without prepackaged solutions being on github but is that really avoidable?<p>So you have to invest a massive amount of effort into building this. Sure you get some technical knowledge but you don&#x27;t get any code you can really use at the end.<p>All of this makes me appreciate the relative simplicity of the grammars of, say, Go or Lisp. I see the need for C++ but I can&#x27;t help but view is as a hideous Frankenstein of a language nonetheless.<p>[1] <a href="http://www.computing.surrey.ac.uk/research/dsrg/fog/FogThesis.pdf" rel="nofollow">http:&#x2F;&#x2F;www.computing.surrey.ac.uk&#x2F;research&#x2F;dsrg&#x2F;fog&#x2F;FogThesi...</a> p148
评论 #5931504 未加载
评论 #5930798 未加载
angersockalmost 12 years ago
There&#x27;s no shame in admitting that the course is too hard or demanding for you current skill level--I ended up dropping out because I didn&#x27;t have the time to do the work justice.<p>However, the somewhat whiny tone of the article seems like the author is trying to justify their own shortcomings by complaining about the code sourcing terms and the lack of regex. It seems kind of childish.<p>Here, maybe this will help in the future--a simple regex parser in like 30 lines of vanilla C:<p><a href="http://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html" rel="nofollow">http:&#x2F;&#x2F;www.cs.princeton.edu&#x2F;courses&#x2F;archive&#x2F;spr09&#x2F;cos333&#x2F;bea...</a>
zannyalmost 12 years ago
I think this touches on something important - rather than writing from scratch some asinine limited use case software, make useful software. You can prove your worth in the useful products you produce, not in the bravado you accrue saying you wrote a compiler from scratch - it is the difference between using a dozen programs a day that I know I&#x27;ve commited patches to and seeing the fruits of your labor or having your standards compliant C++11 compiler rot in some directory on your PC while you still use clang&#x2F;gcc because the program said you can&#x27;t even put it in a public git repo and instead of spending 10k lines improving the current best of the crop you reinvented the wheel as a stone brick while major players are comparing rubber treads.
bcoatesalmost 12 years ago
The regex engine is small potatoes in the larger scheme of things, but the reason it&#x27;s so problematic is the two bigger problems in the CPPGM: the questionable architecture and absolutely insane project plan, which both appear to be &quot;convert the spec directly into code, in printed order&quot;.<p>This is no way to approach a complex project with serious technical risk, and willingly signing up for the death-march enterprise project from hell is the kind of thing that disqualifies you from being qualified to take on a project of this scope, let alone a <i>grandmaster</i>, whatever that means.<p>You can see the outcome coming a mile away: &quot;We cut some corners, but it&#x27;s 80% done. Now all that&#x27;s left is the impossible part.&quot;
Jabblesalmost 12 years ago
I&#x27;m suprised. I thought it was a joke:<p><a href="https://news.ycombinator.com/item?id=5148895" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5148895</a>
评论 #5930092 未加载
评论 #5930004 未加载
asveikaualmost 12 years ago
The biggest flaw in all of this is ... Who says you need a course or a certification in order to write a compiler? Go, write a compiler. Use a well-recommended textbook or web-based resources if you need to. But there&#x27;s nothing to stop you from going out on your own and doing it.<p>The other is... Not going to write a compiler because you don&#x27;t have regexes? That sounds like major whining. You might as well say you won&#x27;t write a compiler because you already have a compiler. If learning by re-implementing low-level details is what you&#x27;re after (in my experience a very helpful exercise), don&#x27;t complain because you have to do low-level details. OTOH, if you take my first suggestion and not bother with a course or certification, you can define your own rules and you don&#x27;t have to feel bad about using an external regex library.
verroqalmost 12 years ago
Really? Why don&#x27;t you write your own regex? Regular languages are definitely relevant. It&#x27;s not that hard to write a basic regex engine (make NFA and convert to DFA). This is a <i>compilers</i> course after all.
评论 #5930006 未加载
评论 #5930095 未加载
banachtarskialmost 12 years ago
For learning the best principles about actually driving (aka coding) in C++, what are the best resources these days? I learned from Stroustrup, Accelerated C++, and on the job programming. However, every company seems to have an idea of what &quot;good C++&quot; looks like and they all disable&#x2F;enable a varying subset of C++ features to support their individual standards.<p>What&#x27;s the closest guide out there that&#x27;s representative of &quot;ideal&quot; C++ code and style?
评论 #5930064 未加载
评论 #5930100 未加载
评论 #5930161 未加载
评论 #5929975 未加载
评论 #5930388 未加载
personalcomputealmost 12 years ago
The author brings up a great point in that C++ really does have a massive lack of modern development tools. I can envision a lot of the language being fixed up from the tooling angle, eliminating a large part of the repetitive and boilerplate work that bogs the language down the most.<p>Could anyone point me in the direction of modern C++ development tools or would be interested in beginning a project to create them, possibly through Sublime plugins and a preprocessor? (email in profile) I&#x27;m familiar with CDT &amp; Visual Studio, both of which are hardly satisfactory (not to say they don&#x27;t do some things well.) I&#x27;ve also written some tools to close some gaps that I see in C++, but nothing too intrusive or ambitious yet. These are here: <a href="https://github.com/personalcomputer/supermake" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;personalcomputer&#x2F;supermake</a> &amp; <a href="https://github.com/personalcomputer/cppinterp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;personalcomputer&#x2F;cppinterp</a>
评论 #5931100 未加载
评论 #5930901 未加载
mynegationalmost 12 years ago
I wrote a C++ compiler back in 2000. It took me couple of years to polish that. And it was not even the full compiler: parser and semantic analysis, but no code generation in the usual sense. It did, however, support several idiosyncratic compiler dialects.<p>C++ is an ugly, ugly, _ugly_ language. Even C language, the base of C++, is context-dependent, which in practice means that you need to intermix parsing and semantic analysis. Consider for example this code &#x27;T*t&#x27;. If &#x27;T&#x27; is a type, then this is declaration of variable &#x27;t&#x27; that is pointer to &#x27;T&#x27;. If it is identifier, then it is non-assigned multiplication of &#x27;T&#x27; and &#x27;t&#x27;.<p>C++ added its own quirks on top of that. You have, for example, parse class definitions two times. First, just the declarations and only then inline method bodies. There is no other way to do it correctly.<p>And don&#x27;t even get me started on semantics.
评论 #5933179 未加载
评论 #5933132 未加载
WalterBrightalmost 12 years ago
I don&#x27;t know of any credible way to implement any part of a C++ compiler with regex.
评论 #5932864 未加载
jacalataalmost 12 years ago
There is something missing from this post. It seems from the previous thread that people knew what the course involved - so why did he sign up for it in the first place if he philosophically disagrees with it? What changed&#x2F;what new information came up?
评论 #5930291 未加载
gesmanalmost 12 years ago
It&#x27;s a well-known marketing gimmick to make people climb the self-created, artificial ladders to &quot;prove themselves&quot;.<p>This approach is one of the most efficient &quot;sucker baits&quot; where &quot;sponsor&quot; or entity behind the certification benefits most.<p>Congrats to be the one who called the bluff. It takes the guts + intelligence combines to see through the smoke screen. You passed! :)
评论 #5930544 未加载
anigbrowlalmost 12 years ago
I&#x27;m wondering why I should care. Is completion of this course considered <i>de rigeur</i> in C++ programming circles or is this just a case of someone changing their mind and writing off some course fees?
评论 #5930238 未加载
评论 #5932899 未加载
jpaliotoalmost 12 years ago
I will now use this example going forward when someone asks me to explain what I mean by &quot;a team of one is the most efficient possible team, just not the most effective.&quot;
aswansonalmost 12 years ago
<a href="http://harmful.cat-v.org/software/c++/" rel="nofollow">http:&#x2F;&#x2F;harmful.cat-v.org&#x2F;software&#x2F;c++&#x2F;</a>
comrade1almost 12 years ago
What a pussy! I&#x27;ve been working on my c++ compiler compiler for 6 years now and will complete the 1981 c++ specification any day now. I think can get up to 1995 around 2015 now that I&#x27;ve defeated regex. I&#x27;ll have my certification within the next 5 years! And you&#x27;ll have what? A regular paying job? Ha! Pussy!
评论 #5930137 未加载