Защо не си измисляш собствен език: Уроци от 5 години работа с full-stack фреймуърци
Кога да не създаваш собствен език за програмиране: Уроци от 5 години работа по full-stack фреймуърк
Има нещо магично в идеята да създадеш свой собствен език за програмиране. Това привлича най-добрите инженери и инвеститори. Но след пет години, милиони долари и хиляди часове кодиране, един нов фреймуърк взе смела стъпка: признаха, че новият език беше грешка.
Това не е история за провал. Това е история за умен завой.
Голямата идея: Универсален фреймуърк за уеб
Проблемът беше реален. Днесшният уеб dev е хаос. Frontend с React, backend с Node.js, данни с Prisma – и още десетки инструменти. Всеки с различен синтаксис и подходи.
Мечтата беше проста: един език, който обединява всичко. С възможност да скочиш в TypeScript или JS, когато трябва. Като Terraform, но за цялата уеб стека.
На теория звучи перфектно. Разработчиците са ядосани от смяната на контексти. Y Combinator одобри бързо. Парите потекоха.
После дойде реалността.
Скритите разходи на езиковия дизайн
Създаването на език не е като библиотека или фреймуърк. Това е цял свят. Дефинираш правила, правиш инструменти, учиш хора, поправяш грешки, които не съществуват в стари езици. И поддържаш съвместимост при всяка промяна.
Често подценяваш:
Съпротивата на разработчиците: Нов фреймуърк? Супер. Нов език? Стоп. Всеки синтаксис добавя натоварване на мозъка. IDE-то не помага. Stack Overflow е празен. Комунитята расте бавно.
Данъкът по инструментите: TypeScript има JS екосистемата – bundlers, linters, тестове, transpilers. Това са десетилетия работа. Ти започваш от нулата и тичеш безкрай.
Поддръжката: Грешките са твои. Compilerът е твой. Perf проблемите – твои. Всяка промяна рискува да счупи код.
Екипът: Инженерите, дето могат да правят фреймуърк функции, се занимават с парсъри и type системи.
Проблемът не беше в езика
След години работа стана ясно: разработчиците не искат нов език. Искат по-добри абстракции за типични задачи.
Конкретно:
- Лесна автентикация
- Авто генериране на API рутове
- Type safety навсякъде
- По-малко boilerplate
- Четливи шаблони за email, плащания, cache
Всичко това се решава в TypeScript. И по-добре – с огромна комунитя, професионални инструменти и стабилност.
Собственият език не беше предимство. Беше капан.
Смелото решение
Да се върнат към TypeScript, като запазят фреймуърка – това е разлика между гъвкави и упорити екипи.
Запазват доброто:
- Абстракциите остават силни
- Dev experience – гладък
- Интеграции – лесни
- Раст – бърз
Ценността – opinionated full-stack – остава. Без лудостта на езиково поддръжка.
Какво значи това за създателите на фреймуъркове (и за теб)
Ако правиш нови инструменти за dev, ето уроците:
Започни от проблема, не от лудата идея. Иска се да изобретиш новия свят. По-добре – направи съществуващото да блести.
Ограниченията раждат идеи. Вместо нов език: "Как да направя TypeScript идеален за това?" По-полезно.
Адопцията е ключът. По-слаба, но на популярна база, винаги печели над перфектна на празна.
DX не е за новост. Намали триенето, изясни целите, дай супер инструменти. Без специален синтаксис.
Напред
Преходът към TypeScript не заличава петте години. Той показва зрялост – от стартъп към полезен инструмент.
Фреймуъркът е по-лек. Екипът фокусира върху уникалното. Devs се качват бързо. Бъдещето е ясно.
Най-доброто инженерство често е да не строиш.
Правиш следващия голям фреймуърк? Иска се да започнеш от нулата. Но умните лидери избират доказани основи – TypeScript, стандартни domain registrars или надежден hosting. В NameOcean вярваме в стабилни фундаменти, които освобождават креативността. За нов фреймуърк или стартъп – вземи инструменти с ливъридж, не с главоболия.