воскресенье, 5 июня 2016 г.

[prog.flame] Велосипедостроение как фактор интереса к новым языкам программирования?

Новые языки программирования продолжают притягивать к себе активное внимание. По крайней мере на профильных форумах, где тусуется, пусть и малая часть программистов, но зато довольно инициативная (по крайней мере в области "потрындеть на форуме"). Полагаю, у стремления к чему-то новому есть множество факторов, проистекающих из самой природы человека. А вот по следам двух недавних тем (первая, вторая), похоже, нащупал еще один фактор.

Этот фактор -- велосипедостроение. Для старых языков велосипедить как-то сложно: за время их существования, особенно если язык где-то в мейнстриме или близко к тому, уже написан вагон и маленькая тележка всяческих библиотек. Для разных прикладных областей. Разного объема и совершенно разного качества. Чтобы начать в таких условиях писать свой собственный велосипед, нужно либо очень хорошо понимать, что именно хочется сделать, зачем, почему, в чем будет профит и почему нельзя достичь нужного результата за счет использования чего-то уже существующего. Ну или не иметь мозгов (более политкорректный вариант: не иметь должного кругозора) и, за счет этого полагать, что твой собственный велосипед будет самым-самым велосипедистым велосипедом :)

На самом деле, возьмем близкий мне C++. Нужно быть достаточно самоуверенным разработчиком, чтобы сейчас на C++ начать делать, скажем, GUI-библиотеку. Ведь сразу же пойдут вопросы: а чем твоя библиотека будет лучше плюсовых же Qt, wxWidgets, FLTK, FOX и т.д.? Не говоря уже про plain-C библиотеки вроде GTK или EFL, вокруг которых можно навернуть C++ные обертки.

И попробуйте внятно ответить на этот вопрос самому себе. Уже это будет непросто. А уж донести свою точку зрения до непредвзятой аудитории (в которой будет 20% активнейших воинствующих неадекватов) окажется еще стократ сложнее.

Тогда как сделать GUI-библиотеку для Rust-а или Nim-а -- это же совсем другое дело. Ведь нет же ничего, пустая поляна. Можно брать и делать, а куча народа тебя еще и подбадривать начнет, мол, давай-давай, мы ждем, нам надо.

Полагаю, это может быть совсем немаловажный фактор. Ведь на каком-нибудь C++ или Java приходится брать готовое и с помощью этого готового решать скучные и интересные только заказчику прикладные задачи. Тогда как на Rust-е или Kotlin-е можно сделать свой собственный велосипед (коих для C++ и Java как собак не резанных), а прикладные задачи с помощью этих велосипедов пусть решает кто-нибудь другой ;)

Комментариев нет: