SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
User avatar
FaridMoussaoui
Topic Author
Posts: 412
Joined: June 20th, 2008, 10:05 am
Location: Genève, Genf, Ginevra, Geneva

CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

December 31st, 2017, 12:54 pm

I would like to share this wonderful talk by Stroustrup on Learning and Teaching Modern C++:
 
User avatar
Cuchulainn
Posts: 59713
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

December 31st, 2017, 2:00 pm

Thanks for posting, Farid. It's a areas I'm interested in.

My 2 cents, based on first impressions by browsing the slides. 

I can only speak for myself but I can say that many successful C++ projects have been executed in the Netherlands and elsewhere down the years. So, it's not all doom and gloom. Of course, if developers built 'illogical class hierarchies' means they can only blame themselves. The joys of multiple inheritance :D You _were_ warned. 20% of C++ delivers 80% efficacy.

I tried to locate the critical points and I would agree that "principles and practical skills" are vital. The devil is in the details. But I kind of missed the punch line on how to achieve these goals.

CS students/department as the area of interest here?  Based on my background in C++ (and design) training since 1989 in general CS education is not a fan of C++, CS is not overly concerned with writing applications as such and C++ is very very difficult which means a lot of people go to Python, Java or C#.

In fact, the people who learn C++ come from all walks of life,. Here are real-life feedback on Quantnet online course that's been around for ~ 10 years.

https://www.quantnet.com/threads/c-onli ... ials.9227/

My answer to "should I write my string class?" would be NO. 

The question is whether  to keep C++ elitist (in a manner of speaking) or to add functionality that will appeal to many kinds of developer. People relate more to applications than raw syntax alone. Developers build things.
Last edited by Cuchulainn on December 31st, 2017, 2:52 pm, edited 1 time in total.
 
User avatar
outrun
Posts: 4573
Joined: April 29th, 2016, 1:40 pm

Re: CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

December 31st, 2017, 2:32 pm

Nice talk, worth the watch,.. any CppCon expert talk is.
 
User avatar
Cuchulainn
Posts: 59713
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

December 31st, 2017, 4:50 pm

And modules are coming?
 
User avatar
Cuchulainn
Posts: 59713
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

January 1st, 2018, 8:48 pm

Bjarne Stroustrup's lecture is really a "History of C++"and if you read between the tines it says ,many, many things.

One use case is the role of Shape ("graphcal objecrts") and their use as a teaching aid in C++. Actually, shapes are geometrical objects but when you display them in medium 1, 2, 3 .. they do become different objects (the powerful Visitor pattern). But you can learn much more from Shapes, i.e creating the correct class hierarchies.

I find it weird that the student in speech don't appreciate C++ unless they can see things in  GUI. Maybe C++ is not for them?
 The only exception for me were AutoCAD/Autodesk developers which is obvious. 

C++ is used a lot for process, devices etc. No graphics needed there.
 
User avatar
Cuchulainn
Posts: 59713
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: CppCon 2017: Bjarne Stroustrup “Learning and Teaching Modern C++”

January 10th, 2018, 11:05 am

On the topic of "illogical class hierarchies" (I would call them incorrect in the mathematical sense), looking back complaining about OOP is caused by going overboard and applying the technology incorrectly IMO. My own list of no nos that caused distress were:

1. Multiple inheritance was not a good idea. C++ does not support interface keyword. The AI community used MI a lot in the 90s.

2. Not evertyhing is an object. Behavioural commonality is not structural commonality.This messes up class hierarchies.

3. Deep class hierarchies are usually incorrect and not maintainable, especially with MI. For CAD, all you need is depth 1 and make sure each class has 1 major responsibility. Combine with composition and Visitor pattern. Separation of Concerns is key!

4. "Tiny classes" are not classes; they are not even objects. Just think of many many Command classes. Just use lambda functions.

5. Virtual functions and multiple classes are not needed; instead, use a single class with one or more std::function instances.

6. (Sapir-Whorf) At the time. some developers used GOF patterns left, right and centre. What happened in many cases is life started with the (GOF) solution and work back to the problem. Like Newton-Raphson, convergence is not a given.

7. Classes are context-sensitive (aka unstable). Many classes live in the head of their creator who may have incomplete information about the problem domain.

8. Our group had 1-7 on  our radar screens for some time. Especially for fixed-priced projects. For developers on an hourly rate things can be slightly different. Parkinson's Law and gold-plating might kick in.

9. Class hierarchies are neither sufficient nor necessary.

Festina lente
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