{"guid":"257afa53-d41f-5e28-9fb6-d2e91d0d80b2","title":"All Programming Language Suck?  Just Build Your Own! – Language-Oriented Programming with Racket","subtitle":null,"slug":"rc3-257534-all_programming_language_suck_just_build_your_own_language_oriented_programming_with_racket","link":"https://cfp.chaoszone.cz/csr20/talk/AFLFER/","description":"All languages have warts, wats, defects, and things that are just plain bad taste.  Unless, of course, it's \u003cb\u003eyour\u003c/b\u003e language.  Usually, implementing and maintaining your own language is a lot of work, but the \u003cb\u003eRacket\u003c/b\u003e programming system makes creating a language as easy as having breakfast (almost) and thus a routine activity.  Pick and assemble what you like from other languages, sprinkle your own favorite features, and voila - there's your fun experiment, your medium of expression, your educational language, your DSL.\n\nRacket's secret is its flexible syntax (hailing from Lisp), and its world-class \u003cb\u003emacro system\u003c/b\u003e which is both super-powerful and easy to learn and use.  (Going far beyond classic Lisp.)  What's great is that you don't have to do all the work: Languages are just libraries of macros in Racket, and they can seamlessly interoperate with the Racket base language and each other.  Don't worry if you dislike parentheses: Racket has you covered there, too.","original_language":"eng","persons":["Mike Sperber"],"view_count":2990,"promoted":false,"date":"2020-12-27T16:00:00.000+01:00","release_date":"2020-12-29T00:00:00.000+01:00","updated_at":"2026-07-04T12:45:08.853+02:00","tags":["rc3-chaoszone","83","2020","ChaosZone"],"length":3842,"duration":3842,"thumb_url":"https://static.media.ccc.de/media/events/rc3/83-257afa53-d41f-5e28-9fb6-d2e91d0d80b2.jpg","poster_url":"https://static.media.ccc.de/media/events/rc3/83-257afa53-d41f-5e28-9fb6-d2e91d0d80b2_preview.jpg","timeline_url":"https://static.media.ccc.de/media/events/rc3/83-257afa53-d41f-5e28-9fb6-d2e91d0d80b2.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/events/rc3/83-257afa53-d41f-5e28-9fb6-d2e91d0d80b2.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/rc3-257534-all_programming_language_suck_just_build_your_own_language_oriented_programming_with_racket","url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_title":"Remote Chaos Experience","conference_url":"https://api.media.ccc.de/public/conferences/rc3","related":[],"recordings":[{"length":3842,"mime_type":"video/mp4","language":"eng","filename":"rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2020-12-29T04:23:12.273+01:00","label":"eng 1080p","size":205,"recording_url":"https://cdn.media.ccc.de/events/rc3/h264-hd/rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket.mp4","url":"https://api.media.ccc.de/public/recordings/49247","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"video/mp4","language":"deu","filename":"rc3-chaoszone-83-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2020-12-29T04:23:45.570+01:00","label":"deu 1080p","size":205,"recording_url":"https://cdn.media.ccc.de/events/rc3/h264-hd/rc3-chaoszone-83-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket.mp4","url":"https://api.media.ccc.de/public/recordings/49248","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"video/mp4","language":"eng-deu","filename":"rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2020-12-29T04:24:14.507+01:00","label":"eng-deu 1080p","size":265,"recording_url":"https://cdn.media.ccc.de/events/rc3/h264-hd/rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_hd.mp4","url":"https://api.media.ccc.de/public/recordings/49249","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"audio/opus","language":"eng","filename":"rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2020-12-30T11:50:22.787+01:00","label":"eng","size":37,"recording_url":"https://cdn.media.ccc.de/events/rc3/opus/rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_opus.opus","url":"https://api.media.ccc.de/public/recordings/49555","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"video/webm","language":"eng-deu","filename":"rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2020-12-30T13:59:10.287+01:00","label":"eng-deu 1080p","size":344,"recording_url":"https://cdn.media.ccc.de/events/rc3/webm-hd/rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/49565","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"audio/mpeg","language":"eng","filename":"rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2020-12-30T13:59:31.815+01:00","label":"eng","size":59,"recording_url":"https://cdn.media.ccc.de/events/rc3/mp3/rc3-chaoszone-83-eng-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/49566","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"video/mp4","language":"eng-deu","filename":"rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2020-12-30T13:59:57.198+01:00","label":"eng-deu 576p","size":156,"recording_url":"https://cdn.media.ccc.de/events/rc3/h264-sd/rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_sd.mp4","url":"https://api.media.ccc.de/public/recordings/49568","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"},{"length":3842,"mime_type":"video/webm","language":"eng-deu","filename":"rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2020-12-30T13:58:21.710+01:00","label":"eng-deu 576p","size":159,"recording_url":"https://cdn.media.ccc.de/events/rc3/webm-sd/rc3-chaoszone-83-eng-deu-All_Programming_Language_Suck_Just_Build_Your_Own_-_Language-Oriented_Programming_with_Racket_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/49564","event_url":"https://api.media.ccc.de/public/events/257afa53-d41f-5e28-9fb6-d2e91d0d80b2","conference_url":"https://api.media.ccc.de/public/conferences/rc3"}]}