про руби (программистское)
Apr. 8th, 2007 12:20 amЯ хотел бы написать, что проблема, которая стоит перед языком Руби и его сообществом - преодолеть засилие радостных идиотов, fanboys, которые наполнили собой и засоряют сообщество. Но я не уверен, что это действительно проблема. Да, мне лично, и многим другим (как аутсайдерам с точки зрения Руби, подобно мне, так и опытным разработчикам в нем) это не нравится и отталкивает. Но, с другой стороны, весь этот шум в конечном счете ответственен за популярность этого языка, за его растущую известность, за mindshare в программистской среде.
Обычное дело - когда о чем-то очень громко говорят, выходит, что говорят в основном дураки. А что поделать, если хочется быть услышанным?
В последнее время мне попались два примера.
What's Wrong With Ruby - мнение человека, которому не очень понравился Руби. В статье он перечисляет, что ему не понравилось и что показалось перехваленным в обычных описаниях Руби. При этом он сохраняет вполне корректный и умеренный тон, и отдает должное языку в том, что ему понравилось. Интересная статья, несколько эклектичная и недостаточно подробная, но все равно интересная. Я, например, разделяю неприязнь автора к "cutesy introductory tutorials", и особенно к знаменитому в сообществе Руби Why's (Poignant) Guide. Это ужасная на мой взгляд книга, полная несмешных вымученных шуток и картинок, идиотской болтовни, и на редкость неудачных собственно объяснений и примеров того, что касается самого языка.
Однако дело не столько в самой статье, сколько в комментариях под ней, в которых тут же собралось стадо fanboys - идиотов, ругающих автора последними словами за то, что он посмел посягнуть на их культовый язык или на культовую фигуру _why (автора вышеупомянутой книги). Их немало в комментариях к самой статье, и еще больше - в комментариях к записи _why на эту тему (как обычно в его стиле, зубодробительно несмешной). Почитайте - эти комментарии говорят за себя. Нет, я не думаю, что они характеризуют все сообщество пользователей Руби. Но они характеризуют то стадо fanboys, которое его замусорило.
Мне попадалось мнение, что идиоты кочуют от одного популярного языка или технологии к другим, и многие из тех, что сейчас пишут и говорят благоглупости о Руби, раньше молились на Джаву, когда та была "cool". Может, в этом что-то есть. Но что в языке или технологии или сообществе, уже существующем, притягивает такие массы? Я не могу себе представить, например, такой поток ответов на статью, критикующую Перл, ни сейчас, ни пять лет назад, ни десять. Или Питон, или Хаскель, или Лисп.
Второй пример - статья "Why was Rails only possible with Ruby?" на сайте O'Reilly. Точнее, не статья, а рецензия книги о Руби и Rails. В ней самой, и в довольно интересно потоке комментариев под ней, поражает совершенное детская наивность тех, кто упрямо утверждает, что в Руби есть какие-то мистические свойства, которые делают создание системы типа Rails возможным только в Руби - и их неспособность назвать эти свойства: после того, как им снова и снова объясняют, что вот эти и вот эти и вот эти свойства Руби, которые они считают уникальными, на самом деле есть и тут и тут и тут, и системы, подобные Rails, на самом деле есть, и в чем-то более интересные (Seaside в Смоллтоке часто упоминается в последнее время - я не успел пока о нем подробнее прочитать), после всего этого им остается только лепет насчет "интуитивности" и каких-то мистических откровений, которые превращают Руби в идеальнейший из языков. Пользуясь словами того же _why, "We can no longer truthfully call it a computer language. It is coderspeak. It is the language of our thoughts". И вот такой интеллектуально беспомощный фанатизм тоже, увы, весьма распостранен в сообществе Руби, насколько я могу судить, когда с ним сталкиваюсь. Впрочем, опять-таки, действительно ли "увы"? Может, сообществу Руби это нравится, и такая форма агрессивного самопиара его вполне устраивает.
В завершение замечу только, что все же собираюсь в ближайшее время изучить Руби, хоть и не в ближайшие пару месяцев, наверное. И процитирую понравившееся из комментариев к второй статье, среди аргументов и обвинений поклонников Руби, Питона, Джавы, Перла и других языков:
"Can't we all at least agree to hate PHP? ;)"
Панталоны, фрак, жилет
Date: 2007-04-07 10:17 pm (UTC)no subject
Date: 2007-04-07 10:52 pm (UTC)no subject
Date: 2007-04-07 11:05 pm (UTC)no subject
Date: 2007-04-07 11:24 pm (UTC)(no subject)
From: (Anonymous) - Date: 2007-04-07 11:50 pm (UTC) - Expand(no subject)
From:(no subject)
From: (Anonymous) - Date: 2007-04-08 12:03 am (UTC) - Expand(no subject)
From:no subject
Date: 2007-04-07 11:12 pm (UTC)На днях надо было сделать в одном шкрипте преобразование с фильтрацией и переработкой строк. Упрощая задачу до учебного вида, в Питоне это вылилось бы во что-то в виде [s.rstrip('\r\n') for s in f.readlines() if s.match('^[a-z]')]. На перле я запутался в map(), хотя пару лет назад спокойно бы такое породил, и вместо этого нарисовал цикл... Понятно, что это говорит о том, что я обленился и "ниасилил", но ещё больше это показывает, как привыкаешь к хорошему и как тяжело возвращаться к извратным решениям...
no subject
Date: 2007-04-08 12:17 am (UTC)На перле это может звучать так:
while(<>){
chomp;
next unless $_;
}
Ну и еще примерно ...надцатью способами можно выразить то же самое.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:Re: Панталоны, фрак, жилет
Date: 2007-04-07 11:49 pm (UTC)Вы заблуждаетесь.
Re: Панталоны, фрак, жилет
Date: 2007-04-07 11:52 pm (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 12:20 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 01:15 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 01:47 am (UTC)Бейсик вошел в Ваше подмножество языков, на которых якобы не следует пытаться пиcать прогаммы длиннее 1000 строк?
Re: Панталоны, фрак, жилет
Date: 2007-04-09 04:28 pm (UTC)Re: Панталоны, фрак, жилет
Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
Date: 2007-04-08 02:31 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 02:50 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 03:13 am (UTC)Не могу не согласитья, что понятие "scripting language" трудно формализовать, но тогда нельзя и делать какие-то выводы из принадлежности какого-то языка к неопределенной группе.
Re: Панталоны, фрак, жилет
Date: 2007-04-08 06:26 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 05:04 pm (UTC)(удивительно предсказуемый тред, надобно сказать, просто даже тошнит).
Re: Панталоны, фрак, жилет
Date: 2007-04-08 05:24 pm (UTC)Разумеется. Но мне лень, поэтому скажу просто, что Питон, Перл и им подобные - это примеры языков без типов, а Си и Джава - с типами (куда отнести Хаскель - не совсем понятно. Скорее, все же, с типами, если подразумевать под этим проверку типов, определенных пользователем, в процессе компиляции).
Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:в догонку
Date: 2007-04-08 05:06 pm (UTC)так как и байт-кодируемость.
language wars надо запретить.
Re: в догонку
Date: 2007-04-08 05:26 pm (UTC)так как и байт-кодируемость.
На это можно было бы возразить, что и скриптоватость языка является свойством реализации, но я не буду :).
(удивительно предсказуемый тред, надобно сказать, просто даже тошнит).
language wars надо запретить.
Не без этого :)
Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:Re: в догонку
From:надо запретить
From:Re: Панталоны, фрак, жилет
Date: 2007-04-08 05:27 am (UTC)Re: Панталоны, фрак, жилет
Date: 2007-04-08 02:37 pm (UTC)и для скриптования чего же они изначально были?
Re: Панталоны, фрак, жилет
Date: 2007-04-08 02:43 pm (UTC)Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:Re: Панталоны, фрак, жилет
From:N/A
From:Re: N/A
From:Re: N/A
From: