في عام 1994، كان الموقع الديناميكي يعني كتابة برنامج بلغة C، ووضعه في مجلد cgi-bin، والسماح لـ Apache بتشغيله عبر fork مع كل طلب. وبعد اثنين وثلاثين عامًا، أطلق المؤلف منتج ويب تجاريًا، هو marketyour.games، باستخدام التقنية نفسها تقريبًا. يتضمن المنتج حسابات للمستخدمين، ولوحة بحث لمنشئي المحتوى، ومجلدات لتنظيمهم، ومدفوعات عبر Stripe، ورسائل بريد إلكتروني معاملاتية عبر Postmark. ويتبع المنتج مبدأ التحسين التدريجي ولا يتطلب JavaScript.
المكدس التقني هو BCHS: OpenBSD وC وhttpd وSQLite. لا يوجد إطار عمل، ولا لغة قوالب، ولا خادم قواعد بيانات منفصل. يقرأ برنامج C متغيرات بيئة CGI ويُخرج HTML مباشرة. الملف الثنائي مرتبط بشكل ثابت، ويُنشر باستبدال ملف واحد، فتستخدم الطلبات الجديدة النسخة الجديدة مباشرة دون إعادة تشغيل الخادم أو توقف الخدمة. وتساعد ميزتا pledge وunveil في OpenBSD على تأمين البرنامج، ويقدم httpd المحتوى من بيئة chroot. وتقتصر التبعيات على libcurl للطلبات الصادرة، وlibsodium للمعرّفات وتجزئة كلمات المرور والتحقق من webhooks الخاصة بـ Stripe، وlibcjson لتحليل JSON. ولا يستغرق البناء النظيف سوى بضع ثوانٍ.
يقدّر المؤلف CGI لأسسه أكثر من الأطر البرمجية. فالمواصفة 1.1، التي نُشرت عام 2004، لم تتغير، ويكفي فهم HTTP لفهم CGI. وهو مستقل عن اللغة والمنصة، ويحافظ على فصل واضح للمسؤوليات، إذ يستدعي خادم ويب واحد منطق العمل مباشرة بدلًا من التوجيه العكسي إلى خادم تطبيقات منفصل. والتطبيقات برامج عادية يمكن تشغيلها من الصدفة وتصحيح أخطائها باستخدام gdb.
كما يوفر هذا النهج مخاطر ضئيلة في سلسلة التوريد، وهي ميزة مهمة في ظل الهجمات الأخيرة على مستودعات الحزم. ومع عدد قليل جدًا من التبعيات، تقل فرص التعرض للحزم المخترقة. ويرى المؤلف أن تراجع CGI كان مبررًا عام 2004 لكنه لا يصمد في عام 2026، وأن تطبيق ويب حديثًا يمكن كتابته فعلًا بلغة C.
المصدر: Hacker News · لخّصه HeadlinesBriefing