Kirill
Это просто мой основной рабочий язык, и со времён 1.9 я не сталкивался с ломающими "надкапотными" изменениями
Kirill
Но я мог чего и пропустить, так что буду благодарен за толковые ссылки
Судзумия
Да легко, напимер, в 2.4 убрали Fixnum
Судзумия
Это многие либы юзали
Судзумия
Наш проект на 2.4 заработал не сразу
Anonymous
я очень переживаю за рубистов всётаки
Fedor
Наш проект на 2.4 заработал не сразу
я обновил rails до 4.2.8 и все стало нормально
Судзумия
Fedor
там только в очень редких местах оно падало, в основном совместимость осталась
Fedor
и is_a?(Fixnum) для Integer true
Anonymous
писать на языке который по сути является языком конфигов рельс и нигде больше не нужен, в котором даже потенциальной возможности нет что завезут чтото годное
Fedor
так что всякие проверки и прочее выжили
Kirill
Да легко, напимер, в 2.4 убрали Fixnum
Это вот кстати да, спасибо. Но в общем это скорее проблема ООПшной инкапсуляции? Integer всегда был абстрактным классом для Fixnum и Bignum, и "по книжке" лучше наиболее абстрактный уровень использовать...
Kirill
Но да, согласен
Anonymous
в котором матца шлют нахуй на пропозалы годноты типа ленивых map/filter
Kirill
Был ещё момент с округлением флоатов, помню — но там отказались от него перед релизом всё же
Влод
RFC: Evolving Rust Through Epochs (Score: 100+) Link: http://j.mp/2soI994
Так а что поменялось, вкратце? Новые кейворды?
Kirill
Хм, а они не ленивые?
Есть и те и те. Берёшь итератор, делаешь ему lazy, вот у тебя ленивые map и filter
Evgenii
Так а что поменялось, вкратце? Новые кейворды?
ну типа, давайте ломать совместимость вечно
Kirill
По дефолту — нет.
Судзумия
По дефолту — нет.
Удивительно
Kirill
Удивительно
Исторически так случилось. Язык с 1992 что ли года, старше ПХП на самом деле=)
Kirill
Дофига всего написано, где есть ожидание материализации коллекций, скажем из-за сайд-эффектов
Kirill
Взять и отменить слишком было бы как раз
Anonymous
но руби старше питона
Anonymous
а модулей ниасилили
Kirill
В смысле, модулей?
Kirill
Знать не знаю никаких модулей=)
Влод
ну типа, давайте ломать совместимость вечно
Ну и изменения вроде слабые? Ну и раз в 3 года
Anonymous
В смысле, модулей?
всмысле когда у тебя класс это некая обьектная еденица а не говно в проруби которое добавляется в скоуп от include чтоугодно
Kirill
Класс — не некая объектная единица. Класс — это прямо-таки объект. Естественно "заинклюдить файл с классом" это "создать в рантайме константу, в которой хранится объект класса Class, который реализует вот это и то".
Anonymous
lazy только в 2012 добавили. и так всё. до 2012 так же не было шелла нормального для repl кроме рельсового. возможно и сейчас нет
Kirill
В 12 году он точно был, кстати
Anonymous
Класс — не некая объектная единица. Класс — это прямо-таки объект. Естественно "заинклюдить файл с классом" это "создать в рантайме константу, в которой хранится объект класса Class, который реализует вот это и то".
ну всмысле ты делаешь require файлик и всё говно которое в файлике обьявлено тащится в глобалочку. в питонке импорт явный и если не импортируешь конкретно import Yoba from yoba то ничего не зарекваирится. это мелочи и вкусовщина, многие скажут, но это то изза чего руби настолько инопланетный и непонятный для нормальных людей, всётаки
доня.
Зато у нас join -- метод массива, а не строки 😝
зато у нас не надо самому реализовывать Join для кастомного класса, потому что join - метод строки и работает с любым итерируемым объектом
Anonymous
Попробуй http://pryrepl.org/
да действительно, 2011. хотя я руби ковырял в 2010. и это сейчас пишут статьи "pry лучший друг рубиста пок пок", а тогда уже вовсю был в питоне ipython а в руби был ссаных irb который не хотел эмбедиться и никто не знал как это делать и видимо не было речи о такой нужде даже
Anonymous
Зато у нас join -- метод массива, а не строки 😝
у вас в каждом ванильном билдин классе по 9000 методов какие только можно придумать. если я правильно понимаю https://ruby-doc.org/core-2.2.0/Integer.html какието блядь denominator, какието gcdб even, серьезно ? это всё в билдин классе инта ? может вам очень трейты хотелось, не знаю
Alex
Хм, а они не ленивые?
нет, там надо .lazy звать
Anonymous
убью родных за сахар 5.upto(10) { |i| print i, " " } #=> 5 6 7 8 9 10 убью друзей за лишний мусор в языке
Alex
для тех для кого это мусор пилите на других языках
Alex
весь современный руби имхо about implicit
Alex
поэтому мне смешно как питонисты ругают что язык не explicit
Anonymous
ну я не спорю что рубисты ДОЛЖНЫ топить за то что это ок. но это лишь обьективные для всех нерубистов проблемы от которых они в полном ахуе и все
доня.
отсутствие ad-hoc полиморфизма всмысле
Alex
придумывают какие то трейты которые придется в каждом файле писать, зачем?
Alex
в смысле в каждом файле?
ну как в расте например
Alex
надо тебе чтобы цифры могли .days.ago, подключаешь трейт
Anonymous
поэтому мне смешно как питонисты ругают что язык не explicit
я низачто не ругаю я лишь просто говорю что это крайне дебильно ради детского желания писать не [5..10].each ДОБАВИТЬ СУККА САХАР В ИНТЕЖЕР чтобы писать 5.upto(10)
Alex
это охуенно
Alex
да это как раз то за что любят руби, за лаконичность
Alex
вместо того чтобы бегать по докам и искать какой трейт например подключить сейчас.
Судзумия
Не за лаконичность
Anonymous
я знаю что рубисты считают это охуенным, но простите вы поехавшие и не лечитесь
Alex
Я люблю за лаконичность и выразительность, и в этом мнении я далеко не один.
Alex
я знаю что рубисты считают это охуенным, но простите вы поехавшие и не лечитесь
я думаю питонисты поехавшие, у них вечно от руби пригорает.
Anonymous
лаконичность @ поломаные импорты @ мусорные билтины @ три типа лямбд
доня.
ну в принципе JS сейчас к этому идёт, но там всё ещё куча быдлокодеров которые тупо фигачат методы вместо того чтобы использовать протоколы а всё потому что протоколы в JS не выделены как часть языка, так что надо самому дойти до их использования
доня.
я вот из динамических языков видел только в кложе нормальное решение этой проблемы (протоколы)
Судзумия
А за то что тебе придет в голову тупая идея «мне надо взять числа до 10» как это там будет? Upto? О, работает!
Alex
для тех кто не любит implicit пилите на Go
Alex
пишите кажды йраз один один и тот же бойлерплейт, зато явно.
доня.
лаконичность @ поломаные импорты @ мусорные билтины @ три типа лямбд
ну у нас-то ни одного нормального типа лямбд, справедливости ради
Anonymous
я не про implicit я не знаю чего ты это говоришь постоянно
Alex
а потом когда надо оказывается что и permutation просто работает.
Alex
я не про implicit я не знаю чего ты это говоришь постоянно
explicit это явно выражать что этот класс композируется отсюда и отсюда, явно подключать заголовки и т.д