{"id":341104,"date":"2023-04-07T11:22:13","date_gmt":"2023-04-07T10:22:13","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=341104"},"modified":"2024-07-12T11:42:07","modified_gmt":"2024-07-12T10:42:07","slug":"object-oriented-vs-functional-programming-with-csharp-and-fsharp-recording-available","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/en\/dotnet\/2023\/04\/07\/object-oriented-vs-functional-programming-with-csharp-and-fsharp-recording-available","title":{"rendered":"Object-Oriented vs. Functional Programming With C# and F# &#8211; Recording Available"},"content":{"rendered":"\n<p>Thanks to all who joined our free live webinar, <strong>Object-Oriented vs. Functional Programming With C# and F#<\/strong>, with Software Architect at Calitime AG, <a href=\"https:\/\/twitter.com\/ursenzler\/\" target=\"_blank\" rel=\"noopener\">Urs Enzler<\/a> is now <a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc\" target=\"_blank\" rel=\"noopener\">available on our YouTube channel \u2013 JetBrains TV.<\/a><\/p>\n\n\n\n<p>Modern programming languages support both object-oriented and functional programming to a large extent. What are the differences between the two approaches, and where is one more appropriate than the other? Can these two programming paradigms be combined?<\/p>\n\n\n\n<p>In this session, we look at the differences and similarities between functional and object-oriented programming using examples in C# and F#.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Webinar Recording<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Object-Oriented vs. Functional Programming With C# and F#\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/vOcTPUiBQgc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Agenda<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.planetgeek.ch\/2023\/04\/07\/object-oriented-vs-functional-programming-with-c-and-f-presentation\/\" target=\"_blank\" rel=\"noopener\">Slides for this presentation can be found on Urs Enzler&#8217;s blog. <\/a><\/p>\n\n\n\n<ul><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=0s\" target=\"_blank\" rel=\"noopener\">00:00 &#8211; Introduction<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=110s\" target=\"_blank\" rel=\"noopener\">01:50 &#8211; Urs Enzler<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=134s\" target=\"_blank\" rel=\"noopener\">02:14 &#8211; Presentation Start<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=242s\" target=\"_blank\" rel=\"noopener\">04:02 &#8211; OOP<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=295s\" target=\"_blank\" rel=\"noopener\">04:55 &#8211; FP (simplified)<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=559s\" target=\"_blank\" rel=\"noopener\">09:19 &#8211; Thinking in OOP and FP<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=866s\" target=\"_blank\" rel=\"noopener\">14:26 &#8211; Solution Structure<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=1318s\" target=\"_blank\" rel=\"noopener\">21:58 &#8211; OOP and FP Concepts<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=2520s\" target=\"_blank\" rel=\"noopener\">42:00 &#8211; C# and F# Strengths<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=2691s\" target=\"_blank\" rel=\"noopener\">44:51 &#8211; Other Advantages<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=2853s\" target=\"_blank\" rel=\"noopener\">47:33 &#8211; When To Use OOP and FP<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=3107s\" target=\"_blank\" rel=\"noopener\">51:47 &#8211; Questions and Answers<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=vOcTPUiBQgc&amp;t=4086s\" target=\"_blank\" rel=\"noopener\">1:08:06 &#8211; Outro<\/a><\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>About the presenter:<\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                                                            <div class=\"about-author__box-img\">\n                            <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/03\/urs-enzler.jpg\" alt=\"Urs Enzler\" loading=\"lazy\">\n                        <\/div>\n                                        <div class=\"about-author__box-text\">\n                                                    <h4>Urs Enzler<\/h4>\n                                                <p>Urs Enzler has been a .NET developer since .NET was born. As a software architect, he builds flexible, reliable, and maintainable software with his team.<\/p>\n<ul>\n<li>Website:\u00a0<a class=\"link_e6e5\" href=\"https:\/\/www.planetgeek.ch\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"><span class=\"inner_e3ba\">https:\/\/www.planetgeek.ch\/<\/span><\/a><\/li>\n<li>Twitter:\u00a0<a class=\"link_e6e5\" href=\"https:\/\/twitter.com\/ursenzler\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"><span class=\"inner_e3ba\">https:\/\/twitter.com\/ursenzler\/<\/span><\/a><\/li>\n<\/ul>\n                    <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":1079,"featured_media":330212,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,30],"tags":[211,2005,46,1978,6183],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/341104"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1079"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=341104"}],"version-history":[{"count":7,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/341104\/revisions"}],"predecessor-version":[{"id":341204,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/341104\/revisions\/341204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/330212"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=341104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=341104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=341104"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=341104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}