PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.04.12 15:00
Оценка: 118 (9) +1
Свежая обзорная статья.
The God is real, unless declared integer.
Re: PHP: a fractal of bad design
От: SV.  
Дата: 11.04.12 22:10
Оценка: 1 (1) -5 :))
Здравствуйте, netch80, Вы писали:

N>Свежая обзорная статья.


A language must be predictable...
A language must be consistent...
A language must be concise...
A language must be reliable...
A language must be debuggable...


Хотите правильный ответ? Я его давно пропагандирую: A language must be C-like. Это как латинско-греческие корни европейских языков и какой-нибудь санскрит. Если язык состоит из неизвестных закорючек, как к нему вообще подступиться? Он может быть прост и удобен, но это никто не узнает, кроме задротов-индологов. Так и PHP. Это кусок гавна, а не язык, всерьез говоря, но из всей компании PHP/Perl/Python/Ruby он самый си-подобный. Когда вам нужен комментарий, не надо писать #, когда вам нужен набор условий, не надо писать elsif (Perl). Для оформления кодоблока можно воспользоваться привычными фигурными скобками (Python). И отдельные команды разделяются ; (Ruby). Все эти привычные мелочи значат в нашем несовершенном мире гораздо больше, чем предсказуемость, консистентность и что там дальше по списку. Кто этого не понял, тот чудак на букву м.

Тот чудак, который цитируется вами, написал по этому поводу следующее: "Just write C! Here, there’s even a CGI library for it". Так вот, пусть он сам пишет на C/CGI, а потом имеется с деплоем под разные платформы и make-файлами. Нормальный вебовский нуб тоже человек и хочет свои первые скрипты пописать и поотлаживать в веб-серверовском интерпретаторе. Он идет и смотрит, что там есть с максимально привычным синтаксисом, но со всеми прелестями вебовских скриптов: сборкой мусора, отсутствием компиляции и так далее. Предсказуемо, что он находит PHP.

Совершенно справедливо автор замечает: PHP was originally designed explicitly for non-programmers (and, reading between the lines, non-programs). Что ж, когда нуб перестает быть нубом и начинает писать большие и серьезные программы, где подводные грабли, так красочно описанные вашим автором, начинают причинять серьезные неудобства, он переключается на (сюрприз!) C#/ASP.Net, в названии которого есть заветная буква, Java, про которую сами ее создатели говорили, что она создавалась под девизом "Выкинуть мусор из C++") или, в конце концов, тот самый C/CGI, если надеется достичь сверхвысокой оптимизированности.

Эта моя теория замечательно подкрепляется тем фактом, что (по версии TIOBE) 6 самых популярных языков (в том числе и PHP!) обладают ярко выраженными си-подобием. Причем, суммарная их доля составляет (примерно) две трети.

Если человек так не любит PHP, он мог бы создать другой си-подобный язык, лишенный недостатков PHP. Какой-нибудь Пи-плюс-плюс, чтобы в формулу лампы укладываться. Денег, правда, на этом не заработать.
Re[7]: PHP: a fractal of bad design
От: SV.  
Дата: 15.04.12 18:30
Оценка: 6 (1) +2 -1 :)
Здравствуйте, Mamut, Вы писали:

M>Выбор синтаксиса часто продиктован банальными маркетинговыми воображениями. С популярен? Делаем следующий язык похожим на него (С++).


Много я в своей жизни читал чуши, но по сравнению с этой чушью, любая другая просто толковый словарь.

http://rsdn.ru/res/book/cpp/cppdesign.xml
Автор(ы): Бьерн Страуструп

В книге, написанной создателем языка C++ Бьерном Страуструпом, представлено описание
процесса проектирования и разработки языка программирования C++. Здесь изложены цели,
принципы и практические ограничения, наложившие отпечаток на структуру и облик C++,
обсужден дизайн недавно добавленных в язык средств: шаблонов, исключений, идентификации
типа во время исполнения и пространств имен. Автор анализирует решения, принятые в ходе
работы над языком, и демонстрирует, как правильно применять реальный
объектно-ориентированный язык программирования.




Читайте и не придумывайте. Создатель языка близко не имел никаких маркетинговых "воображений". Он вообще делал язык исключительно для себя. Все это подробно описано. Вначале он писал докторскую диссертацию, в ходе которой ему пришлось запрограммировать некий симулятор работы программ в распределенной системе. Симулятор писался на Симуле и Симула чуть не погубила проект: в силу "фундаментальных и неустранимых недостатков" симулятор не мог эффективно работать и давать полезные данные. Одним из этих недостатков было автоматическое управление памятью (80+% времени занимала сборка мусора). Чтобы не бросать работу, Страуструп переписал свой симулятор на BCPL, который оказался другой крайностью: он был низкоуровневым даже по сравнению с C. Из этих мытарств был сделан вывод, что не имея адекватного инструмента — то есть, языка — за задачи браться нельзя.

Далее — и этого в условно-бесплатном куске на RSDN уже нет — он в R&D-отделе Bell Labs работал над двумя задачами: писал анализатор сетевого трафика и разбивал униховое ядро на модули. Памятуя о полученном уроке, он начал решение свой частной задачи с того, что создал язык и библиотеку, сочетающие объектность Симулы и скорость Си. Так родился всем известный C++.

В те времена о маркетинге никто не думал. По одной простой причине: маркета не было и предприниматели этой темой не интересовались. Языки рождались либо в инженерных, либо в академических кругах, либо в пересечении этих кругов, как у Страуструпа. Пройдет еще несколько лет, и начнутся первые войны коммерческих компиляторов (не языков). До маркета (и, соответственно, маркетинга) языков еще лет 15.

История та же, что с мегапопулярностью Визуального Бейсика, который доказывает мою неправоту — безответственные утверждения, основанные на незнании фактов, из которых выводится все, что душе угодно.
Re[5]: PHP: a fractal of bad design
От: SV.  
Дата: 13.04.12 10:58
Оценка: 6 (3)
Здравствуйте, Sinclair, Вы писали:

SV.>>Имело бы смысл спросить, как так получилось, что "нечитабельное нагромождение скобочек" стало так популярно (изначально). То есть, популярность PHP можно отнести на си-подобие, а сам Си с чего вдруг стал так популярен? Если вот так поставить вопрос, я могу с облегчением ответить: не знаю. Наверное, есть в нем что-то такое, чего вы не видите за "нечитабельным нагромождением скобочек".

S>Я вам помогу. На самом C был написан Unix. Именно это, а также его близость к архитектуре процессоров DEC, обеспечило ему популярность среди системных программистов. Не нужно думать, что там какой-то особенно тёплый ламповый синтаксис.

Во-первых, не написан, а переписан. В 1972 году. До этого он был написан на асме. Это не возражение, а уточнение.

Во-вторых, мейнфреймы и миникомпьютеры были отдельным доменом. Микромпьютеры и микрософт для них появились позднее, в 80-х. Начинали они, насколько можно судить, с чистого листа. Apple Lisa OS была написана на Паскакале и асме. Последовавшая затем MacOS унаследовала паскакальский codebase. Мне удалось найти такие цифры: встроенное в MacOS приложение MacPaint содержало 5804 строки на Паскале и 2738 строк ассемблера 68000 (см. http://en.wikipedia.org/wiki/Macpaint). По более системным кускам MacOS мне конкретных цифр найти не удалось, но все в один голос говорят, что оси и остальной софт в Apple в те дни писали на Паскале и асме.

Теперь, что касается производителей микрософта для микрокомпьютеров. Есть такой Тэнди Трувер, который проработал в MS 28 лет и (первое время) заведовал там всеми языками (As a result I had been given the overall responsibility for managing Microsoft’s programming languages, which included FORTRAN, Pascal, COBOL, 8086 Macro Assembler, and its first C compiler for MS-DOS).

Вот что он пишет:

While Microsoft had its own version of Pascal, it had been groomed as a professional developer’s tool, and in fact was the core language Microsoft wrote many of its own software products in before it was displaced by C.


Отсюда, кстати, и пошли потом макросы PASCAL, знакомые каждому WinAPI-программисту.

На двух микрокомпьютерных платформах, которые потом задавили всех остальных — MS на IBM PC и Macintosh — Паскаль имел самую большую фору среди всех языков высокого уровня. Он был не только core language внутри компаний, но еще и насаждался среди софтверных вендоров (см. воспоминания ветеранов-яблочников). Это исторический факт. Факт также и то, что он был затем вытеснен "нечитабельным нагромождением скобочек". Остальное — домыслы. В частности, было ли вытеснение обусловлено нахлынувшими с DEC'ов сишниками, или не было. Если вы в самом деле хотите помочь, можете рассказать что-нибудь о трудовых мигрантах тех времен. Это я действительно не знаю, о чем честно и написал. Про то, что Unix и Си, как партия и Ленин, вы расскажите кому-нибудь, кто кроме теплого лампового лукоморья в своей жизни ничего не читал.

Лично я склонен думать, что Pascal был тогда святым граалем, серебрянной пулей и всем остальным. Академический стройный язык, а не какой-нибудь a fractal of bad design, типа PHP. 8-P Затем оказалось, что... да я вот лучше процитирую (некого анонима, не Трувера — уточняю, чтобы вопросов не возникло о достоверности, ее нет, это просто мнение):

Windows was originally an application written in Pascal that ran on top of DOS. Pascal was popular in the eighties because it embodied the principles of structured programming. It was a very restrictive language since it was intended to channel the programmer into good programming practice and forbid the bad. It was a real nanny language. Very frustrating. It was overtaken by C which gave the programmer greater freedom especially with hardware.


Видите, мнений сколько угодно. В том числе, несовпадающих с вашим. Еще раз: я покопал-покопал вокруг да около, плюнул и написал — "не знаю". Тридцать лет спустя, сам черт не разберет, что у них там творилось.

Ладно, на этом я возвращаюсь в XXI век и если кто-то хочет поспорить/уточнить/добавить/помочь и так далее, пусть копнет глубже.

SV.>>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

S>Например, финансовые аналитики, которые пишут бизнес-правила в ERP системах типа Оракловых.

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

SV.>>С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.

S>Отож. Вот уж ткнули так ткнули.

И, раз уж начал, закончу. Отвечать я не захотел примерно поэтому же. Вот с какого места я не стал это делать:

Да и тот же VB.NET настолько популярен, что самим своим существованием доказывает вашу неправоту.


О, если бы было в принципе возможно доказать (не)правоту такого утверждения, как "популярность языка зависит от его си-подобия"! Или вообще доказать, что популярность чего-то зависит от чего-то! Те, кто понимает, что такое доказательство никогда такого не написали бы. Сравните с тем, как выразился я: "Эта моя теория замечательно подкрепляется тем фактом...". Разницу видите? Не знаю про вас, но теплые ламповые 95% видеть не должны. Если видите, то какие могут быть вопросы, почему я не хочу продолжать?

Ладно, допустим, oldjackal заберет назад слово "доказывает" и напишет вместо него "показывает" или "подкрепляет".

Я, сославшись на индекс TIOBE, понимаю, что это не идеальный инструмент. Но это хоть какое-то обоснование статистикой. Не голословные утверждения типа "настолько популярен". Настолько это насколько? Согласно индексу TIOBE на апрель 2012 года, это менее одного процента. Старый VB более, чем в пять раз его превосходит. И обоих вместе взятых обходит C#, который... процитирую-ка я другого работника Микрософта, который профессионально занимался в этой компании языками:

And along came .NET. This was a grand project, the super-duper unifying project to clean up the whole mess once and for all. It would have memory management, of course. It would still have Visual Basic, but it would gain a new language, one which is in spirit virtually the same as Visual Basic but with the C-like syntax of curly braces and semicolons. And best of all, the new Visual Basic/C hybrid would be called Visual C#, so you would not have to tell anyone you were a "Basic" programmer any more.


Написано там буквально следующее: к Visual Basic'у не только прикрутили "нечитабельное нагромождение скобочек", но и добавили Си в название. Результат:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Apr 2012  Apr 2011 Programming Language Ratings    Delta      Status
--------------------------------------------------------------------
5         4        C#                   7.348%     +0.16%     A
...
7         7        (Visual) Basic       4.962%     +0.28%     A
..
14        35       Visual Basic .NET    0.978%     +0.64%     A


Слово Visual в скобках видите? Это все бейсики мира. Не только Visual. И это при том, что я выше написал:

6 самых популярных языков (в том числе и PHP!) обладают ярко выраженными си-подобием. Причем, суммарная их доля составляет (примерно) две трети.


По-моему, этого достаточно, чтобы отказаться от дальнейших споров. Пусть oldjackal накопает хотя бы какую-то фактуру, чтобы что-то показать, не говоря уж — доказать, а потом я продолжу. А так, он пять минут на свой постинг тратит, а я два часа за фактами бегаю. Нечестно получается.
Re: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.04.12 15:03
Оценка: 6 (1) +1
Показательная цитата (перевод от lj user=frenzytechnix)

Взгляните на этот код, взятый из какой-то документации по PHP:

@fopen('http://example.com/not-existing-file', 'r');

Что он делает?

Если PHP был скомпилирован с --disable-url-fopen-wrapper, это не заработает. (В документации не говорится, что значит "не заработает" — возвращает null, вызывает исключение?). Обратите внимание, что этот флаг был удален в PHP 5.2.5.
Если в php.ini отключен параметр allow_url_fopen, это тоже не заработает.
Поскольку там есть @, предупреждение о несуществующем файле не будет выдано.
Но оно будет выдано если в php.ini установлен параметр scream.enabled.
Или же если параметр scream.enabled установлен вручную через ini_set.
Но только не в случае, когда не выставлен нужный уровень error_reporting.
Если предупреждение все же будет выдано, то, куда оно попадет, зависит от параметра display_errors, опять-таки в php.ini. Или ini_set.

Я не могу сказать, как будет вести себя вызов этой безобидной функции, не изучив флаги компиляции, конфигурацию сервера и конфигурацию в моей программе. И все это — стандартное поведение.

The God is real, unless declared integer.
Re[14]: PHP: a fractal of bad design
От: Sorc17 Россия  
Дата: 16.04.12 17:53
Оценка: 6 (1) :)
Мне языки программирования сильно напоминают ММОРПГ, а программисты — ММОРПГ сообщество. Все постоянно ждут какую-то новую игру, которая выйдет/взлетит и все остальные похоронит (го, питон, д, ...), но продолжают играть в WoW (писать на си++, сишарп, ява, пхп, ...) Время идёт, появляются всё новые и новые убийцы WoW, а он всё не помирает и не помирает
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[2]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 09:40
Оценка: 4 (1) +1
Здравствуйте, SV., Вы писали:

SV.>Хотите правильный ответ? Я его давно пропагандирую: A language must be C-like. Это как латинско-греческие корни европейских языков и какой-нибудь санскрит. Если язык состоит из неизвестных закорючек, как к нему вообще подступиться? Он может быть прост и удобен, но это никто не узнает, кроме задротов-индологов. Так и PHP. Это кусок гавна, а не язык, всерьез говоря, но из всей компании PHP/Perl/Python/Ruby он самый си-подобный. Когда вам нужен комментарий, не надо писать #, когда вам нужен набор условий, не надо писать elsif (Perl). Для оформления кодоблока можно воспользоваться привычными фигурными скобками (Python). И отдельные команды разделяются ; (Ruby). Все эти привычные мелочи значат в нашем несовершенном мире гораздо больше, чем предсказуемость, консистентность и что там дальше по списку. Кто этого не понял, тот чудак на букву м.


Идея понятна. Возможно, этот фактор тоже играет роль — я не буду здесь возражать.

Но изначально, насколько я видел историю PHP, его проникновение было вызвано не этим, а тем, что он первый из широко доступных встраивался в HTML, а не запускался отдельно — что дало ему таким образом возможность участвовать в плавной модификации существующего статического контента в динамический, лёгкими добавками кусков с автогенерацией. Именно на этом он набрал силу и стал массово распространённым, и именно это привело к таким свойствам текущей конструкции, как общий ini-файл, отсутствие модульности (писать import в каждом таком куске — нелепо и задалбывает), наплевательство на строгую типизацию (для небольших объёмов она не нужна), а в плане развития — к отсутствию понимания необходимости управляемого и согласованного развития. Тотальная безграмотность (или в лучшем случае полуграмотность) пользователей подобной ниши стала причиной того, что у него так и не появилось грамотного и сбалансированного steering committee или аналога.

Его история аналогна истории, например, x86 — как изначально неадекватное средство (процессор для роли промышленного контроллера) волей судеб оказался на месте процессора общего назначения и стал развиваться не из-за максимального соответствия задаче, а как компонента успешной платформы.

SV.>Эта моя теория замечательно подкрепляется тем фактом, что (по версии TIOBE) 6 самых популярных языков (в том числе и PHP!) обладают ярко выраженными си-подобием. Причем, суммарная их доля составляет (примерно) две трети.


Корреляция есть, но Вы, IMHO, путаете причину со следствием.
Не популярность C-like стала причиной роста PHP. C-like в PHP изначально — следствие происхождения от Perl, а далее — неконтролируемого развития практиками.
The God is real, unless declared integer.
Re[2]: PHP: a fractal of bad design
От: oldjackal Россия  
Дата: 12.04.12 11:27
Оценка: +1 -1
Здравствуйте, SV., Вы писали:

SV.>Хотите правильный ответ? Я его давно пропагандирую: A language must be C-like.


Нечитабельные нагромождения скобочек и неочевидные правила приоритета? Зачем?!? Очень мало популярных среди не-программистов языков с C-подобной грамматикой. Да и тот же VB.NET настолько популярен, что самим своим существованием доказывает вашу неправоту.

SV.> Это как латинско-греческие корни европейских языков и какой-нибудь санскрит. Если язык состоит из неизвестных закорючек, как к нему вообще подступиться?


Вот именно так я и смотрел на C после Паскаля и Фортрана.

SV.> Нормальный вебовский нуб тоже человек и хочет свои первые скрипты пописать и поотлаживать в веб-серверовском интерпретаторе. Он идет и смотрит, что там есть с максимально привычным синтаксисом, но со всеми прелестями вебовских скриптов: сборкой мусора, отсутствием компиляции и так далее. Предсказуемо, что он находит PHP.


У нормальных нубов PHP вообще первый язык, и никаких таких C они в глаза не видели. А в ВУЗе они учили, скорее всего, вообще Паскаль.
Re[6]: PHP: a fractal of bad design
От: oldjackal Россия  
Дата: 13.04.12 08:34
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

SV.>>>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

O>> Языки в Matcad, R, Stata, языки в разнообразных CAD-ах — все они ничего общего с C не имеют (и это прекрасно!).
C>А им и не надо, они для другого предназначены. С Фортраном и Паскалем, кстати, они тоже имеют мало общего.

А я о чем говорю? С-подобный синтаксис для популярности не нужен, нелепый тезис опровергнут, все довольны.

SV.>>>С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.

O>> Вы отрицаете популярность VB? Интересно.
C>Да, он непопулярен среди опытных программистов.

Это несколько не так. Есть огромное количество опытных программистов на VB. И глупо было бы считать, что они в чем-то хуже опытных программистов на, например, C++.
Re[4]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 09:38
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

C>Что конкретно нечитаемого? В С основные проблемы с приоритетом — для битовых операций, которые мало кого заботят.


Ну давайте опишем тип для функции, которая принимает указатель на функцию, принимающую инт, и возвращающую указатель на инт, и возвращает указатель на функцию, которая принимает указатель на инт, и возвращает инт.
Изо всех вариантов, вариант на Сях будет наименее читаемым.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 14.04.12 02:22
Оценка: +2
Здравствуйте, oldjackal, Вы писали:

O>>> Языки в Matcad, R, Stata, языки в разнообразных CAD-ах — все они ничего общего с C не имеют (и это прекрасно!).

C>>А им и не надо, они для другого предназначены. С Фортраном и Паскалем, кстати, они тоже имеют мало общего.
O> А я о чем говорю? С-подобный синтаксис для популярности не нужен, нелепый тезис опровергнут, все довольны.
С-подобный синтаксис популярности очень способствует.

А вот, к примеру, паскалеподобный синтаксис большинство программистов ненавидит.

C>>Да, он непопулярен среди опытных программистов.

O> Это несколько не так. Есть огромное количество опытных программистов на VB. И глупо было бы считать, что они в чем-то хуже опытных программистов на, например, C++.
Если они именно опытные на VB, то это неопытные программисты. Потому как опытные программисты пишут на разных языках (понятное дело, что будут личные предпочтения).

Как раз на VB пишут неопытные новички или опытные не-программисты.
Sapienti sat!
Re[6]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 15.04.12 13:39
Оценка: +2
SV.>

SV.>6 самых популярных языков (в том числе и PHP!) обладают ярко выраженными си-подобием. Причем, суммарная их доля составляет (примерно) две трети.


SV.>По-моему, этого достаточно, чтобы отказаться от дальнейших споров. Пусть oldjackal накопает хотя бы какую-то фактуру, чтобы что-то показать, не говоря уж — доказать, а потом я продолжу. А так, он пять минут на свой постинг тратит, а я два часа за фактами бегаю. Нечестно получается.



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

При том, что само налиие С-синтаксиса никак не влияет на популярность языка (Go, D например, неразличимы даже в микроскоп, в отличие от каких-нибудь Руби и Питона).


dmitriid.comGitHubLinkedIn
Re[12]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.12 15:36
Оценка: -2
AVK>>>Для того, чтобы опровергнуть теорию, достаточно ровно одного факта.

M>>Вообще-то, недостаточно


AVK>Это что то новенькое в формальной логике.


Да нет, старенькое. В этом, как его, научном методе


dmitriid.comGitHubLinkedIn
Re: PHP: a fractal of bad design
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 11.04.12 17:54
Оценка: 3 (1)
Здравствуйте, netch80, Вы писали:

N>Свежая обзорная статья.


http://phpsadness.com/

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 04:04
Оценка: -1
Здравствуйте, SV., Вы писали:

SV.>Имело бы смысл спросить, как так получилось, что "нечитабельное нагромождение скобочек" стало так популярно (изначально). То есть, популярность PHP можно отнести на си-подобие, а сам Си с чего вдруг стал так популярен? Если вот так поставить вопрос, я могу с облегчением ответить: не знаю. Наверное, есть в нем что-то такое, чего вы не видите за "нечитабельным нагромождением скобочек".

Я вам помогу. На самом C был написан Unix. Именно это, а также его близость к архитектуре процессоров DEC, обеспечило ему популярность среди системных программистов. Не нужно думать, что там какой-то особенно тёплый ламповый синтаксис.

SV.>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

Например, финансовые аналитики, которые пишут бизнес-правила в ERP системах типа Оракловых.

SV.>С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.

Отож. Вот уж ткнули так ткнули.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 08:59
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Чем конкретно С близок к архитектуре DEC?

while(*p++ = *q++)
Это ровно две инструкции PDP-11.

C>Язык С так всем понравился из-за того, что на нём легко выражаются операции с памятью. Работа с указателями в нём — легка и понятна, по сравнению с тем же Паскалем.

А сама модель указателей в нём, вместе с операциями префиксного/постфиксного инкремента/декремента в чистом виде списана с операций процессора DEC.

SV.>>>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

S>>Например, финансовые аналитики, которые пишут бизнес-правила в ERP системах типа Оракловых.
C>А сам Оракл на чём написан-то? То что для непрограммистов неудобны С-подобные языки — это разговор отдельный.
Внимательно читайте текст, на который отвечаете. Это как раз на чём написан Оракл — отдельный разговор.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: PHP: a fractal of bad design
От: Курилка Россия http://kirya.narod.ru/
Дата: 14.04.12 09:13
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, AndrewVK, Вы писали:


C>>>А вот, к примеру, паскалеподобный синтаксис большинство программистов ненавидит.

AVK>>Давай проверим? http://rsdn.ru/poll/3522.aspx
Автор: AndrewVK
Дата: 14.04.12
Вопрос: Ненавидите ли вы Pascal-подобный синтаксис?

C>Лучше сформулировать было так: "Предпочитаете ли вы Паскаль-подобный синтаксис С-подобному или Питон-подобному?"

А почему питон на стороне сей оказался?
Re: PHP: a fractal of bad design
От: dimgel Россия https://github.com/dimgel
Дата: 11.04.12 15:16
Оценка:
Здравствуйте, netch80, Вы писали:

N>Свежая обзорная статья.


ППКС (except "I loooove Python").
Re[2]: PHP: a fractal of bad design
От: avpavlov  
Дата: 11.04.12 21:02
Оценка:
KV>http://phpsadness.com/

В целом список по делу, но есть и забавные упрёки

Cannot create a final abstract class
No good way to modify private method behavior in a testing environment
Re[3]: PHP: a fractal of bad design
От: SV.  
Дата: 12.04.12 14:56
Оценка:
Здравствуйте, oldjackal, Вы писали:

SV.>>Хотите правильный ответ? Я его давно пропагандирую: A language must be C-like.

O> Нечитабельные нагромождения скобочек и неочевидные правила приоритета? Зачем?!?

Нечитабельность есть свойство субъективное и тратить время на ее обсуждение не стоит. Все люди разные, одному нравится попадья, другому свиной хрящик. Не надо судить обо всех по себе. "Зачем?", следовательно, надо спрашивать не меня, а две трети тех, кто выбирает эти нечитабельные нагромождения. Индусов-аутсорсеров, например, и прочее молчаливое большинство, которое даже на форумы не вылазит, поскольку делом занято. А поскольку у каждого вы все равно не спросите, вопрос ваш начисто лишен смысла. Имело бы смысл спросить, как так получилось, что "нечитабельное нагромождение скобочек" стало так популярно (изначально). То есть, популярность PHP можно отнести на си-подобие, а сам Си с чего вдруг стал так популярен? Если вот так поставить вопрос, я могу с облегчением ответить: не знаю. Наверное, есть в нем что-то такое, чего вы не видите за "нечитабельным нагромождением скобочек".

Если вы спросите "Зачем?" лично меня, я отвечу. Хотя это и будет офтопиком к теме "A language must be ... [to be popular]", которую я выделил из набора тем, обсуждаемых в статье. Нельзя рассуждать о популярности на основе личных вкусов и предпочтений. Так вот, мои личные вкусы и предпочтения — нечитабельные нагромождения скобочек. Объясняется это двумя причинами:

http://en.wikipedia.org/wiki/Path_dependence Обязательно введите это понятие в свой культурный багаж, если еще не. Люди до ужаса инертны и PD объясняет многое из людской деятельности. Когда я разбирался с программированием, ничего круче просто не было, а потом я уже привык. Вторая причина — мне нравится, когда "словам тесно, а мыслям просторно". Если одним символом ({) можно передать то, что в других языках требует пяти (begin), я считаю, что такой символ и такой язык стоит выучить.

Еще раз, это мои личные предпочтения, которые офтопик, и обсуждать их я не буду.

>Очень мало популярных среди не-программистов языков с C-подобной грамматикой.


Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

>Да и тот же VB.NET настолько популярен, что самим своим существованием доказывает вашу неправоту.


С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.
Re[4]: PHP: a fractal of bad design
От: oldjackal Россия  
Дата: 12.04.12 15:27
Оценка:
Здравствуйте, SV., Вы писали:

>>Очень мало популярных среди не-программистов языков с C-подобной грамматикой.


SV.>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?


Языки в Matcad, R, Stata, языки в разнообразных CAD-ах — все они ничего общего с C не имеют (и это прекрасно!).

>>Да и тот же VB.NET настолько популярен, что самим своим существованием доказывает вашу неправоту.


SV.>С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.


Вы отрицаете популярность VB? Интересно.
Re[3]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 13.04.12 04:23
Оценка:
Здравствуйте, oldjackal, Вы писали:

SV.>>Хотите правильный ответ? Я его давно пропагандирую: A language must be C-like.

O> Нечитабельные нагромождения скобочек и неочевидные правила приоритета? Зачем?!?
Что конкретно нечитаемого? В С основные проблемы с приоритетом — для битовых операций, которые мало кого заботят.

O>Очень мало популярных среди не-программистов языков с C-подобной грамматикой. Да и тот же VB.NET настолько популярен, что самим своим существованием доказывает вашу неправоту.

Ровно по той же причине, что и PHP.

SV.>> Это как латинско-греческие корни европейских языков и какой-нибудь санскрит. Если язык состоит из неизвестных закорючек, как к нему вообще подступиться?

O> Вот именно так я и смотрел на C после Паскаля и Фортрана.
А ну понятно — детская травма.

O> У нормальных нубов PHP вообще первый язык, и никаких таких C они в глаза не видели. А в ВУЗе они учили, скорее всего, вообще Паскаль.

Вот и приучаются люди к плохому.
Sapienti sat!
Re[5]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 13.04.12 04:24
Оценка:
Здравствуйте, oldjackal, Вы писали:

SV.>>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

O> Языки в Matcad, R, Stata, языки в разнообразных CAD-ах — все они ничего общего с C не имеют (и это прекрасно!).
А им и не надо, они для другого предназначены. С Фортраном и Паскалем, кстати, они тоже имеют мало общего.

SV.>>С этого места все желание отвечать пропало. Ладно, я лучше netch'а подожду. На каждый чих не наздравствуешься.

O> Вы отрицаете популярность VB? Интересно.
Да, он непопулярен среди опытных программистов.
Sapienti sat!
Re[5]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 13.04.12 04:29
Оценка:
Здравствуйте, Sinclair, Вы писали:

SV.>>Имело бы смысл спросить, как так получилось, что "нечитабельное нагромождение скобочек" стало так популярно (изначально). То есть, популярность PHP можно отнести на си-подобие, а сам Си с чего вдруг стал так популярен? Если вот так поставить вопрос, я могу с облегчением ответить: не знаю. Наверное, есть в нем что-то такое, чего вы не видите за "нечитабельным нагромождением скобочек".

S>Я вам помогу. На самом C был написан Unix. Именно это, а также его близость к архитектуре процессоров DEC, обеспечило ему популярность среди системных программистов. Не нужно думать, что там какой-то особенно тёплый ламповый синтаксис.
Чем конкретно С близок к архитектуре DEC?

Язык С так всем понравился из-за того, что на нём легко выражаются операции с памятью. Работа с указателями в нём — легка и понятна, по сравнению с тем же Паскалем.

SV.>>Кто такие не-программисты и как вы померили у них популярность языков с C-подобной грамматикой?

S>Например, финансовые аналитики, которые пишут бизнес-правила в ERP системах типа Оракловых.
А сам Оракл на чём написан-то? То что для непрограммистов неудобны С-подобные языки — это разговор отдельный.
Sapienti sat!
Re[5]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 08:31
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Я вам помогу. На самом C был написан Unix. Именно это, а также его близость к архитектуре процессоров DEC, обеспечило ему популярность среди системных программистов.


Это "городская легенда", которая многократно опровергнута авторами языка.

S> Не нужно думать, что там какой-то особенно тёплый ламповый синтаксис.


Я ещё в школе проникся им именно за мощь и плотность эффектов на единицу объёма.
Конечно, интересы школьника совсем другие, чем интересы программиста на толстом проекте на годы развития.
Но именно такой "школьный" взгляд и становится причиной народной популярности и соответственно подспудного интереса, несмотря на все регулирования.

А в нынешней его популярности скорее виноват MS-DOS, чем другие. Потому что C был первым (по рангу) реальным средством что-то писать для неё. Ассемблер низковат для заметного объёма кода, Паскаль более маргинален несмотря на Borland, а стиль Unix, где основным средством выше системных утилит предполагались sh/awk/sed/Perl, для MS-DOS был неподъёмен по хилости её архитектуры.
The God is real, unless declared integer.
Re[6]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 09:00
Оценка:
Здравствуйте, netch80, Вы писали:

N>Это "городская легенда", которая многократно опровергнута авторами языка.

Можно пруфлинк на опровержение?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 09:11
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, netch80, Вы писали:


N>>Это "городская легенда", которая многократно опровергнута авторами языка.

S>Можно пруфлинк на опровержение?

Единственным упоминаемым фактором близости к архитектуре считается автоинкремент и автодекремент, и вот явно про них:

People often guess that they were created to use the auto-increment and auto-decrement address modes provided by the DEC PDP-11 on which C and Unix first became popular. This is historically impossible, since there was no PDP-11 when B was developed.


Отсюда. От одного из авторов и с сайта конторы-разработчика, то есть авторитетнее уже некуда.

Если Вы видите какой-то иной признак близости к архитектуре именно машин DEC (а не любой тогдашней железяки), я вполне послушаю, но до сих пор такого не встречалось.

(Всё это Вы и сами могли нагуглить за минуту (у меня ушло ровно столько), но если хотите, чтобы Вам разжевали и положили в рот... ok, я с утра подозрительно добрый.)
The God is real, unless declared integer.
Re[4]: PHP: a fractal of bad design
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 13.04.12 09:14
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Нечитабельность есть свойство субъективное и тратить время на ее обсуждение не стоит.

Можно ввести объективный критерий: количество односимвольных опечаток (вставка, удаление, замена символа), которые не приводят в ошибкам компиляции.
Re[6]: PHP: a fractal of bad design
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 13.04.12 09:17
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Чем конкретно С близок к архитектуре DEC?


Все операции в DEC имеют свои аналоги в C. Проще говоря, берез список инструкций DEC, смотрим, такие в нем есть операции, вводим аналоги.
Re[7]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 09:24
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, Cyberax, Вы писали:


C>>Чем конкретно С близок к архитектуре DEC?


M>Все операции в DEC имеют свои аналоги в C. Проще говоря, берез список инструкций DEC, смотрим, такие в нем есть операции, вводим аналоги.


О каком именно изделии DEC речь?
Если про PDP-11, то чем она тут отличается от, например, 6502 или 8086?

С другой стороны, где аналог, например, разделения адресного пространства команд и данных в старших моделях?
Где аналоги команд MFPS, MTPS?
Почему нет прямого аналога команде SOB?
Продолжать список?
The God is real, unless declared integer.
Re[8]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 10:01
Оценка:
Здравствуйте, netch80, Вы писали:

N>Отсюда. От одного из авторов и с сайта конторы-разработчика, то есть авторитетнее уже некуда.

N>(Всё это Вы и сами могли нагуглить за минуту (у меня ушло ровно столько), но если хотите, чтобы Вам разжевали и положили в рот... ok, я с утра подозрительно добрый.)
Не понимаю, как отсутствие PDP-11 во времена B могло помешать росту популярности C в момент расцвета PDP-11.
То, что эта близость не была осознанным шагом, это избыточная подробность.
Конструкция while (*p++ = *q++) по прежнему компилируется в две команды PDP-11, и я очень сомневаюсь, что программистам семидесятых годов это было неизвестно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 10:10
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, netch80, Вы писали:


N>>Отсюда. От одного из авторов и с сайта конторы-разработчика, то есть авторитетнее уже некуда.

N>>(Всё это Вы и сами могли нагуглить за минуту (у меня ушло ровно столько), но если хотите, чтобы Вам разжевали и положили в рот... ok, я с утра подозрительно добрый.)
S>Не понимаю, как отсутствие PDP-11 во времена B могло помешать росту популярности C в момент расцвета PDP-11.
S>То, что эта близость не была осознанным шагом, это избыточная подробность.

Это не "избыточная подробность", если в Вашем же соседнем письме написана явная чушь:

А сама модель указателей в нём, вместе с операциями префиксного/постфиксного инкремента/декремента в чистом виде списана с операций процессора DEC.

Тут уже не утверждение о сходстве, а явно сказано, что "списана".
Пока Вы думаете нелепыми легендами — будете строить ложные утверждения.

S>Конструкция while (*p++ = *q++) по прежнему компилируется в две команды PDP-11, и я очень сомневаюсь, что программистам семидесятых годов это было неизвестно.


Эта конструкция имеет ценность разве что в виде хохмы. Много ли программистов пишут каждый час аналоги strcpy?
Для реального кода ценность соответствия поставтоинкременту снижается до значений, незаметных без микроскопа.
The God is real, unless declared integer.
Re[10]: PHP: a fractal of bad design
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.04.12 11:37
Оценка:
Здравствуйте, netch80, Вы писали:
N>Это не "избыточная подробность", если в Вашем же соседнем письме написана явная чушь:
N>Тут уже не утверждение о сходстве, а явно сказано, что "списана".
Ок, извините, не списана. Ошибся я. Архитектура автоинкрементов всего лишь послужила источником вдохновения.

N>Эта конструкция имеет ценность разве что в виде хохмы. Много ли программистов пишут каждый час аналоги strcpy?

И тем не менее, она приводится в Big Blue C.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.04.12 11:50
Оценка:
Здравствуйте, Sinclair, Вы писали:

N>>Это не "избыточная подробность", если в Вашем же соседнем письме написана явная чушь:

N>>Тут уже не утверждение о сходстве, а явно сказано, что "списана".
S>Ок, извините, не списана. Ошибся я. Архитектура автоинкрементов всего лишь послужила источником вдохновения.

Это тоже не достоверные данные, а предположения.

Насколько я знаю, Томпсон по этому поводу ничего не говорил.

N>>Эта конструкция имеет ценность разве что в виде хохмы. Много ли программистов пишут каждый час аналоги strcpy?

S>И тем не менее, она приводится в Big Blue C.

Как пример хака. Да, это я и говорил — школьникам нравятся хаки, и это фактор существенный.
The God is real, unless declared integer.
Re[7]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 14.04.12 02:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

C>>Чем конкретно С близок к архитектуре DEC?

S>while(*p++ = *q++)
S>Это ровно две инструкции PDP-11.
И?
while ^q<>0 do
begin
  ^q = ^p;
  inc(q); 
  inc(p);
end;

Тоже две инструкции.

Правда, в 6 раз больше строк. Но ведь это мелочь, да?

C>>Язык С так всем понравился из-за того, что на нём легко выражаются операции с памятью. Работа с указателями в нём — легка и понятна, по сравнению с тем же Паскалем.

S>А сама модель указателей в нём, вместе с операциями префиксного/постфиксного инкремента/декремента в чистом виде списана с операций процессора DEC.
Модель указателей в чистом виде слизана с почти любого процессора. Кстати, инкременты так же почти на всех архитектурах есть.
Sapienti sat!
Re[5]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 14.04.12 02:32
Оценка:
Здравствуйте, Sinclair, Вы писали:

C>>Что конкретно нечитаемого? В С основные проблемы с приоритетом — для битовых операций, которые мало кого заботят.

S>
S>Ну давайте опишем тип для функции, которая принимает указатель на функцию, принимающую инт, и возвращающую указатель на инт, и возвращает указатель на функцию, которая принимает указатель на инт, и возвращает инт.
S>Изо всех вариантов, вариант на Сях будет наименее читаемым.
Мне это и по-русски сложно понять, если что.

В изначальном С функции были нетипизированы (!), потому такой указатель выглядел как "int (*ptr)(...);" или даже "(*ptr)(...)". Ну и в процедурном стиле кода 80-х, указатели на функцию в качестве параметров указателей на функцию использовались редко, так что оно никого особо не колыхало.
Sapienti sat!
Re[6]: PHP: a fractal of bad design
От: dilmah США  
Дата: 14.04.12 03:26
Оценка:
C>В изначальном С функции были нетипизированы (!), потому такой указатель выглядел как "int (*ptr)(...);" или даже "(*ptr)(...)"

в первоначальном си пустой список аргументов означал то же самое, что сейчас обозначает эллипсис.
Так что даже эллипсис лишний.
Re[8]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.04.12 03:42
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>А вот, к примеру, паскалеподобный синтаксис большинство программистов ненавидит.


Давай проверим? http://rsdn.ru/poll/3522.aspx
Автор: AndrewVK
Дата: 14.04.12
Вопрос: Ненавидите ли вы Pascal-подобный синтаксис?
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[9]: PHP: a fractal of bad design
От: Cyberax Марс  
Дата: 14.04.12 05:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

C>>А вот, к примеру, паскалеподобный синтаксис большинство программистов ненавидит.

AVK>Давай проверим? http://rsdn.ru/poll/3522.aspx
Автор: AndrewVK
Дата: 14.04.12
Вопрос: Ненавидите ли вы Pascal-подобный синтаксис?

Лучше сформулировать было так: "Предпочитаете ли вы Паскаль-подобный синтаксис С-подобному или Питон-подобному?"
Sapienti sat!
Re[10]: PHP: a fractal of bad design
От: dimgel Россия https://github.com/dimgel
Дата: 14.04.12 10:29
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, AndrewVK, Вы писали:


C>>>А вот, к примеру, паскалеподобный синтаксис большинство программистов ненавидит.

AVK>>Давай проверим? http://rsdn.ru/poll/3522.aspx
Автор: AndrewVK
Дата: 14.04.12
Вопрос: Ненавидите ли вы Pascal-подобный синтаксис?

C>Лучше сформулировать было так: "Предпочитаете ли вы Паскаль-подобный синтаксис С-подобному или Питон-подобному?"

Этот вопрос слишком сильно отличается от твоего изначального, вышепроцитированного утверждения. Но голосовалка тоже некорректная, надо было так:
(*) я писал и на паскале, и на си, и паскалевый синтаксис ненавижу
( ) я писал и на паскале, и на си, и паскалевый синтаксис не ненавижу
( ) прочее
Re[5]: PHP: a fractal of bad design
От: SV.  
Дата: 14.04.12 11:34
Оценка:
Здравствуйте, Mystic, Вы писали:

SV.>>Нечитабельность есть свойство субъективное и тратить время на ее обсуждение не стоит.

M>Можно ввести объективный критерий: количество односимвольных опечаток (вставка, удаление, замена символа), которые не приводят в ошибкам компиляции.

Можно подробнее и с примерами?
Re[3]: PHP: a fractal of bad design
От: SV.  
Дата: 14.04.12 13:22
Оценка:
Здравствуйте, netch80, Вы писали:

N>Но изначально, насколько я видел историю PHP, его проникновение было вызвано не этим, а тем, что он первый из широко доступных встраивался в HTML, а не запускался отдельно


Судя по тому, что пишут про perl_mode, это правда.

http://perl.apache.org/about/history.html

Andreas Koenig tells us about how things happened:

"It was a time when FastCGI was still considered cool. But making FastCGI work required a patched perl, since tied file handles were still in their infancy.

"PHP was also around already, and was an embarrassing witness to Perl's greatest weakness for server-side programming: that embedding Perl was a pain. Although the hooks were there for embedding Perl, they were both undocumented and buggy.


mod_python появился и того позднее: в 2000.

Я принимаю ваш аргумент: PHP имел фору как встроенный язык, и это тоже один из факторов его популярности (в форме path dependence).

> а в плане развития — к отсутствию понимания необходимости управляемого и согласованного развития. Тотальная безграмотность (или в лучшем случае полуграмотность) пользователей подобной ниши стала причиной того, что у него так и не появилось грамотного и сбалансированного steering committee или аналога.


А она есть? Необходимость управляемого и согласованного развития? Согласитесь, что язык неплохо себя чувствует, на голову обходя в своей нише все остальное. Другое дело, что снобы типа процитированного — они плохо себя чувствуют с PHP. Еще пример: другой Си — C++ — согласовано и управляемо мариновали херову прорву лет, пока народ разбегаться не начал.
Re[10]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.04.12 15:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Лучше сформулировать было так: "Предпочитаете ли вы Паскаль-подобный синтаксис С-подобному или Питон-подобному?"


Я сформулировал ровно так, как сформулировал ты. Специально.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[11]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.04.12 15:36
Оценка:
Здравствуйте, dimgel, Вы писали:

D>Но голосовалка тоже некорректная


Голосовалка абсолютно корректная, потому что проверяет ровно одно конкретное утверждение.

D>, надо было так:


Кому надо?
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[12]: PHP: a fractal of bad design
От: dimgel Россия https://github.com/dimgel
Дата: 14.04.12 17:38
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Голосовалка абсолютно корректная, потому что проверяет ровно одно конкретное утверждение.


Это если тебе чисто к словам докопаться, а не по сути.

AVK>Кому надо?


Гы, в предложении выше слово "если" можно убрать.
Re[13]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.04.12 18:00
Оценка:
Здравствуйте, dimgel, Вы писали:

AVK>>Голосовалка абсолютно корректная, потому что проверяет ровно одно конкретное утверждение.


D>Это если тебе чисто к словам докопаться, а не по сути.


Мне чисто "проверить ровно одно конкретное утверждение".

AVK>>Кому надо?

D>Гы, в предложении выше слово "если" можно убрать.

Т.е. кому надо ты не знаешь.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[8]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.12 10:01
Оценка:
SV.>http://rsdn.ru/res/book/cpp/cppdesign.jpg

SV.>Читайте и не придумывайте. Создатель языка близко не имел никаких маркетинговых "воображений".


Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?


dmitriid.comGitHubLinkedIn
Re[9]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.04.12 13:03
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?


Для того, чтобы опровергнуть теорию, достаточно ровно одного факта.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[9]: PHP: a fractal of bad design
От: SV.  
Дата: 16.04.12 14:44
Оценка:
Здравствуйте, Mamut, Вы писали:

SV.>>http://rsdn.ru/res/book/cpp/cppdesign.jpg


SV.>>Читайте и не придумывайте. Создатель языка близко не имел никаких маркетинговых "воображений".


M>Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?


Так вам одного пункта мало показалось? Еще добавить? Пожалуйста: к моменту, когда Страуструп приступил к созданию своей будущей нетленки, Си еще не был настолько популярен, чтобы брать его за основу на этом основании.

Воспоминания одного из ветеранов, Jerry Coffin ("Started programming on a Control Data mainframe in FORTRAN IV, back when that was still a new thing"):

At least for people outside universities, C only started to become a reasonable choice around the mid-1980's or so. Early on you have Mark Williams, Datalight, and so on -- lots of companies that are long gone now. Then Borland came out with Turbo C, Microsoft answered with Quick C, and programmers could (and did) debate endlessly about the relative merits of a dozen different compilers.


Другие пишут примерно то же самое. Страуструп работал в Bell Labs, где до этого были созданы C/Unix, и задача, под которую создавался его новый язык, была напрямую связана с унихом. Университеты получали уних от Bell Labs и университетские круги приобщались к сишно-юниховой культуре. За пределами университетов в конце семидесятых люди пользовались Фортраном, Паскалем, Бейсиком, ассемблером, Коболом и PL/I. И всем остальным. Кстати, Страуструп, как он пишет, рассматривал Паскаль, но нашел его... как он там выразился... бесполезной смирительной рубашкой, или типа. Короче, сами посмотрите.

Короче говоря. Переформулируйте ваше возражение так, чтобы в нем не осталось фактических ошибок (если сможете), и мы посмотрим, что от него вообще останется. Тогда по существу возражения я и отвечу. И это вам обойдется дешевле всего, потому, что я ведь могу и продолжить. Про другие языки в том числе.
Re[8]: PHP: a fractal of bad design
От: SV.  
Дата: 16.04.12 14:55
Оценка:
Здравствуйте, netch80, Вы писали:

N>Единственным упоминаемым фактором близости к архитектуре считается автоинкремент и автодекремент, и вот явно про них:


N>

N>People often guess that they were created to use the auto-increment and auto-decrement address modes provided by the DEC PDP-11 on which C and Unix first became popular. This is historically impossible, since there was no PDP-11 when B was developed.


N>Отсюда. От одного из авторов и с сайта конторы-разработчика, то есть авторитетнее уже некуда.


N>Если Вы видите какой-то иной признак близости к архитектуре именно машин DEC (а не любой тогдашней железяки), я вполне послушаю, но до сих пор такого не встречалось.


N>(Всё это Вы и сами могли нагуглить за минуту (у меня ушло ровно столько), но если хотите, чтобы Вам разжевали и положили в рот... ok, я с утра подозрительно добрый.)


Пишут, что все дело в адресации единичных байтов:

The initial developments towards C occurred on the nascent Unix operating system in 1969. When the need was felt for a system programming language, Unix co-inventor Ken Thompson designed and implemented the language B, derived from BCPL, which is the descendent of CPL, and ultimately of Algol 60. The name "B" was chosen as the first letter of "BCPL". Like BCPL, B is a typeless word-oriented language, and B inherits BCPL's block structure. However, B had to be stripped down to fit into the DEC PDP-7 on which Unix was being developed. Its syntax is therefore largely novel, and very terse.

In 1970, the Unix project moved to the DEC PDP-11, a byte-oriented machine. Although B was ported to the PDP-11, its architectural assumptions made it an inconvenient language to use. Starting in 1971, Unix co-inventor Dennis Ritchie extended the B language to support bytes as well as words. The later addition of structures, more conventional array semantics, and later generalizations of the type system, yielded the earliest incarnation of C. Ritchie deliberately left unanswered the question of whether the name "C" was chosen as the next letter of the alphabet after "B" or as the next letter of "BCPL".


http://www.fysh.org/~zefram/gne/c_programming_language/
Re[10]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.12 14:58
Оценка:
M>>Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?

SV.>Так вам одного пункта мало показалось? Еще добавить? Пожалуйста: к моменту, когда Страуструп приступил к созданию своей будущей нетленки, Си еще не был настолько популярен, чтобы брать его за основу на этом основании.


Действительно, ведь я говорил только и исключительно про С и С++, ага ага


dmitriid.comGitHubLinkedIn
Re[10]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.12 14:58
Оценка:
M>>Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?

AVK>Для того, чтобы опровергнуть теорию, достаточно ровно одного факта.


Вообще-то, недостаточно


dmitriid.comGitHubLinkedIn
Re[11]: PHP: a fractal of bad design
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.04.12 15:04
Оценка:
Здравствуйте, Mamut, Вы писали:

AVK>>Для того, чтобы опровергнуть теорию, достаточно ровно одного факта.


M>Вообще-то, недостаточно


Это что то новенькое в формальной логике.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[11]: PHP: a fractal of bad design
От: SV.  
Дата: 16.04.12 15:31
Оценка:
Здравствуйте, Mamut, Вы писали:

M>>>Ну да, ну да. Из всего того, что я написал, зациклится только и исключительно на одном пункте — это хороший прием, отличающий самых завязтых троллей. Ничего, что я не только про С++ писал?


SV.>>Так вам одного пункта мало показалось? Еще добавить? Пожалуйста: к моменту, когда Страуструп приступил к созданию своей будущей нетленки, Си еще не был настолько популярен, чтобы брать его за основу на этом основании.


M>Действительно, ведь я говорил только и исключительно про С и С++, ага ага


Я все сказал:

>Переформулируйте ваше возражение так, чтобы в нем не осталось фактических ошибок (если сможете), и мы посмотрим, что от него вообще останется.
Re[12]: PHP: a fractal of bad design
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.12 15:36
Оценка:
>>Переформулируйте ваше возражение так, чтобы в нем не осталось фактических ошибок (если сможете), и мы посмотрим, что от него вообще останется.

Ну так смотрите, смотрите. Целых два гигантских сообщения, пылая гневом, про С++, и ни слова про Java, PHP, Go, D, которые упомянуты в одном с ними сообщении. Я так понимаю, против них возражений никаких?


dmitriid.comGitHubLinkedIn
Re[9]: PHP: a fractal of bad design
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.04.12 06:15
Оценка:
Здравствуйте, SV., Вы писали:

N>>Если Вы видите какой-то иной признак близости к архитектуре именно машин DEC (а не любой тогдашней железяки), я вполне послушаю, но до сих пор такого не встречалось.

SV.>Пишут, что все дело в адресации единичных байтов:

Если это про "support bytes as well as words", то формально такой ответ нельзя принять, потому что
* PDP-7 тоже DEC
* адресация байтами — не новшество в компьютерах вообще, она была уже в S/360, если не раньше
* C не единственный язык, в котором допускалась адресация байтами — уже в Фортране она была (хотя реализована была не открытым текстом — а как адская смесь из типов logical*1 и холлеритовых констант)

С другой стороны, вынужден согласиться, что именно для B/BCPL/C добавление байтовой адресации вызвано пересадкой на PDP-11; не могу найти в 18-битной линии возможности адресации порций меньших, чем слово. Нельзя считать, что PDP-11 тут была необходимой — скорее всего, байтовая адресация победила бы так или иначе, для неё было очень много аргументов "за" и всего лишь надо было индустрии дорасти до неё. Согласен, что она это резко ускорила. (Но и испохабила, за счёт little endian.)
The God is real, unless declared integer.
Re[10]: PHP: a fractal of bad design
От: SV.  
Дата: 17.04.12 07:36
Оценка:
Здравствуйте, netch80, Вы писали:

N>Если это про "support bytes as well as words", то формально такой ответ нельзя принять, потому что

N>* PDP-7 тоже DEC
N>* адресация байтами — не новшество в компьютерах вообще, она была уже в S/360, если не раньше
N>* C не единственный язык, в котором допускалась адресация байтами — уже в Фортране она была (хотя реализована была не открытым текстом — а как адская смесь из типов logical*1 и холлеритовых констант)

Изначально S. написал: "его близость к архитектуре процессоров DEC", не уточняя, каких именно деков, так что я бы особо не придирался. Другое дело, что он не показал, в чем эта близость состояла и сам, видимо, не знал (раз вместо того, чтобы дать пруф на свой тезис затребовал пруф на опровержение — каждый раз, когда такое вижу, тихо фигею). Я, кстати, тоже не знал, но наткнулся на эссе и поделился.
Re[13]: PHP: a fractal of bad design
От: SV.  
Дата: 17.04.12 07:44
Оценка:
Здравствуйте, Mamut, Вы писали:

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


M>Ну так смотрите, смотрите. Целых два гигантских сообщения, пылая гневом, про С++, и ни слова про Java, PHP, Go, D, которые упомянуты в одном с ними сообщении. Я так понимаю, против них возражений никаких?


Я за вас должен ваше возражение править и потом на него отвечать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.