{"id":16255,"date":"2026-05-02T14:32:28","date_gmt":"2026-05-02T21:32:28","guid":{"rendered":"https:\/\/mattfife.com\/?p=16255"},"modified":"2026-04-15T14:51:37","modified_gmt":"2026-04-15T21:51:37","slug":"oop-was-a-35-year-mistake","status":"publish","type":"post","link":"https:\/\/mattfife.com\/?p=16255","title":{"rendered":"OOP&#8217;s impact on data arrangement was a 35 year mistake"},"content":{"rendered":"\n<p>Casey Muratori at the <a href=\"https:\/\/bettersoftwareconference.com\/\" data-type=\"link\" data-id=\"https:\/\/bettersoftwareconference.com\/\">Better Software Conference<\/a> walks us through how data in game development (and other systems) started with simple coherent structures and then morphed into hierarchies of objects, following the in-vogue trend of late 90&#8217;s programming. <\/p>\n\n\n\n<p>This lead to changing the compile-time data arrangement from what&#8217;s best for the computer to compiling data to what is arbitrarily arranged to match the real-world things you&#8217;re trying to model.<\/p>\n\n\n\n<p>He does a great job of breaking down the history and effects of what has happened in the 20 years since. Today, developers from racing games to AI are re-discovering that laying things out linearly and adhering to cache consistent access (ex: GPUs) is where the highest end performance is unleashed.<\/p>\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<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/wo84LFzx5nI?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Casey Muratori at the Better Software Conference walks us through how data in game development (and other systems) started with simple coherent structures and then morphed into hierarchies of objects, following the in-vogue trend of late 90&#8217;s programming. This lead to changing the compile-time data arrangement from what&#8217;s best for the computer to compiling data to what is arbitrarily arranged to match the real-world things you&#8217;re trying to model. He does a great job of breaking down the history and&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?p=16255\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9,5],"tags":[],"class_list":["post-16255","post","type-post","status-publish","format-standard","hentry","category-cool","category-technical"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4WECr-4eb","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16255"}],"version-history":[{"count":6,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16255\/revisions"}],"predecessor-version":[{"id":16261,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16255\/revisions\/16261"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}