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 10:17 pm (UTC)
From: [identity profile] trurle.livejournal.com
В русском языке, к сожалению, нет точного аналога понятия scripting language. В качестве scripting language Питон и Руби, пожалуй, лучше чем bash'а, cshell'а и перла. Идея что на scripting language можно писать прогаммы длиннее 1000 строк является симптомом конца времен и упадка нравов.
(deleted comment)

Date: 2007-04-07 10:52 pm (UTC)
From: [identity profile] dimrub.livejournal.com
С перлом лично у меня проблема в том, что в нем много всего интересного, но уж слишком сильна иллюзия, что без всего этого интересного можно прожить - ведь, как известно, TIMTOWTDT. Лично я так и не освоил по-человечески объектно-ориентированный перл и еще некоторые аспекты этого языка, хотя пользуюсь им уже немало лет. Поэтому, на лично мой субъективный взгляд, многие программы на перле довольно-таки неэлегантны и (можно сказать - как следствие) их нелегко поддерживать.

Date: 2007-04-07 11:05 pm (UTC)
From: (Anonymous)
A shto po Vashemu, Dima, elegantnaya (Vy sami skazali!) programma/programmirovanie?

Date: 2007-04-07 11:24 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Ну, это как те правила сообщества: определяется на глаз. Примерно я бы сказал, что элегантная программа обязательно является легко читаемой, внутренне консистентной и легко расширяемой и поддерживаемой, но являются ли эти требования достаточными - я затрудняюсь ответить.

(no subject)

From: (Anonymous) - Date: 2007-04-07 11:50 pm (UTC) - Expand

(no subject)

From: [identity profile] v743.livejournal.com - Date: 2007-04-07 11:54 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2007-04-08 12:03 am (UTC) - Expand

(no subject)

From: [identity profile] v743.livejournal.com - Date: 2007-04-08 12:09 am (UTC) - Expand

Date: 2007-04-07 11:12 pm (UTC)
netch: (Default)
From: [personal profile] netch
У перла слишком сильно его прошлое в виде patologically eclectical rubbish lister. Вследствие этого тяжёлый синтаксис в более серьёзных применениях, чем переработка входа в выход, масса умолчаний и исключений, которые в большом количестве кода начинают смущать и задалбывать... Странные решения, когда (@a, @b) становится конкатенацией списков, а если хочешь использовать ссылки начинаешь путаться во вложенностях... Да, после С/C++ он терпим. После чего-то более "с человеческим лицом" вроде Питона - на перле очень тяжело писать.

На днях надо было сделать в одном шкрипте преобразование с фильтрацией и переработкой строк. Упрощая задачу до учебного вида, в Питоне это вылилось бы во что-то в виде [s.rstrip('\r\n') for s in f.readlines() if s.match('^[a-z]')]. На перле я запутался в map(), хотя пару лет назад спокойно бы такое породил, и вместо этого нарисовал цикл... Понятно, что это говорит о том, что я обленился и "ниасилил", но ещё больше это показывает, как привыкаешь к хорошему и как тяжело возвращаться к извратным решениям...

Date: 2007-04-08 12:17 am (UTC)
From: [identity profile] ninazino.livejournal.com
[s.rstrip('\r\n') for s in f.readlines() if s.match('^[a-z]')]

На перле это может звучать так:

while(<>){
chomp;
next unless $_;
}

Ну и еще примерно ...надцатью способами можно выразить то же самое.

(no subject)

From: [personal profile] netch - Date: 2007-04-08 07:33 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2007-04-08 09:39 am (UTC) - Expand

(no subject)

From: [personal profile] netch - Date: 2007-04-08 07:47 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2007-04-08 07:56 pm (UTC) - Expand

(no subject)

From: [personal profile] netch - Date: 2007-04-08 09:40 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2007-04-08 09:56 pm (UTC) - Expand

(no subject)

From: [personal profile] netch - Date: 2007-04-09 07:04 am (UTC) - Expand

(no subject)

From: [identity profile] ninazino.livejournal.com - Date: 2007-04-08 11:26 am (UTC) - Expand

(no subject)

From: [personal profile] netch - Date: 2007-04-08 07:34 pm (UTC) - Expand

Re: Панталоны, фрак, жилет

Date: 2007-04-07 11:49 pm (UTC)
From: [identity profile] vasja-iz-aa.livejournal.com
>Идея что на scripting language можно писать прогаммы длиннее 1000 строк является симптомом

Вы заблуждаетесь.

Re: Панталоны, фрак, жилет

Date: 2007-04-07 11:52 pm (UTC)
From: [identity profile] trurle.livejournal.com
Да, я в курсе - каждый раз когда начинается очередная языковая лихорадка, находятся ирои, готовые писать на очередном спасительном языке сложные системы. Безумству храбрых поем мы песню!

Re: Панталоны, фрак, жилет

Date: 2007-04-08 12:20 am (UTC)
From: [identity profile] ninazino.livejournal.com
Вы действительно заблуждаетесь. Все зависит от задачи. Для каких-то задач Перл оптимален.

Re: Панталоны, фрак, жилет

Date: 2007-04-08 01:15 am (UTC)
From: [identity profile] trurle.livejournal.com
Разумеется, все зависит от задачи. И сложность задачи тоже является фактором при выборе подходящего языка.

Re: Панталоны, фрак, жилет

Date: 2007-04-08 01:47 am (UTC)
From: [identity profile] vasja-iz-aa.livejournal.com
A Волга впадает в Каспийское море.

Бейсик вошел в Ваше подмножество языков, на которых якобы не следует пытаться пиcать прогаммы длиннее 1000 строк?

Re: Панталоны, фрак, жилет

Date: 2007-04-09 04:28 pm (UTC)
stas: (Default)
From: [personal profile] stas
У меня возникает впечателение, что стройность системы сильнее зависит от стройности мышления создателей, чем от используемого языка. Конечно, не все йогурты одинаково полезны, но значение полезности йогурта, ПМСМ, сильно преувеличено.

Re: Панталоны, фрак, жилет

Date: 2007-04-09 04:31 pm (UTC)
From: [identity profile] trurle.livejournal.com
А знаете ли Вы как определить статическую функцию класса в Питоне 8-)?

Re: Панталоны, фрак, жилет

From: [personal profile] stas - Date: 2007-04-09 05:29 pm (UTC) - Expand

Re: Панталоны, фрак, жилет

Date: 2007-04-08 02:31 am (UTC)
From: [identity profile] meanab.livejournal.com
Недурно бы в таком случае услышать ваше определение "scripting language", отличное от "тех, на которых можно писать программы не более 1000 строк".

Re: Панталоны, фрак, жилет

Date: 2007-04-08 02:50 am (UTC)
From: [identity profile] trurle.livejournal.com
Формально, scripting language следовало бы определить как языки прямой интерпретации, но на самом деле речь идет о более тонких и субъективных качествах. Вот, например, bash и Tcl - очевидно scripting languages.

Re: Панталоны, фрак, жилет

Date: 2007-04-08 03:13 am (UTC)
From: [identity profile] meanab.livejournal.com
Реализация какого-либо языка при помощи интерпретора не дает возможности судить о пригодность его для проектов более 1000 строк. Кстати, питон, как и джава, обычно компилируется в байт-код.

Не могу не согласитья, что понятие "scripting language" трудно формализовать, но тогда нельзя и делать какие-то выводы из принадлежности какого-то языка к неопределенной группе.

Re: Панталоны, фрак, жилет

Date: 2007-04-08 06:26 am (UTC)
From: [identity profile] dimrub.livejournal.com
Я бы примерно определил эти языки как "языки высокого уровня без типов, интерпретируемые и, опционально, байт-кодируемые".

Re: Панталоны, фрак, жилет

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

Re: Панталоны, фрак, жилет

Date: 2007-04-08 05:24 pm (UTC)
From: [identity profile] dimrub.livejournal.com
теперь тебе придётся определить, что значит "без типов".

Разумеется. Но мне лень, поэтому скажу просто, что Питон, Перл и им подобные - это примеры языков без типов, а Си и Джава - с типами (куда отнести Хаскель - не совсем понятно. Скорее, все же, с типами, если подразумевать под этим проверку типов, определенных пользователем, в процессе компиляции).

Re: Панталоны, фрак, жилет

From: [personal profile] netch - Date: 2007-04-08 07:25 pm (UTC) - Expand

в догонку

Date: 2007-04-08 05:06 pm (UTC)
From: [identity profile] cmm.livejournal.com
интерпретируемость является свойством реализации, а не спецификации.
так как и байт-кодируемость.

language wars надо запретить.

Re: в догонку

Date: 2007-04-08 05:26 pm (UTC)
From: [identity profile] dimrub.livejournal.com
интерпретируемость является свойством реализации, а не спецификации.
так как и байт-кодируемость.


На это можно было бы возразить, что и скриптоватость языка является свойством реализации, но я не буду :).

(удивительно предсказуемый тред, надобно сказать, просто даже тошнит).
language wars надо запретить.


Не без этого :)

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-08 05:55 pm (UTC) - Expand

Re: в догонку

From: [personal profile] netch - Date: 2007-04-08 07:28 pm (UTC) - Expand

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-08 07:42 pm (UTC) - Expand

Re: в догонку

From: [personal profile] netch - Date: 2007-04-08 08:13 pm (UTC) - Expand

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-08 08:28 pm (UTC) - Expand

Re: в догонку

From: [personal profile] netch - Date: 2007-04-08 09:25 pm (UTC) - Expand

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-08 09:38 pm (UTC) - Expand

Re: в догонку

From: [identity profile] lazyreader.livejournal.com - Date: 2007-04-09 03:44 pm (UTC) - Expand

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-09 03:50 pm (UTC) - Expand

Re: в догонку

From: [identity profile] trurle.livejournal.com - Date: 2007-04-09 03:52 pm (UTC) - Expand

Re: в догонку

From: [identity profile] cmm.livejournal.com - Date: 2007-04-09 04:09 pm (UTC) - Expand

надо запретить

From: [personal profile] stas - Date: 2007-04-09 04:38 pm (UTC) - Expand

Re: Панталоны, фрак, жилет

Date: 2007-04-08 05:27 am (UTC)
From: [identity profile] sdfgh153.livejournal.com
lisp и scheme изначально "scripting language", вы готовы сказать что на лиспе нельзя писать задачи сложнее 1000 строк?

Re: Панталоны, фрак, жилет

Date: 2007-04-08 02:37 pm (UTC)
From: [identity profile] cmm.livejournal.com
> lisp и scheme изначально "scripting language"

и для скриптования чего же они изначально были?

Re: Панталоны, фрак, жилет

Date: 2007-04-08 02:43 pm (UTC)
From: [identity profile] sdfgh153.livejournal.com
Может я что-то неправильно понял, но для скриптования чего нужен питон?

N/A

From: [identity profile] sdfgh153.livejournal.com - Date: 2007-04-09 05:46 am (UTC) - Expand

Re: N/A

From: [identity profile] trurle.livejournal.com - Date: 2007-04-09 01:17 pm (UTC) - Expand

Re: N/A

From: [identity profile] sdfgh153.livejournal.com - Date: 2007-04-09 01:19 pm (UTC) - Expand

February 2026

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

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 11:42 pm
Powered by Dreamwidth Studios