Мозголомающие средства разработки.
Mar. 9th, 2010 10:43 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
После недельного писания на F# появилась идея, отчего использование дельфи так часто вырывает мозг программистам.
Суть в том, что дельфи это законченный продукт с замкнутым комьюнити. Собственно говоря, для работы на нем ничего кроме самого дельфи и нескольких сторонних компонентов (которые никуда больше и не пригодны) не нужно. Соответственно, у программистов тупо не было стимула выглядывать за пределы своей песочницы. В дельфи было все, необходимое и достаточное, чтобы писать всякого рода опердень в то время. Причем в силу простоты - это еще и стимулировало индивидуальное вкалывание, нахрен нужна какая-то командная разработка, какие-то процессы и прочие атрибуты, если один человек мог спокойно сделать достаточно немалую софтину.
Сишные и С++ либы, опять же, не подключались без извращений типа "завернуть в dll с plain C интерфейсом".
Сколько я не смотрю на другие средства разработки - там обязательно есть какая-то шиза на тему того, что невозможно пользоваться, не вкурив штук пять смежных областей. Тот же дотнет - это просто страшная сборная солянка из XML, веба, рефлекшена с кодогенерацией, хитрожопого ООП, причем некоторые вещами оттуда до сих пор проще переписать чем использовать готовые.
Послушаешь
zabivator и прочих про ocaml - это просто гамон, какие-то сишные компиляторы, какие-то либы, портирование между виндами и линуксами и прочий мрак.
Жаба энтепрайзная тоже страх какой-то, судя по количеству фреймворков, методик взаимодействия с внешним миром и прочего.
Т.е. все другие платформы ориентированы или на работу в команде с разделением труда или на знание множества смежных шизов, что в любом случае не дает окопаться в песочнице и 20 лет самостоятельно пилить одну и ту же опердень.
Суть в том, что дельфи это законченный продукт с замкнутым комьюнити. Собственно говоря, для работы на нем ничего кроме самого дельфи и нескольких сторонних компонентов (которые никуда больше и не пригодны) не нужно. Соответственно, у программистов тупо не было стимула выглядывать за пределы своей песочницы. В дельфи было все, необходимое и достаточное, чтобы писать всякого рода опердень в то время. Причем в силу простоты - это еще и стимулировало индивидуальное вкалывание, нахрен нужна какая-то командная разработка, какие-то процессы и прочие атрибуты, если один человек мог спокойно сделать достаточно немалую софтину.
Сишные и С++ либы, опять же, не подключались без извращений типа "завернуть в dll с plain C интерфейсом".
Сколько я не смотрю на другие средства разработки - там обязательно есть какая-то шиза на тему того, что невозможно пользоваться, не вкурив штук пять смежных областей. Тот же дотнет - это просто страшная сборная солянка из XML, веба, рефлекшена с кодогенерацией, хитрожопого ООП, причем некоторые вещами оттуда до сих пор проще переписать чем использовать готовые.
Послушаешь
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Жаба энтепрайзная тоже страх какой-то, судя по количеству фреймворков, методик взаимодействия с внешним миром и прочего.
Т.е. все другие платформы ориентированы или на работу в команде с разделением труда или на знание множества смежных шизов, что в любом случае не дает окопаться в песочнице и 20 лет самостоятельно пилить одну и ту же опердень.
no subject
Date: 2010-03-10 06:42 am (UTC)Вот линукс и юникс - законченный продукт для разработки, ему сто лет в обед.
Откуда же полезли все эти студии, билдеры, дельфи?
Зачем куча систем сборки если есть make?
Зачем несовместимые компиляторы - для студии свой, для билдера свой?
Зачем куча говна - MFC, ATL - которые поддерживает нормально лишь студия?
Зачем ASP и .NET (конкретно - WPF, и что там было модным до? Window Forms&), с которыми за пределами студии невозможно нормально работать?
И при этом нету СТАНДАРТА ДЕ-ФАКТОР и ДЕ-ЮРО - POSIX (в windows есть POSIX? Ну так соберите мне gcc под вендой без напильника. Соберите мне psi какой-нибудь). Нету (без напильника среды-адаптера - cygwinэа) make. Нету стандартных каталогов для заголовочных файлов и библиотек.
Есть БАРДАК.
Так что ребята - не надо ляля про "Гамон". Гамон у венды с её бардаком, и поддержать кроссплатформенность linux <-> windows, или unix <-> windows в разы сложнее, чем учесть отдельные ньюансы между линуксами, юниксами.
В линуксах и юниксах единственный зоопарк, что имеет место быть - это пакетные менеджеры.
Но есть OpenSUSE build service, который эту проблему нивилирует.
Да и собрать deb пакет (один из самых сложных пакетов среди линуксов!) В РАЗЫ ПРОЩЕ ЧЕМ СОБРАТЬ ИНСТАЛЛЯТОР ПОД ВЕНДОЙ
no subject
Date: 2010-03-10 07:15 am (UTC)no subject
Date: 2010-03-10 07:20 am (UTC)Но POSIX-у лет поболе таки будет.
no subject
Date: 2010-03-10 08:44 am (UTC)no subject
Date: 2010-03-10 09:17 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2010-03-10 12:38 pm (UTC)no subject
Date: 2010-03-10 07:29 am (UTC)студия - это делала одна фирма
билдер - это делала другая фирма.
Почему у тебя глаза не оранжевые? Как ты можешь быть без оранжевых глаз?
а как нехер делать - другая архитектура.
Так и тут.
нету стандартного enviroment - /usr/lib, /lib, /usr/include/, /usr/bin, /bin\
нету, потому что другая архитектура, перпендикулярно. И нахер они не нужны в этой архитектуре, потому что мне только решать где размещать мои файлы.
Это уже обсуждалось. Если бы не пакетные менеджеры в никсах = там был бы такой ад, что крышей бы двинулись с первой секунды. Ибо никто никогда не знает что какая софтина ставит, какие вносит зависимости и куда какие файлы пихает.
В винде это отдано на откуп либо инсталятору, который суть аналог пакетного менеджера, либо если stand-alone софт (аналога в никсах нет), тогда мы работаем только в контексте текущей относительной папке, а в систему не гадим вообще.
А то, что проблемы со сборкой окамлов под виндой - это проблемы того, что тебе сейчас захотят сделать пересадку негретянского уха. Вместо того, чтоб разработать нормально продукт под архитектуру целевой системы начинают снова и снова боб с горохом, какое-то портирование, эмуляция никсовых папок и т.п.
Нахер-нахер такое.
no subject
Date: 2010-03-10 07:58 am (UTC)no subject
Date: 2010-03-10 08:26 am (UTC)Ага, то-то я смотрю заебёшься собирать программы под вендой =)
Да ладно! Для того пути и стандартизированы, чтобы не плодить сущности без меры.
Пиздато делать пакетный менеджер в каждой новой программе, безусловно!
Ставь всё в /opt. С точностью до glibc работать будет.
Скажите, а кто оплатит портирование приложений с модной сейчас enterprise на модную через пару лет?
Вот был avalon - где он сейчас?
XAML та же участь ждёт =)
no subject
Date: 2010-03-10 08:47 am (UTC)Ты пойми, что портировать какую-нибудь опердень в случае когда микрософт совместимость поддерживает от 95 винды до семерки, при том, что обычно такой софт во избежание проблем делается по максимуму независящим от системы - это гораздо проще, чем разгребать срач линуксовых папок, пакетных менеджеров, разных версий glibc и gcc.
Под виндой программы собираются спокойно, если автор хотя бы немного уделил этому внимания. Но вместо этого начинаются пляски с цигвинами, мингвами и прочей чужеродной хренью.
no subject
Date: 2010-03-10 08:57 am (UTC)Ты меня с кем-то путаешь. У меня нет времени на вуду, потому с инструментами, которые работают через жопу стараюсь не связываться принципиально :)
Эта стандартизация - из другой песочницы. Которая от рынка десктопов занимает, не забывай, 1%.
Это было имя бета-версии WPF/Silverlight/XAML, которые в продакшыне назвали по-другому :)
no subject
Date: 2010-03-10 11:10 am (UTC)Сейчас ковыряем энтерпрайз. Являет собой распределенную файловую систему.
Сборка сервера метаданных представляет собой готовые бинарники для Linux_x64.
Так вот.. в сборке для исключения вуду(по задумке создателей хорошо, но в итоге вылазит хрени столько, что мама не горюй) собранные перл,апач, скрипты на переле, etc. Потому что указана работоспособность всего этого барахла только на RH И SLES, Только на определенных ядрах и версиях.
Млять..вы где видели чтобы для винды софт просил номер сборки ядра ????
Ебж вашу мать то....
no subject
Date: 2010-03-10 12:00 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:+1
From:no subject
Date: 2010-03-10 09:19 am (UTC)Винда была 3.11. Был дос. Была куча разнообразных вуду компиляторов разнообразных вуду языков.
Т.е. монолитный продукт типа дельфей, позволяющий в одной среде сделать все на тот момент был натурально шагом вперед.
Т.е. "полезло", как ты говоришь, это все из очевидной потребности работать с нормальными инструментами вместо вудуистских. Другое дело, что в итоге вудуистские победили, т.к. микрософт одно вуду заменил другим, а борланд, сделав нормальный инструмент, не осилила навязать его всем и не интегрировала его во все что только можно.
no subject
Date: 2010-03-10 10:18 am (UTC)no subject
Date: 2010-03-10 10:30 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-10 01:47 pm (UTC)Я в 96 написал первую версию ReGet. Это была моя первая программа на С++. Все заняло месяца два..
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-10 11:30 am (UTC)Линукс далеко не закончен.
> Зачем куча систем сборки если есть make?
Если есть make, то почему существует autoconf?
> Зачем несовместимые компиляторы - для студии свой, для билдера свой?
Дык и под линуксами компиляторы Си совместимы плоховато.
> Зачем куча говна - MFC, ATL - которые поддерживает нормально лишь студия?
"Зачем куча говна -- KDE, Gnome -- которые поддерживает нормально лишь под Линуксом?"
Демагогия.
У Маков вообще свой язык программирования ОбжективСи, своё всё, и ничего. На Юниксах традиции партизанщины намного сильнее -- сотни шеллов, тысячи языков, даже утилиты отличаются.
> Зачем ASP и .NET (конкретно - WPF, и что там было модным до? Window Forms&), с которыми за пределами студии невозможно нормально работать?
Вот уж пук в лужу. Как раз с .Net лучший инструмент ReShaper.
> И при этом нету СТАНДАРТА ДЕ-ФАКТОР и ДЕ-ЮРО - POSIX ... Нету стандартных каталогов для заголовочных файлов и библиотек.
Всё это конечно интересная теория, но что-то я очень много кода видел вида
#ifndef FreeBSD
#ifdef _AIX
#include
Линукс далеко не закончен.
> Зачем куча систем сборки если есть make?
Если есть make, то почему существует autoconf?
> Зачем несовместимые компиляторы - для студии свой, для билдера свой?
Дык и под линуксами компиляторы Си совместимы плоховато.
> Зачем куча говна - MFC, ATL - которые поддерживает нормально лишь студия?
"Зачем куча говна -- KDE, Gnome -- которые поддерживает нормально лишь под Линуксом?"
Демагогия.
У Маков вообще свой язык программирования ОбжективСи, своё всё, и ничего. На Юниксах традиции партизанщины намного сильнее -- сотни шеллов, тысячи языков, даже утилиты отличаются.
> Зачем ASP и .NET (конкретно - WPF, и что там было модным до? Window Forms&), с которыми за пределами студии невозможно нормально работать?
Вот уж пук в лужу. Как раз с .Net лучший инструмент ReShaper.
> И при этом нету СТАНДАРТА ДЕ-ФАКТОР и ДЕ-ЮРО - POSIX ... Нету стандартных каталогов для заголовочных файлов и библиотек.
Всё это конечно интересная теория, но что-то я очень много кода видел вида
#ifndef FreeBSD
#ifdef _AIX
#include <inet.h>
#ifdef LINUX
#include <net/net.h>
#endif
Видимо это "стандарт".
Собственно почитайте классические книги по современному Юникс-программированию, Робачевского скажем, там рассказывается, что даже у банального open()/write() разные ERRNO и поведение под разными системами. "Стандарт POSIX." Переносим, ага.
> Ну так соберите мне gcc под вендой без напильника.
Интересно, как же это cygwin умудряются его собирать. Видимо, с напильником.
> Да и собрать deb пакет (один из самых сложных пакетов среди линуксов!) В РАЗЫ ПРОЩЕ ЧЕМ СОБРАТЬ ИНСТАЛЛЯТОР ПОД ВЕНДОЙ
Ну едрить твою в кочерыжку бабушку, это ж сравнить негров с мотоциклами!
Вообще-то инсталляторов "под Виндой" тыщи, как и "под Юниксом".
Ознакомьтесь: http://en.wikipedia.org/wiki/List_of_installation_software -- особенно с секцией "кроссплатформенные".
Если некоторые из тысяч лично у Вас вызвали такие вот ощущения, это не доказывает универсальности опыта. Наивно Вы считаете, что писать и отлаживать скажем скрипты с chmod муфиле+х как-то легче, чем бейсик с аналогичными командами.
А скажем, типовой инсталлер под Виндой для Дельфи был InstallShield Express, там вообще не было окна скриптования.
Так что
Да и собрать инсталлятор под виндой В РАЗЫ ПРОЩЕ ЧЕМ СОБРАТЬ DEB ПАКЕТ!!!111 пыщпыщ!
no subject
Date: 2010-03-10 12:12 pm (UTC)Вот инструкция, всё просто и понятно.
http://www.debian.org/doc/maint-guide/
Жду встречной ссылки на описание процесса сборки инсталлятора
С остальным значит согласны.
From:Re: С остальным значит согласны.
From:no subject
Date: 2010-03-10 12:16 pm (UTC)Примеры можно? Желательно, сравнимые с MFC - где vptr смещен на 4 байта относительно начала класса.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-10 12:18 pm (UTC)Как ни странно, Робачевский писал про другое.
Он писал, что ERRNO не ограничивается СТАНДАРТНЫМИ ошибками, и под unix системами могут существовать РАСШИРЕНИЯ (а не замещения!) errno.
no subject
Date: 2010-03-12 03:04 pm (UTC)Исключительно как доноры менеджера keyboard layout.
>>Интересно, как же это cygwin умудряются его собирать. Видимо, с напильником.
в cygwin он доработан напильником под цигвиновские правила жизни + autoconf. win32-версия, емнип, славна тараканами. Ну и отсутствие /usr/lib сильно сказывается
no subject
Date: 2010-03-10 11:57 am (UTC)А make уже поддерживает имена файлов с пробелами?
no subject
Date: 2010-03-10 12:11 pm (UTC)Вот потому и не поддерживается - никому не нужно такие извращение, My Cool Name.c ага, щас.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-03-10 12:17 pm (UTC)$ cat Makefile
all: a\ file\ with\ spaces
a\ file\ with\ spaces:
echo test > "$@"
$ make
echo test > "a file with spaces"
$ cat "a file with spaces"
test
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: