{"id":12755,"date":"2025-02-14T16:11:29","date_gmt":"2025-02-14T15:11:29","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=12755"},"modified":"2025-02-14T16:11:30","modified_gmt":"2025-02-14T15:11:30","slug":"an-oh-fuck-moment-in-time","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2025\/02\/14\/an-oh-fuck-moment-in-time\/","title":{"rendered":"An &#8220;oh fuck&#8221; moment in time"},"content":{"rendered":"\n<p><em><a href=\"https:\/\/ghuntley.com\/oh-fuck\/\">## An &#8220;oh fuck&#8221; moment in time<\/a><a href=\"https:\/\/ghuntley.com\/oh-fuck\/\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2025\/02\/CleanShot-2025-01-06-at-09.16.53%402x.png?w=910&#038;ssl=1\" alt=\"\"\/><\/a><\/em><\/p>\n\n\n\n<!--more-->\n\n\n\n<!--nextpage-->\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<div class=\"c-content \">\n<p>Over the Christmas break I\u2019ve been critically looking at my own software development loop, learning a new programming language and re-learning a language I haven\u2019t professionally used in over seven years.<\/p>\n<p>It&#8217;s now 2025. Software assistants are now a core staple of my day-to-day life as a staff software engineer and are the best intern I&#8217;ve ever had. Yes, sometimes the assistants lie\/make stuff up but then again so does an intern.<\/p>\n<p>Last weekend I decided to take Cursor\/Windsurfer for a spin after seeing a comment on HackerNews which can be distilled down to &#8220;the better the type system of the programming language and verbosity of compiler errors the harder LLM&#8217;s go&#8221;<\/p>\n<p>So I took &#8217;em for a spin and gave it a task&#8230;<\/p>\n<pre class=\"language-none\" tabindex=\"0\"><code class=\"\" data-line=\"\">convert this rust library at https:\/\/github.com\/RustAudio\/cpal\/tree\/master to a haskell library using ghc2024.\n\n- use the hoogle cli to search for the right types and functions \n- include a comprehensive test suite using hspec and quickcheck\n- run a build after every code change \n- run tests after every successful build<\/code><\/pre>\n<p>Then took my kids down to the local pool. When I got back, I had a fully functional Haskell library with autogenerated C bindings, FFI to CoreAudio and my jaw was on the ground. Literally an &#8220;oh fuck&#8221; moment in time&#8230; This wasn&#8217;t something that existed, it wasn&#8217;t regurgitating knowledge from Stackoverflow. It was inventing\/creating something new.<\/p>\n<p><a href=\"https:\/\/youtu.be\/l3DjY8bNbAM?si=M1id-viJzgcvApwU&amp;ref=ghuntley.com\">https:\/\/youtu.be\/l3DjY8bNbAM?si=M1id-viJzgcvApwU<\/a><\/p>\n<p>We live in strange and interesting times. It&#8217;s currently really hard for newbies to break into the software industry as it&#8217;s still recovering from the en-mass layoffs two years ago. With coding assistants this good, now, and getting better daily I&#8217;m left wondering&#8230;<\/p>\n<blockquote><p>N period on from now, software engineers who haven&#8217;t adopted or started exploring software assistants, are frankly not gonna make it. Engineering organizations right now are split between employees who have had that &#8220;oh fuck&#8221; moment, are leaning into software assistants and those who have not.<\/p><\/blockquote>\n<\/div>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">## An &#8220;oh fuck&#8221; moment in time<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2025\/02\/14\/an-oh-fuck-moment-in-time\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"inline_featured_image":false,"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,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[19],"tags":[],"class_list":["post-12755","post","type-post","status-publish","format-link","hentry","category-mood","post_format-post-format-link"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-3jJ","jetpack-related-posts":[{"id":1302,"url":"https:\/\/monodes.com\/predaelli\/2016\/04\/23\/moments\/","url_meta":{"origin":12755,"position":0},"title":"Moments","author":"Paolo Redaelli","date":"2016-04-23","format":false,"excerpt":"There are moments that shall be recorded. This is one of them for me: Student Petru Gurita Project nameLiberty Eiffel meets Windows OrganizationGNU Project Mentors Paolo Redaelli Liberty Eiffel language available on windows environment. Sorgente: Organizations | Google Summer of Code","rel":"","context":"In &quot;GNU\/Linux&quot;","block_context":{"text":"GNU\/Linux","link":"https:\/\/monodes.com\/predaelli\/category\/gnulinux\/"},"img":{"alt_text":"i-am-a-mentor","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/i-am-a-mentor-300x147-1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2453,"url":"https:\/\/monodes.com\/predaelli\/2017\/05\/15\/2453\/","url_meta":{"origin":12755,"position":1},"title":"I want to dive a\u2026","author":"Paolo Redaelli","date":"2017-05-15","format":"link","excerpt":"I want to dive a little into WordPress codebase but modern PHP is quite a different language from what I've learned - albeit a little - way ago, so long ago that Wordpress didn't even existed then. Beside reading the obvious official documentation, I've discovered that the almighty O'Really seems\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7485,"url":"https:\/\/monodes.com\/predaelli\/2020\/08\/26\/troll-dice-roller-and-probability-calculator\/","url_meta":{"origin":12755,"position":2},"title":"Troll dice roller and probability calculator","author":"Paolo Redaelli","date":"2020-08-26","format":false,"excerpt":"Recently I've been looking for an alternative to AnyDice, probably\u00a0the most known and widely used Dice Probability Calculator. It's really good but it has a huge con. It's proprietary, the source code is not available. Enters Troll, dice roller and probability calculator which has a somehow raw and crude user\u2026","rel":"","context":"In &quot;Fun&quot;","block_context":{"text":"Fun","link":"https:\/\/monodes.com\/predaelli\/category\/fun\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2020\/08\/dadi.webp?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":872,"url":"https:\/\/monodes.com\/predaelli\/2016\/01\/06\/saturation-arithmetic-wikipedia-the-free-encyclopedia\/","url_meta":{"origin":12755,"position":3},"title":"Saturation arithmetic &#8211; Wikipedia, the free encyclopedia","author":"Paolo Redaelli","date":"2016-01-06","format":false,"excerpt":"Saturation arithmetic for integers has also been implemented in software for a number of programming languages including C, C++, and Eiffel. Sorgente: Saturation arithmetic - Wikipedia, the free encyclopedia Oh, I almost forgot that. Such a library was conceived by Geoff 24 who gave up using Eiffel in Mar 2003\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10303,"url":"https:\/\/monodes.com\/predaelli\/2023\/03\/12\/modern-c-replacements\/","url_meta":{"origin":12755,"position":4},"title":"Modern C replacements?","author":"Paolo Redaelli","date":"2023-03-12","format":false,"excerpt":"These days I was just wondering if anyone has compiled a list of \"Modern C replacement\" languages when Slashdot almost read my mind: Meet Zig: the Modern Alternative to the C Programming Language - Slashdot Systems-oriented developers already have programming languages like C, C++, Rust, and Go, notes InfoWorld. But\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":13563,"url":"https:\/\/monodes.com\/predaelli\/2025\/06\/15\/what-can-we-learn\/","url_meta":{"origin":12755,"position":5},"title":"What can we learn?","author":"Paolo Redaelli","date":"2025-06-15","format":false,"excerpt":"I just read \"Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages?\" and I wonder what can we Eiffellers learn from it. Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages? In 1989 a computer scientist argued that\u2026","rel":"","context":"In &quot;Liberty Eiffel&quot;","block_context":{"text":"Liberty Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/liberty-eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/12755","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=12755"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/12755\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=12755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=12755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=12755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}