LINUX.ORG.RU

Perl 5.20

 ,


3

8

Несколько часов назад состоялся релиз новой мажорной версии языка программирования Perl. Разработка Perl 5.20.0 заняла примерно 12 месяцев с момента выпуска Perl 5.18.0 и содержит около 470 000 строк изменений в 2 900 файлах от 124 авторов.

В этой версии достаточно много новшеств:

  • Subroutine signatures
    То, чего многие так ждали, а другие возражали привычным «ненужно»
    sub foo($bar, $baz) {
      print "\$bar=$bar, \$baz=$baz"
    }
    
    Таким образом теперь можно определять параметры функции в скобках после её имени. Есть и возможность задать значение по умолчанию
    sub bar($foo, $baz=10) {
      print '$foo+$baz=', $foo+$baz
    }
    
    О других особенностях новой экспериментальной возможности можно прочитать в perldoc perlsub. Стоит отметить, что старый механизм получения параметров функции из @_ также остаётся в силе.
  • Новый синтаксис для получения среза ключей-значений/индексов-значений для хешей/массивов
    %hash{...} и %array[...] соответственно
    %h = (blonk => 2, foo => 3, squink => 5, bar => 8);
    %subset = %h{'foo', 'bar'}; # срез ключ-значения для хеша
    # %subset теперь (foo => 3, bar => 8)
    
    @a = "a".."z";
    @list = %a[3,4,6]; # срез индекс-значения для массива
    # @list теперь (3, "d", 4, "e", 6, "g")
    
  • Постфиксное разыменовывание
    К старому доброму разыменовыванию ссылок, навроде @$foo и %$bar, был добавлен вариант постфиксного разыменовывания: $foo->@* и $bar->%* соответственно. Синтаксис для других типов ссылок можно посмотреть в perldoc perlref
  • Механизм копирования при записи (copy-on-write) для строк
    Теперь при присвоении переменной значения другой строковой переменной не создаётся копии буфера вплоть до тех пор, пока значение одной из переменных не будет изменено. Это увеличивает скорость присвоения и снижает потребление памяти. Теперь не потребуется передавать в функцию строковую переменную по ссылке, чтобы увеличить производительность.

>>> Подробности

★★★

Проверено: Aceler ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от outtaspace


Повторю свой вопрос - ты полностью, на 100% знаешь питон и руби?


Не знаю что вы там вычисляете в процентах. Эти языки достаточно просты и последовательны. По крайней мере в этих языках не существует несколько режимов работы (use strict, use xxx, и т.д.). Ваш же пёрл - это нагромождение костылей. Можно сравнить ruby или python с тщательно продуманной базой данных, а пёрл с несортированной файлопомойкой в которой хрен что найдёшь, одна фича зависит от других, которые в свою очередь зависят ещё чёрт знает от чего и т.д.

Не знаю какие. Мне это не интересно.


Таковых нет, кроме разве что «проект писали на пёрл, работает и ладно, переписывать не будем».

плюшками


плюшки для админства


плюшки для WEB



Вот именно что ваш пёрл это беспорядочное нагромождение каких то «плюшек». А ruby/python - продуманные от начала до конца языки с прекрасной организацией.

Ваша backwardcompatibility нахрен никому не нужна. Во первых, ПО должна развиваться в любом случае. Во-вторых, ничто не мешает поставить в системе одновременно несколько версий интерпретатора и пускать скрипт в старой версии.

tux2015
()
Ответ на: комментарий от anonymous

ты правда использовал такую конструкцию? чтобы один модуль работал только под одну версию, другой — под другую, сам скрипт — только под третей?

тогда расскажи подробнее, как в этом случае происходит переключение версии языка.

Нет переключения версии языка. Вообще говоря, нет версии языка - есть язык и есть расширения с новыми версиями. Чем выше номер - тем больше расширении вы вводите. Поэтому то что реализовано в 5.10 будет работать под 5.12, 5.14, ... . Но это правило не следует экстраполировать на экспериментальные возможности которые могут быть отменены или изменены в будущем.

ps: Кроме всего, есть еще use feature 'feature name' введенный для выборочного включения расширении.

anonymous
()
Ответ на: комментарий от anonymous

Дершаешь методы объектов? У меня знакомый бухгалтер (женщина) тоже дергает методы и даже успешно. Дергать методы много ума не нужно, это еще ни о чем не говорит.



Смысл всего императивного программирования сводится именно к созданию и вызову методов (возможно организованных в объекты). Что за супер программированием вы там занимаетесь? Расскажите ради бога быдлу не образованному, сгораю от любопытства.

tux2015
()
Ответ на: комментарий от anonymous

Под «настоящим программированием» подразумевается создание полноценных систем, а не ее частей. Ну и как правило, в основе таких систем лежит теоретическое обоснование. В задачах построения подобных строгих систем perl просто идеален (я бы рядом поставил еще С и «С++ без ООП-фанатизма»).

что-то, сдаётся мне, вы не понимаете, о чём пытаетесь рассуждать. дайте ссылку на ваши «полноценные системы», если хоть одну написали.

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

anonymous
()
Ответ на: комментарий от tux2015

Не знаю что вы там вычисляете в процентах.

Уклонение от вопроса засчитано. Достаточно было использовать любую метрику.

По крайней мере в этих языках не существует несколько режимов работы (use strict, use xxx, и т.д.).

А кто заставляет их использовать? strict, это прагма в известной степени меняющая семантику кода, а не костыль.

Ваш же пёрл - это нагромождение костылей.

В некоторой степени согласен. В целом ничего страшного.

outtaspace ★★★
()
Ответ на: комментарий от anonymous

так как же именно это экстраполируется на программу из трёх модулей с разными версиями? я вызываю функцию из этого модуля, а он помнит, что для неё надо отключить feature X и включить feature Y, а потом вернуть всё обратно? если оно и работает, оверхед неслабый получается.

если можно, дайте какие-нибудь пруфы, как именно это устроено, пока вся технология выглядит неработоспособной. проверка на минимальную версию языка гораздо адекватнее этого вот «прикинемся 5.12 для этой функции, 5.8 для этой, а 5.20 для этой».

anonymous
()
Ответ на: комментарий от tux2015

Хоть и другой анонимус но замечу, что

Вот именно что ваш пёрл это беспорядочное нагромождение каких то «плюшек». А ruby/python - продуманные от начала до конца языки с прекрасной организацией.

Это так просто не далось. Привел к падению производительности от 3-4 раз до десятков, по сравнению с перл.

Так что если изначально ясно, что задача требует ресурсов, то писать на python или ruby смысла нет.

Пишешь на perl. Часто этого хватает, если какой-то участок становиться узким местом или нагрузка возрастает, перелопачиваешь это на C.

У питона и perl перелопачивать на C приходиться намного больше.

anonymous
()
Ответ на: комментарий от tux2015

Вот именно что ваш пёрл это беспорядочное нагромождение каких то «плюшек». А ruby/python - продуманные от начала до конца языки с прекрасной организацией.

Епрст. Все уже поняли, что тебе не нравится перл. Только вот, если ты такой умный, то должен знать, что идеальных ЯП не существует. С твоей субъективной точки зрения питон это предел идеала. Да, да, ясно. Хватить флейм разводить. Успокойся, выпей чайку и пиши код. Чего на ЛОРе тратить время впустую? :)

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от tux2015

Не знаю что вы там вычисляете в процентах. Эти языки достаточно просты и последовательны. По крайней мере в этих языках не существует несколько режимов работы (use strict, use xxx, и т.д.). Ваш же пёрл - это нагромождение костылей. Можно сравнить ruby или python с тщательно продуманной базой данных, а пёрл с несортированной файлопомойкой в которой хрен что найдёшь, одна фича зависит от других, которые в свою очередь зависят ещё чёрт знает от чего и т.д.

Читать надо примерно так: «Бла-бла-бла и т.д...я не разобрался вообщем». И именно так и никак иначе, ибо perl очень прост и прозрачен.

Вот именно что ваш пёрл это беспорядочное нагромождение каких то «плюшек». А ruby/python - продуманные от начала до конца языки с прекрасной организацией.

Нагромождение «плюшек» - это php. Я знаю что perl продуман настолько что позволяет вводить расширения. И это несомненно плюс, иначе было бы сложно реализовать систему логического программирования под perl.

Ваша backwardcompatibility нахрен никому не нужна. Во первых, ПО должна развиваться в любом случае. Во-вторых, ничто не мешает поставить в системе одновременно несколько версий интерпретатора и пускать скрипт в старой версии.

Отучаемся говорить за всех, ибо, как минимум, мне нужна. ПО может и не развиваться если решает возложенную на нее задачу. Часто нужно разивать интерфейсные а не функциональные части ПО, но тогда уже реализованные и оттестированные части должны работать исправно, т.е. backward compatibility тут скорее нужнее чем нет. Ну а предложить ставить несколько версии интерпретатора на проде может только безответственный, еще «зеленый» школьник. Иди лучше создай свою болженос.

anonymous
()
Ответ на: комментарий от anonymous

*У питона и perl перелопачивать на C приходиться намного больше. У питона и руби.

anonymous
()
Ответ на: комментарий от anonymous

Пишешь на perl. Часто этого хватает, если какой-то участок становиться узким местом или нагрузка возрастает, перелопачиваешь это на C.

у вас есть практический опыт поддержания perlxs-модулей хотя бы на нескольких минорных версиях перла? ну, 5.8, 5.10, 5.12? это тоже совсем не подарок, от такой архитектуры многие, попробовав, уходят на более другие решения

anonymous
()
Ответ на: комментарий от anonymous

у вас есть практический опыт поддержания perlxs-модулей хотя бы на нескольких минорных версиях перла? ну, 5.8, 5.10, 5.12? это тоже совсем не подарок, от такой архитектуры многие, попробовав, уходят на более другие решения

А где гемороя меньше?

anonymous
()
Ответ на: комментарий от anonymous

Мсье, перед кем вы распинаетесь? Место этого отмороженного рубиста - возле параши.

Требуйте профиль на гитхабе - он или тут же сольёт или мы словим лулзы с его говнокода.

anonymous
()
Ответ на: комментарий от anonymous

Вообще говоря, нет версии языка - есть язык и есть расширения с новыми версиями. Чем выше номер - тем больше расширении вы вводите. Поэтому то что реализовано в 5.10 будет работать под 5.12, 5.14, ... . Но это правило не следует экстраполировать на экспериментальные возможности которые могут быть отменены или изменены в будущем.

Не води людей за нос. Ты кроме фич в дельте походу ничего не читаешь. В каждой версии меняют/удаляют внутренние сишные функции. Из-за этого, все XS (коих как около трети) надо пересобирать под новую версию перла. И много модулей в силу того, что их пишут не эксперт-группа, которая одновременно пилит сам перл, переписывает модули от версии к версии (не всегда, но иногда приходится).

Поэтому, новая версия перла это новый слинкованный бинарь со своим новым внутренним миром. Другая сущность. И разница от старой версии варьируется от случая к случаю.

Не думаю, что вы используете только PP и обходитесь без единого XS модуля у себя.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от anonymous

что-то, сдаётся мне, вы не понимаете, о чём пытаетесь рассуждать. дайте ссылку на ваши «полноценные системы», если хоть одну написали.

Здесь скорее вы меня не поняли, чем я не понимаю. Я как раз понимаю о чем пишу и ключевое здесь это:

подразумевается создание полноценных систем, а не ее частей. Ну и как правило, в основе таких систем лежит теоретическое обоснование. В задачах построения подобных строгих систем perl просто идеален"

Если интересно что за теоретичекое обоснование ложится в основу разработки систем, то прошу вас ознакомится с трудами Д.Кнута. В качестве примера можете поискать исторические заметки на тему создание эффективных аллокаторов (распределители памяти).

возражение по сути: перл в 2014 году — дорогой для разработки язык программирования.

Да, порог вхождения в perl выше и perl-специалист как программист на деле получается более грамотным программистом чем, скажем, php.

конечно, перл-фанатики набивают себе цену,

Это политическая демагогия или есть какие-то доказательства?

но скоро и они будут в индустрии где-то на уровне фортран- или клиппер-программистов. новых проектов на перле всё меньше, старые тоже уходят.

Как насчет объективных данных? Спрашиваю потому что судя по моим субъективным оценкам, новых perl-проектов становится только больше. Но в отличии от вас, я не претендую на полноту. А вы?

anonymous
()
Ответ на: комментарий от anonymous

если стоит задача именно «написать функцию на C и использовать её в скрипте», в руби таки геморроя меньше. проблема в том, что задача не очень правильная. правильная — не бояться использовать инструмент, который для конкретной задачи оптимален, а не один перл везде. в зависимости от ваших задач, это может быть D или Scala, например, а то и что более экзотичное.

anonymous
()
Ответ на: комментарий от anonymous

Как насчет объективных данных? Спрашиваю потому что судя по моим субъективным оценкам, новых perl-проектов становится только больше. Но в отличии от вас, я не претендую на полноту. А вы?

Ну, хоть и другой анонимус, но замечу, что суть проста. перлпроекты накапливаются. Ибо время их жизни дольше, чем у проектов других типов.

anonymous
()
Ответ на: комментарий от anonymous

у вас есть практический опыт поддержания perlxs-модулей хотя бы на нескольких минорных версиях перла? ну, 5.8, 5.10, 5.12? это тоже совсем не подарок, от такой архитектуры многие, попробовав, уходят на более другие решения

Почти все мои разработки лежат в рамках 5.10 - 5.16 (5.8 очень давно не встречал), проблем не видел. Подкинете пример, ссылку на обсуждение или может описание проблем?

ps: текущий вариант XS-интерфейса может быть сильно улучшен в сторону увиличения юзабилити; правда я еще не полностью завершил теоретические исследования и есть над чем работать

anonymous
()
Ответ на: комментарий от anonymous

В качестве примера можете поискать исторические заметки на тему создание эффективных аллокаторов (распределители памяти).

вот уж к перлу создание эффективных аллокаторов памяти уж точно не имеет отношения вообще.

Да, порог вхождения в perl выше и perl-специалист как программист на деле получается более грамотным программистом чем, скажем, php.

ха-ха, видели мы их.

дайте уже ссылки на ваши гениальные программные продукты, несколько человек попросили уже.

anonymous
()
Ответ на: комментарий от anonymous

если стоит задача именно «написать функцию на C и использовать её в скрипте», в руби таки геморроя меньше. проблема в том, что задача не очень правильная. правильная — не бояться использовать инструмент, который для конкретной задачи оптимален, а не один перл везде. в зависимости от ваших задач, это может быть D или Scala, например, а то и что более экзотичное.

И в руби не ломают сишное апи?

Там еще про lua никто не ответил? То же вариант. Но программы сложнее получаются.

Про всякую маргинальщину вообще забудте. Для себя можно. Для заказчика - нет.

anonymous
()
Ответ на: комментарий от anonymous

если стоит задача именно «написать функцию на C и использовать её в скрипте», в руби таки геморроя меньше. проблема в том, что задача не очень правильная. правильная — не бояться использовать инструмент, который для конкретной задачи оптимален, а не один перл везде. в зависимости от ваших задач, это может быть D или Scala, например, а то и что более экзотичное.

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

Ну и главное преимущество: переход от perl-кода к Си-коду может быть часто выполнен «машинально», т.е. с сохранением архитектуры и логики обработки данных (подразумевается что вы знакомы с ООП-нотацией на уровене Си-кода).

anonymous
()
Ответ на: комментарий от tux2015

По крайней мере в этих языках не существует несколько режимов работы (use strict, use xxx, и т.д.)

Вполне нормальная практика отключаемого ужесточения проверок качества кода. В Javascript есть конструкция 'use strict'; , в плюсах на том же gcc есть флаги всякие -Wall -Wextra -Werror -Weffc++ и так далее. Есть и обратные типа -fpermissive. Как нибудь ради интереса попробуйте скомпилять любой мало-мальски сложный проект с CXXFLAGS=-Wall -Wextra -Weffc++ -Werror -ansi -pedantic-errors . Будете сильно удивлены количеством ошибок, которые высыпет компилятор, ругаясь на говнокод.

Вообще насчет руби, питона, луа и прочих языков, где нету точки с запятой, а действие заканчивается разрывом строки, где нету { и } а есть ужасные begin и end как в дельфи или паскале - как думаете, почему паскалеобразные языки не приобрели популярности, а популярность больше у языков с си-подобным синтаксисом? Ответ простой - лаконичность. Вместо нескольких букв ключевого слова, означающего начало процедуры, пишем один символ. Плюс в том же питоне обязательный отступ пробелами, что есть крайне неудобная фича. Да, я могу в своем любимом gedit поставить чтобы он шлепал пробелы вместо таба, но когда включено отображение пробельных символов (а оно у меня всегда включено), мне крайне не нравится то что левый край кода заполнен множеством пробелов.

fooser
()
Ответ на: комментарий от fooser

Вообще насчет руби, питона, луа и прочих языков, где нету точки с запятой, а действие заканчивается разрывом строки, где нету { и } а есть ужасные begin и end

Где в питоне «ужасные begin и end»?

Плюс в том же питоне обязательный отступ пробелами, что есть крайне неудобная фича. Да, я могу в своем любимом gedit поставить чтобы он шлепал пробелы вместо таба, но когда включено отображение пробельных символов (а оно у меня всегда включено), мне крайне не нравится то что левый край кода заполнен множеством пробелов.

Питон тебе запрещает использовать табы штоле? Или ты вообще без отступов хочешь писать?

anonymous
()
Ответ на: комментарий от tux2015

Ну я же вижу например по количеству проектов на фрилансе, по количетсву вакансий.

Количеству проектов на быдло-фрилансе и вакансий, создаваемых отечественным бизнесом куди-продай-услужи-сруби-бабла-поскорей?

И то, и другое не заслуживает уважения: ни унылый российский фриланс, ни откровенно нелепый российский «бизнес», который за вычетом нефти и газа - за редким исключением полное Г, делённое на ноль.

DRVTiny ★★★★★
()
Ответ на: комментарий от anonymous

а? на скале для заказчика писать нельзя, маргинальщина, а на lua и перле можно? страшно далеки вы от народа, да и от программирования

anonymous
()
Ответ на: комментарий от anonymous

вот уж к перлу создание эффективных аллокаторов памяти уж точно не имеет отношения вообще.

вы вырываете предложение из контекста, а сказано было вот что:

Если интересно что за теоретичекое обоснование ложится в основу разработки систем, то прошу вас ознакомится с трудами Д.Кнута. В качестве примера можете поискать исторические заметки на тему создание эффективных аллокаторов (распределители памяти).

Случай с аллокаторами был приведен для примера к понимаю что за теоретическое обоснование ложится в основу разработки систем. Второе и важное, полнота по Тьюрину языка подразумевает что любая теория может быть реализована в языке. И языки отличаются здесь не столько возможностью реализации «вообще» сколько сложностью реализации той или иной модели. И здесь как ни крути, TIMTOWTDI берет свое. Можете поискать в сети дискуссию на предмет того как TIMTOWTDI избавляет программиста от необходимости ломать архитектуру проекта и почему архитектуру perl-проекта не следует заковывать во всякие Moose-like системы объектов.

дайте уже ссылки на ваши гениальные программные продукты, несколько человек попросили уже.

У меня нет проектов в паблике на perl. Возможно что один из двух кандидатов я релизну когда-нибудь, но это точно не будет в ближайшее время, т.к. этот проект сильно упростит создание сервиса конкурентами (связано с биткоинами).

anonymous
()
Ответ на: комментарий от anonymous


Это так просто не далось. Привел к падению производительности от 3-4 раз до десятков, по сравнению с перл.



хаха. пиши на C++ тогда.

tux2015
()
Ответ на: комментарий от anonymous

У меня нет проектов в паблике на perl.

не ожидал другого ответа. у вас их вообще нет, судя по всему. ну, или дайте линк хотя бы на коммерческую документацию

anonymous
()
Ответ на: комментарий от DRVTiny


Количеству проектов на быдло-фрилансе и вакансий, создаваемых отечественным бизнесом куди-продай-услужи-сруби-бабла-поскорей?

И то, и другое не заслуживает уважения: ни унылый российский фриланс, ни откровенно нелепый российский «бизнес», который за вычетом нефти и газа - за редким исключением полное Г, делённое на ноль.



Телепатия вас подвела на этот раз. Я с русскими вообще ни разу не работал. С чего вы взяли? Только США, Канада, Европа. У меня скрипт на руби автоматом биды постит на freelancer.com и если заказчик из рашки, снг или индии сразу пропускает проект.

tux2015
()
Ответ на: комментарий от anonymous

Согласен, это ж теоретик. блаблабла кнут блаблабла системы блаблабла тьюринг блаблабла настоящий программист блаблабла .........

tux2015
()
Ответ на: комментарий от fooser

почему паскалеобразные языки не приобрели популярности, а популярность больше у языков с си-подобным синтаксисом?

ЩИТО? Паскаль прожил 30 с лишним лет и жив до сих пор в виде Free Pascal, GNU Pascal. Язык несколько лет проходил стандартизации ISO/ANSI. В нынешнее время он не шибко востребован по ряду причин, одна из которых это коммерциалазия Delphi, отказ от мультиплатформенного развития (где мой Kylix? ;) При этом под Free Pascal нет-нет да выходит новый софт.

Питон, Руби? Их проблема в том, что ABI/API переписывали несколько раз и ломали почти весь чужой код. Эволюция ЯП это когда твой код меняется в соответствии с новыми возможностями, а не когда к х***м переписываешь вообще все. Если сейчас скажут, что все, перл 5 это легаси, все вон изучать перл 6 и и****сь как хотите со своим кодом, то люди сделают тоже самое, что и с питоном/руби. Пошлют такой язык куда подальше и больше не вернутся. Какой смысл 100500 раз все переписывать из-за плохого проектирования ЯП? Как бы проекты могут быть на 5 человек, но время идет, заказы делать надо, надо писать новое, а тут херац и давай забесплатно все переделывать, ибо новое апи «вот теперь» стало идеальным!

gh0stwizard ★★★★★
()
Ответ на: комментарий от anonymous

а? на скале для заказчика писать нельзя, маргинальщина, а на lua и перле можно? страшно далеки вы от народа, да и от программирования

Ну, множество заказчиков на скала оставте себе. :) Насчет заказчиков на lua - не уверен. По этому ничего про них и не говорил. Кроме того, что программы на нем сложнее получаются.

А перл - да. Заказчики были, есть и будут. В основном старые. Ну и те кто сделал что-либо на питоне и понял, что не поменяв язык ситацию не исправить (для мелкого проекта это реально, для крупного нет и придеться много работать на С).

anonymous
()
Ответ на: комментарий от fooser


Вообще насчет руби, питона, луа и прочих языков, где нету точки с запятой, а действие заканчивается разрывом строки, где нету { и } а есть ужасные begin и end



Напиши скрипт хоть на чём который заменяет «class xxx {» на «class xxx\n», «def xxx(...) {» на «def xxx(...)\n», «end» на «}» и пропускайте через него. Или пропатчите интерпретатор.

tux2015
()
Ответ на: комментарий от gh0stwizard

Паскаль УГ не из-за begin end, хотя мне тоже {} больше нравится. Никто вроде как не заставляет переходить на python 3, во многих дистрах можно установить и 2.7 и 3.

tux2015
()
Ответ на: комментарий от fooser


Плюс в том же питоне обязательный отступ пробелами, что есть крайне неудобная фича.



Любите писать код без отступов в один столбец? Или в одну строку весь код?

tux2015
()
Ответ на: комментарий от anonymous

Нет, его там нету. А зачем он мне? Я пишу на заказ на фрилансе и в публичный доступ не выкладываю а отсылаю заказчику.

tux2015
()
Ответ на: комментарий от tux2015

Никто вроде как не заставляет переходить на python 3, во многих дистрах можно установить и 2.7 и 3.

Конечно можно. И так и делают люди, когда хотят что-то получить от новой версии на переходном этапе. Но эти 2.7 и 3 уже по дефолту во всех известных дистрах как минимум год. И еще через год ситуация не изменится. Это делает язык лучше? Просто показательно на сколько модно писать на питоне. С руби тоже самое. Более того, излом во 2 версии руби привел к тому, что дофига чего не собирается на винде (как бы тут о них не принято вспоминать, но показательно), даже из коробочной поставки. Люди спустя несколько месяцев (почти год) чинят модули, которые до этого работали как часы. И думаю, мало кто верит, что если эти разработчики вернутся, то по закону подлости выйдет питон 4 или руби 3.11, которые снова к ****м все разнесут. И снова чтоли все переписывать? Да вы рехнулись, ребята :)

gh0stwizard ★★★★★
()
Ответ на: комментарий от gh0stwizard

дофига чего не собирается на винде

вот пример из перлового мира:

http://stackoverflow.com/questions/4234581/argv-is-empty-using-activeperl-in-...

я с этим сталкивался лет 10 назад, а до сих пор в винде из коробки ARGV в перле не работает

anonymous
()
Ответ на: комментарий от tux2015

хаха. пиши на C++ тогда.

Синтетический, но все же пример для размышления:

Допустим что когда-то мы написали такой код:

print fact(20);

sub fact{
    my $n = shift;
    $n == 0 ? 1 : $n*fact($n-1);
}

А позже «ускорили» не нарушая архитектуру и даже не меняя логику кода

use Inline C;

print fact(20);

__END__
__C__
unsigned long fact(unsigned long i){
    return i == 0 ? 1 : i*fact(i-1);
}

Это пример работы TIMTOWTDI на деле.

anonymous
()
Ответ на: комментарий от anonymous

я с этим сталкивался лет 10 назад, а до сих пор в винде из коробки ARGV в перле не работает

10 лет назад не работал. Сейчас не работает. Все верно. Backward compability :) Там в ответах все расписано и достаточно ясно. Это не проблема ЯП.

gh0stwizard ★★★★★
()
Ответ на: комментарий от anonymous

https://rubygems.org/search?utf8=✓&query=rubygsm
No gems found

вот так знакомство с языком и заканчивается. Сомнительные у него плюсы, да к тому же гуглить по просторам интернета в поисках модулей - удовольствие для виндузятников.

вообще, перед тем, как писать «этого модуля нет в руби», погуглите, что ли

сам гугли. я глянул в репозитории модулей языка - нету. Гуглить по гитхабам и смотреть в код вместо документации оставлю раби-фанбоям. От этого их аргументация за этот язык выглядит еще забавнее.

Deleted
()
Ответ на: комментарий от gh0stwizard

Но эти 2.7 и 3 уже по дефолту во всех известных дистрах как минимум год

в актуальной CentOS без доп. реп только 2.6 (и хрен его заменишь на 2.7, надо рядом ставить)

излом во 2 версии руби

какой излом? я rails 3.2 на ruby 2.1.2 запускаю ровно так же, как и на 1.9. между 2.1 и 1.9 меньше разницы, чем между 1.8 и 1.9

anonymous
()
Ответ на: комментарий от anonymous

в актуальной CentOS

Хорошо, значит уже не во всех.

какой излом? я rails 3.2 на ruby 2.1.2 запускаю ровно так же, как и на 1.9. между 2.1 и 1.9 меньше разницы, чем между 1.8 и 1.9

Есть такая удобная софтина Octopress. Под 2.хх не завелась. Кому я должен сказать спасибо? Не могу винить автора программы, ибо он и так сделал многое, что позволил мне использовать удобный для меня блого-движок.

gh0stwizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.