ИЗУЧЕНИЕ ЯЗЫКА Q: C чего мне начать, чтобы стать рубистом? A: Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
Q: Следующий уровень, продвинутые книги по руби: A: Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in Ruby Refactoring Ruby Edition | Ruby Under a Microscope
Q: Какой gem посмотреть, чтобы понять, как писать код? A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping. Еще можешь полистать на гитхабе гемы с нарастающей популярностю (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
Снова подрезал шапку треда и добавил небольшой лог новостей о прогрессе руби (про рельсу тактически забыл пока). Про репу на гитхабе думаю — новости про майкрософт не радуют.
>>1203251 Рубимоушен больше под продукцию эпл ориентирован, ну и всё таки это совсем та нативность, которую обычно подразумевают — если я не прав и у тебя есть опыт, поправь меня.
ШузРБ подойдёт админу, да))) Эдакий Tk для питона.
>>1203251 Потому что опушка снова проебал норм шапку и написал свое говно не разбираясь в вопросе Алсо >http://shoesrb.com/ Полное дерьмо (как и ТК), подойдет если тебе надо показать окно с текстом и одной кнопкой, что-то сложнее сделать нельзя Зато есть gtk2/3 для которого можно взять нормальный дизайнер интерфейсов(glade) и делать нормальные полнофунциональные приложения
>>1214917 >Ему на инглише надо шпрехать, а думать на пиздоглазом. Постоянно так делаю (думаю на русском, естественно), никаких проблем не испытываю.
>Ты прямо сейчас на руби кайги? Нет, да он и закончился уже вроде.
>>1214927 Специально перед просмотром видео сел и написал за ~20 мин. Что там писать-то, если не нужна какая-то супероптимизация, то сам алгоритм примитивный. Они, кстати, еще и с краевыми условиями обосрались, в верхней строке будут браться данные из нижней, но не наоборот.
Почему сессия представляет собой пустой хэш до тех пор пока я туда, что-то не положу? Мне надо в before_action положить туда объект, уже зная id этой сессии. А этот самый id появляется только после того, как объект попал в сессию. Что делать?
>>1216070 >положить туда объект, уже зная id этой сессии Зачем? Мне кажется ты что-то делаешь совсем не так. Костыль, но можно положить рандомную фигню и потом уже положить то что нужно.
>>1216095 Да, именно такой костыль все и предлагают Мне нужно сделать что-то типа... ну, допустим корзины в интернет-магазине, но 1. пользователи не логинятся, и вообще это API 2. Корзину хранить в базе не надо(да, условия странные, но это так) Если предположить, что API юзают через браузер, то наверное можно было бы ее хранить в сессии, и с этим связан мой вопрос. А вот если не через бразуер... я пока не придумал
>>1216103 Мне кажется, эта задача не специфическая для руби/рельс. Сессия - это некий (временный) идентификатор, с которым связано хранилище. Тебе придётся сделать это частью API, мне кажется.
Например, в java ee стандартно используют url-параметр jsessionid=... если нельзя хранить это в cookie.
Т.е. ты генеришь id, и передаёшь его клиенту, далее он его передаёт тебе в каждом запросе. Что с этим делать на сервере, ты, я думаю, разберёшься.
>>1216114 а могу ли я как-то чекать из браузера ли запрос, или, ну например curl? и в первом случае использоваться session(с небольшим, описанным выше костылем), а во втором- генерить id?
>>1216119 >а могу ли я как-то чекать из браузера ли запрос, или, ну например curl? Заголовки запроса смотри - UserAgent.
>>1216120 >я по условию своей задачи не могу слать в параметрах запроса какой-то свой id
HTTP - протокол без состояния. Если ты хочешь как то узнавать отдельного клиента, то это делают только так. Или cookie (клиент передаёт их в заголовке каждого запроса) или явный параметр - url, или form или поле в json данных.
В задаче сказано, сказано, что этот объект, который нельзя хранить в базе, должен жить либо какое-то заданное небольшое время(5 мин), либо до закрытия браузера. Список параметров запросов тоже указано явно, и так нет ничего типа id. Как думаешь, анон, рассчитывать только на посыл запросов из браузера и хранить объект в сессии, или же тут какой-то подвох?
>>1216125 Если клиент пользуется браузером, то используя session я могу видеть, что запросы шлет один и тот же юзер(пока не закрыл браузер), а если он шлет их курлом?
>>1216127 Посмотри что передаёт браузер, и где там ид сессии. Я думаю - в cookies. Curl тоже может работать с cookies, см. документацию.
>>1216126 Скорее всего, имеется в виду именно сессия. Т.к. сессия на сервере закрывается через определённый период неактвности. И после закрытия браузера, при повторном открытии и соединении с сервером будет выдан новый ид сессии.
Короче - посмотри на сервере заголовки клиентских запросов, включая cookies.
>>1216133 >>1216135 Не, ну чисто в порядке изьёба можно хранить состояние в get-параметрах. Т.е. после каждого запроса редиректить клиента на новый url. А в этом новом url у тебя будет описано состояние корзины.
Например (в порядке выполнения запросов): product?id=1&quantity=2 product?id=1&quantity=2&cart=[1:2] product?id=2&quantity=3 product?id=1&quantity=2&cart=[1:2,2:3] И так далее.
Формат записи содержимого корзины может быть любым.
Практический смысл этого несколько сомнителен. Но, для простых случаев сойдёт.
Сап Подойдет ли книга "Путь руби" для нуба? Планирую идти в будущем в Рельсы в качестве веб бэкэнда Сильно не бейте за тупой вопрос; Все знакомые и друзья пишут бэкэнд на пыхе
Манкипатчить можно и JS, добавляя свои функции в прототипы, только вот даже до падких на фантики джсеров дошло, что monkey patch - это дурная практика, которая приводит к трудноуловимым багам. А вот до рубистов не доходит. Гораздо гибче pipeline operator: https://github.com/tc39/proposal-pipeline-operator#introduction
>>1223207 > Все знакомые и друзья пишут бэкэнд на пыхе
Тем временем в PHP7 у тебя есть проверка типов и интерфейсы, в PHP8 завезут JIT, а Laravel недавно стал самым "звёздным" бекенд-фреймворком на гитхабе, обогнав рельсы, джангу и экспресс.
Хочу вкатиться в руби , но друг постоянно наяривает учить жаба скрипт. Крч перечисляете несколько хороших агумктов чтобы послать его писать спагетти код. Спасибо
>>1233313 Если у тебя есть машина времени, то ты можешь отправиться лет на 10-12 назад и какое-то время зарабатывать неплохие деньги на рельсах. Других разумных доводов в пользу вкатывания в руби в 2018-м году не существует.
Да и сам язык по нынешним меркам - неинтересен. Слишком запутанный и малофункциональный.
Единственное его достоинство - на нём можно удобно писать DSL, что и используется в рельсах.
Но, эта тема с программированием на таких вот DSL - это тоже вчерашний день. Потому, что все давно поняли, что лучше выучить 1-2 нормальных языка, чем 10-20-100 DSL.
И да, в Руби слишком много ООП и неудобно делать ФП.
Так что JS, несмотря на все его недостатки, выглядит гораздо более современным, чем Ruby. Особенно - со всеми новыми фишками JS, ещё даже не вошедшими в стандарт, но поддерживаемыми в Babel.
Рубаны, а что сейчас самое МОДНОЕ для парсинга в рубях? Лучше nokogiri так ничего и не изобрели? Мне надо написать парсер для больших объёмов данных, вот решил вспомнить, какого это писать парсеры на рубях.
Сап, анон, такая проблема. Пишу BDD тесты, ruby + cucumber + gerkin. Необходимо мне проверить Json файл, в котором на один id приходят несколько результатов. Как грамотно можно их распарсить? Код ниже парсит json, состоящий из одного вложенного объекта, на два и больше падает.
>>1235337 >>1235304 Что читать чтобы вкатиться в тесты ? Заебало прокрастинировать дома, хочу вкатиться на джуниора, а там в требованиях тесты, и в 99% ебанный рспек. Смотрел Effective Testing with RSpec 3, но чет оно вообще не зашло. Как можно дрочить на рспек в котором писать expect(hyeta).not_to eq("2ch") вместо assert(hyeta != "2ch), мне в голову вообще не влазит + примеры в той книге вообще пиздец, для тестов количество кода раза в 3 больше, чем самой логики ? Читал pragmatic guide, хартла, В руби/рельсах шарю неплохо (по моему скромному мнению), так что желательно не совсем для нубасов.
>>1235498 Книжки о том как писать тесты это вообще такое, как по мне. Просто посмотри, например, как тесты в dry-rb выглядят, у них очень годно все. Если хочешь проект который использует рельсы, то у mastodon неплохо все с тестами, хоть и не идеально, конечно.
>expect(hyeta).not_to eq("2ch") вместо assert(hyeta != "2ch) Вкусовщина, через неделю становится пофиг. Тем более обычно не eq, а матчеры по-сложнее используются.
>для тестов количество кода раза в 3 больше, чем самой логики Значит у тебя CRUD или прочая примитивная фигня. Его даже особого смысла тестами покрывать нету. По-моему опыту для среднестатистического service object у меня получается x1-x2 количества кода в тестах по-сравнению с кодом самого service object. Но за счет того, что еще приходится писать дополнительный бойлерплейт в контроллерах, роутах, сериалайзерах и тд, то в итоге кода вне тестов выходит больше, чем кода в тестах.
Что аноны думаю о Crystal ? https://crystal-lang.org/ Сайт у них красивый и лого интересное. Думаю руби начать учить, а потом на это вот перекатиться, чтобы питонобыдлу показывать, насколько кристалбояре заебись.
>>1241019 Используй один из вариантов: a = [(String.new "hello"), (String.new "world")] или a = [String.new("hello"), String.new("world")] Внутри объявления массива, видимо лучше не шутить с пробелами.
если кому-то интересно, почему так происходит, то ответ такой: интерпретатор в данном случае не сможет отличить [Person.new("Nick"), Person.new("James")] от [Person.new("Nick", Person.new("James"))]
Из-за чего и возникает ошибка.
Ещё я заметил, что передавать несколько аргументов не в скобках не самая лучшая затея, потому что, например, в случае со строками руби попытается их соединить. Например, Person.new "John" "Doe" Руби воспримет как Person.new "JohnDoe"
Где можно найти нормальные гайды по тому как работают роуты? У меня задача такая, хочу дерево роутов пробросить на фронт, примерно как в геме jsroutes. Не могу найти место где создают хелперы для роутов и получить их список или же как это сделать ручками.
>>1247628 В США или германии после или во время вуза можно интерном устроится работать. В японии тоже. Сколько смотрю вакансий в россии джуны либо не нужны, либо очень редко берут в каком-нибудь новосибирске, в москве иногда.
Не могу найти работу уже 9 месяцев, прошу меньше 2к, походу руби ВСЕ. мидл с 3 годами опыта и опытом работы в больших компаниях, зарубежных стартапах етц.
>>1247665 С тобой что-то не так или ты совсем в каком-то зажопинске ищешь. Мне стабильно раз в неделю пишут, а то и чаще. 5 лет опыта, предлагают 180-300к, в ДС, реже удаленку, релокейт тоже иногда предлагают во всякие европы, но я хочу только в США или Японию, но это самому искать надо, а я совсем горелый, ничего делать не хочется. Сейчас получаю почти 250к на удаленке, фуллтайм, но на деле 25-30 часов работаю. Знакомый рубист (4 года опыта) недавно устроился на 230к в ДС, искал работу неделю.
>>1247896 4 года коммерческого опыта, до этого еще пару лет девопсом работал, а так программирует с подросткового возраста, насколько я знаю. У меня, соответственно, коммерческого 5 лет, программировал для себя всякие опердени лет с 14 и до пятого курса. На пятом курсе пошел работать я не быстрый. Но на самом деле я не думаю, что это так уж важно, написание лаб и прочей хуиты школотой/студентотой и коммерческая разработка это совершенно разные вещи.
>>1248426 Падает. Пока другие языки развиваются руби торчит на месте. Я пытался ещё заводить рельсы и что-то писать, но не получилось, тк. Я так и не понял как эти ебучие гемы доустановить в рубимайн.
>>1247535 >Почему действительно падает популярность ruby? Рубисты тихонько перекатываются на эликсир и кложу. Ну и еще есть стереотип, что без рора рубей нет. А так - он довольно популярный, париться на этот счет всерьез смысла нет.
>>1248768 >Очень надеюсь что ты не Руби программист и никогда не станешь вкатываться в руби.
Я бы очень хотел, но даже в рубимайне блять настройка конфигурации какая-то ебанутая. Понимаю, что это не отговорки, но я просидел час, и сгорел. Попытался ради приличия запустить простой проект на роре - не установлены гемы. А как их сука через bundle команды прописывать, нихуя не сказано. Все перепробовал. В итоге не судьба мне вкатываться в эту парашу, а жаль.
>>1248782 > А как их сука через bundle команды прописывать, нихуя не сказано. > Все перепробовал. В итоге не судьба мне вкатываться в эту парашу, а жаль. Ты специально в каждом треде семенишь для активности?
>>1248797 я че ебанутый что ли семенить? Я и так уже работаю погромизтом, только меня интересует бек, который блять ебанутый везде. Только почему-то спринг сразу запустился, а эта параша нет.
>>1248852 >Есть подозрение, что ты вендоблядь. Ведь иначе ты открыл бы консольку, написал bundle install и все бы у тебя заработало. Конечно, я прописывал нихуя не работало.
>>1248857 В винде почти ничего не работает, а что работает - все через жопу. Даже гит поставить - это целый квест. Ну и вообще >сидеть в /pr >пользоваться недоос хотя нет, все сходится, лол
>>1248892 Среди программистов на C# самая популярная? Самая популярная ОС - Андройд, на нем руби работает.
>>1248893 Судя по ошибке у тебя файл не в UTF-8 сохранен, можешь проверить запустив find -bi filename.rb. Кстати, encoding: UTF-8 уже давно можно не писать.
>>1248899 Только руби-способный программист смешает мобильные ОС с десктопными. Да все с вами ясно, уже по ходу мышления понятно что продукт сильно ограниченный. Собственно, вот и ответ почему популярность падает, кому нужен в 2018 не кроссплатформенный инструмент.
>>1248899 >Судя по ошибке у тебя файл не в UTF-8 сохранен, можешь проверить запустив find -bi filename.rb. Кстати, encoding: UTF-8 уже давно можно не писать. Да я уже почистил руби и перестал пытаться. Сейчас тем более свифт еще учить для иоса нужно. А так, буду спринг тыкать)
>>1248437 >Пока другие языки развиваются руби торчит на месте А вот и неправда. Руби и его экосистема медленно, но уверенно развиваются. В этом году даже кол-во вакансий растет. А то что у тебя там в РубиМайне что-то не настраивается я хз, проще конфигурирования чем в Руби я еще не видел. bundle install и дело в шляпе. Даже на винде, хотя исторически сложилось что на винде с руби не работают.
С Руби просто спал хайп. Теперь он занимает нишу надежного, стабильного решения для веб-разработки или написания скриптов. При этом он не "устарел", в тех же Рельсах последних из коробки доступно все что нужно для современного веба, и вебпаки, и сразу поддержка реакта/ангуляра/вью и т.д. А в сам руби завезли JIT-компиляцию.
Единственный минус Рельс - его чистая MVC архитектура довольно недостаточна для современных решений и подхода к коду. Поэтому частенько в рельс-проектах в папке app можно встретить самописные уровни абстракций - service и query objects, всякие policy, да много я видел. Некоторые из них (сервис обжекты) де факто стали стандартом. Потому что сейчас веб-приложения намного сложнее, чем 10 лет назад, и контроллера и модели не хватит чтобы красиво организовать всю логику. Поэтому есть такие штуки как Trailblazer или вообще Hyperloop (пишешь и бэк, и фронт на руби, объединяя модели на бэке и фронте, сокращая кол-во написанного кода; а руби-фронт потом превращается в реакт компоненты).
Короче, Руби жив и будет жить дальше.
>>1247694 >>1247538 Для 90% сайтов его более чем достаточно с головой, потому и популярый стал. Но его довольно неудобно настраивать под себя в случае каких-то нестандартных решений связанных с аутентификацией.
>>1248991 >bundle install и дело в шляпе Конечно. ЧТОБЫ я сюда не писал, ничего происходить не будет. Почему рубимайн такая ебанутая иде? Скачиваешь андройд студио - все запускается с первого раза. Делаешь хкоде приложения - все запускается с одного раза. Скачиваешь спринг - все запускается с одного раза. Пытаешься вкатиться на хобби в руби - нихуя не запускается.
>>1249043 Потому что для 98% Руби разработчиков не нужна IDE, тем более для хобби. Пиши в консоль bundle install и смотри что у тебя не так. А то ты пытаешься вкатиться через жопу и вместо того, чтоб понять в чем у тебя проблема - ноешь про редактор. В Рельсах аналогично все запускается с первого раза, rails new, rails server и смотришь в браузер уже.
Ну а если тебе не интересно решить эту проблему, то дальше тоже будет неинтересно. Потом выскочит проблемка с базой, потом с ассетами, потом с тестами и так дальше. Тем более на винде (на руби под виндой исторически не разрабатывают), тем более через IDE где ты не контролируешь процесс руками через консоль.
>>1249047 Я в консоле не привык работать из-за андройда, но конечно же буду пробовать. Мне че тогда, вим тыкать параллельно или есть другие популярные решения? Как установить рельсы через консоль вроде нашел гуиды.
>>1249067 Я - он. И да, я тоже сижу на VS Code, лучший редактор на данный момент для руби/js/питона и веба. Атом тоже неплох, но лично он у меня медленней работает + плагины не такие удобные.
>>1249059 Да, используй VS Code, там есть удобненький встроенный терминал и из него вручную вбивай все команды. rails new, rails s и вперед. А пердолиться с РубиМайном надо если ты точно знаешь чего ты хочешь и зачем тебе это. Лично я его использую только если у меня огромный легаси Рельс-проект на >50 моделей и контроллеров что было всего 1 раз.
Я когда начинал учить руби я тоже "по-крутому" сидел на винде и ебался с РубиМайном кек Там много подводных камней может вылезти, которые ты не увидишь т.к. нет опыта в Руби. А с опытом ты поймешь что для Руби IDE и не нужна, это не джава и не плюсы.
Я потом переехал на линукс и правильно сделал, там все примерно в 100 раз удобнее. Во-первых, 90% туториалов используют Линукс, и не только руби: и бд, и гит, и ssh, и докер, все с чем пришлось столкнуться так или иначе по-людски на винде не работает.
> У тебя аргументов нет? Уже расчехлил свой фактомёт, приготовься.
> Сможешь назвать эти четыре менеджера версий? Тебе нужно, ты и называй, лел. Кто тут мамин советчик?
> Почему рвм худший?
Субьективно, это говно использует системную версию рубей, когда спаунишь шелл в директорию с проектом. Вот делать нехуй '# cd' прописывать, чтобы заработало.
Объективно, rvm - overcomplicated, а аналоги - kiss. Вот ты не советовал ему rubymine? Так нахой это гавно пихаешь?
> 10к звездочек на гитхабе > 4к звездочек на гитхабе
На какой сам сядешь, на какой новичка посадишь?
>>1249501 > rvm как раз самый простой и понятный в установке
Нет, ты врёшь или никогда не пользовался аналогами. RVM - это возня с логин шеллом, подчистка говна после апдейта менеджера, соснольные команды в 2+ уровня вложенности и т.д..
>>1249581 >Нет, ты врёшь или никогда не пользовался аналогами. RVM А что тогда выбирать? Вы тут спорите что это за говно, а альтернативы не упоминалось. мимоновичек
В общем мне нужно запускать скрипт, который распарсит загруженный файл в джобе. Скрипт запилил, вызывается как ScriptName.new(foobar), закинул в /lib, как теперь вызывать из класса активджоб? Есть ли какой-то другой более элегантный способ?
Пишу api для могильного приложения, бэк на рельсах.
Нужно обработать запрос а-ля GET /api/blah-blah?someparam=pampam
Исходя из значения someparam контроллер обрабатывает массив данных модели blah-blah, отдает их через render json: blah-blah, где blah-blah - ряд данных типа id: int, title: string.
Вопрос: как мне в ответ json впихнуть для каждого blah-blah дополнительную переменную, чье значение (boolean) может меняться для каждого blah-blah.
В БД, условно, есть таблица с пользователями (Users) и какими-то еще штуками (Items).
Идет запрос GET /api/items?param=user_id
По user_id в контроллере находим пользователя. Ему может принадлежать или не принадлежать Item.
В ответе на запрос выводим полный index Items (render json: items). Нужно для каждого item дополнительно вывести значение переменной, условно, owned, если пользователю item принадлежит.
>>1251003 Чем старый-добрый new + call не устраивает? Магии захотелось? Ууу, тебе сейчас дам магии, бака.
>>1251133 >Гуглил долго, вдумчиво Чего ты гуглил? Первой ссылкой по запросу ruby render json include field выдает: https://stackoverflow.com/a/17730474 Но вообще используй jbuilder. Возможно сейчас кто-нибудь начнет топить за active_model_serializer/fast_json, но jbuilder для простых API практичнее я считаю хоть и тормозное говно.
>>1251162 >https://stackoverflow.com/a/17730474 > Спс, это я видел, это не то. Если разбирать то, что поссылке, то мне нужно вывести в json @programs, так, чтобы для каждой program выводилась дополнительная переменная, обрабатываемая в контроллере и значение которой НЕ присутствует в БД, модели и тп.
>>1252528 Лучше: скорость разработки, элегантность и выразительность кода, меньше бойлерплейта, разработка через тестирование, лучше экосистема.
Хуже: производительность (в малых масштабах незаметно), распространенность на хостингах, стоимость разработчиков.
"Хуже" как бы не совсем адекватные пункты, но частенько они весомые и играют роль. Вот например текущий свой проект на работке мы делаем на ПХП потому что заказчик так попросил из-за того что потом для поддержки он не найдет рубистов, кек.
>>1254946 На самом деле проблема не в Руби, а в том что теряется "монополия" языков, сейчас появляются новые фавориты - Дарт, Котлин. Питон становится очень популярным и перетягивает на себя челиков из пхп и руби. И так далее.
>>1241101 >Ещё я заметил, что передавать несколько аргументов не в скобках не самая лучшая затея, потому что, например, в случае со строками руби попытается их соединить. Например, >Person.new "John" "Doe" >Руби воспримет как >Person.new "JohnDoe"
RuboCop выдаст warning на попытку написать такое:
>foo.rb:1:6: W: Lint/ImplicitStringConcatenation: Combine 'foo' and 'bar' into a single string literal, rather than using implicit string concatenation. Or, if they were intended to be separate method arguments, separate them with a comma.
>>1248904 Мань, через 10 лет школьники даже знать не будут что такое "ПК", он будет онли для сычей который дрочат свою хуйню занудную в фотошпе, автокаде, IDE
Т.к в моей стране руби умер у меня вопрос - что по "зашкварности" аналогично рубям? То есть я хочу так же быть стереотипным хуйлом со смузи, туннелями в ушах, с макбуком обклеенном стикерами, капучино с соевым молоком на вынос, салатик с курочкой и пармезаном и т.д. Нода мб какая, но в идеале в жс не хочу вкатываться.
>>1256721 >Так он в 10 раз мертвее Руби. чегоблядь.пнг
>Надо что-то элитное нишевое Если прям ЭЛИТНОЕ, то кложа (пикрелейтед), но там антихайп антисмузи-культура, так что под твое описание не особо подходит.
>>1257054 Вряд ли сдохнет вообще. Тем более через годика 2 третья версия, скорости работы которой будет достаточно, чтобы убрать свой главный минус - медленность интерпретации.
В остальном язык с устоявшейся экосистемой и приятным синтаксисом, причин умирать нет.
Наоборот когда упадет горячка по поводу SPA и PWA, которые грузятся и тормозят как пиздец, колесо обратно вернет нас к тому, что быстрее загружать каждый раз хтмл чем ебошить все приложение на клиенте. А там внезапно вспомнят почему так хороши Рельсы, Джанго, etc.
>>1257540 1. Меньше писанины кода. Роутинг, контроллеры и перекидывание переменных в Рельсах делается автоматом, ничего не надо импортировать, перекидывать переменные и т.д., все делается рельсами. 2. Руби 2.5 чуть быстрее Питона 3. 3. Экосистема вокруг Руби больше направлена на веб чем Питоновская, Питон более "общий" язык чем Руби, ну и конечно же НЕЙРОНОЧКИ.
Все зависит от того какой язык тебе больше нравится да и всё, остальное мелочи на самом деле.
>>1260961 Пилятся вообще-то, можно. Просто вакансий меньше, но тебе не нужно много вакансий, тебе нужна 1 та самая. По крайней мере у нас в Киеве есть вакансии на джуна, а в Днепре курсы по Рельсам и руби ежегодно в сентябре.
>>1260964 >а в Днепре курсы по Рельсам и руби ежегодно в сентябре. Как же круто! В моей мухосрани на 800к вообще нет курсов никаких. А как же хотелось бы навернуть руби до ушей, пиздец. Как же горит, что я не могу притронуться к этой величественному языку, приходится работать джуном за 30к и параллельно уча еще другое направление. Может быть я присоединюсь к вам через год или два.
>>1260980 Ну я, например, устраивался джуном на удаленку полтора года назад. Но мне повезло и такое редко бывает. Я сделал пет-проект для одной онлайн карточной игры, туда админы взяли работать, оказалось что сам проект на рельсах написан тоже кек.
Ну сейчас у нас проекты на пхп, а не руби, что довольно печально, но норм.
Но джун на удаленке сам по себе редкая птица. А по руби тем более.
>>1261182 > Ну сейчас у нас проекты на пхп, а не руби, что довольно печально, но норм. А ты равньше выучил руби или php? Сложно было после руби переходить на php, помог рубишный опыт?
Естественно помог. После первого языка остальные учить в сто раз легче.
До руби я в универе видел и плюсы, и на джаве писал немного лабки. Так что руби, а пхп тем более не стали для меня сюрпризом. If'ы и циклы я учил еще на плюсах.
Но руби, конечно же, среди всех этих языков вне конкуренции. Очень приятный синтаксис и структура (все является объектом). Я как только увидел 3.times do и узнал что числа и строки это все экземпляры классов Integer и String - сразу понял что Руби идеальный язык для меня. Начал учить его усиленно пока в универе сдавали лабки на джавер, потом рельсы, потом пет-проект и вуаля пригласили на удаленку.
>>1261208 Как же не нужен, язык общего назначения же. На нем пишутся различные скрипты, парсеры XML/CVS/Excel и т.д., скрапинг веб-страниц, на нем написаны Chef, Puppet и даже Vagrant. А в вебе кроме рельс есть еще Hanami, а также куча маленьких фреймворков для маленьких сайтов.
Просто вокруг Руби спал хайп, но это не значит что его перестали использовать. Как раз наоборот, Руби состоявшийся и надежный язык с большой экосистемой и кучей готовых решений под что угодно.
И работа все так же есть наоборот в 2018 кол-во вакансий выросло, на Джинне анонимный поиск работы в Украшке каждые 2-3 дня вакансия на мидла. В Днепре есть курсы от RubyGarage где пытаются сделать новеньких рубистов.
Сам язык развивается, на подходе быстрая 3 версия.
Так что нет никаких проблем.
Ну а если не нравится сам язык и синтаксис - что ж, никто не держит, есть питон/пхп/js из аналогов.
>>1261374 Сайт. Желательно не просто CRUD, а что-то интересное, тогда шансы устроиться джуном повышаются.
Вот у меня была база данных по картам и составитель колод.
>>1261413 Ага, и ебаться с джанго. А еще конкурировать с сотнями других вкатывальщиков, т.к. питон щас на хайпе.
Учить надо то что нравится, а не то что популярно.
У Питона и Руби совсем разные философии. Питон это "должен быть только один очевидный способ сделать это", а Руби гибкий и поощряет свободу выбора и выразительность кода разными путями.
Впрочем зачем я отвечаю на толстую маньку которая зачем-то месяя сидит в руби треде и говорит что он нинужен
>>1261413 А я учил его когда-то, выбирал между перлом ещё. Не смог вытерпеть отступы (надо будет таки доучить питухон, уж слишком распространённый язык, но руби всё равно приятнее).
>>1261439 Так я работаю с любимым языком. А если тебе не нравится, то все равно ничего не получится. Только лишь пополнишь ряды вкатывальщиков, которые за деньгами сюда пришли.
>>1261455 Все что ты описал - неправда. Поэтому толстишь. Тут сто раз уже рассказывали про миф и уверенность в том, что руби остался языком из 2004 года. По скоросте языка и разработке он не уступает аналогичным интерпретируемым языкам для веба.
>>1261457 Ты немного не объективен всё же, хоть и >>1261455 толстит. Руби не медленнее в типичных веб-задачах, это правда, но всё же ему не хватает производительности, в некоторых других задачах, ради которых пилят JIT сейчас. Без поддува гугла трудно сделать.
>>1261455 Хоть JIT'а и нет пока, но руби не отстаёт от трендов и даже повлиял на многие языки (типа свифта от эпла, что уже о многом говорит). Язык это не только реализация, но ещё и синтаксис.
>>1261904 Чувак, похоже это download master. Лучше остановись, иначе линуксоидом станешь А вообще это зависимости для функционирования gnu-окружения на основе которого работает руби и система сборки расширений, чтобы ты мог их ставить (они собираются из сишных исходников после скачивания)
едем дальше я не понял как работает форматирование строк- %s и % поясните >hi = "Hello, %s" puts hi % "Matz!" # => "Hello, Matz!" puts hi % "people!" # => "Hello, people!" puts hi % "universe!" # => "Hello, universe!"
>>1262060 пустил слезу Вот так и я 2 года назад попробовал руби.
Помню сразу обосрался с этого: 3.times do print 'Hello' end
>>1262022 Один из плюсов Руби - классное комьюнити. Т.к. рубишный подход к программированию привлекает особых доброняш, а токсиси идут в питон.
Но вообще да, вакансий мало. Они есть всегда мне буквально каждый день приходит новая вакансия на мидла, но новичку вкатиться сложно будет. Тут надо не через вакансии, а рассылать резюме и письмо про себя в конторы.
Хелпаните, плез Есть XML файл, в нем не указана кодировка. При попытке открыть файл для парсинга в XML формате, получаются каракули. При попытке открыть этот же файл для тех же целей в HTML, все работет. Открыл XML файл в редакторе и перебирал кодировку, встерил понятный текст на кодировке windows-1251. Перекодировать файл не получается. Не знаете в чем проблема? Большая ли разница парсинга HTML и XML?
>>1262228 В коде-то не проблема валидацию на уникальность замутить. Меня интересовало, есть средства БД для этого (в моем случае postgres), чтобы оно кричало UNIQUE CONSTRAIT VIOLATED for this relation!1 слишком много хочу наверно
Загружаю несколько файлов через форму, как обработать их в params? Нужно чтобы для каждого файла создался экземляр модели. в парамсах разрешил params.require(:modelname).permit(files: []) а вот что писать в create? Как зааттачить файлы?
>>1262522 вообщето по каждой теме я читаю сразу несколько статей,что бы наверняка,хотя некоторые подробности тяжеловато даються,как пример щас-ООП,иду со скрипом
>>1262522 Даниил просто проводит эксперимент. Он хочет найти предел терпения няшных рубидевелоперов и превратить их в токсичное быдло без страха и упрека
>>1262704 Переменные класса следует воспринимать как служебные, специальные переменные, которые лучше не использовать.
Это такие переменные которые доступные всем экземплярам класса и просто при объявлении класса. Можно использовать переменную класса чтобы считать количество созданных экземпляров класса.
Переменная экземпляра класса это твой бро — хранит данные экземпляра и только он (экземпляр) может ими распоряжаться.
> Переменные класса следует воспринимать как служебные, специальные переменные, которые лучше не использовать.
Это такие переменные которые доступные всем экземплярам класса и просто при объявлении класса. Можно использовать переменную класса чтобы считать количество созданных экземпляров класса.
это типа каркаса с параметрами,но без указания значений параметров?
>>1262732 Напиши пару примеров сам — никакие объяснения не дадут реального опыта. Пока ты не пишешь библиотеки и очень сложные проекты, тебе понимать переменные класса не нужно, тащемта.
Webpacker 4 на проде есть у кого-нибудь? А то почему-то при деплое нихуя не компилится и не работает, пришлось на 3.5 откатываться, который при тех же настройках идеально работает.
>>1264198 1. Огромная база готовых решений. Авторизация, аутентификация, загрузка файлов, отправка писем и прочих уведомлений, отложенные задачи, обертки для миллионов API, парсинг всевозможных форматов, ORM вполне годная, если знать несколько особенностей и куча прочего. И все это хорошо интегрировано и настраивается в момент, после этого смешно слушать хоррор стори из того же нодо-мира о двух днях потраченных на настройку какого-нибудь вебпака. 2. Руби очень годный язык. По-моему мнению лучшей среди динамических языков. И невероятная гибкость языка это все-таки скорее плюс, все миддлы-сеньоры в любом случае знают фичи которых стоит избегать (их немного), но зато она позволяет создавать такие вещи как тот же pry - лучший REPL из всех которыми я пользовался. И на самом деле за рельсами жизнь не заканчивается. Я видел достаточно небольших внутренних проектов на связках вроде sinatra + sequel, grape тоже часто используют для создания API.
>>1264230 Кроме тормознутости еще памяти жрет много, крупный рельсовый монолит легко может сжирать несколько гигов. Из-за GIL все серверы приложений, для того что бы нагружать все ядра, до сих пор используют fork, к счастью MRI уже давно copy-on-write-friendly, так что особенно на потребление памяти это не сказывается. Еще есть JRuby, но использовать его часто не просто, так что большая часть проектов сидит на MRI. Хватает легаси проектов с моделями на тысячи строк, хотя такой хуйни и в других языках хватает. Язык развивается медленно, Матца хоть и принято любит в коммьюнити, но честно говоря я бы предпочел что бы он ушел и отдал проект кому-нибудь по-моложе. Хотя кандидатов на замену в любом случае по-моему нету.
>>1264268 А еще забыл про основную ORM написать (ActiveRecord). В целом она неплохая, но тяжеловесная и с просто огромными количеством методов, которые по-моему мнению не нужны у меня давно есть идея запилить activerecord-light. Плюс нюфагам с ней очень просто наворотить кучу N+1 запросов и потом кукарекать, что руби медленный. Реально казалось бы уже на каждом заборе написано, что не нужно так обсираться, уже даже гем сделали что бы предупреждать об этом, а все равно постоянно встречаю эту проблему.
>>1264326 Я пробовал. В целом, если тебе нужна скорость и параллелизм, то он годен, но developer experience, хоть и неплохой, до рельс не дотягивает. Очень, конечно, нравится тотальная иммутабельность в эликсире, но минусов все-таки больше: Стандартная библиотека заметно беднее. Ecto неплох, но писать запросы на нем не очень удобно. То есть простые запросы-то пишутся довольно легко, но как только нужно что-нибудь посложнее сразу начинается еботня и становится проще сразу на SQL нахерачить. В ActiveRecord желание нахерачить на SQL у меня возникает реже. С Decimal вообще цирк, каждый раз когда приходится его использовать у меня ощущение, что я вставку на лиспе пишу. REPL опять же по-хуже, чем в руби. Dialyzer заебешься нормально заставлять работать, да и все равно он тормозной.
>>1264379 Вкатился в 2013 на хайпе, да и просто язык няшным показался после жабки, пришел в мелкую контору в ДС, показал что могу (почти нихуя) и меня взяли. Через полгода ушел на удаленку в другую контору, в офис с тех пор возвращался только один и ненадолго. В целом все что хотел от языка я получил, он до сих пор остается одним из топовых языков для удаленки, если не брать в расчет пхп, по очевидным причинам, то лучше дела тут только у js, но в него я тоже могу. В офисе пообещал сам себе еще в 2015 больше никогда не возвращаться. Хотя иногда подмывает задрочить алгоритмы и попытаться устроится в какой-нибудь гугол.
>>1264385 Первая работа один крупный российский портал по очень популярной тематике, сейчас он почти сдох, потом российский стартап, у которого теперь обороты в сотни миллионов, а скорее всего и миллиарды (когда только пришел доход был еще нулевой, происходило бы это в США, у меня 100% был бы солидный пакет акции стоящий овердохуя, эх), наверняка о нем многие слышали тут, потом внутреннию CRM для крупного европейского бизнеса, плюс было еще несколько проектов по-мелочи.
>>1264386 За те деньги которые там платят я готов многое потерпеть.
>>1264476 Парни, как разобраться в рельсах, так чтобы понимать прямо мясо как оно работает внутри? Я просто из Go и Java пришел и некомфортно как-то когда не понимаешь как все работает изнутри.
>>1264991 ну не совсем, просто там будет много картинок, вот так мы написали, теперь мы вот это поменяли и у нас вот так стало, а вот тут и скриншотик из браузера, мы молодцы, продолжаете в том же духи
>>1265118 У salesforce дела идут хорошо, так что денежек на это жалеть не будут. Плюс IBM пилит какую-то свою гитлер-машину отдельно от основной команды для ускорения руби, может и их наработки как-то будут использоваться потом (новостей о них правда кот наплакал).
>>1264334 >проще сразу на SQL нахерачить Капитан Очевидность тем временем дежурно напоминает, что ЭктивРекордс - это антипаттерн ^_^
>>1265462 Я другой анон, но многие действительно не понимают, что такое "репл". Питонорубисты обычно думают, что "лучший репл" - это типа когда у тебя подсветка синтаксиса и скобочек в консолечке, лол. Ну то есть они путают репл-клиент с собственно самим реплом. REPL (read-eval-print-loop) - это модель выполнения, при которой у тебя есть живой процесс твоей программы со встроенным в нее компилятором, и ты можешь по сети посылать внутрь нее новые формы, которые компилируются, добавляются в живой образ твоей программы и исполняются, так что ты можешь менять как код, так и текущее состояние твоей программы. Ближайший аналог - это, внезапно, консолька у тебя в браузере или looking glass в gnome-shell, или имакс....
Многие почему-то под репл понимают просто интерактивную консольку или интерпретатор, хотя они вообще-то к реплу имеют очень мало отношения. Даже хотя бы потому, что там нет отдельной фазы read (read-eval-print loop, ага), лол
>>1265462 Алсо, забавно что ты назвал того анона скобарем в руби-треде, ололо Где-то в параллельной вселенной: >c++-тред: >байтоеба забыли спросить, лол))))
>>1265118 А это не так критично. Все равно кубернетес если надо развернет нужное количество нод с помощью cluster-autoscaler и так же уберет если нужно.
>>1265570 >REPL (read-eval-print-loop) - это модель выполнения, при которой у тебя есть живой процесс твоей программы со встроенным в нее компилятором, и ты можешь по сети посылать внутрь нее новые формы, которые компилируются, добавляются в живой образ твоей программы и исполняются, так что ты можешь менять как код, так и текущее состояние твоей программы. Тогда лучший репл в Erlang/Elixir. Правда я пока не разобрался, как с ним роботать.
>>1264334 > developer experience, хоть и неплохой, до рельс не дотягивает Нормальные вьюхи в фениксе хотя бы тебя не покорили? >Очень, конечно, нравится тотальная иммутабельность в эликсире Ну это и в Руби легко делается. Вот паттерн-матчинга очень не хватает. >Ecto неплох, но писать запросы на нем не очень удобно. То есть простые запросы-то пишутся довольно легко, но как только нужно что-нибудь посложнее сразу начинается еботня и становится проще сразу на SQL нахерачить Может ты просто пока не освоил как следует? >В ActiveRecord желание нахерачить на SQL у меня возникает реже. Инкапсуляции нет.
>>1265915 А ничего, что под конец, линуксовый петушок с гномом обосрался и показал незнание руби? В котором как раз есть полноценная и мощная REPL инфраструктура.
>>1265879 >>1265972 > Тогда лучший репл в Erlang/Elixir. Правда я пока не разобрался, как с ним роботать. > В котором как раз есть полноценная и мощная REPL инфраструктура. Толсто, попробуй лисповый репл сначала.
>>1266027 Чтобы он был полноценный и мощный, он должен поддерживать REPL Driven Development. А он этого не поддерживает. Нельзя сохранить измененный живой образ программы, и запустить его заново. REPL в руби, как и в большинстве языков - обрезок он нормального репла.
>>1266038 Нет, чувак, пиздабол это ты — в руби действительно мощный и полноценный REPL, в котором реализованы все буковки (R,E,P,L) и работают, плюс мета-программинг.
Ты приводишь классную штуку в качестве аргумента, но она уже за рамками REPL.
Плюс у тебя просто горит, от того что наш мёртвый тред и язык, популярнее и смуззихлбнее твоего мёртвого языка, которым пользуются только на выходных потому, что надоела сишка или 1С.
>>1265879 В смоллтоке, эрланге, форте и лиспах в общем и целом один подход, так что можно считать, что у них "лучший репл" (на самом деле - у них репл, а у остальных просто шелл\интерпретатор). Если объективно, то лучший репл на сегодня в кложе, так как там много годного тулинга под все платформы и в целом вся экосистема под это заточена (например, reloadable workflow, component и т.п.)
>>1265882 >Ну это и в Руби легко делается. Ну это ты загнул. В своем изолированном манямирке это конечно можно сделать (с потом, кровью и костылями), но как только начинается рилворлд - тут сразу соснешь. Хотя бизнес логику все равно конечно лучше в чистом стиле (пытаться) писать.
>>1266042 >в котором реализованы все буковки (R,E,P,L) Погугли на досуге, что такое ридер, гомоиконность... хотя впрочем - забей, не надо тебе этим голову забивать.
>>1266101 > В смоллтоке, эрланге, форте и лиспах Собрал почти все зашквары, забыл хачкель и ещё говно какое-нибудь.
> Погугли на досуге, что такое ридер, гомоиконность... хотя впрочем - забей, не надо тебе этим голову забивать. Не буду, лишь бы не стать таким мудилой как ты.
> Ох... ты даже приблизительно не понимаешь, о чем тут в треде почтенные господа беседуют. Если ты такой охуенно умный, то объясни своими словами, так чтобы даже ребёнок понял — не можешь значит ты хуй. Олсо, не забудь подкрепить свои аргументы ссылками на пабмед и руби-дот-ком и другие уважаемые источники.
>>1266198 Да я вообще-то уже объяснил: >>1265570 - если ребенок этого объяснения не понял, то, быть может, дело в том, что ребенку надо бы попытаться приложить хотя бы минимальные усилия для его понимания?
>>1266210 Ну типа примерно как нода считай, эвент-дривен контейнер для всякой сетевой хуиты.
>>1266217 > и ты можешь по сети посылать внутрь нее новые формы, которые компилируются, добавляются в живой образ твоей программы и исполняются Хуй знает что ты имеешь в виду.
> по сети посылать внутрь нее Без сокета не программируется?
> ты можешь менять как код, так и текущее состояние твоей программы Как любое рельсовое приложение?
Но в любом случает ты говоришь про REPL-модель исполнения и про REPL-клиент — ну ок, ты победил, мы неправильно термин используем, лучший репл-клиент.
>>1266225 Ну, насколько я понимаю ты можешь использовать этот верт.х как шину сообщений в рор-приложении (вот только зачем), но я особо не в курсе подводных, не копался.
>>1266230 >Хуй знает что ты имеешь в виду. Ну установи любой из перечисленных выше языков да разберись, например.
>Без сокета не программируется? Почему, можно и через стдин читать.
>Как любое рельсовое приложение? Нет.
>лучший репл-клиент. Тогда уж лучше говорить "шелл", если совсем заморачиваться с терминами, потому как репл-клиент по идее подразумевает подключение к репл-серверу.
>Доволен? ¯\_(ツ)_/¯ мне-то похуй, меня спрашивают - я отвечаю, никаких эмоций по этому поводу не испытываю.
>>1266250 > A half year after the space craft launched, a bit of Lisp code was going to control the spacecraft for two days while conducting a sequence of experiments. > Unfortunately, a subtle race condition in the code had escaped detection during ground testing and was already in space. When the bug manifested in the wild–100 million miles away from Earth–the team was able to diagnose and fix the running code, allowing the experiments to complete. Понятно почему лисп не выходит дальше влажных фантазий штульмана.
> Ну установи любой из перечисленных выше языков да разберись, например. Долго.
> ¯\_(ツ)_/¯ мне-то похуй, меня спрашивают - я отвечаю, никаких эмоций по этому поводу не испытываю. Тебя никто не спрашивал тащемта, ты сам в тред прибился.
> Почему, можно и через стдин читать. Да ты шо, правда?
> Тогда уж лучше говорить "шелл", если совсем заморачиваться с терминами, потому как репл-клиент по идее подразумевает подключение к репл-серверу. Я просто хотел тебе подыграть, чтобы ты успокоился. Иди в пизду, у рубей нормальный репл.
В кложе просто больше наворотов.
Ты же срёшься как дурачки иногда возмущаются тому что, КПК теперь называют смартфонами.
>Понятно почему лисп не выходит Эм... он вообще-то уже вышел, потом зашел обратно, и недавно вот снова вышел. Алсо, ты же в курсе, что руби - это лисп для бедных, да?
>у рубей нормальный репл. >В кложе просто больше наворотов. Опять двадцать пять, лол. Дело не в наворотах (на них как раз плевать), а в разных подходах к дизайну языка.
>Ты же срёшься Нет, не я.
>>1266284 Тред держится на плаву исключительно благодаря эликсиру!!11 Давно пора его в шапку добавить, кстати.
>>1266292 > Тред держится на плаву исключительно благодаря эликсиру!!11 Давно пора его в шапку добавить, кстати. У элексира отдельный тред был на доске вроде.
>Тебя никто не спрашивал тащемта >>1266198 >>1266230 Изначально тебя никто не спрашивал. Не нужна никому из нормальных людей твоя кложа. Это язык программирования-полигон идей для других ЯП, дипломная работа.
> Опять двадцать пять, лол. Дело не в наворотах (на них как раз плевать), а в разных подходах к дизайну языка. Концепция REPL простая и не предполагает сложной и заумной реализации кложи, просто смырись и прекрати копротивление.
> Тред держится на плаву исключительно благодаря эликсиру!!11 Давно пора его в шапку добавить, кстати. А почему эликсироводы сами не создадут себе тред?
>>1266298 >Изначально тебя никто не спрашивал. Изначально вообще другой анон поправил ошибку третьего анона, а я его потом дополнил. Алсо, тут не твоя личная борда, иди-ка почекай свои привилегии.
>Не нужна никому из нормальных людей твоя кложа. Ты наркоман? При чем тут вообще кложа? Сейчас как бы ты о ней начал говорить, но она почему-то "моя", лол. Тебя кложурасты на рубиконфе покусали, да? ^_^
>Это язык программирования-полигон идей для других ЯП, дипломная работа. -.\\ Анон, ну если ты вообще совершенно не в курсе, то зачем пиздеть? Это называется "слышал звон, да не знаю где он" хотя тут ты походу и звона не слышал, лол. Ты путаешь языки типа хаскеля (которые про академиков и исследования) с языками типа кложи (которая про хуяк-хуяк и в продакшн, автор ее изначально запилил для своей конторы, чтобы быстрее писать распределенные интерпрайс-опердени на джаве). Если не шаришь - зачем пиздеть? Не понимаю таких людей, какой смысл выпячивать свою неосведомленность.
>Концепция REPL простая Верно. Поэтому у меня вызывает удивление, когда кто-то не может ее понять, ведь там понимать-то особо нечего - чай не рокет сайенс.
>А почему эликсироводы сами не создадут себе тред? Не знаю, наверное это нужно спросить у эликсироводов, не?
>>1266309 > иди-ка почекай свои привилегии Я хуемразь и знаю свои "привелегии".
> Ты наркоман? При чем тут вообще кложа? Сейчас как бы ты о ней начал говорить, но она почему-то "моя", лол. Тебя кложурасты на рубиконфе покусали, да? ^_^ Ну за какую там академическую лиспуху ты топишь, вот то и не нужно.
> Ты путаешь языки типа хаскеля (которые про академиков и исследования) Ноуп, не путаю — ещё раз, кложи/лиспы это полигоны для обкатки и проверки теорий информатики и программирования, пишут и развивают их учёные-алгоритмизды.
Причём есть ниша около-коммерческая для "профессиональной" науки которую занимают хачкель и R (который калька S) — для научных расчётов и статистики, с библиотекой формул и чуть более специфическим синтаксисом и вниманием к большим интегерам и флоатам, чтобы не получалось 0.00000000000000000000001 из-за оптимизаций в ЦПУ.
> Верно. Поэтому у меня вызывает удивление, когда кто-то не может ее понять, ведь там понимать-то особо нечего - чай не рокет сайенс. Бака. Всем всё понятно, но тебе захотелось блеснуть знаниями.
> Не знаю, наверное это нужно спросить у эликсироводов, не? Ну ладно, спроси у них.
>>1266284 Зачем? И так ясно, что все руби-няши трудоустроены в отличные молодые коллективы с просторными коворкингами в центре города и вкуснейшим смузи, да других вакансий (которых, конечно же, значительно больше, чем руби-няш) в руби-мире и не бывает.
>>1266309 >Верно. Поэтому у меня вызывает удивление, когда кто-то не может ее понять Ты просто дурачок. R - означает чтение строки кода из консольки, а не какое-то там чтение стейта и прочию хуитку, которую ты выше описывал. В итоге получаем: R - прочитали строку кода E - выполнили P - напечатали результат L - повторили
>>1266309 >Не знаю, наверное это нужно спросить у эликсироводов, не? Они его создавали, но он утонул, в отличие от мертвого треда мертвого языка, который с нулевой не уходит.
>>1266270 > Цитирует кусок текста, в котором описывается удалённая отладка и модификация наживую программы управления космическим кораблём, написанной на лиспе > Понятно почему лисп не выходит дальше влажных фантазий штульмана. Блядь, более жирных троллей я видел только в /s/ перводвача, да и то редко. Вас где-то специально двоемыслию обучают, наверное?
>>1266312 >кложи/лиспы >пишут и развивают их учёные-алгоритмизды. Лол, ну как скажешь.
>хачкель >для научных расчётов и статистики, с библиотекой формул и чуть более специфическим синтаксисом Лол. Заскринил.
>Всем всё понятно Сколько тебе лет? Просто любопытно.
>>1266315 Википедию тоже дурачки написали, к сожалению, - поправь там пожалуйста ошибки, твои правки наверняка зааппрувят. Ты ведь умеешь в английский, да? Вот: https://en.wikipedia.org/wiki/Read–eval–print_loop >The read function accepts an expression from the user, and parses it into a data structure in memory. For instance, the user may enter the s-expression (+ 1 2 3), which is parsed into a linked list containing four data elements.
Алсо, >чтение стейта как в жс-тред попал, ей-богу, лол
>>1266317 >который с нулевой не уходит. А все благодаря чему? Благодаря ЛИСПЕРАМ-АКАДЕМИСТАМ, конечно!
>>1266315 Дурачок здесь только ты. Гугли LISP system image, попытайся вникнуть, когда старшие товарищи тебе, судя по твоему максимализму, не больше двадцати двух по доброте душевной делятся с тобой опытом.
>>1266323 > Википедию тоже дурачки написали И к чему у тебя претензии ? Чтение строки и конвертация её в код для эвала на этапе эвала это и есть READ (а если заменить R на D — получится DEAD, совсем как этот тред).
>>1266328 А тебе не приходило в голову, что от лисперов просто много шума в интернете? Как от линуксоидов тех же. Эти поехавшие по всем статьям ходят и пытаются примеры кода на лиспе вставить, криппер инсайд.
>>1266335 Как часто ты пишешь в интернете что-нибудь типа: "Ну вообще я виндой не пользуюсь, ведь линукс…", "В лиспе это гораздо лучше чем в твоём ЯП-нейм" ?
>>1266323 >In a REPL, the user enters one or more expressions (rather than an entire compilation unit) and the REPL evaluates them and displays the results Зачем мне что-то исправлять, ведь под это определение irb и pry вполне подходят. Каким образом REPL относится к system image не понятно. Кстати, дампить байткод и потом его загружать руби умеет, думаю если поебаться, то можно что-нибудь похожее на system image запилить только это нахуй никому не нужно.
>>1266330 >И к чему у тебя претензии ? Apparently к твоему уровню английского, лол. Программин фром май харт.
>>1266342 А теперь прочитай еще раз, пожалуйста, процитированный текст, который зелененьким шрифтом выделен. Речь о том, что такое read-фаза, и чем это отличается от "чтения кода из консольки". Репл, гомоиконность, еще постов 50 назад об этом писал, на третий круг тред заходит. Глядишь так и до бамп-лимита сегодня добьем.
>>1266332 А ты еще и на винде сидишь, лол? Нет, ну ты точно не мимикрирующий жаваскриптер, а?
>>1266344 > А ты еще и на винде сидишь, лол? На маке, слава богу я прошёл фазу обучения на дебилиане и теперь точно знаю какая обдристаная параша этот десктопный линукс.
> гомоиконность Лиспер в очередной раз доказывает всем то лисп такой один — неуловимый джо снова всех обыграл!
> А теперь прочитай еще раз Прочитал, руби (питухон) делают именно это. К чему у тебя претензия до сих пор не понимяу.
>>1266344 Эээ, не, про гомоиконность там ничего нету. Там написано перед твоим зеленным текстом: >The read function accepts an expression from the user, and parses it into a data structure in memory Руби вполне себе тоже парсит введенный текст в некоторые внутренние структуры данных, можешь не сомневаться. А дальше уже: >For instance Т.е. дальше идет просто пример на лиспе.
>>1266346 >На маке Ну вот, а я уже приготовился покекать как следует. Хуй знает, что там у тебя за параша была, у меня все просто работает(с)(тм) и есть не просит.
>Лиспер Интересно, ты всех, кто знает, что такое malloc, байтоебами называешь?
>К чему у тебя претензия до сих пор не понимяу. Потому что срешься на двачике вместо того, чтобы потратить 15 минут и разобраться в обсуждаемой теме, ну.
>>1266349 >The name read–eval–print loop comes from the names of the Lisp primitive functions which implement this functionality: Жопой читаем?
>For instance, the user may enter the s-expression (+ 1 2 3) А может, for instance, ввести и (- 3 2 1). Мммкей?
Давайте вы уже перестанете ебать себе мозги и прочитаете про отличия традиционных лиспов и нетрадицонного лгбтсжв-лиспа то бишь сабжа, хотя бы из уважения к шакальному Матцу, блядь.
>>1266357 >Жопой читаем? И что? Ну ок, название пришло из лиспа. И что теперь ИСТИННЫЙ REPL возможен только в лисп?
>А может, for instance, ввести и (- 3 2 1). Мммкей? Что ты вообще несешь? Вся соль вот тут: >The read function accepts an expression from the user, and parses it into a data structure in memory Рубишный REPL читает и создает структура данных? Да. >The eval function takes this internal data structure and evaluates it Выполняет? Да. >The print function takes the result yielded by eval, and prints it out to the user Выводит результат? Да.
Невероятно, но значит в руби таки есть REPL. Так что сливайся уже или тебе и правда ссылочка на lisp.org нужна?
> Хуй знает, что там у тебя за параша была, у меня все просто работает(с)(тм) и есть не просит. Я не только дебилиан использовал кстати, все десктопные линуксы одинаковое говно.
> >The name read–eval–print loop comes from the names of the Lisp primitive functions which implement this functionality: > Жопой читаем? В руби парсинг с исполнением делается одним эвалом (под капотом можно угореть ), ну ОК в руби Эвал Принт Луп.
>>1266364 >И что теперь ИСТИННЫЙ REPL возможен только в лисп? Нет, еще в смоллтоке, эрланге, форте... анон, выше все уже писали, почитай тред.
>Что ты вообще несешь? Тебе перевести? "Например, юзер может ввести форму (+ 1 2 3) - тогда ф-ия read вернет список из символа и трех чисел", ну или что там далее по тексту было.
>Рубишный REPL читает и создает структура данных? Нет, в руби нет отдельной read-фазы, он не гомоиконный.
>Невероятно, но значит в руби таки есть REPL. Ctrl-F -> "модель выполнения", выше по треду этот вопрос уже подробно обсудили.
>>1266367 >я уже не понимаю Ты это в каждом посте пишешь, заметил? ^_^
>Я не только дебилиан использовал кстати ¯\_(ツ)_/¯ УМВР
>ну ОК в руби Эвал Принт Луп. Если хочется максимальной точности, то лучше называть это "interactive shell". А если не хочется, то всем похуй, интерпретаторы часто реплами называют просто по аналогии. Кстати, мы выше по треду это уже обсудили пару раз. Предлагаю обсудить это снова!
>>1266375 >Нет, в руби нет отдельной read-фазы, он не гомоиконный. Это не является требование концепции, а лишь особенности лиспа и ему подобных, смирись.
> Ты это в каждом посте пишешь, заметил? ^_^ Зачем мне это замечать? Олсо, это выражает моё неподдельное негодование.
> ¯\_(ツ)_/¯ УМВР Платиновые мантры линуксоидов… if !УМВР then НЕНУЖНО.
> А если не хочется, то всем похуй, интерпретаторы часто реплами называют просто по аналогии. Ну так и от чего у тебя такой ПОМПАЖ и БРАНДЕНБУРГ если ты сам понимаешь ничтожность сих прений?
>>1266375 >он не гомоиконный Окей, я понял о чем ты. Ты и другие поехавшие лисперы написавшие статью на вики считаешь, что структура данных выходе из read должна быть структурой из самого рассматриваемого языка (гомоиконность, да). Я и прочие люди из 21 века считаю, что это не нужно.
>>1266387 >Это не является требование концепции Эм, а я где-то утверждал обратное? Ты совсем запутался уже.
>Платиновые мантры линуксоидов… if !УМВР then НЕНУЖНО. Эм, в чем мантра? У тебя были какие-то проблемы, у меня таких проблем нет. Алсо, если у меня что-то не работает так как я хочу, то мне это нафиг ненужно, все верно - что не так-то?
>Ну так и от чего у тебя такой ПОМПАЖ и БРАНДЕНБУРГ Эм?.. мне задают вопросы - я отвечаю, говорил же.
>>1266388 >Ты и другие поехавшие лисперы написавшие статью на вики Ага, значит все-таки ЗАГОВОР ЛИСПОРЕПТИЛОИДОВ С ПЛАНЕТЫ НИБИРУ! Ахахаха, ну я же говорил. И ведь и Брут Матц-то тоже из этих - нигде от них спасу нет((
>считаю, что это не нужно Про это проклятые жидолисперы тоже уже написали лет дцать назад - гугли "парадокс блаба". Точно так же если показать айфон пещерному человеку, он тебя пошлет нахер и скажет, что это НЕНУЖНО(с)(тм) - им ни мамонта не уебешь, ни огонь не разведешь, да?
Алсо, >структура данных выходе из read должна быть структурой Я ничего про "должна" не говорил. Я тебе просто объяснил, что у функции "read" (и слова "REPL") есть вполне конкретное значение, с которым ты раньше попросту не сталкивался, и поправил, когда ты сказал, что в руби то же самое. А уж кто там чему что должен - мне до лампочки.
>>1266394 >У тебя были какие-то проблемы, у меня таких проблем нет. Алсо, если у меня что-то не работает так как я хочу, то мне это нафиг ненужно, все верно - что не так-то?
>>1266398 Смысл в том, что я 10 лет пользовался десктопным линуксом, включая домашнее использование без дуалбута и отлично знаю все о нём и о линуксоидах его использующих.
Я просто перерос юношеский максимализм, который у тебя как раз и проявляется и в привязанности к линуксу и лиспу.
Лисп охуенный концептуальный язык, просто он не для прода и не для больших команд. Ты по сути сам уже всё сказал — реал лайф лисп это лисп от матца — руби. Риал лайф линукс это макОС.
>>1266399 Ты сдался как раз в тот момент когда линукс для десктопа наконец-то начал становится годнотой. У меня в последние пару лет наконец-то все начало работать из коробки все то с чем раньше приходилось ебаться. Блютуз наушники, поддержка нескольких мониторов, hidpi, слип, потребление батареи. мимопроходил
>>1266399 >10 лет пользовался десктопным линуксом >отлично знаю все о нём и о линуксоидах его использующих Логика уровня сжв, лол.
>Я просто перерос юношеский максимализм, который у тебя как раз и проявляется и в привязанности к линуксу и лиспу. Извини конечно, но это сферический случай ПРОЕКЦИЙ в вакууме. У тебя там 10 лет были какие-то привязанности и максимализмы, от которых ты "излечился" - ну ок, я-то тут при чем?
>Лисп охуенный концептуальный язык, просто он не для прода Ты про Лисп 58 года от деда Маккарти? Ну да, он действительно не для прода, бгг. Если ты не понял - не такого языка, проснись.
>реал лайф лисп это лисп от матца Не, реал лайф недолисп - это жс, а руби - это просто тормозной манялисп от очередного неосилятора с веб-фреймворком из 2005. Хотя если сравнивать его с остальными недолишпами-современниками, то руби естественно самый вменяемый из них.
>А теперь можешь гореть и копротивляться. ¯\_(ツ)_/¯
>>1266532 Лол, он кстати известный кложурист. Теперь точно: Руби официально ВСЕ(с)(тм)k
>>1261958 >просто под виндой у тебя рано или поздно возникнут проблемы с гемами/окружением. проснись маня, уже давно девкит есть https://rubyinstaller.org/add-ons/devkit.html , а сейчас в новых версиях уже все из под коробки работает
>>1267223 Потому что у него своя маленькая ниша (прототипирование/стартапы на Рельсах и маленькие скрипты). Руби не энтерпрайз язык чтобы быть таким популярным как Джава и не затычка в каждом браузере как Джаваскрипт. Есстественно он будет нишевый и мизерный на рынке, так всегда было. В том же фрилансе он очень популярный на апворке, например.
И да, что такое "мизерный"? На рынке полно вакансий для руби и рельс. Или тебе спокойней на душе, когда вакансий не 100, а 5000? От этого ничего не меняется. Даже если вакансий на рынке 5 - тебе нужна всего одна.
>>1267249 Уже записался, расписал про себя какой я няша. Тем более я не совсем белый новичок, у меня есть определенный опыт коммерческий и т.д. Надеюсь возьмут, лишние 300~ бачей в месяц на помешают + вклад в опенсорс кайфовый.
Дураку важно количество. Дурак всегда ищет супер пушку, супер кнопку, супер язык программирования. Если перед дураком выложить все виды молотков, он спросит какой лучше, хотя лучшего нет и одинаковые они только с виду.
>>1267276 Можно не делать, а просто на вордпресе, плюс шаблоны или вообще на сайте конструкторе которые рекламируют западные ютуберы (и языка там никакого не видишь совсем).
>>1267276 На руби: 1. Быстрее писать код 2. Проще поддерживать - рубисты придерживаются одного стиля и подхода 3. Программист счастлив - продукт получился качественным
На пхп: 1. Код всратый, общие известные проблемы пхп 2. Поддержка пхп - ад. Один делает так, другой так, третий пишет лапшу, четвертый вообще вставлят код через админку вордпресса 3. Программист недоволен - результат слабый и неискренний
>>1267278 А правда, что в Руби до сих пор все написано на глобальных переменных, статических методах и полях? И что там одни модули могут патчить другие?
Предлагайте темы в шапку, подписку и колокольчик. Сделаю мемасик, ещё сокращу избыточные моменты и добавлю что-нибудь другое, чтобы люди могли обсуждать, а не читать ФАК.
>>1267385 Элегантность, выразительность, - что выливается в удовольствие для программиста. Руби приятно читать и на нем приятно писать. Пластилин для ребенка = Руби для программиста. Пикрелейтед.
Гибкость: class Numeric def plus(x) self.+(x) end end
y = 5.plus 6
То есть, менять язык прямо на ходу. Всё в Руби является объектом.
Да, он не самый быстрый как Си, да, он не пытается в энтерпрайз и абстрактные фабрики как Джава, да, он не пытается в хайп и ML как Питон, но у него есть свои плюсы и среди динамических языков для веба по моему мнению он лучше всех.
>>1267831 Каждый тред врывается в тред какой-то аутист утверждающий, что на руби никто ничего не написал, видимо в топ 10 ЯП он за счет хелло вордов стабильно уже 10+ лет держится. На держи: GitHub, AirBnB, Salesforce, Chef, Pupper, RubyMotion, Homebrew, Discourse.
>>1268439 Я не придираюсь. На самом деле да, придираюсь, и ничего плохого тут нет, особенно в данном случае. Это показывает, что в голове у тебя беспорядок, а значит общение с тобой непродуктивно.
>>1268442 я нормальный вопрос задал-выше писали что для мелких или быстрого написания проэктов не подходит,для тырпрайза тоже,для нагруженных проэктов тоже. а что тогда остаеться?
Собственно, перед тем, как я его назову абсолютно уёбищным и непонятным, а программиста уебаном, я всё же хочу убедиться, что уебан не я.
Так вот, какой может быть смысл в подобном использовании instance переменной? Я бы это написал как в классе CC, где всё очевидно и ясно. И мне кажется что разницы в поведении и результате нет, если @x не используется больше абсолютно нигде, меняется в каждой итерации лупа, а последнее значение запоминать, чтобы где его использовать по смысле скрипта абсолютно не надо.
>>1272311 >это пишется в одну строчку Лол, ты чего. Сам настоящий код там гораздо больше, чем какой-то map с возведением в квадрат, я ж это просто для примера рандомную фигню написал.
Руби же по ссылке передаёт сложные объекты в функции? Не создаётся никаких копий, которые кто-то мог хотеть оптимизировать? Хотя пытаться на таком сэкономить время в скрипте при массивах из нескольких элементов и вызове функции меньше ста раз это надо быть особенно одарённым, поэтому я сомневаюсь.
Аноны, хочу вкатиться в руби, но хотел бы с начало не много понять, а надо ли мне это. Мне ЗП не важна, но это все равно показатель рынка. Взял Новосибирск центр программистов вакансий мало 35, но зп очень вкусные, хотя все начинаются с мидла, если джун то вообще 15к. Почему так? Почему стоит начать и зачем ты аноны вкатился в руби Ну и интересно какое будущее за ruby если конкуренты способные убрать ruby. Да и вообще хотел узнать про твой опыт на руби, что на нём пишешь и т.д. Спасибо заранее
СЛОУНОВОСТИ
Ruby 2.6 introduces an initial implementation of JIT (Just-in-time) compiler
Ruby 2.5 has removed top level constant lookup
Ruby 2.5 requires pp by default
Ruby 2.5 added lazy proc allocation for block parameters
Ruby 2.4 unifies Fixnum and Bignum into Integer
Предыдущий тред: https://2ch.hk/pr/res/1104216.html
ИЗУЧЕНИЕ ЯЗЫКА
Q: C чего мне начать, чтобы стать рубистом?
A: Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby.
А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
Q: Следующий уровень, продвинутые книги по руби:
A: Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition | Ruby Under a Microscope
Q: Онлайн курсы чтобы попробовать/вкатиться:
A: http://tryruby.org/levels/1/challenges/0/ | https://rubymonk.com/
http://www.codewars.com/?language=ruby | http://rubykoans.com
Q: Какой gem посмотреть, чтобы понять, как писать код?
A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
Еще можешь полистать на гитхабе гемы с нарастающей популярностю (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
Q: Хорошие практики по руби и рельсам?
A: Обязательно стайлгайды (как оформлять код):
https://github.com/bbatsov/ruby-style-guide
https://github.com/JuanitoFatas/fast-ruby
https://github.com/bbatsov/rails-style-guide
Руководства "для чайников":
https://www.railstutorial.org/book [en]
http://www.theodinproject.com/ruby-on-rails [en] | http://codenamecrud.ru/ [ru]
Q: Документация по стандартным библиотекам руби и рельс:
A: http://ruby-doc.org/ | http://api.rubyonrails.org
http://guides.rubyonrails.org | http://ruby.railstutorial.org
Q: Можно ли на руби писать нативные GUI, мобильные приложения, игры?
A: Нет.
Q: Что ещё изучить?
A: Английский, git, linux. Паттерны. Один из часто используемых - Service Object.
СРЕДА РАЗРАБОТКИ
Q: Как установить разные версии рубей?
A: https://rvm.io | https://github.com/sstephenson/rbenv