Вы не в церкви, вас не обманут
Dec. 27th, 2018 11:25 pm![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)

Священник Андрей Крашенинников удивил прихожан необычными просьбами, как только прибыл на служение в город Болотное Новосибирской области. Он попросил денег, чтобы перевести туда свою семью, затем – детскую кроватку, коляску, холодильник, плиту и, наконец, – автомобиль и курсы вождения. Поведение священнослужителя осудили как прихожане, так и епархия. В епархии пообещали провести дисциплинарную проверку.
https://echo.msk.ru/blog/statia_iz_regiona/2341353-echo/
no subject
Date: 2018-12-28 01:56 pm (UTC)В случае с Python3 vs Python2
гнидаГвидо на пустом месте поломал обратную совместимость, же ещё и тянет эти сопли теперь больше чем декаду. Для полного счастья, стоило бы ещё заебенить Python4, который вообще ни с чем не был бы совместим. Спросите у Ларри Волла - он знает, как. :-)no subject
Date: 2018-12-28 02:00 pm (UTC)Ларри -- это про Perl 6? Знаете, если выпускать новую версию языка раз в четверть века, то можно и ломануть совместимость:)
Я вот совсем не уверен что какой-нить код в духе K&R C 1972 года соберется современным gcc или clang например.
no subject
Date: 2018-12-28 02:16 pm (UTC)У нас, видимо, разное отношение к ЯП. Для меня критерием успеха языка является широкое внедрение в продакшн (подчёркнуто мной - имеется в виду не на уровне мамкиного программиста, а на уровне отдела компании). Если писать в стол, то можно и раз в 25 лет, но тогда язык будет интересен только паре десятков
фриковэнтузиастов. А, по мне, язык должен динамично развиваться - и, непременно, крутиться в продакшн.no subject
Date: 2018-12-28 02:45 pm (UTC)Ну вот триграфы вроде бы выпилили из последнего стандарта.
А еще в K&R можно было не указывать тип (он был int по умолчанию), а еще сигнатура функции указывалась немного иначе (а параметры могли не указываться вовсе).
Было ключевое слово auto (для одноименного storage duration, к плюсовому автовыводу отношения не имеет) итд.
Я не уверен что всё это работает в современных компиляторах, хотя может быть большинству из них можно сказать "std=[что-нить]"
>Для меня критерием успеха языка является широкое внедрение в продакшн
ну, продакшен это понятие относительное.
Haskell менее внедрен в продакшен чем PHP, но качество этого продакшена сильно разное;)
> язык должен динамично развиваться - и, непременно, крутиться в продакшн.
Мне кажется что тут или шашчеки, или ехать:
Если ты динамично развиваешься (как сейчас С++ или C#) то тебе очень трудно сохранять обратную совместимость не превращаясь в помойку в которой существует 100500 способов сделать одно и тоже.
Если ты ее не всегда соблюдаешь (как python) то в продакшене у тебя версии 15-ти летней давности.
Если ты тупо не развиваешься (как сделала джава между версиями 6 и 8 например или Perl 5) то ты гниешь и с тебя все смеются потому что кругом уже монады и вывод типов (имеется ввиду мейнстрим конечно, в функицональщине это все было 40 лет назад) а у тебя 97-й год и бойлерплейт.
Красивого решения нет.
no subject
Date: 2018-12-29 04:21 pm (UTC)Тут согласен. Правда, не знаю, где они когда либо вообще использовались. К тому времени совсем уж кастрированных наборов символов и не осталось.
А еще в K&R можно было не указывать тип (он был int по умолчанию), а еще сигнатура функции указывалась немного иначе (а параметры могли не указываться вовсе).
Было ключевое слово auto (для одноименного storage duration, к плюсовому автовыводу отношения не имеет) итд.
Эти, вроде, работают в K&R mode - вернусь домой, проверю.
Haskell менее внедрен в продакшен чем PHP, но качество этого продакшена сильно разное;)
Ну, так логическое следование нерефлексивно: не всё, что крутится в продакшене на реал-ных задачах априори хорошо. :-)
Хаскель вполне себе удовлетворяет вышеприведённому критерию: крутится в продакшене на вполне себе критичных задачах. Я, правда, больше в теме с OCaml: в Блумберге на нём весь DLIB написан, да и про Jane Street все знают.
Хаскель, кстати, вполне подходит и как контраргумент: они там несколько раз радикально ломали совместимость, если мне не изменяет память :-)
Если ты динамично развиваешься (как сейчас С++ или C#) то тебе очень трудно сохранять обратную совместимость не превращаясь в помойку в которой существует 100500 способов сделать одно и тоже.
Если ты ее не всегда соблюдаешь (как python) то в продакшене у тебя версии 15-ти летней давности.
Ну, если всё чёрное/белое, то да. Но, с другой стороны, есть 100500 способов не превращать язык в помойку, сохраняя совместимость. А С++ совсем не аргумент - он изначально был херово задизайнен ИМХО и дисциплина развития языка там по принципу "Тэкс, какой токен мы ещё не использовали?! Вот его и воткнём!" Начиная с С++03, конечно, получше стало.
no subject
Date: 2018-12-30 08:57 pm (UTC)ну всё таки они есть же:)
>>вернусь домой, проверю.
ну как?:)
Я про
int foo(a, p) //тут только имена
int a; //тут типы
char *p; //тут типы
{
return 0;
}
>>Но, с другой стороны, есть 100500 способов не превращать язык в помойку, сохраняя совместимость.
А можно примеров из мейнстрима?:)
>> Я, правда, больше в теме с OCaml
Советую поиграться с Elm, кстати:)
no subject
Date: 2019-01-02 04:07 pm (UTC)$ cat -n kr.c
1 int foo(a, p) //тут только имена
2 int a; //тут типы
3 char *p; //тут типы
4 { return 0; }
$
$ gcc --version
gcc (Debian 7.3.0-5) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
$ gcc -c kr.c
$