{"id":938352,"date":"2023-05-02T10:49:24","date_gmt":"2023-05-02T17:49:24","guid":{"rendered":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/?post_type=msr-video&#038;p=938352"},"modified":"2023-05-02T10:49:24","modified_gmt":"2023-05-02T17:49:24","slug":"ml-2021-keynote-narratives-and-lessons-from-the-early-history-of-f","status":"publish","type":"msr-video","link":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/video\/ml-2021-keynote-narratives-and-lessons-from-the-early-history-of-f\/","title":{"rendered":"ML 2021 &#8211; Keynote: Narratives and Lessons from The Early History of F#"},"content":{"rendered":"<p>https:\/\/icfp21.sigplan.org\/details\/mlfamilyworkshop-2021-papers\/15\/Keynote-Narratives-and-Lessons-from-The-Early-History-of-F-<\/p>\n<p>&nbsp;<\/p>\n<div class=\"row\">\n<div class=\"col-sm-10\">\n<p>Functional programming is now a mainstream technique in nearly all programming languages, and F# has been part of this story. I\u2019ll talk a walk through the early history of F#, starting with the origins of strongly-typed functional programming (FP) in the 1970s, through to its convergence with industry concerns in the 2000s and through to today. F# started as one of many responses to the \u201cobject-oriented tidal wave\u201d of the mid-1990s, developing as a practical \u201cfunctional-first\u201d language incorporating enough object programming to be practical, interoperable and productive. Along the way F# \u201cbroke some rules\u201d of functional language design and implementation (for example by relying on a runtime built for OO languages), yet also helped propagate FP design elements (e.g. generics, async, unions, immutable collections, tuples, records, pattern matching, non-nullness\u2026) deep into some of the most conservative-minded parts of the industry (C#, Javascript\/Typescript, Python, \u2026). Along the way it has stayed true to its core design goals of succinct, robust, performant programming in practical delivery contexts.<\/p>\n<\/div>\n<\/div>\n<div id=\"program-settings-modal\" class=\"webdsl-placeholder\"><\/div>\n<div class=\"program-container\">\n<div class=\"row\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Functional programming is now a mainstream technique in nearly all programming languages, and F# has been part of this story. I\u2019ll talk a walk through the early history of F#, starting with the origins of strongly-typed functional programming (FP) in the 1970s, through to its convergence with industry concerns in the 2000s and through to today. F# started as one of many responses to the \u201cobject-oriented tidal wave\u201d of the mid-1990s, developing as a practical \u201cfunctional-first\u201d language incorporating enough object programming to be practical, interoperable and productive. Along the way F# \u201cbroke some rules\u201d of functional language design and implementation (for example by relying on a runtime built for OO languages), yet also helped propagate FP design elements (e.g. generics, async, unions, immutable collections, tuples, records, pattern matching, non-nullness\u2026) deep into some of the most conservative-minded parts of the industry (C#, Javascript\/Typescript, Python, \u2026). Along the way it has stayed true to its core design goals of succinct, robust, performant programming in practical delivery contexts.<\/p>\n","protected":false},"featured_media":938355,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr_hide_image_in_river":0,"footnotes":""},"research-area":[13560],"msr-video-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-session-type":[],"msr-impact-theme":[],"msr-pillar":[],"msr-episode":[],"msr-research-theme":[],"class_list":["post-938352","msr-video","type-msr-video","status-publish","has-post-thumbnail","hentry","msr-research-area-programming-languages-software-engineering","msr-locale-en_us"],"msr_download_urls":"","msr_external_url":"https:\/\/www.youtube.com\/watch?v=ynIe8Q7kMSg","msr_secondary_video_url":"","msr_video_file":"","_links":{"self":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/938352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-video"}],"about":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-video"}],"version-history":[{"count":1,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/938352\/revisions"}],"predecessor-version":[{"id":938358,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-video\/938352\/revisions\/938358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/media\/938355"}],"wp:attachment":[{"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/media?parent=938352"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=938352"},{"taxonomy":"msr-video-type","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-video-type?post=938352"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=938352"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=938352"},{"taxonomy":"msr-session-type","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-session-type?post=938352"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=938352"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=938352"},{"taxonomy":"msr-episode","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-episode?post=938352"},{"taxonomy":"msr-research-theme","embeddable":true,"href":"https:\/\/new-cm-edgedigital.pages.dev\/en-us\/research\/wp-json\/wp\/v2\/msr-research-theme?post=938352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}