SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
User avatar
Polter
Topic Author
Posts: 2526
Joined: April 29th, 2008, 4:55 pm

C++ 2017

June 6th, 2015, 3:37 pm

Here's where C++ is heading in 2017 -- including the C++17 standard as well as technical specifications (TS): Concepts, Concurrency, Filesystems, Graphics, Library Fundamentals, Modules, Networking, Parallelism, Reflection, Transactional Memory.Trip report: Spring ISO C++ meeting by Herb Sutter: https://isocpp.org/blog/2015/06/trip-re ... eetingTrip Report: C++ Standards Meeting in Lenexa, May 2015 by Botond Ballo: https://botondballo.wordpress.com/2015/ ... ementation status:Clang, LLVM:Clang - C++1z, C++14, C++11 and C++98 Statuslibc++ C++1Y Status - LLVMlibc++ C++1z Status - LLVMPost-C++14 TS Implementation StatusGCClibstdc++: C++ 201z & C++ Technical Specifications Implementation StatusC++1y/C++14 Support in GCCMSVC:C++11/14/17 Features In VS 2015 RCconstexpr Complete For VS 2015 RTM: C++11 compiler, C++17 STLStandard C++: Current Status: https://isocpp.org/std/status
 
User avatar
Hansi
Posts: 3300
Joined: January 25th, 2010, 11:47 am

C++ 2017

June 7th, 2015, 1:56 pm

Christ I need to get back into C++. Any book or online courses that cover a sort of "Hey you know C++03, here is how you get up to speed with all the new stuff"?
 
User avatar
Polter
Topic Author
Posts: 2526
Joined: April 29th, 2008, 4:55 pm

C++ 2017

June 7th, 2015, 4:15 pm

More: Already mentioned in the trip report, but still good for the big picture: "Thoughts About C++17" by Bjarne Stroustrup// There's also the recent episode of the Going Native show: http://channel9.msdn.com/Shows/C9-Going ... enexaHansi: Right now I think the conferences talks (CppCon, C++Now / BoostCon, Going Native, Meeting C++) and recent blog posts (e.g., Herb Sutter's GotW and Scott Meyers's blog) are the best for staying up-to-date.It is from one of these conference talks (well, that plus the blog posts) that I've learned about Catch -- which is today my preferred C++ testing framework.// Testdriven C++ with Catch - Phil Nash @ Meeting C++ 2014From the recent libraries worthy of attention, SQLPP11 also seems interesting: CppCon 2014: SQLPP11, An SQL Library Worthy of Modern C++, Roland BockAnother one being docopt.cpp (C++11 port of docopt): https://github.com/docopt/docopt.cppOn a side note, Catch, SQLPP11, and docopt.cpp were all talked about on CppCast: http://cppcast.com/To give some pointers: In particular, I'd take a look at the following three:CppCon 2014: Back to the Basics! Essentials of Modern C++ Style, Herb SutterCppCon 2014: Make Simple Tasks Simple!, Bjarne StroustrupGoingNative 2013: C++ Seasoning, Sean Parent// extended versions of the last one:Programming Conversations Lecture 5 part 1Programming Conversations Lecture 5 part 2May be enough to go through the slides for these ones:CppCon 2014: An Overview of C++11/14, Part I, Leor ZolmanCppCon 2014: An Overview of C++11/14, Part II, Leor ZolmanAs for the books, "Effective Modern C++" by Scott Meyers is definitely good to know.I also like his Overview of the New C++ (C++11/14) -- in fact, I think this is the best starting point for someone already familiar w/ C++03 wanting to, as you say, get up to speed.In contrast, I've personally found A Tour of C++, also often recommended in this context, a bit too wordy / going too slow -- important caveat, though: I've only looked at it after going through most of the above resources (including Bjarne's talks at the aforementioned conferences, all of which are excellent and highly recommended!). Perhaps it could work well as an alternative starting point.Both Stroustrup's books (i.e., TC++PL & Tour++) have end-of-chapter "Advice" sections which are worth getting familiar with (coupled with reading up the relevant books sections for the context).Here's a sampling: http://bulldozer00.com/2013/07/31/dont-panic/// This assumes you've already considered some of the books here: http://isocpp.org/get-started/
Last edited by Polter on June 6th, 2015, 10:00 pm, edited 1 time in total.
 
User avatar
Cuchulainn
Posts: 61498
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

C++ 2017

June 8th, 2015, 6:10 am

It will be nice to have Concepts.I see no mention of interfaces or events (?). With events, you can support provides-requires interfaces. Now you have to write your own callbacks, which is OOP style.Assemblies/modules would have been nice as well. Quotethe key is programming: how can we write better, more readable, efficient, and more maintainable code? If you think that the essence of C++ is clever pointer manipulation and huge class hierarchies you may be in for a few surprises. Indeed. Multiple inheritance, for example is frowned on and for some time now.And then we have the legacy code that uses "clever pointer manipulation and huge class hierarchies". Will there be (costly) re-engineering projects? But this might be a digression. My 2 cents: 'Maintainable code' is not achieved just by language features alone.
Last edited by Cuchulainn on June 7th, 2015, 10:00 pm, edited 1 time in total.
http://www.datasimfinancial.com
http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself
Jean Piaget
 
User avatar
Cuchulainn
Posts: 61498
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

C++ 2017

June 8th, 2015, 6:51 pm

QuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnIt will be nice to have Concepts.I see no mention of interfaces or events (?). With events, you can support provides-requires interfaces. Now you have to write your own callbacks, which is OOP style.Assemblies/modules would have been nice as well. Quotethe key is programming: how can we write better, more readable, efficient, and more maintainable code? If you think that the essence of C++ is clever pointer manipulation and huge class hierarchies you may be in for a few surprises. Indeed. Multiple inheritance, for example is frowned on and for some time now.And then we have the legacy code that uses "clever pointer manipulation and huge class hierarchies". Will there be (costly) re-engineering projects? But this might be a digression. My 2 cents: 'Maintainable code' is not achieved just by language features alone.The Blub Paradox why people persist in using so-so programming languages when they could be so much more productive using something more powerful. He works from the assumption that there is a hierarchy of power of programming languages ... more ...Who pays the bill? Managers will not. Developers stuck in the middle.
Last edited by Cuchulainn on June 7th, 2015, 10:00 pm, edited 1 time in total.
http://www.datasimfinancial.com
http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself
Jean Piaget
 
User avatar
Traden4Alpha
Posts: 23951
Joined: September 20th, 2002, 8:30 pm

C++ 2017

June 8th, 2015, 9:51 pm

QuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnQuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnIt will be nice to have Concepts.I see no mention of interfaces or events (?). With events, you can support provides-requires interfaces. Now you have to write your own callbacks, which is OOP style.Assemblies/modules would have been nice as well. Quotethe key is programming: how can we write better, more readable, efficient, and more maintainable code? If you think that the essence of C++ is clever pointer manipulation and huge class hierarchies you may be in for a few surprises. Indeed. Multiple inheritance, for example is frowned on and for some time now.And then we have the legacy code that uses "clever pointer manipulation and huge class hierarchies". Will there be (costly) re-engineering projects? But this might be a digression. My 2 cents: 'Maintainable code' is not achieved just by language features alone.The Blub Paradox why people persist in using so-so programming languages when they could be so much more productive using something more powerful. He works from the assumption that there is a hierarchy of power of programming languages ... more ...Who pays the bill? Managers will not. Developers stuck in the middle.The long term value of a software product and its code is difficult to estimate. I can e.g. now solve tasks in Python in one hour I couldn't solve in C++ 10 years ago in 3 months. Even if that 10 year old "C++ 98 Windows flavour" code was highly organized, it still has zero value today. It can't be compiled with a free compiler, doesn't run on linux etc. Just the cost of reading 10 pages of code and possible documentation is much higher that booting up notepad -or an online tool- and solving it from scratch. .. that's what I meant with the link "why people persist in using so-so programming languages when they could be so much more productive using something more powerful.", it's not just programming languages but also old code.My view is that the tools, the code etc don't matter much. What's needed is clear specs of what the software should do, and forcing developers to write tests that prove that it does what it needs to do. If you're in the software development education business then the biggest contribution you can possibly make it to teach people to do unit testing in Excel sheets. Everyone gets a license from their boss to do the important stuff with Excel sheets, and none of them have any quality management skills. If I got 100 Euro for every 100mln Euro bug I found in an Excel sheet then that would have made me a rich man by now. This puts things nicely in perspective: on that scale, why would you even care about the cost of hiring a couple of software developers every now and then?Excellent points, outrun & Cuchulainn. I think the article is wrong about the premise of the ranking of Blub and Flub for three reasons:1. Language power is neither a one-dimensional ranking function nor invariant across programmers. Thus any statement of one language's superiority over another must be viewed with skepticism.2. In the short-term, any decent language that you know well is ALWAYS more powerful than a language you don't know well by virtue of the avoiding learning curve and hidden pitfalls of the less-known language. The 10,000 hour effect ensure that anyone on a budget or a deadline will prefer Blub unless the project is large enough to justify a massive investment in learning. Of course, if the project is really big, then no one is join to want to risk it on Flub.3. The value of a language is a strong function of the number of users of that language. If 100X as many people know Blub as know Flub, then there's a higher chance that one can communicate in Blub to coworkers, managers, library writers, social media peers, and a wider range of hardware. Users of Blub will have a wider choice of tools, libraries, compilers, and resources than users of Flub.
 
User avatar
Cuchulainn
Posts: 61498
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

C++ 2017

June 9th, 2015, 5:55 am

(BTW we are polluting Polter's thread, apologies. I had some (unaddressed) questions on C++ 2017 and then we went to Blub/Flub which is new buzz word to learn ..)If language is the answer, what is the QUESTION here? I think it should be "how to build software products that meet requirements, on time and within budget". yes?QuoteWhat's needed is clear specs of what the software should doTrue, but this is never ever achieved in real life. It is too simplistic. For small one/two person library style mathematically defined projects maybe it is possible.QuoteReason #1 Scope CreepScope is everything that you are going to do and conversely, not going to do. So once you?ve figured out exactly what the project work is, usually via a Work Breakdown Structure, you need to freeze it and zealously guard against unplanned changes to it. So planned changes via a change control board are ok, since then the PM can issue a new schedule, risk and budget plan as needed. Otherwise, you will surely miss your target and make both the management and customer unhappy.For large projects the politics kicks in. For example, will C++ 2017 solve this problem reasons for project failure QuoteMy view is that the tools, the code etc don't matter much.Is C++ a tool?
Last edited by Cuchulainn on June 8th, 2015, 10:00 pm, edited 1 time in total.
http://www.datasimfinancial.com
http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself
Jean Piaget
 
User avatar
Cuchulainn
Posts: 61498
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

C++ 2017

June 9th, 2015, 7:45 pm

QuoteCuch talks about the process whereas I talk about software qualityCorrection: I am talking about both product and process. And the role of management (read costs) cannot be ignored, as is well-known.Ok, how would you tackle a 300-man medical device s/w system that has a lifespan of 30 years and has to satisfy the FDA?For larger systems, software quality will need a defined process.Out of curiosity, outrun, what is the lifetime of your libraries in general? In my case one was laid to rest after 17 years, and other 16 years.QuoteThe bug rate in Excel sheets is probably 10-100x higher than the bug rate in professional software.Why is that in your opinion? Do they not do software review, redesign, bug fixes etc.? If the Excel does the job and no one dies, then what's the problem?
Last edited by Cuchulainn on June 8th, 2015, 10:00 pm, edited 1 time in total.
http://www.datasimfinancial.com
http://www.datasim.nl

Every Time We Teach a Child Something, We Keep Him from Inventing It Himself
Jean Piaget
 
User avatar
Traden4Alpha
Posts: 23951
Joined: September 20th, 2002, 8:30 pm

C++ 2017

June 10th, 2015, 11:44 am

I've seen the same Excel quality problems as outrun mentioned but don't expect the software development methods offered by Cuchulainn to address them. In practice, C++ development and Excel sheet development are 180° apart. The first is top-down and deductive (a team does formal analysis of requirements, design, code, bugs, etc. ) and the second tends to be more bottom-up and inductive (some individual gets some numbers and needs to calculate something).I hope it's true that no FDA-approved device runs on an Excel spreadsheet. But it's false to think that these sheets aren't be used to make extremely large decisions in organizations. In fact, from what I've seen, Excel is the tool of choice for many of the largest decisions that companies make. Those once-every-few-years major decisions (e.g., buy a competitor, enter a new market, realign the product portfolio, etc.) involve the kinds of one-off calculations that Excel excels at and which formal C++ is too cumbersome to use.Improving the quality of Excel would be really awesome but it requires training all the non-programmers in the organization rather than improving people & processes in the IT department.
ABOUT WILMOTT

PW by JB

Wilmott.com has been "Serving the Quantitative Finance Community" since 2001. Continued...


Twitter LinkedIn Instagram

JOBS BOARD

JOBS BOARD

Looking for a quant job, risk, algo trading,...? Browse jobs here...


GZIP: On