This commit is contained in:
parent
0b33dfa56b
commit
980d1fb34d
54 changed files with 13234 additions and 0 deletions
843
site/2026-04-13-001/index.html
Normal file
843
site/2026-04-13-001/index.html
Normal file
|
|
@ -0,0 +1,843 @@
|
|||
|
||||
<!doctype html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<meta name="description" content="A new project generated from the default template project.">
|
||||
|
||||
|
||||
<meta name="author" content="<your name here>">
|
||||
|
||||
|
||||
|
||||
<link rel="prev" href="../2025-09-20-001/">
|
||||
|
||||
|
||||
<link rel="next" href="../2026-07-07-001/">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="icon" href="../assets/images/favicon.png">
|
||||
<meta name="generator" content="zensical-0.0.47">
|
||||
|
||||
|
||||
|
||||
<title>Programming used to be free - Veille IA générative</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../assets/stylesheets/modern/main.5e19f6ca.min.css">
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../assets/stylesheets/modern/palette.dfe2e883.min.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,300i,400,400i,500,500i,700,700i%7CJetBrains+Mono:400,400i,700,700i&display=fallback">
|
||||
<style>:root{--md-text-font:"Inter";--md-code-font:"JetBrains Mono"}</style>
|
||||
|
||||
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_scope.pathname.endsWith("/")||(__md_scope=new URL(__md_scope.pathname+"/",location)),__md_hash=e=>[...e].reduce(((e,t)=>(e<<5)-e+t.charCodeAt(0)),0),__md_get=(e,t=localStorage,_=__md_scope)=>JSON.parse(t.getItem(_.pathname+"."+e)),__md_set=(e,t,_=localStorage,a=__md_scope)=>{try{_.setItem(a.pathname+"."+e,JSON.stringify(t))}catch(e){}},document.documentElement.setAttribute("data-platform",navigator.platform)</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
|
||||
|
||||
|
||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||||
<label class="md-overlay" for="__drawer" aria-label="Navigation"></label>
|
||||
<div data-md-component="skip">
|
||||
|
||||
|
||||
<a href="#programming-used-to-be-free" class="md-skip">
|
||||
Skip to content
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div data-md-component="announce">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="md-header md-header--shadow" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||||
<a href="./.." title="Veille IA générative" class="md-header__button md-logo" aria-label="Veille IA générative" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
|
||||
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer" aria-label="Navigation">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-menu" viewBox="0 0 24 24"><path d="M4 5h16M4 12h16M4 19h16"/></svg>
|
||||
</label>
|
||||
<div class="md-header__title" data-md-component="header-title">
|
||||
<div class="md-header__ellipsis">
|
||||
<div class="md-header__topic">
|
||||
<span class="md-ellipsis">
|
||||
Veille IA générative
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
Programming used to be free
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<form class="md-header__option" data-md-component="palette">
|
||||
|
||||
|
||||
|
||||
|
||||
<input class="md-option" data-md-color-media="none" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
||||
|
||||
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-sun" viewBox="0 0 24 24"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41"/></svg>
|
||||
</label>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<input class="md-option" data-md-color-media="none" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
||||
|
||||
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-moon" viewBox="0 0 24 24"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/></svg>
|
||||
</label>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-header__button md-icon" for="__search" aria-label="Search">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-search" viewBox="0 0 24 24"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog" aria-label="Search">
|
||||
<button type="button" class="md-search__button">
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="md-header__source">
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</header>
|
||||
|
||||
<div class="md-container" data-md-component="container">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<main class="md-main" data-md-component="main">
|
||||
<div class="md-main__inner md-grid">
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a href="./.." title="Veille IA générative" class="md-nav__button md-logo" aria-label="Veille IA générative" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-book-open" viewBox="0 0 24 24"><path d="M12 7v14M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></svg>
|
||||
|
||||
</a>
|
||||
Veille IA générative
|
||||
</label>
|
||||
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="./.." class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Accueil
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2024-09-16-001/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
« Un vaste système de surveillance piloté par l'IA peut amener les citoyens à un meilleur comportement », d'après Larry Ellison
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2025-09-19-001/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
AI medical tools found to downplay symptoms of women, ethnic minorities
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2025-09-20-001/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
DeepSeek - L'IA chinoise qui livre du code pourri aux ennemis du régime
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--active">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Programming used to be free
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<a href="././" class="md-nav__link md-nav__link--active">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Programming used to be free
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--secondary" aria-label="On this page">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__title" for="__toc">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
On this page
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#april-13-2026-lobsters-hacker-news" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
April 13, 2026 Lobsters Hacker News
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#education" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Education
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#the-mainframe-age" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
The mainframe age
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#hidden-cost" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Hidden cost
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#llms" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
LLMs
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#conclusion" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Conclusion
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-07-07-001/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Big Tech Has Suddenly Flipped on the AI Jobs Wipeout Scenario
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../2026-07-08-001/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
How tech workers are feeling in 2026: a workforce splitting in two
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../Readme/" class="md-nav__link">
|
||||
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
|
||||
|
||||
Déclassement
|
||||
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||||
<div class="md-sidebar-button__wrapper">
|
||||
<label class="md-sidebar-button" for="__toc"></label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--secondary" aria-label="On this page">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__title" for="__toc">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
On this page
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#april-13-2026-lobsters-hacker-news" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
April 13, 2026 Lobsters Hacker News
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#education" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Education
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#the-mainframe-age" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
The mainframe age
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#hidden-cost" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Hidden cost
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#llms" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
LLMs
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#conclusion" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
<span class="md-typeset">
|
||||
Conclusion
|
||||
</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-content" data-md-component="content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<article class="md-content__inner md-typeset">
|
||||
|
||||
|
||||
|
||||
<h1 id="programming-used-to-be-free"><a href="https://purplesyringa.moe/blog/programming-used-to-be-free/">Programming used to be free</a><a class="headerlink" href="#programming-used-to-be-free" title="Permanent link">¶</a></h1>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">TLDR</p>
|
||||
<p>Les LLM vont nous faire revenir aux années 70, où la programmation n’était accessible que moyennant finances, et réservée à une élite.</p>
|
||||
</div>
|
||||
<h2 id="april-13-2026-lobsters-hacker-news">April 13, 2026 Lobsters Hacker News<a class="headerlink" href="#april-13-2026-lobsters-hacker-news" title="Permanent link">¶</a></h2>
|
||||
<p>The appearance of Mythos – a private LLM allegedly capable of finding a multitude of 0-days – has made people concerned about being denied powerful tools. This seems to be a turning point in the mainstream discourse, and it motivated me to complete the think piece I’ve been meaning to write for a while.</p>
|
||||
<p>I have a related, intimate worry regarding LLMs. Just so that we’re clear, it’s not a common critique from the anti-AI crowd, like ethics or quality. While I share some reservations, frankly it’s not what gives me the most angst. My intent is to make this post thought-provoking even if your beliefs on this topic entirely differ from mine.
|
||||
Backstory</p>
|
||||
<p>I’m going to start a little personal.</p>
|
||||
<p>I started programming as a child in the beginning of 2010s, thanks to my dad. He didn’t work as a software developer, so he insisted on using the technology he used and understood: QBasic. It’s an MS-DOS IDE for BASIC back from 35 years ago, and it was what you’d expect from such old software: a slow interpreter, 80x25 text mode output, 16 (!) colors in graphical mode, and a white-on-blue-background editor.</p>
|
||||
<p>Screenshot of QBasic. The UI looks kind of like a modern TUI, a little like a single window of tmux with a menu bar on top and a footer on the bottom. An empty file named "Untitled" is open. The footer looks a bit cryptic, describing keybinds, like F2 = Subs>, and spelling N 00001:001 at the bottom right.</p>
|
||||
<p>I didn’t run it on a Windows 7 laptop via NTVDM or DOSBox – common emulators of that time. No, it was an actual epoch-appropriate PC. I don’t have photos of my own, but here’s a stock picture just to get the feel across:</p>
|
||||
<p>A stock photo of a tower computer connected to a CRT monitor and a keyboard. All of them are dirty beige and look old.</p>
|
||||
<p>I didn’t know English much at the time, and there wasn’t built-in documentation regardless, so I had to learn by trial and error. Redo from start still haunts me.</p>
|
||||
<p>I’m not telling you this to brag or beg for sympathy – I’m giving context for why I feel comfortable talking about the history of computing despite my young age and naivety. Even though I didn’t live through it, I heard tales, and I often find myself researching retrocomputing despite having modernized my stack.</p>
|
||||
<h2 id="education">Education<a class="headerlink" href="#education" title="Permanent link">¶</a></h2>
|
||||
<p>When I finally got access to a Windows PC, I started learning PHP after finding a self-teach book by accident. I found php.net pretty soon and switched to online documentation. I learned to work with the filesystem, set up Apache, played around with C:\Windows\System32\Drivers\etc\hosts. It snowballed from there.</p>
|
||||
<p>You could learn a lot of stuff with barely any resources. I needed Internet access, sure, but I used an outdated Windows XP machine with (I believe) Pentium II just fine. Later, I learned C++ syntax from the PVS-Studio blog and a multitude of online tutorials.</p>
|
||||
<p>The number of places offering free knowledge cannot be overstated. htmlbook.ru and javascript.ru helped me learn webdev, to name a few. And don’t forget Khan Academy!</p>
|
||||
<p>The site I used to learn modern HTML.</p>
|
||||
<p>Although I switched to a somewhat more powerful laptop by that point, I used it beyond its intended lifetime until it couldn’t keep up with Windows. I was able to use browsers, IDEs, and other free tools during all that time thanks to optimization. The only program that wasn’t responsive was VS Code, but it was easy to replace.</p>
|
||||
<p>I immensely appreciate having access to this much information and tools. It was the work of countless people, doing their best to provide high-quality compilers and tutorials for free that allowed me to eventually become a person people look up to.</p>
|
||||
<h2 id="the-mainframe-age">The mainframe age<a class="headerlink" href="#the-mainframe-age" title="Permanent link">¶</a></h2>
|
||||
<p>It hasn’t always been that way.</p>
|
||||
<p>There was a time when there was no GCC, no Linux, and no VS Code. There were proprietary, expensive compilers and systems provided by a few major vendors. It’s difficult to find the exact prices, but around 1990, Watcom C/C++ (used by DOOM among other projects) cost $1000, and the source for AT&T UNIX cost $10’000. The $1000 cost of BSD/386 was considered incredibly cheap.</p>
|
||||
<p>While this got the developers of core infrastructure paid, it meant that only large technical companies and universities could afford state-of-the-art software – hobbyists were left on their own. With the proliferation of personal computers in 1980s, like Amiga, ZX Spectrum, and Commodore 64 (kilobytes, not bits), people were able to develop their own programs (usually games), but only in BASIC and assembly, which was either limiting or required subtle, non-widespread knowledge.</p>
|
||||
<p>A strategic fight menu. The game asks "How shall we fight?", with options "Stand & Fight", "Knights Charge", "Outflank Enemy", "Catapult Barrage", and "Defensive Hold". The statistics portion shows that your army has 7 soldiers, while the enemy army has 44 soldiers, 3 knights, and 1 catapult. The graphics simulate old paper, and the background illustrates a field with sodliers and horses.</p>
|
||||
<p>Even though it was common for people to share hobbyist and pirated proprietary software via sneakernet or at LAN parties, the culture didn’t see people collaborating on large open-source software systems until later. Perhaps it was because people cosplayed corporations, adding amusing freeware licenses and implementing copy protection for fun; or perhaps everyone tried to make a living out of it.</p>
|
||||
<p>The Free Software movement was the driving force behind turning the tide. Providing a free – both as in freedom and as in free beer – C compiler, IDE, and OS kernel and userspace acted as a catalyst, paving the way for open-source software to shape the world we live in today.</p>
|
||||
<h2 id="hidden-cost">Hidden cost<a class="headerlink" href="#hidden-cost" title="Permanent link">¶</a></h2>
|
||||
<p>I’m deeply grateful to the FOSS community and the people around it for enabling unfettered access to information and software, because that’s what allowed me to get into this profession in the first place.</p>
|
||||
<p>It wasn’t thanks to programs or services with free trials – I needed to be able to keep learning after a month has passed.</p>
|
||||
<p>It wasn’t thanks to student plans – I was a child without agency who couldn’t submit any confirmational documentation or pay out of pocket.</p>
|
||||
<p>It wasn’t thanks to free plans – I was already limited by status and knowledge gaps, and further restrictions would only exacerbate the issue.</p>
|
||||
<p>I hacked together GitHub Pages, GitLab CI/CD, and Heroku to implement server-side logic. I used decentralized networks. The difference between $0 and $1 wasn’t “free” vs “cheap”. In my circumstances, it was “possible” vs “unachievable”.</p>
|
||||
<h2 id="llms">LLMs<a class="headerlink" href="#llms" title="Permanent link">¶</a></h2>
|
||||
<p>Which brings me to LLMs.</p>
|
||||
<p>When running locally, their performance directly scales with computing power. Running GCC on a low-end device might take five minutes instead of two, but LLMs become straight up unusable if you don’t have a GPU or enough RAM. Even the simplest coding agent requires more hardware than an average person has.</p>
|
||||
<p>With closed-weight LLMs, you have to play around with different models and companies, paying for each one in the meantime (the opinion on which one’s the best changes every month). The simplest solution is to make it your employer’s problem: previously adequate cheap models are lobotomized and free usage is highly limited.</p>
|
||||
<p>Message from ChatGPT: You've hit the Free plan limit for GPT-5. Responses will use another model until your limit resets in 5 hours, or get ChatGPT Plus.</p>
|
||||
<p>It’s not a shock to anyone: LLMs are expensive to run and maintain. It still sucks.</p>
|
||||
<p>I don’t know if juggling LLMs should be a central task of software development. I doubt anyone truly knows. But the industry is changing, and LLM-enabled programming will likely remain a major part of it in some shape or form.</p>
|
||||
<p>And whatever LLM-first workflows will look like, they won’t be nearly as accessible as the approaches of yesteryear. Those functioned well not only for companies and compsci students, but also for those who couldn’t submit documentation for an educational plan, developers in underdeveloped countries, and tiny teams.</p>
|
||||
<p>A middle schooler can learn Python on a family iPad. They can’t learn vibecoding.</p>
|
||||
<h2 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">¶</a></h2>
|
||||
<p>And so it bothers me that <mark>this might regress computing back to the plutocracy of 1970s. It’s easy to think of that time as the golden age of computing from folklore if you didn’t live through it, but it was also expensive, undemocratic, and limiting.</mark></p>
|
||||
<p>Economical instability, FOMO combined with costly subscriptions, fast pacing, and vendor lock-in can make new practices intractable outside of institutions, like firms and universities. You might afford it – what about those who can’t?</p>
|
||||
<p>I know some of you can relate to making do with limited resources, software, or hardware. So far, the lessons we learned along that way have been useful despite that. But they can easily become worthless in LLM-centric programming. And it saddens me that I have to wonder if no one else will be able to walk the road I did.</p>
|
||||
|
||||
|
||||
<nav class="md-tags" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-tag">développement</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<span class="md-tag">coût</span>
|
||||
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
|
||||
|
||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||||
</div>
|
||||
|
||||
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-circle-arrow-up" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10"/><path d="m16 12-4-4-4 4M12 16V8"/></svg>
|
||||
Back to top
|
||||
</button>
|
||||
|
||||
</main>
|
||||
|
||||
<footer class="md-footer">
|
||||
|
||||
|
||||
|
||||
<nav class="md-footer__inner md-grid" aria-label="Footer" >
|
||||
|
||||
|
||||
<a href="../2025-09-20-001/" class="md-footer__link md-footer__link--prev" aria-label="Previous: DeepSeek - L'IA chinoise qui livre du code pourri aux ennemis du régime">
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-left" viewBox="0 0 24 24"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
|
||||
</div>
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
Previous
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
DeepSeek - L'IA chinoise qui livre du code pourri aux ennemis du régime
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="../2026-07-07-001/" class="md-footer__link md-footer__link--next" aria-label="Next: Big Tech Has Suddenly Flipped on the AI Jobs Wipeout Scenario">
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
Next
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
Big Tech Has Suddenly Flipped on the AI Jobs Wipeout Scenario
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="lucide lucide-arrow-right" viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="md-footer-meta md-typeset">
|
||||
<div class="md-footer-meta__inner md-grid">
|
||||
<div class="md-copyright">
|
||||
|
||||
<div class="md-copyright__highlight">
|
||||
Copyright © 2026 The authors
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Made with
|
||||
<a href="https://zensical.org/" target="_blank" rel="noopener">
|
||||
Zensical
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script id="__config" type="application/json">{"annotate":null,"base":"..","features":["announce.dismiss","content.code.annotate","content.code.copy","content.code.select","content.footnote.tooltips","content.tabs.link","content.tooltips","navigation.footer","navigation.indexes","navigation.instant","navigation.instant.prefetch","navigation.path","navigation.sections","navigation.top","navigation.tracking","search.highlight"],"search":"../assets/javascripts/workers/search.b6b7e04f.min.js","tags":null,"translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":null}</script>
|
||||
|
||||
|
||||
<script src="../assets/javascripts/bundle.0df4f2d0.min.js"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue