metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-09 10:43 pm

Мозголомающие средства разработки.

После недельного писания на F# появилась идея, отчего использование дельфи так часто вырывает мозг программистам.

Суть в том, что дельфи это законченный продукт с замкнутым комьюнити. Собственно говоря, для работы на нем ничего кроме самого дельфи и нескольких сторонних компонентов (которые никуда больше и не пригодны) не нужно. Соответственно, у программистов тупо не было стимула выглядывать за пределы своей песочницы. В дельфи было все, необходимое и достаточное, чтобы писать всякого рода опердень в то время. Причем в силу простоты - это еще и стимулировало индивидуальное вкалывание, нахрен нужна какая-то командная разработка, какие-то процессы и прочие атрибуты, если один человек мог спокойно сделать достаточно немалую софтину.
Сишные и С++ либы, опять же, не подключались без извращений типа "завернуть в dll с plain C интерфейсом".

Сколько я не смотрю на другие средства разработки - там обязательно есть какая-то шиза на тему того, что невозможно пользоваться, не вкурив штук пять смежных областей. Тот же дотнет - это просто страшная сборная солянка из XML, веба, рефлекшена с кодогенерацией, хитрожопого ООП, причем некоторые вещами оттуда до сих пор проще переписать чем использовать готовые.
Послушаешь [livejournal.com profile] zabivator и прочих про ocaml - это просто гамон, какие-то сишные компиляторы, какие-то либы, портирование между виндами и линуксами и прочий мрак.
Жаба энтепрайзная тоже страх какой-то, судя по количеству фреймворков, методик взаимодействия с внешним миром и прочего.

Т.е. все другие платформы ориентированы или на работу в команде с разделением труда или на знание множества смежных шизов, что в любом случае не дает окопаться в песочнице и 20 лет самостоятельно пилить одну и ту же опердень.

[identity profile] smalgin.livejournal.com 2010-03-10 04:27 am (UTC)(link)
Верная мысль.

У меня знакомый писал на дельфях с парадоксом. Потом хорошей работы не стало, пришлось перепрофилироваться во мраке и со скрежетом зубовным...

[identity profile] lionet.livejournal.com 2010-03-10 05:35 am (UTC)(link)
В плане программирования под Уиндоус, у меня был переход: Visual Basic ('95) → Delphi ('98) → MSVC++ ('00)

На первый переход я только плевался — экосистема борланда уже тогда ('98) выглядела outdated, и не предоставляла дополнительных фишек по сравнению с VB (всё-таки VB — это родитель RAD и компонетного программирования, для него просто тонна всяких контролов разной степени проработанности было во все времена).

Но на второй переход просто выл от "счастья": тот же самый C/C++, который под юниксом так приятно и логично было (мне) использовать, под Windows давал ощущение феерического болота. ATL! MFC! Программирование вместо решения насущных проблем больше напоминало секс на высоковольтных проводах. Беда только в том, что потом у тебя Стокгольмский синдром, и ты какой-то кайф начинаешь получать от того, что система поддаётся твоим усилиям и даже что-то позволяет делать... В итоге я дошёл до программирования специфических контролов на MSVC++ под тот же VB/VBA, чтобы для логики предметной области использовать нормальную продуктивную среду более высокого уровня.

[identity profile] zamotivator.livejournal.com 2010-03-10 05:44 am (UTC)(link)
Будешь смеяться, но все проблемы что есть у Ocaml'я связаны только с вендой.
* в ней нету bash
* нету стандартного enviroment - /usr/lib, /lib, /usr/include/, /usr/bin, /bin - где это всё, блять?
* как следствие - нету банального configure/make/make install
* как следствие - нету нормального пакетного менеджера.

Именно поэтому под линуксом я enviroment разверну за 5 минут (из пакетом), ну, или за полчаса (соберу все пакеты из сорцов), а под вендой, под этим ёбанным ежом, на который непонятно как залезть, спасает только cygwin.

Тебе понравится

[identity profile] blacklion.livejournal.com 2010-03-10 06:07 am (UTC)(link)
http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/ http://reprog.wordpress.com/2010/03/04/whatever-happened-to-programming-redux-it-may-not-be-as-bad-as-all-that/ Особенно то, что под <rant class=”tangential”> во второй части :)

[identity profile] vansickle.livejournal.com 2010-03-10 06:11 am (UTC)(link)
не в плане полемики, а так, к слову
>* нету стандартного enviroment - /usr/lib, /lib, /usr/include/, /usr/bin, /bin - где это всё, блять?
>* как следствие - нету банального configure/make/make install
http://gnuwin32.sourceforge.net/

[identity profile] zamotivator.livejournal.com 2010-03-10 06:19 am (UTC)(link)
Не, ну я как бэ в курсе - mingw/msys, cygwin, gnuwin32 - альтернативы то на слуху, без них хоть подыхай.

Засеките с секундомером, сколько потребуется времени, что бы получить "такой же" enviroment как в линуксе.
Да пусть не такой же, достаточный для сборки батареек.
Ад и ханука...

[identity profile] zamotivator.livejournal.com 2010-03-10 06:42 am (UTC)(link)
Кстати, в тему "законченного продукта".
Вот линукс и юникс - законченный продукт для разработки, ему сто лет в обед.
Откуда же полезли все эти студии, билдеры, дельфи?
Зачем куча систем сборки если есть make?
Зачем несовместимые компиляторы - для студии свой, для билдера свой?
Зачем куча говна - MFC, ATL - которые поддерживает нормально лишь студия?
Зачем ASP и .NET (конкретно - WPF, и что там было модным до? Window Forms&), с которыми за пределами студии невозможно нормально работать?
И при этом нету СТАНДАРТА ДЕ-ФАКТОР и ДЕ-ЮРО - POSIX (в windows есть POSIX? Ну так соберите мне gcc под вендой без напильника. Соберите мне psi какой-нибудь). Нету (без напильника среды-адаптера - cygwinэа) make. Нету стандартных каталогов для заголовочных файлов и библиотек.
Есть БАРДАК.

Так что ребята - не надо ляля про "Гамон". Гамон у венды с её бардаком, и поддержать кроссплатформенность linux <-> windows, или unix <-> windows в разы сложнее, чем учесть отдельные ньюансы между линуксами, юниксами.
В линуксах и юниксах единственный зоопарк, что имеет место быть - это пакетные менеджеры.
Но есть OpenSUSE build service, который эту проблему нивилирует.
Да и собрать deb пакет (один из самых сложных пакетов среди линуксов!) В РАЗЫ ПРОЩЕ ЧЕМ СОБРАТЬ ИНСТАЛЛЯТОР ПОД ВЕНДОЙ

[identity profile] http://users.livejournal.com/_valerka_/ 2010-03-10 07:15 am (UTC)(link)
а какие проблемы в кроссплатформенности между версиями windows? Ну да, бывают специфические вещи, но если их не использовать, то всё, написанное для 95й винды работает на 7ке. У юниксов разве тоже так? Там вон с гномом и кде разобраться невозможно, что стоит.

[identity profile] zamotivator.livejournal.com 2010-03-10 07:20 am (UTC)(link)
Если забыть, что "WinAPI устарел, и писать нужно на .NET" то windows stable в плане API.
Но POSIX-у лет поболе таки будет.

[identity profile] vp.livejournal.com 2010-03-10 07:29 am (UTC)(link)
затем, что
студия - это делала одна фирма
билдер - это делала другая фирма.
Почему у тебя глаза не оранжевые? Как ты можешь быть без оранжевых глаз?
а как нехер делать - другая архитектура.
Так и тут.
нету стандартного enviroment - /usr/lib, /lib, /usr/include/, /usr/bin, /bin\
нету, потому что другая архитектура, перпендикулярно. И нахер они не нужны в этой архитектуре, потому что мне только решать где размещать мои файлы.
Это уже обсуждалось. Если бы не пакетные менеджеры в никсах = там был бы такой ад, что крышей бы двинулись с первой секунды. Ибо никто никогда не знает что какая софтина ставит, какие вносит зависимости и куда какие файлы пихает.
В винде это отдано на откуп либо инсталятору, который суть аналог пакетного менеджера, либо если stand-alone софт (аналога в никсах нет), тогда мы работаем только в контексте текущей относительной папке, а в систему не гадим вообще.
А то, что проблемы со сборкой окамлов под виндой - это проблемы того, что тебе сейчас захотят сделать пересадку негретянского уха. Вместо того, чтоб разработать нормально продукт под архитектуру целевой системы начинают снова и снова боб с горохом, какое-то портирование, эмуляция никсовых папок и т.п.
Нахер-нахер такое.

[identity profile] aamonster.livejournal.com 2010-03-10 07:36 am (UTC)(link)
Это проблема не винды, а окамловодов, которые за пределы своего болота выглядывать не хотят.

Впрочем, тему простоты разворачивания под никсами учту... Всё равно уже завелось желание держать на машине 2 системы параллельно (вторую в виртуальной машине)

[identity profile] aamonster.livejournal.com 2010-03-10 07:38 am (UTC)(link)
"Не хотят" - в смысле, никто не позаботился собрать нормальный дистрибутив под винду, как это сделано для многих других приложений. К примеру, тот же trac я под виндой развернул быстрее, чем под freebsd.

[identity profile] kong-en-ge.livejournal.com 2010-03-10 07:58 am (UTC)(link)
Ребе, еще ведь не пятница? :)

[identity profile] zamotivator.livejournal.com 2010-03-10 08:26 am (UTC)(link)
нету, потому что другая архитектура, перпендикулярно. И нахер они не нужны в этой архитектуре, потому что мне только решать где размещать мои файлы.
Ага, то-то я смотрю заебёшься собирать программы под вендой =)

Ибо никто никогда не знает что какая софтина ставит, какие вносит зависимости и куда какие файлы пихает.
Да ладно! Для того пути и стандартизированы, чтобы не плодить сущности без меры.

В винде это отдано на откуп либо инсталятору, который суть аналог пакетного менеджера
Пиздато делать пакетный менеджер в каждой новой программе, безусловно!

либо если stand-alone софт (аналога в никсах нет), тогда мы работаем только в контексте текущей относительной папке, а в систему не гадим вообще.
Ставь всё в /opt. С точностью до glibc работать будет.

А то, что проблемы со сборкой окамлов под виндой - это проблемы того, что тебе сейчас захотят сделать пересадку негретянского уха. Вместо того, чтоб разработать нормально продукт под архитектуру целевой системы начинают снова и снова боб с горохом, какое-то портирование, эмуляция никсовых папок и т.п.
Нахер-нахер такое.

Скажите, а кто оплатит портирование приложений с модной сейчас enterprise на модную через пару лет?
Вот был avalon - где он сейчас?
XAML та же участь ждёт =)

[identity profile] zamotivator.livejournal.com 2010-03-10 08:27 am (UTC)(link)
Это проблема не винды, а окамловодов, которые за пределы своего болота выглядывать не хотят.
Ну, "болота" это вы загнули.
А вот как и куда ставить зависимости в системе, где зависимости отсутствуют by design - вопрос без ответа.
Да, какой-то компромисс найти можно.

[identity profile] zamotivator.livejournal.com 2010-03-10 08:28 am (UTC)(link)
С системой сборки что делать?

[identity profile] metaclass.livejournal.com 2010-03-10 08:35 am (UTC)(link)
Так с виндой вообще поднимать средства разработки это ад. Как раз из-за отсутствия пакетного менеджера.

[identity profile] aamonster.livejournal.com 2010-03-10 08:36 am (UTC)(link)
Выбрать удобную и поставить, а что?
Но вообще-то наиболее удобный формат дистрибутива под винду - это zip-архив, который распаковывается и работает.

[identity profile] metaclass.livejournal.com 2010-03-10 08:38 am (UTC)(link)
Хаскель за своими зависимостями следит сам.

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

Наиболее оптимально - это архив и запуск с автодетектом корневого каталога - проги все свои ресурсы относительно него ищут и поэтому не требуют инсталляции, ставятся копированием.

[identity profile] http://users.livejournal.com/_valerka_/ 2010-03-10 08:44 am (UTC)(link)
ну если нужно, то конечно пожалуйста. Но можно и к тем же делфям вернуться, если условия позволяют.

[identity profile] metaclass.livejournal.com 2010-03-10 08:47 am (UTC)(link)
avalon==wpf - использует xaml в качестве языка разметки. Ты хотя бы изучил матчасть, прежде чем спорить :)

Ты пойми, что портировать какую-нибудь опердень в случае когда микрософт совместимость поддерживает от 95 винды до семерки, при том, что обычно такой софт во избежание проблем делается по максимуму независящим от системы - это гораздо проще, чем разгребать срач линуксовых папок, пакетных менеджеров, разных версий glibc и gcc.

Под виндой программы собираются спокойно, если автор хотя бы немного уделил этому внимания. Но вместо этого начинаются пляски с цигвинами, мингвами и прочей чужеродной хренью.

[identity profile] metaclass.livejournal.com 2010-03-10 08:49 am (UTC)(link)
Сделать в том виде, в котором это принято под виндой, очевидно.
Ах, да, я ж забыл что там даже под линуксом систем сборки не одна и даже не две, а стопка, потому что каждый считает себя умнее других.

[identity profile] vp.livejournal.com 2010-03-10 08:51 am (UTC)(link)
Этот "компромисс" как обычно - в стиле адских граблей. А давай поставим цыгвин, а под ним еще цыгвин, а под ним еще цыгвин. Речь о том, что продукт должен быть разработан вновь под целевую платформу, а не портирован с минимальными движениями анальным отверстием.

[identity profile] vp.livejournal.com 2010-03-10 08:57 am (UTC)(link)
Ага, то-то я смотрю заебёшься собирать программы под вендой

Ты меня с кем-то путаешь. У меня нет времени на вуду, потому с инструментами, которые работают через жопу стараюсь не связываться принципиально :)

Для того пути и стандартизированы, чтобы не плодить сущности без меры.

Эта стандартизация - из другой песочницы. Которая от рынка десктопов занимает, не забывай, 1%.

Вот был avalon - где он сейчас?

Это было имя бета-версии WPF/Silverlight/XAML, которые в продакшыне назвали по-другому :)


[identity profile] w00dy.livejournal.com 2010-03-10 09:13 am (UTC)(link)
msi всяко удобнее. Его можно через AD пропихивать всем кому нужно и не нужно, что очень важно в корпоративе.

Page 1 of 10