Мозголомающие средства разработки.
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 11:57 am (UTC)А make уже поддерживает имена файлов с пробелами?
no subject
Date: 2010-03-10 12:11 pm (UTC)Вот потому и не поддерживается - никому не нужно такие извращение, My Cool Name.c ага, щас.
no subject
Date: 2010-03-10 12:18 pm (UTC)Хотя make можно использовать не только для сборки.
no subject
Date: 2010-03-10 12:35 pm (UTC)no subject
Date: 2010-03-10 12:38 pm (UTC)no subject
Date: 2010-03-10 12:48 pm (UTC)no subject
Date: 2010-03-10 12:55 pm (UTC)no subject
Date: 2010-03-10 12:58 pm (UTC)no subject
Date: 2010-03-10 01:02 pm (UTC)no subject
Date: 2010-03-13 09:04 am (UTC)no subject
Date: 2010-03-10 02:51 pm (UTC)Я, например, пытался применить его для автоматического деплоймента отчетов на MS Reporting Service.
Или отчетам тоже прикажете вместо "Продажи за квартал.rdl" давать нечитаемыеимена? К счастью есть более вменяемые системы сборки, scons, например. А маке давно в утиль пора сдать и не вспоминать о нем всуе.
Тем более не преподносить его наличие как критерий развитой системы.
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
Date: 2010-03-10 02:43 pm (UTC)Попробуйте, на досуге, пропустить такие имена через цепочку $(shell), $(foreach), $(filter) и прочих полезных макросов и получить вменяемый результат. Если получится - научите.
no subject
Date: 2010-03-10 03:27 pm (UTC)$ cat Makefile
A1 = a\ file\ with\ spaces yet\ another\ file\ with\ spaces
A2 = $(subst /,\ ,$(foreach filename,$(subst \ ,/,$(A1)),$(filename).txt))
all: $(A2)
$(A2):
echo test > "$@"
no subject
Date: 2010-03-10 11:39 pm (UTC)Продемонстрируйте напоследок, как вам $(shell) начальные бэкслешики расставит?
no subject
Date: 2010-03-11 07:10 am (UTC)A1 = $(shell ls *spaces | sed 's| |\\ |g')
A2 = $(subst /,\ ,$(foreach filename,$(subst \ ,/,$(A1)),$(filename).txt))
all: $(A2)
$(A2):
echo test > "$@"
$ touch 'a file with spaces' 'yet another file with spaces'
$ ls -l
total 4
-rw-r--r-- 1 kas kas 0 2010-03-11 09:08 a file with spaces
-rw-r--r-- 1 kas kas 156 2010-03-11 09:06 Makefile
-rw-r--r-- 1 kas kas 0 2010-03-11 09:08 yet another file with spaces
$ make
echo test > "a file with spaces.txt"
echo test > "yet another file with spaces.txt"
$ ls -l
total 12
-rw-r--r-- 1 kas kas 0 2010-03-11 09:08 a file with spaces
-rw-r--r-- 1 kas kas 5 2010-03-11 09:08 a file with spaces.txt
-rw-r--r-- 1 kas kas 156 2010-03-11 09:06 Makefile
-rw-r--r-- 1 kas kas 0 2010-03-11 09:08 yet another file with spaces
-rw-r--r-- 1 kas kas 5 2010-03-11 09:08 yet another file with spaces.txt
no subject
Date: 2010-03-11 09:57 am (UTC)no subject
Date: 2010-03-11 11:00 am (UTC)$ cat Makefile
UNIQUE="an_unique_string_which_never_meets_in_filenames"
A1 = $(shell ls dir/*spaces | sed 's| |\\ |g')
A2 = $(subst $(UNIQUE),\ ,$(foreach filename,$(subst \ ,$(UNIQUE),$(A1)),$(filename).txt))
all: $(A2)
$(A2):
echo test > "$@"
UNIQUE выбрать по вкусу.
no subject
Date: 2010-03-11 11:18 am (UTC)По сравнению с этим код на хаскеле или F# выглядит как пособие для начинающих программистов.
no subject
Date: 2010-03-11 02:28 pm (UTC)no subject
Date: 2010-03-11 09:54 pm (UTC)no subject
Date: 2010-03-11 11:49 am (UTC)