Здравствуйте, anonymous, Вы писали:
N>>>> — javascript — слишком убоговатый и малофункциональный; Г>>>в чем "убоговатый"? какой функциональности не хватает? N>>Работы с файлами и базами данных
A>А какой из выше перечисленных имеет встроенную функциональность работы с БД? Зачем скрипту в браузере уметь работать с файлами?
Никто не говорит о браузерах. Просто был вопрос какой из динамических языков лучше, и я не мог пропустить javascript, т.к. он все-таки является динамическим языком, используемым программистами. Конечно, как динамический язык общего назначения он не подходит, т.к. работает только внутри песочницы браузера, и по умолчанию не имеет доступа к внешним ресурсам.
Здравствуйте, anonymous, Вы писали:
N>> — perl — нечитабельный и способствует к тому чтобы программист писал нечитабельные скрипты; N>> — ruby — позволяет слишком много вольностей, что в итоге опять-таки может привести к нечитабельности;
A>Это проблемы программиста, а не языка.
Если бы все программисты были бы идеальными, тогда даже разговора бы не было. В реальных условиях чем больше язык и стандарты кодирования ограничивают программиста, тем обычно получается лучше, т.к. код прежде всего создается для людей, а не для машин. Конечно, имеются в виду промышленное программирование в командах, писать для себя на один раз — это совершенно другая тема.
N>> — php — даже разговоров быть не может, странно что вообще его кто-то использует;
A>Низкий порог вхождения.
И что? Из этого следует что он лучше? В Basic тоже низкий порог вхождения — это автоматом делает его лучшим?
N>> — python — есть свои недостатки, но несомненный лидер на фоне остальных.
A>Из чего это следует?
Был поставлен вопрос "что лучше?" Я на него ответил — конечно, со своей колокольни, и претендовать ни на что не хочу.
Здравствуйте, Nuald, Вы писали:
N>>>>> — javascript — слишком убоговатый и малофункциональный; Г>>>>в чем "убоговатый"? какой функциональности не хватает? N>>>Работы с файлами и базами данных A>>А какой из выше перечисленных имеет встроенную функциональность работы с БД? Зачем скрипту в браузере уметь работать с файлами? N>Никто не говорит о браузерах. Просто был вопрос какой из динамических языков лучше, и я не мог пропустить javascript, т.к. он все-таки является динамическим языком, используемым программистами. Конечно, как динамический язык общего назначения он не подходит, т.к. работает только внутри песочницы браузера, и по умолчанию не имеет доступа к внешним ресурсам.
В WSH используется JavaScript, а это далеко не браузер. Да и в браузерах через COM JavaScript умеет работать и с БД, и с ФС.
Здравствуйте, Nuald, Вы писали:
N>>> — perl — нечитабельный и способствует к тому чтобы программист писал нечитабельные скрипты; N>>> — ruby — позволяет слишком много вольностей, что в итоге опять-таки может привести к нечитабельности; A>>Это проблемы программиста, а не языка. N>Если бы все программисты были бы идеальными, тогда даже разговора бы не было. В реальных условиях чем больше язык и стандарты кодирования ограничивают программиста, тем обычно получается лучше, т.к. код прежде всего создается для людей, а не для машин. Конечно, имеются в виду промышленное программирование в командах, писать для себя на один раз — это совершенно другая тема.
(:
[r'% r',][~0] % {(): '''^''' uR'|' in 2**2*__name__[::-8//(lambda _:~_)(3 or 2)]*2}<2>3j,(`3`) is ([])
Да-да, это Python. Вердикт: "нечитабельный и способствует тому, чтобы программист писал нечитабельные скрипты".
N>>> — php — даже разговоров быть не может, странно что вообще его кто-то использует; A>>Низкий порог вхождения. N>И что? Из этого следует что он лучше? В Basic тоже низкий порог вхождения — это автоматом делает его лучшим?
Здравствуйте, VoidEx, Вы писали:
N>>> — perl — нечитабельный и способствует к тому чтобы программист писал нечитабельные скрипты; N>>> — ruby — позволяет слишком много вольностей, что в итоге опять-таки может привести к нечитабельности; A>>Это проблемы программиста, а не языка. VE>Если нечитабельность и вольность отрицательно сказываются на популярности языка, то это именно его проблема, а не тех, кто его не использует.
Всё сложное непопулярно, вот PHP простой, рекомендую.
Здравствуйте, anonymous, Вы писали:
N>>Никто не говорит о браузерах. Просто был вопрос какой из динамических языков лучше, и я не мог пропустить javascript, т.к. он все-таки является динамическим языком, используемым программистами. Конечно, как динамический язык общего назначения он не подходит, т.к. работает только внутри песочницы браузера, и по умолчанию не имеет доступа к внешним ресурсам.
A>В WSH используется JavaScript, а это далеко не браузер. Да и в браузерах через COM JavaScript умеет работать и с БД, и с ФС.
Угумс, знаю, поэтому и написал, что по умолчанию (выделил жирным). А вы пробовали отлаживать WSH? Да я бы и не сказал, что с COM удобно работать, особенно если нужны нетривиальные вещи. И вообще, мне WSH как-то побоку, а всем его использующим, если уж застряли на винде, мог бы только посоветать юзать powershell — в принципе, мне кажется, и в Microsoft так думают, иначе бы не делали новый скриптовый язык.
A>[r'% r',][~0] % {(): '''^''' uR'|' in 2**2*__name__[::-8//(lambda _:~_)(3 or 2)]*2}<2>3j,(`3`) is ([])
A>
A>Да-да, это Python. Вердикт: "нечитабельный и способствует тому, чтобы программист писал нечитабельные скрипты".
Я и не говорил, что он идеален. А нечитабельный код при старании можно написать на любом языке программирования. Ну и конечно, не буду говорить, что вышеприведенный код высосан из пальца и смысла не имеет, и такой код нормальные программисты не пишут — ибо это фактически объявление кортежа (False, False). А вот для того же Perl-а, конструкции c использование $_, @_, <>, \$ и т.п. вполне в порядке вещей, и без бутылки чая иногда в коде не разберешься (хотя и не буду спорить, что иногда пишут и достойный код, но это обычно исключение).
N>>>> — php — даже разговоров быть не может, странно что вообще его кто-то использует; A>>>Низкий порог вхождения. N>>И что? Из этого следует что он лучше? В Basic тоже низкий порог вхождения — это автоматом делает его лучшим?
A>Это был ответ на вопрос о его популярности.
А, ну это да. Это же и объясняет популярность бейсика, не лучшего, но очень популярного ЯП.
Здравствуйте, anonymous, Вы писали:
VE>>Если нечитабельность и вольность отрицательно сказываются на популярности языка, то это именно его проблема, а не тех, кто его не использует.
A>Всё сложное непопулярно, вот PHP простой, рекомендую.
Python сложный?? Ой, умоляю — не надо смешить мои тапочки
Если не углублять в метапрограммирование, всякого рода list comprehensions, декораторы и остальные фичи, то программировать на нем легко и просто (если конечно, привыкнешь к отступам).
Вот то, что он не такой популярный — это другой вопрос. ИМХО, вижу две основные причины:
— нет хорошего встроенного GUI-фреймворка (tk все-таки не то);
— нет настолько же простой схемы деплоймента на веб-серверах как в том же PHP.
Но с другой стороны, только PHP имеет такую простую схему деплоймента, за что его и обожают всякого рода хакеры — залил через дырку на сайте какой-нить шелл и хакаешь себе дальше сайт в свое удовольствие Так что за удобным деплойментом скрываются всякого рода security vulnerabilities.
А про GUI — это вообще отдельная песня. Я, например, использую у себя PyGtk, и уже запарился собираться инсталляки под винду — Gtk за собой столько всего тянет Потом может посмотрю на PyQT, но пока нет надобности.
A>>[r'% r',][~0] % {(): '''^''' uR'|' in 2**2*__name__[::-8//(lambda _:~_)(3 or 2)]*2}<2>3j,(`3`) is ([])
A>>
A>>Да-да, это Python. Вердикт: "нечитабельный и способствует тому, чтобы программист писал нечитабельные скрипты". N>Я и не говорил, что он идеален. А нечитабельный код при старании можно написать на любом языке программирования. Ну и конечно, не буду говорить, что вышеприведенный код высосан из пальца и смысла не имеет, и такой код нормальные программисты не пишут — ибо это фактически объявление кортежа (False, False).
Вообще да, код придуман специально. Но ведь можно писать так, а можно так не писать. С Perl то же самое.
N>А вот для того же Perl-а, конструкции c использование $_, @_, <>, \$ и т.п. вполне в порядке вещей, и без бутылки чая иногда в коде не разберешься (хотя и не буду спорить, что иногда пишут и достойный код, но это обычно исключение).
Perl нужно уметь готовить, и употреблять его тоже нужно уметь. Трудности чтения говорят о том, что недостаточно практики, а не о том, что язык нечитаемый. (Если конечно не касаться кода, специально сделанного нечитаемым.)
Перечисленные выше конструкции скорее можно отнести к синтаксическому сахару. Трудность их чтения проистекает исключительно из отсутствия аналогов в других распростанённых языках.
Здравствуйте, Nuald, Вы писали:
N>>>Никто не говорит о браузерах. Просто был вопрос какой из динамических языков лучше, и я не мог пропустить javascript, т.к. он все-таки является динамическим языком, используемым программистами. Конечно, как динамический язык общего назначения он не подходит, т.к. работает только внутри песочницы браузера, и по умолчанию не имеет доступа к внешним ресурсам. A>>В WSH используется JavaScript, а это далеко не браузер. Да и в браузерах через COM JavaScript умеет работать и с БД, и с ФС. N>Угумс, знаю, поэтому и написал, что по умолчанию (выделил жирным).
А по умолчанию в браузере и не нужна ФС, и БД не нужна. А там, где нужны, все необходимые интерфейсы присутствуют.
N>А вы пробовали отлаживать WSH? Да я бы и не сказал, что с COM удобно работать, особенно если нужны нетривиальные вещи. И вообще, мне WSH как-то побоку, а всем его использующим, если уж застряли на винде, мог бы только посоветать юзать powershell — в принципе, мне кажется, и в Microsoft так думают, иначе бы не делали новый скриптовый язык.
Да, я на WSH даже утилиты писал. Ничего так, немного практики и отладка идёт.
Здравствуйте, anonymous, Вы писали:
A>А по умолчанию в браузере и не нужна ФС, и БД не нужна. А там, где нужны, все необходимые интерфейсы присутствуют.
Блин, я не понимаю — вы пытаетесь защитить javascript? Но ведь и так понятно, что как язык программирования он достаточно слаб. Простейший пример — реализация классов. Только не надо говорить, что классы не нужны — мало ли какие случаи бывают. Когда под боком есть достаточно мощные и удобные ЯП, зачем использовать более слабые альтернативы?
Здравствуйте, Nuald, Вы писали:
A>>А по умолчанию в браузере и не нужна ФС, и БД не нужна. А там, где нужны, все необходимые интерфейсы присутствуют. N>Блин, я не понимаю — вы пытаетесь защитить javascript? Но ведь и так понятно, что как язык программирования он достаточно слаб. Простейший пример — реализация классов. Только не надо говорить, что классы не нужны — мало ли какие случаи бывают. Когда под боком есть достаточно мощные и удобные ЯП, зачем использовать более слабые альтернативы?
В JavaScript нет классов вообще, это прототип-ориентированный язык, а не класс-ориентированный. Видимо, именно об этом Вас спрашивал Гест в сообщении выше. Вообще, понимание используемой в JavaScript парадигмы ООП — основы понимания этого языка. Отсюда можно сделать вывод, что с JavaScript Вы знакомы только понаслышке и, в общем-то, не можете судить о его слабых и сильных сторонах.
Здравствуйте, Nuald, Вы писали:
VE>>>Если нечитабельность и вольность отрицательно сказываются на популярности языка, то это именно его проблема, а не тех, кто его не использует. A>>Всё сложное непопулярно, вот PHP простой, рекомендую. N>Python сложный?? Ой, умоляю — не надо смешить мои тапочки
Вообще мы Perl обсуждали.
N>Если не углублять в метапрограммирование, всякого рода list comprehensions, декораторы и остальные фичи, то программировать на нем легко и просто (если конечно, привыкнешь к отступам).
Если не использовать регулярные выражения, встроенные переменные и прочие фичи, то Perl вполне читаемый и не сложный. Имеет ли смысл тогда сравнивать языки без этих фич?
Здравствуйте, anonymous, Вы писали:
A>Perl нужно уметь готовить, и употреблять его тоже нужно уметь. Трудности чтения говорят о том, что недостаточно практики, а не о том, что язык нечитаемый. (Если конечно не касаться кода, специально сделанного нечитаемым.)
Вот часть моего кода, который натравливает Perl::Critic на все скрипты в каталогах и подкаталогах (соотвественно, сам скрипт тоже проходит валидацию Perl::Critic, т.е. считается анализатором достаточно качественным):
my @folders;
foreach (@both) {
next if /^(\.|\.\.)$/;
if (-d) {
push(@folders, $_);
} else {
push(@all, $_) if /.+\.(pl|cgi|pm)$/;
}
}
Вроде бы все просто, и нормально читается. Но если писать (или читать) на Perl-е достаточно редко, то сразу в этот код и не вникнуть. А ведь это еще хороший пример. И такое я вижу сплошь и рядом — Perl способствует к тому, что код получается не особо многословный, и надо иметь большую силу духа, чтобы заставить себя не пользоваться возможностями по умолчанию.
A>Перечисленные выше конструкции скорее можно отнести к синтаксическому сахару. Трудность их чтения проистекает исключительно из отсутствия аналогов в других распростанённых языках.
Не спорю, но нужны ли такие аналоги большинству? Сильно сомневаюсь, что для обычного программиста читать конструкцию if (-d) будет проще чем if (os.path.isdir(directory_name)) — особенно если ты не гуру перла (а во втором случае даже не надо знать питон, чтобы догадаться о чем речь).
Здравствуйте, anonymous, Вы писали:
N>>Если не углублять в метапрограммирование, всякого рода list comprehensions, декораторы и остальные фичи, то программировать на нем легко и просто (если конечно, привыкнешь к отступам).
A>Если не использовать регулярные выражения, встроенные переменные и прочие фичи, то Perl вполне читаемый и не сложный. Имеет ли смысл тогда сравнивать языки без этих фич?
А никто и не сравнивает. Я имел в виду, что Python достаточно простой, и можно его использовать даже не зная всяких мудреных фич. А в Perl-е даже функцию с параметрами нельзя использовать не зная о существовании @_.
Здравствуйте, Nuald, Вы писали:
N>>>Если не углублять в метапрограммирование, всякого рода list comprehensions, декораторы и остальные фичи, то программировать на нем легко и просто (если конечно, привыкнешь к отступам). A>>Если не использовать регулярные выражения, встроенные переменные и прочие фичи, то Perl вполне читаемый и не сложный. Имеет ли смысл тогда сравнивать языки без этих фич? N>А никто и не сравнивает. Я имел в виду, что Python достаточно простой, и можно его использовать даже не зная всяких мудреных фич. А в Perl-е даже функцию с параметрами нельзя использовать не зная о существовании @_.
Ну да, а в Python нельзя функцию с параметрами использовать, не зная, что такое аргументы. Можно ли из этого сделать вывод, что плохо всё непривычное Вам?
Здравствуйте, anonymous, Вы писали:
A>В JavaScript нет классов вообще, это прототип-ориентированный язык, а не класс-ориентированный. Видимо, именно об этом Вас спрашивал Гест в сообщении выше. Вообще, понимание используемой в JavaScript парадигмы ООП — основы понимания этого языка. Отсюда можно сделать вывод, что с JavaScript Вы знакомы только понаслышке и, в общем-то, не можете судить о его слабых и сильных сторонах.
Ну если использование во всю jQuery можно назвать "знакомством понаслышке", тогда я умываю руки. И из того, что javascript является прототип-ориентированным языком, автоматически не следует, что он чем-то лучше других. Для эстетов — может да, для мейнстрима — скорее нет. Конечно, есть всякие фреймворки, типа того же jQuery, которые облегчают написание скриптов, но ведь не зря Google разработала GWT — значит не все так гладко со яваскриптом, если им проще писать на чистой Java, а потом транслировать код в JS.
Здравствуйте, anonymous, Вы писали:
A>Ну да, а в Python нельзя функцию с параметрами использовать, не зная, что такое аргументы. Можно ли из этого сделать вывод, что плохо всё непривычное Вам?
В принципе да — большую часть времени код читается, а не пишится, и если мне синтаксис непривычен, или не хочется держать в голове какие умолчания предполагает данный ЯП, то я автоматом считаю такой код малочитабельным. Вот такой я старый маразматик И думаю, со мной согласятся многие team leader-ы или PM-ы, которым приходится делать codereview большого количества кода. Что ни говори, питоновский синтаксис ближе к естественному языку, чем того же Perl-а. И опять-таки не буду утверждать, что Python — серебряная пуля, в нем много недостатков, просто из того разнообразия, с которым я работал, он мне большего всего по душе.
Здравствуйте, anonymous, Вы писали:
A>Всё сложное непопулярно, вот PHP простой, рекомендую.
Очевидно, сложность является недостатком. Хотя я не согласен, что сложное непопулярно. От PHP воздержусь, спасибо.
Здравствуйте, Nuald, Вы писали:
N>Вроде бы все просто, и нормально читается. Но если писать (или читать) на Perl-е достаточно редко, то сразу в этот код и не вникнуть. А ведь это еще хороший пример.
Если долго не писать на любом языке, потом трудно его читать.
N>И такое я вижу сплошь и рядом — Perl способствует к тому, что код получается не особо многословный, и надо иметь большую силу духа, чтобы заставить себя не пользоваться возможностями по умолчанию.
Ну вот мы и пришли к тому, что всё зависит от программиста, а не от языка.
A>>Перечисленные выше конструкции скорее можно отнести к синтаксическому сахару. Трудность их чтения проистекает исключительно из отсутствия аналогов в других распростанённых языках. N>Не спорю, но нужны ли такие аналоги большинству? Сильно сомневаюсь, что для обычного программиста читать конструкцию if (-d) будет проще чем if (os.path.isdir(directory_name)) — особенно если ты не гуру перла (а во втором случае даже не надо знать питон, чтобы догадаться о чем речь).
Большинство вообще программировать не умеет.
Про -X достаточно знать, что эти операторы предназначены для тестирования файлов, а то, что "d" значит "directory", по-моему достаточно очевидно. Но это опять же синтаксический сахар. В Python, к примеру, вообще нет подобного, os.path.isdir это уже библиотеки, для Perl тоже есть библиотека с "простым" синтаксисом.