{"id":6467,"date":"2022-09-30T17:29:41","date_gmt":"2022-09-30T17:29:41","guid":{"rendered":"https:\/\/www.modernescpp.com\/index.php\/concepts-and-the-finance-industry\/"},"modified":"2022-09-30T17:29:41","modified_gmt":"2022-09-30T17:29:41","slug":"concepts-and-the-finance-industry","status":"publish","type":"post","link":"https:\/\/www.modernescpp.com\/index.php\/concepts-and-the-finance-industry\/","title":{"rendered":"Concepts and the Finance Industry"},"content":{"rendered":"<p>The finance industry is a big user of C++.&nbsp; But as everyone knows, C++ programmers take on a substantial burden of complexity relative to other languages.&nbsp; Why would they do that?&nbsp; In a word: for performance.&nbsp; With C++, you retain full semantic expressiveness without sacrificing any speed.&nbsp; But that complexity can be tough.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-6465\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/front.jpg\" alt=\"front\" width=\"500\" height=\"262\" style=\"display: block; margin-left: auto; margin-right: auto;\" srcset=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/front.jpg 1204w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/front-300x157.jpg 300w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/front-1024x538.jpg 1024w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/front-768x403.jpg 768w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>But why particularly in finance should such a trade-off be worthwhile?&nbsp; And &#8211; to the extent that the big trading companies tend to actually dominate the hiring of top C++ professionals. The answer is very short: \u201cHFT\u201d.&nbsp; Michael Lewis\u2019 book <a href=\"https:\/\/en.wikipedia.org\/wiki\/Flash_Boys\">Flash Boys<\/a> paints the picture well: if a high-frequency trader (that\u2019s HFT) is prepared to tunnel through a mountain for a few milliseconds less latency, they\u2019ll accept a bit of complexity.&nbsp; But there\u2019s a limit.&nbsp;That brings us to the <a href=\"https:\/\/profitview.net\/events\/cpp-concepts-low-latency-algo-trading\">webinar next week<\/a>:<\/p>\n<h3>C++ Concepts and Fireside Chat on Algorithmic Trading<\/h3>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" alignleft size-full wp-image-6466\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/three.jpg\" alt=\"three\" width=\"500\" height=\"388\" style=\"margin: 20px; float: left;\" srcset=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/three.jpg 1249w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/09\/three-300x233.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>I\u2019m proud to be part of the webinar along with Antony Peacock and Richard Hickling.&nbsp; I\u2019ll be presenting concepts. Let me explain where they come into the financial software picture.<\/p>\n<p>When <a href=\"https:\/\/en.wikipedia.org\/wiki\/Substitution_failure_is_not_an_error\">SFINAE<\/a> was observed 20 years ago, it set off a revolution: Template Meta-programming was born. Is it the first time a Turing complete programming language has emerged by accident? It was probably in HFT where the excitement was greatest.&nbsp; Now you could program with full expressiveness and have it all executed at compile time.&nbsp; The code running on the trading servers would be optimal machine code.&nbsp;<\/p>\n<p>Unfortunately, however, with it came absurdities. Error messages so long they exhausted compilers\u2019 output limits.&nbsp; Compile times long enough to require grid computing to complete large builds.&nbsp; Solutions to these problems could only be found with language changes.&nbsp; Enter C++20\u2019s keyword concept.<\/p>\n<p>In the webinar, Antony will discuss the reality of coding in an HFT environment.&nbsp; I\u2019ll follow that up with a pr\u00e9cis on Concepts. Richard will talk about actually getting a job in this exciting area.&nbsp;<\/p>\n<p>Like our <a href=\"https:\/\/profitview.net\/events\/algo-trading-cpp-20-ranges\">previous webinar,<\/a> we\u2019ll provide plenty of time for questions from the audience.<\/p>\n<p>&nbsp;<\/p>\n<p>We\u2019re all very excited to be presenting the webinar and look forward to your participation and questions.&nbsp; Please do <a href=\"https:\/\/profitview.net\/events\/cpp-concepts-low-latency-algo-trading\">sign-up<\/a> in advance to secure your spot.&nbsp; See you there!<\/p>\n<p>&nbsp;<\/p>\n<p>Modernes C++,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-6403\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2022\/07\/RainerGrimmDunkelBlauSmall.jpg\" alt=\"RainerGrimmDunkelBlauSmall\" width=\"222\" height=\"67\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The finance industry is a big user of C++.&nbsp; But as everyone knows, C++ programmers take on a substantial burden of complexity relative to other languages.&nbsp; Why would they do that?&nbsp; In a word: for performance.&nbsp; With C++, you retain full semantic expressiveness without sacrificing any speed.&nbsp; But that complexity can be tough.<\/p>\n","protected":false},"author":21,"featured_media":6465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[360],"tags":[],"class_list":["post-6467","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/6467","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/comments?post=6467"}],"version-history":[{"count":0,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/6467\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media\/6465"}],"wp:attachment":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media?parent=6467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/categories?post=6467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/tags?post=6467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}