This presentation was recorded at GOTO Copenhagen 2021. #GOTOcon #GOTOcph http://gotocph.com Vagif Abilov - Senior Consultant at Miles with 30+ Years of Programming Experience @ljobject ABSTRACT It finally happened: tired of mutable data structures and thread synchronisation, Vagif's team decided to use functional programming and F# for the next generation of their system. Gigabytes of data are going through their applications every hour with high demand for performance, scalability and failure recovery. The fact that their project has for a long time been in production can identify it as success, but has the choice of FP become an essential part of this success? Could they achieve similar development speed and operational stability if we settled for OOP (and C# on .NET platform)? They believe that functional programming provides a set of defaults that can give significant advantages for development with short deadlines and continuous deployment, and Vagif will share their experience and lessons learned in this talk [...] TIMECODES 00:00 Intro 03:28 Modeling a point 05:33 Data structures in Fsharp 06:52 OOP vs. FP 07:21 Half-lives of software related entities 10:18 Locks do not compose 11:13 Amdahl's law in action 12:17 Business objects 15:37 Joe Armstrong on OOP 16:12 Business objects 17:13 Scott Wlaschin "Domain Modeling Made Functional" 20:54 Domain modeling in Fsharp 21:43 Algebraic data types in Fsharp 24:17 Yaron Minsky "Make illegal state unrepresentable" 25:48 Can't we adopt FP style in C#/Java? 28:57 Alan Kay on objects 30:30 Classic OOP vs real world 32:16 Actor model as OO done right 33:44 Impact of FP on feature development cycle 35:54 What main advantage did we gain with FP? 36:54 Outro Download slides and read the full abstract here: https://gotocph.com/2021/sessions/1799 RECOMMENDED BOOKS Richard Warburton • Object-Oriented vs. Functional Programming • https://amzn.to/3xkWQ0F Russ Olsen • Getting Clojure • https://amzn.to/3J8zI8s Russ Olsen • Eloquent Ruby • https://amzn.to/37gOhcG Richard Feldman • Elm in Action • https://amzn.to/387kujI Neal Ford • Functional Thinking • https://amzn.to/3DdP35B Venkat Subramaniam • Functional Programming in Java • https://amzn.to/2WlOXIt Ulisses Almeida • Learn Functional Programming with Elixir • https://amzn.to/389grn6 Eric Normand • Grokking Simplicity • https://amzn.to/3gz7o3C https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #OOP #Fsharp #Csharp #FP #ObjectOrientedProgramming #FunctionalProgramming #Concurrency #AmdahlsLaw #Amdahl #VagifAbilov #JoeArmstrong #ScottWlaschin #DomainModeling #Java #Kotlin #Cpp #AlanKay #Akka #AkkadotNET CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Get notified about new features and conference additions.