Перейти к содержанию

Perl vs PHP


Рекомендуемые сообщения

Maestro писал(а) Срд, 19 Апреля 2006 13:09

попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож....

А сравнение $a = $a + 1 и a := a + 1 - это и есть сравнение синтаксиса. Совершенно не пойму, чем вторая запись лучше первой Sad

Цитата:

использование "=" нам вбивается с первого класса и означает именно равенство двух величин. знак "==" взят с неба и на мой взгляд не очень удачно. он к примеру может означать "стопудово равно" Smile ну или говоря математическим языком "тождественно равно"

А знак := существовал вечно Wink

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

Цитата:

Цитата:

Удобно сразу видеть, строки ли сравниваются или численные значения.

это чем же удобно? в голове надо держать в 2 раза больше операций. давайте для каждого типа переменных введем свои операции сравнения. во что тогда превратится программирование?

Без контекста: if a = b....

Что такое a и b? Их можно конкатенировать? А умножать? Чему будет равен, например, остаток от деления a на b, если они окажутся строками?

Цитата:

Цитата:

А Вы можете мне без контекста сказать, что такое в Паскале a and b?

если вас так это интересует можно дизасемблировать и посмотреть

НО МЫ ГОВОРИМ О СИНТАКСИСЕ а не о том во что этот синтаксис компилируется. о качестве скомпилированного кода я не спорю...

Причем тут качество кода? Я говорю о том, что в Паскале принципиально разные операции записываются одинаково. Это хорошо?

Цитата:

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

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

Ссылка на комментарий
Поделиться на другие сайты

http://home.perm.ru/~strannik/st_txt_prog_02.html

Цитата:

попрошу заметить мы сравниваем синтаксис языков а не сами языки, а синтаксис и си пхп и перл очень похож....

синтаксис php и perl, далеко не так похож, как это кажется...

с такой же долей убеждения, можно сказать, что у pascal и c

синтаксис похож.

Цитата:

...извините, но это бред что тут упрощать? использование "=" нам вбивается с первого класса и означает именно равенство двух величин. знак "==" взят с неба и на мой взгляд не очень удачно. он к примеру может означать "стопудово равно" ну или говоря математическим языком "тождественно равно"

Верно! знак равенства, тут и используется как знак равенства.

$a = $b + 1 тоже, что и x = y + 1

в данном случае, мы не думаем, равно ли оно... мы знаем, что

одно равно другому, а касательно операций сравнения "==" - это

и есть "стопудово равно"

if ( $a == $B) {

если $a стопудово равно $b то

и в данном контексте, подразумевается абсолютное равенство, в том

числе, и типов переменных. Если Вам надо сравнить скаляр и строку

то, воспользуйтесь оператором "eq". "==" и "eq" - это не синонимы

Цитата:

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

Ну если не смотреть на такие мелочи то, о "==" можно вообще

закрыть тему и синтаксис у сей и сказать, что паскаля одинаковый.

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

Ссылка на комментарий
Поделиться на другие сайты

синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ

Ссылка на комментарий
Поделиться на другие сайты

Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис?

Ссылка на комментарий
Поделиться на другие сайты

Byte писал(а) Срд, 19 Апреля 2006 15:58

синтаксис того или иного языка - компромис между удобством написания программы программистом и сложностью компилятора исходя из предназначения языка. ИМХО, самая "золотая серидина" достигнута в С благодаря потому, что это УНИВЕРСАЛЬНЫЙ язык средего уровня разработанный ПРАКТИКАМИ

Не, "уневерсальный" язык был PL/1. И чем это кончилось мы знаем.

Ссылка на комментарий
Поделиться на другие сайты

Maestro писал(а) Срд, 19 Апреля 2006 14:27

и тем не менее именно паскаль признан наиболее приемлимым языком для обучения студентов программированию ИМЕЕННО ИЗ-ЗА ПРОСТОТЫ СИНТАКСИСА и именно поэтому он перерос в delphi и обрел бешеную популярность особенно среди разработчиков баз данных

Поправочка - не из-за простоты синтаксиса, а согласно образовательных планов и инерции старых программистов Smile

А бешеную популярность Паскаль имеет исключительно на просторах бывшего Союза. Если у Вас есть примеры широко используемых программных продуктов не нашего производства, написанных на Паскале, будьте добры назвать их Smile

Цитата:

на остальное отвечать не буду, ибо все равно исконным "сишникам" ничего не докажешь Smile

а программы на си,пхп и перл от этого все равно более читабельными не станут

Конечно не докажете... Против здравого смысла не попрешь Wink

Ссылка на комментарий
Поделиться на другие сайты

Maestro писал(а) Срд, 19 Апреля 2006 14:34

if ($str_name = "vasya")

Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно Smile

Цитата:

это реально приводит к ошибкам в программе, в отличие от безобидной ";"

Присваивание и равенство запоминается довольно просто, а когда пытаешься полчаса разобраться, почему

if a = b then

something;

работает, а

if a = b then

something;

else

something_else;

....

вызывает ошибку компиляции - это жутко раздражает и далеко не безобидно.

Ссылка на комментарий
Поделиться на другие сайты

Такая сишная конструкция:

if (var = something())
{
   ...
}
очень удобна и полезна - одновременно и в var пишется возвращаемое значение, и проверяется. Часто используется, так что это отнюдь не бессмысленно.
Ссылка на комментарий
Поделиться на другие сайты

Maestro писал(а) Срд, 19 Апреля 2006 14:54

вы просто пытаетесь оправдать нечитабельность текса программы уместностью его(синтаксиса) применения

Не пытаюсь. Единственно потому не пытаюсь, что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

Цитата:

а воторых весь круг известных мне програмистов на наших нефтяных предприятиях для разработки под oracle использует именно delphi. каких то масштабных продуктов я действительно не знаю...но примеры разработки крупного проекта под заказ мне известны. как вам к примеру база данных пенсионного фонда?

Никак. Я же просил привести примеры софта НЕ НАШЕГО ПРОИЗВОДСТВА. Это означает - созданных за пределами бывших соцстран.

Цитата:

Цитата:

Никакой нормальный программист такого не напишет. НИКОГДА. Такой конструкцией Вы присваиваете переменной значение ВАСЯ и тут же проверяете ее на истинность. Это бессмысленно

заметте это бессмысленно в рамках си

во всех других языках программирования эта фраза имеет общепринятый смысл

Это бессмысленно в

- Си всех стандартов, Плюсах и прочих наследниках Си

- Перле

- ПХП

Разнообразных скриптовых языках, копирующих синтаксис Си

Какие Вы имеете в виду все другие языки программирования? Общеупотребительные, заметьте, всяческие Модулы, Обероны и т.д. - это экзотика.

2 EL

Именно var = something(), но никак не var = "fixed_string"

Ссылка на комментарий
Поделиться на другие сайты

Sleeping Daemon писал(а) Срд, 19 Апреля 2006 12:59

Hans R. Steiner писал(а) Срд, 19 Апреля 2006 15:42

На самом деле, оно примерно так и есть... может я и ошибаюсь, но

все это называется "языки Вирта"... кажется, Николус Вирт и

положил начало этому синтаксису и кажется, дело начиналось с сей,

в шестидесятых годах...

А Вы не могли бы вспомнить поподробнее, когда это Вирт придумал этот синтаксис?

Да... сорри... наврал... перечитал про AT&T UNIX, Вирта там не было Smile

Ссылка на комментарий
Поделиться на другие сайты

Maestro писал(а) Срд, 19 Апреля 2006 17:46

Цитата:

что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

вам самим не смешно?

и что у вас в тексте программ на паскале вызывает затруднения?

точки с запятой?

Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе):

- избыточное количество текста (begin end в сравнении с {})

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

- неоднозначность многих операторов (or and ...)

- крайне неудобный контроль типов данных

- примитивная система ввода-вывода

- неудобная работа с памятью, в частностью, с указателями

Пока достаточно?

Ссылка на комментарий
Поделиться на другие сайты

С точки зрения оценки синтаксиса достаточно вспомнить шаблоны в С++, чтобы паскалист ужаснулся =)) Впрочем, Паскаль вообще не предлагает ничего подобного, насколько я знаю. Или уже предлагает?

Ссылка на комментарий
Поделиться на другие сайты

Maestro писал(а) Чтв, 20 Апреля 2006 06:43

мне например до сих пор в падлу ставить перед каждой переменной значек "$"(напоминает чебурашку в бейсике)

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

ЗЫ. А удачно получилось, что в конце концов сошлись на том, что самым лучшим для человека является то, что он досконально знает и чем ему удобнее пользоваться, пусть даже речь идет о синтаксисе Smile

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

EL[michlen

писал(а) Чтв, 20 Апреля 2006 21:30]Я тут натолкнулся на перечисление неочевидных (для новичка) возможных проблем, связанных с синтаксисом языка С. Не знаю, есть ли подобная статья для Паскаля, но для С там неплохо и довольно полно все сказано. Статья тут: http://www.visi.com/~pmk/evolved.html

Куда-то не туда ссылка ведет Hm

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

EvilShadow писал(а) Wed, 19 April 2006 19:18

Maestro писал(а) Срд, 19 Апреля 2006 17:46

Цитата:

что программы на Си нечитабельны только для любителей Паскаля. Уверяю Вас - для меня программы на Паскале так же нечитабельны, как для Вас - программы на Си.

вам самим не смешно?

и что у вас в тексте программ на паскале вызывает затруднения?

точки с запятой?

Мне смешно, что синтаксис Си вызывает у Вас затруднения. Что же касается меня, то в Паскале у меня вызывают затруднение (в языке вообще, а не только в синтаксисе):

- избыточное количество текста (begin end в сравнении с {})

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

- неоднозначность многих операторов (or and ...)

- крайне неудобный контроль типов данных

- примитивная система ввода-вывода

- неудобная работа с памятью, в частностью, с указателями

Пока достаточно?

Применительно к микроконтроллерам ,скажу тоже самое ,было несколько паскалевых компилей ,даже с оптимизацией -кОшмар !!!

А в системе контроля на мех.повреждения (псевдоинтеллектная система ) в качестве языка для задатчика путей и обработчика полученных данных (!) выбралИ все-таки Сишку (хотя на фирме работает 98% дельфистов)

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

обращу внимание на два неплохих места где приведен анализ сабжа:

http://tnx.nl/php

и

http://shootout.alioth.debian.org/debian/benchmark.php?test= all&lang=perl&lang2=php

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...