Здравствуйте, Nuald, Вы писали:
A>>В JavaScript нет классов вообще, это прототип-ориентированный язык, а не класс-ориентированный. Видимо, именно об этом Вас спрашивал Гест в сообщении выше. Вообще, понимание используемой в JavaScript парадигмы ООП — основы понимания этого языка. Отсюда можно сделать вывод, что с JavaScript Вы знакомы только понаслышке и, в общем-то, не можете судить о его слабых и сильных сторонах. N>Ну если использование во всю jQuery можно назвать "знакомством понаслышке", тогда я умываю руки.
О, это всё равно что сказать, я использовал Django и теперь в совершенстве владею Python. Написать $('block').show() не значит понять как устроен язык.
N>И из того, что javascript является прототип-ориентированным языком, автоматически не следует, что он чем-то лучше других.
Здравствуйте, Nuald, Вы писали:
N>Что ни говори, питоновский синтаксис ближе к естественному языку, чем того же Perl-а.
Вы удивитесь, но Perl был создан профессиональным лингвистом. И сложность его синтаксиса как раз и проистекает из того, что он более похож на естественные языки, чем другие языки программирования.
Здравствуйте, Nuald, Вы писали:
N>Python сложный?? Ой, умоляю — не надо смешить мои тапочки N>Если не углублять в метапрограммирование, всякого рода list comprehensions, декораторы и остальные фичи, то программировать на нем легко и просто (если конечно, привыкнешь к отступам). N>Вот то, что он не такой популярный — это другой вопрос. ИМХО, вижу две основные причины:
Меня вот именно отступы больше всего отпугнули от изучения Питона. Подозреваю, что я не один такой, так что это может быть одна из основных причин его относительно небольшой популярности. В этом смысле Руби заметно привлекательней, но у него есть большой недостаток — фиговые реализации (скорость, память).
Здравствуйте, Nuald, Вы писали:
N>Здравствуйте, Гест, Вы писали:
N>>> — ruby — позволяет слишком много вольностей, что в итоге опять-таки может привести к нечитабельности; Г>>много кода на руби видели?
N>Это вообще к чему? Код на руби конечно я видел, и плохой и хороший, как и на всех языках программирования. Я говорю про то, что руби позволяет делать довольно-таки опасные вещи, и некоторые "эстеты" от программирования могут так исковеркать встроенный синтаксис, переопределив все что можно, что потом код станет невозможно читать.
Это к тому, что краткое заявление в контексте "ruby — позволяет слишком много вольностей, что в итоге опять-таки может привести к нечитабельности" ===> "python — есть свои недостатки, но несомненный лидер на фоне остальных" может претендовать на обоснование личного выбора (да и то, достаточно слабенькое), но не на более-менее общее суждение. Например, мне (основной инструмент как раз Руби) открытые классы кажутся одной из очень полезных и приятных фич. И тем не менее, я не готов заявить "язык ХХХ — нет открытых классов — в топку".
Вы сейчас, конечно же, станете ссылаться на фразу "выскажу свою скромную точку зрения", но она очевидно не оправдывает поверхностность вашего анализа.
Я в данном случае защищаю не Руби или JS, а более внимательное отношение к анализу и бережное — к фактам, простите уж за занудство.
Здравствуйте, Nuald, Вы писали:
A>>Perl нужно уметь готовить, и употреблять его тоже нужно уметь. Трудности чтения говорят о том, что недостаточно практики, а не о том, что язык нечитаемый. (Если конечно не касаться кода, специально сделанного нечитаемым.)
N>Вот часть моего кода, который натравливает Perl::Critic на все скрипты в каталогах и подкаталогах (соотвественно, сам скрипт тоже проходит валидацию Perl::Critic, т.е. считается анализатором достаточно качественным):
N>
N>my @folders;
N>foreach (@both) {
N> next if /^(\.|\.\.)$/;
N> if (-d) {
N> push(@folders, $_);
N> } else {
N> push(@all, $_) if /.+\.(pl|cgi|pm)$/;
N> }
N>}
N>
N>Вроде бы все просто, и нормально читается. Но если писать (или читать) на Perl-е достаточно редко, то сразу в этот код и не вникнуть. А ведь это еще хороший пример. И такое я вижу сплошь и рядом — Perl способствует к тому, что код получается не особо многословный, и надо иметь большую силу духа, чтобы заставить себя не пользоваться возможностями по умолчанию.
Это, в общем-то, достаточно специфический аргумент. Честно говоря, из более-менее распространенных языков я не могу читать Haskell и с ОГРОМНЫМ трудом читаю Python — в основном, из-за особенностей реализации ООП — которую я примерно представляю, но приличную ментальную модель составить не могу. В этом смысле, несколько специфичное именование переменных/аргументов из Perl для "забарывания" требует лишь справочника — в смысле "ментальной модели" здесь никаких проблем нету.
Здравствуйте, anonymous, Вы писали:
A>Вы удивитесь, но Perl был создан профессиональным лингвистом. И сложность его синтаксиса как раз и проистекает из того, что он более похож на естественные языки, чем другие языки программирования.
Регулярная грамматика регексов больше похожа на естественные языки, нежели LL/LR грамматики?
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
A>>Вы удивитесь, но Perl был создан профессиональным лингвистом. И сложность его синтаксиса как раз и проистекает из того, что он более похож на естественные языки, чем другие языки программирования. AVK>Регулярная грамматика регексов больше похожа на естественные языки, нежели LL/LR грамматики?
Регулярные выражения придумали до Perl, да и в Perl реализация от Генри Спенсера, а не от Ларри Уолла. Так что они вошли в язык как есть. А под похожестью на естественный язык понимались такие вещи, как постфиксные варианты условных операторов, например.
Здравствуйте, Гест, Вы писали:
Г>Вы сейчас, конечно же, станете ссылаться на фразу "выскажу свою скромную точку зрения", но она очевидно не оправдывает поверхностность вашего анализа.
Г>Я в данном случае защищаю не Руби или JS, а более внимательное отношение к анализу и бережное — к фактам, простите уж за занудство.
Когда задаются такого рода провакационные вопросы ("что лучше?"), анализ фактов не имеет такого уж решающего значения, потому что каждый выбирает все-таки больше по своему субъективному суждению, для кого-то важно только какое-то собственное подмножество фактов, а не вся их совокупность. Например, как бы с пеной у рта мне не доказывали преимущество Win2k3 перед RHEL, мне будет абсолютно фиолетово, т.к. для меня главное — удобство развертывания и настройки, а перспектива вручную качать софт с инета и кликать какие-то галочки меня совершенно не устраивает.
А всякого рода глубокие анализы фактов, вы уж извините, я оставлю академической среде и бездельникам. Мне нужно работать здесь и сейчас, и выбирать инструмент не по совокупному анализу, а по преимуществам в данной конкретной задаче:
— если нужно писать enterprise-level решение, выбираю Java (потому что есть богатые библиотеки и статическая типизация);
— если нужно склепать сайт небольшого размера — Django (потому что есть автоматическая админка и хорошая ORM-модель);
— если написать скрипт — Python (потому что он есть практически везде).
Конечно, есть и другие факторы, влияющие на выбор, но не думаю, что это особенно интересно. Возможно, в будущем мнение изменится, возможно я найду что-то уникальное в Ruby, что полностью перейду на него, но пока не вижу никаких причин этого делать.
Здравствуйте, D. Mon, Вы писали:
DM>Меня вот именно отступы больше всего отпугнули от изучения Питона. Подозреваю, что я не один такой, так что это может быть одна из основных причин
Да что вы все так боитесь отступов?
В любом нормальной уважающей себя компании есть стандарты кодирования, которые так или иначе тоже декларируют всякого рода отступы. В любом случае их приходится соблюдать, так в чем проблема соблюдать их в языке, который жестко заставляет это делать, а не через следование стандартам?
Здравствуйте, AndrewVK, Вы писали:
N>>Gtk за собой столько всего тянет
AVK>Сколько? Под винду, емнип, десяток dll'ек, не требующих специальной инсталляции.
Не только — надо еще тянуть локализацию, темы и какие-то конфиги. Если просто положить dll-ки около приложения, то оно не будет выглядеть кошерно, и не будет полностью локализировано.
Здравствуйте, Nuald, Вы писали:
N>Да что вы все так боитесь отступов?
Это чисто психологический момент, какая-то подсознательная боязнь, что незаметно для глаза перепутаются пробелы и табы, в результате я буду видеть одно, а компилятор — другое.
Здравствуйте, D. Mon, Вы писали:
DM>Это чисто психологический момент, какая-то подсознательная боязнь, что незаметно для глаза перепутаются пробелы и табы, в результате я буду видеть одно, а компилятор — другое.
Если соблюдать правило не использовать табы, то проблем от оступов нет. Во всяком случае у меня за несколько лет плотной работы с питоном было всего один раз и именно из-за табов.
Здравствуйте, Nuald, Вы писали:
Г>>Вы сейчас, конечно же, станете ссылаться на фразу "выскажу свою скромную точку зрения", но она очевидно не оправдывает поверхностность вашего анализа.
Г>>Я в данном случае защищаю не Руби или JS, а более внимательное отношение к анализу и бережное — к фактам, простите уж за занудство.
N>Когда задаются такого рода провакационные вопросы ("что лучше?"), анализ фактов не имеет такого уж решающего значения, потому что каждый выбирает все-таки больше по своему субъективному суждению, для кого-то важно только какое-то собственное подмножество фактов, а не вся их совокупность. Например, как бы с пеной у рта мне не доказывали преимущество Win2k3 перед RHEL, мне будет абсолютно фиолетово, т.к. для меня главное — удобство развертывания и настройки, а перспектива вручную качать софт с инета и кликать какие-то галочки меня совершенно не устраивает.
Еще раз — я не убеждаю "попробовать Ruby". Я просто не люблю "случайных аргументов" в дискуссии (т.е. когда все альтернативы описываются одной строчкой, "однозначно дающей понять все недостатки"). А вы занимались именно этим — ваш пост с "описанием всех языков" более похож на неудачное тролление (хотя в последующих постах вы показали себя существенно лучше разбирающимся в предложенной теме).
Ну а если конкретно про Ruby vs. Python — "за" Руби стройное ООП и довольно широкие функциональные возможности (приводящие к "естественному" метапрограммированию); "против" — ужасы реализации. По категории "против" Питон точно лучше; а что там с категорией "за" — мне кажется, что Питон таки проигрывает. Если продемонстрируете обратное, это уже будет весомым вкладом в дискуссию.
ЗЫ: а вот аргументы типа "в Питоне отступы, ыыыы!" и "в Руби у программиста слишком опасные возможности, ыыы!" мне кажутся ващебессмысленными. И непригодными ни для чего, даже для тролления.
Здравствуйте, anonymous, Вы писали:
A>Регулярные выражения придумали до Perl
Пофик. Главное — автор Перла выбрал их в качестве ключевой особенности языка, и ряд синтаксических конструкций Перла явно испирирован регексами. Наконец, имхо, наибольшие притензии к синтаксису вызывают именно регескы и регексоподобные конструкции.
Вобщем, ИМХО, Перл уверенно держит серебро (золото за брейнфаком) по неестественности синтаксиса.
... << RSDN@Home 1.2.0 alpha 4 rev. 1132 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
A>>Регулярные выражения придумали до Perl AVK>Пофик. Главное — автор Перла выбрал их в качестве ключевой особенности языка,
Так язык был предназначен изначально для обработки текстовых данных.
AVK>и ряд синтаксических конструкций Перла явно испирирован регексами.
Каких?
AVK>Наконец, имхо, наибольшие притензии к синтаксису вызывают именно регескы и регексоподобные конструкции.
Какие?
AVK>Вобщем, ИМХО, Перл уверенно держит серебро (золото за брейнфаком) по неестественности синтаксиса.
Почему не золото? Синтаксис Perl даже с помощью БНФ нельзя описать.
Здравствуйте, anonymous, Вы писали:
A>Здравствуйте, Сергей, Вы писали:
A>>>Вы удивитесь, но Perl был создан профессиональным лингвистом. С>>Я удивился, да. Пруфлинк в студию.
A>Ларри Уолл.
Вроде там написано, что он лингвист по образованию. Плюс нигде не написано, что он эти навыки при создании как-то использовал. Так что это так, просто факт из жизни, к перлу не имеющий скорее всего никакого отношения.