{"guid":"b8bedd62-02eb-4e3c-ac41-a33ae523826a","title":"The Object-Oriented/Functional-Programming symmetry: theory and practice","subtitle":null,"slug":"bob2020-93-the_object-oriented_functional-programming_symmetry_theory_and_practice","link":"https://bobkonf.de/2020/scherer.html","description":"Much gets written on the internet about comparisons\n\tbetween Object-Oriented (OO) and Functional-Programming (FP)\n\tapproaches software: which one is going to solve all your\n\tprogramming problems? If we concentrate on precise, objective\n\tcomparisons and relations between the two sides, the\n\tprogramming-language folklore mentions a symmetry (often\n\tcalled a “duality”) between object-oriented and\n\tfunctional-programming styles. More precisely, a symmetry\n\tbetween program organizations based on class decompositions,\n\tand those based on sum types (also called variant types or\n\talgebraic datatypes). In this talk we propose to revisit this\n\tsymmetry, discussing both practical and theoretical\n\taspects.","original_language":"eng","persons":["Gabriel Scherer"],"tags":["bob2020","93","2020","Talk","BOB","BOBKonferenz"],"view_count":152,"promoted":false,"date":"2020-02-28T14:30:00.000+01:00","release_date":"2020-04-17T00:00:00.000+02:00","updated_at":"2026-04-03T08:00:03.257+02:00","length":2550,"duration":2550,"thumb_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.jpg","poster_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/bobkonf/2020/93-hd.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/bob2020-93-the_object-oriented_functional-programming_symmetry_theory_and_practice","url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_title":"BOB Konferenz 2020","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020","related":[],"recordings":[{"size":211,"length":2550,"mime_type":"video/webm","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1280,"height":720,"updated_at":"2020-04-17T13:19:49.164+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/webm-hd/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/47267","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"},{"size":27,"length":2550,"mime_type":"audio/opus","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2020-04-17T13:14:22.167+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/opus/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_opus.opus","url":"https://api.media.ccc.de/public/recordings/47262","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"},{"size":134,"length":2550,"mime_type":"video/webm","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2020-04-17T13:14:13.367+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/webm-sd/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/47261","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"},{"size":38,"length":2550,"mime_type":"audio/mpeg","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2020-04-17T13:13:43.696+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/mp3/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/47260","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"},{"size":88,"length":2550,"mime_type":"video/mp4","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2020-04-17T13:13:30.322+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/h264-sd/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_sd.mp4","url":"https://api.media.ccc.de/public/recordings/47259","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"},{"size":156,"length":2550,"mime_type":"video/mp4","language":"eng","filename":"bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1280,"height":720,"updated_at":"2020-04-17T13:13:19.685+02:00","recording_url":"https://cdn.media.ccc.de/events/bobkonf/2020/h264-hd/bob2020-93-eng-The_Object-Oriented_Functional-Programming_symmetry_theory_and_practice_hd.mp4","url":"https://api.media.ccc.de/public/recordings/47258","event_url":"https://api.media.ccc.de/public/events/b8bedd62-02eb-4e3c-ac41-a33ae523826a","conference_url":"https://api.media.ccc.de/public/conferences/bobkonf2020"}]}