avva: (Default)
[personal profile] avva

Я хотел бы написать, что проблема, которая стоит перед языком Руби и его сообществом - преодолеть засилие радостных идиотов, 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 11:41 pm (UTC)
netch: (Default)
From: [personal profile] netch
> егко могу написать web application (и писал много раз до того, как кто-либо вообще слышал о Руби).

Я не знаю, какие у Вас критерии слышимости для Ruby, но его появление датируется 1995 годом - синхронно с Явой с точностью до года. Для сравнения, Питон - 1991. Perl - 1987. Tcl (столь шумно тут недооценённый) - 1988.

И если они сейчас стали достаточно популярны чтобы вокруг них начался шум - значит, они кому-то таки нужны, не так ли?;)))

> И всё, что мне нужно сделать - это перенести jar file по FTP.

То же самое для любого "скриптового" языка (с поправкой на то, что обычно таки они работают из развёрнутого каталога - для современных FTP клиентов это пофиг).
А вот запускать их часто значительно легче.

> А теперь попробуйте привести хоть один пример того, что можно сделать на Руби и чего нельзя сделать на Джаве.

Подход некорректен. "Сделать то же самое" можно хоть на ассемблере. А вот сделать при какой специфике насколько легче, проще...

Ruby сильно, например, средствами функционального подхода. Я видел, как на нём в десяток строк укладывали то, что на C++ или Яве заняло бы много экранов. Причём 1) задача была не учебная; нормальная реальная задача; 2) решение естественным образом возникло из словесного описания задачи, а не из промежуточного переложения типа "здесь сказано делать "для всех" - значит, надо заводить цикл и итерировать по нему", и поэтому было сделано быстро и просто. Подобные возможности постепенно возникают во всех скриптовых языках, кроме разве что VB:) А в Яве?

Впрочем, у Вас, судя по постингу, сплошной веб... а у меня сплошной сетевой демонизм. Сравнивать их просто нельзя.

Date: 2007-04-07 11:48 pm (UTC)
From: [identity profile] catpad.livejournal.com
Ну, Ruby on Rails появился года два назад, как я понимаю. До этого web apps на нём не писали.

А вот запускать их часто значительно легче.
Легче, чем java -cp "..." com.example.Example ? ;)

И никакого веба у меня нет. У меня сплошное обычное повседневное индустриальное программирование.

Date: 2007-04-08 12:02 am (UTC)
netch: (Default)
From: [personal profile] netch
> Ну, Ruby on Rails появился года два назад, как я понимаю. До этого web apps на нём не писали.

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

> Легче, чем java -cp "..." com.example.Example ? ;)

А ещё десяток опций для управления памятью не хотите?;)) Java только последние пару лет начала нормально без пинков с запускающей стороны обращаться с памятью в VM среде. До этого десять лет на эти её свойства плевали, после чего и получалось "переписали XXX на Java - значит, надо RAM увеличить в 4-8 раз чтобы вообще можно было работать".

И shebang'а у неё нет:) поэтому вместо прямого запуска бинарника надо запускать какие-то "java -cp ..."

> У меня сплошное обычное повседневное индустриальное программирование.

Ну то-то я про GUI слышу...

Date: 2007-04-08 12:10 am (UTC)
From: [identity profile] catpad.livejournal.com
А ещё десяток опций для управления памятью не хотите?;))
Это всё не относится к сложности. А вот когда у меня бегут два параллельных процесса - один под Windows, другой под Solaris и рядом открыты две GUI-консоли со сложной визуализацией процессов - одна в окне Windows, другая в окне X Windows - и всё это из одного единственного jar-файла - вот это я называю простотой запуска.

Ну то-то я про GUI слышу...
Этого замечания я не понял вообще.

Date: 2007-04-08 07:52 am (UTC)
netch: (Default)
From: [personal profile] netch
> Этого замечания я не понял вообще.

Цитирую:

Я могу написать на Джаве отличный GUI в десять-двадцать раз быстрее, чем я бы сделал это на С++. Я могу динамически загружать в программу классы из сети. Легко могу написать web application (и писал много раз до того, как кто-либо вообще слышал о Руби). Могу написать апплет, в конце концов.

Собственно выбор примеров показывает (мне кажется;)) типичный класс задач.

> Это всё не относится к сложности.

Вполне относится - когда надо не просто запустить, а чтобы работало долго и устойчиво:) Solaris+Windows - достаточно частные случаи, когда эти проблемы решены лучше, чем на других платформах (часто - намеренно не улучшая другие, судя по некоторым симптомам).

Ну а запуск из одного файла, даже не каталога... ну да, красиво:) не более того:)

Date: 2007-04-08 10:44 am (UTC)
From: [identity profile] catpad.livejournal.com
Послушайте, ваши аргументы просто удивительны. Я работал в пяти компаниях - от AI и игр до Майкрософта, телефонных систем и биржевых сводок - и везде я писал GUI по той или иной причине. Ну и что это за "типичный класс задач" ? По-вашему, любая работа - это типичный класс задач.

Вполне относится - когда надо не просто запустить, а чтобы работало долго и устойчиво:)

Два из Java-серверов, которые я сделал работают без перезагрузки годами. Этого достаточно для устойчивости ?

Solaris+Windows - достаточно частные случаи - скажите, вы издеваетесь или серьёзно ?
95% всех компьютеров мира - это частные случаи ?

Date: 2007-04-08 07:39 pm (UTC)
netch: (Default)
From: [personal profile] netch
> Послушайте, ваши аргументы просто удивительны. Я работал в пяти компаниях - от AI и игр до Майкрософта, телефонных систем и биржевых сводок - и везде я писал GUI по той или иной причине.

А я работал в несколько большем числе мест, хоть и не настолько плотно:) и нигде не писал GUI, кроме одной задачи, которую я делал в частном порядке для отцовой темы на кафедре. А вот сетевизмы какого-то вида были как минимум в пяти последних проектах в разных местах.

> Solaris+Windows - достаточно частные случаи - скажите, вы издеваетесь или серьёзно ?
> 95% всех компьютеров мира - это частные случаи ?


От общего количества платформ - да. Их относительная распространённость меня интересует только в том аспекте, что я уже 11 лет ничего за деньги под Windows не пишу. Солярка - да, для меня актуальна. Windows - нет. Ну вот сложилось так:)

Date: 2007-04-08 08:08 am (UTC)
From: [identity profile] levgem.livejournal.com
Вот только не надо ля-ля про такую простоту запуска. Сколько до этого нужно времени для развертывания окружения?

Date: 2007-04-08 10:46 am (UTC)
From: [identity profile] catpad.livejournal.com
Отвечаю цифрами: 5-10 минут на Windows (включая download JRE) и примерно столько же на UNIXe (сам не делал - прав нет, но заказывал администраторам).

Date: 2007-04-08 05:09 pm (UTC)
From: [identity profile] cmm.livejournal.com
как давно Вы путаете понятия "простота" и "скорость"?
ну и потом, человек жа ясно сказал что пишет долгобегущие сервера.  ну и кого волнуют те пять минут подьёма?  вы ещё предложите всерьёз оптимизировать операционные системы по критерию скорости boot-up'а, и сделать этот критерий наиважнейшим.

Date: 2007-04-09 07:51 am (UTC)
From: [identity profile] e2pii1.livejournal.com
"
Ruby сильно, например, средствами функционального подхода. Я видел, как на нём в десяток строк укладывали то, что на C++ или Яве заняло бы много экранов. Причём 1) задача была не учебная; нормальная реальная задача; 2) решение естественным образом возникло из словесного описания задачи
"

можно пpимep ?

Date: 2007-04-09 07:53 am (UTC)
netch: (Default)
From: [personal profile] netch
Извините, уже не помню даже в основе(задача не из моей области, просто приятель хвастался, как получилось просто и понятно).

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

Date: 2007-04-09 09:18 am (UTC)
From: [identity profile] e2pii1.livejournal.com
Я согласен что map - штука хорошая (появился он кстати еще в LISPе, "mapcar" кажется назывался).
Но в С++ в Standart Template Library он есть (а если какой-то полезной разновидности и нет, ее с полпинка реализовать в reusable виде).

February 2026

S M T W T F S
1 2 3 4 5 67
8 9 10111213 14
15 16 17 18192021
2223 2425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 09:53 am
Powered by Dreamwidth Studios