Комментарии 18
Огромное спасибо, посмотрю на досуге. Всегда хорошо, когда есть какая-то программа ознакомления с материалом. Я зимой начинал самостоятельно изучать NodeJS, хотя я не разработчик, просто хотел для себя, в июне подвернулся курс по стеку MEAN, записался и сейчас хожу два раза в неделю, так вот я за эти три месяца научился по программе во много раз больше, чем я учился сам по книжкам и разрозненным роликам, сейчас уже сделал небольшой сайт и принялся делать второй проект.
Опасно начинать изучение с Ruby — после него многие другие языки кажутся страшными и неудобными) Я теперь не могу спокойно смотреть на PHP, JavaScript кажется каким-то инструментом для пыток.
С другой стороны, переходить с чего-то статически типизированного (хотя бы и с TypeScript, чем чёрт не шутит) на "динамику" — это тоже иногда боль, особенно если привыкнуть к хорошей поддержке со стороны IDE (да хотя бы и тот же VS Code для уже упомянутого TS). Хотя, конечно, я мог слишком быстро сдаться, и вообще давно пора RubyMine пощупать...
Не ожидал увидеть руби и рельсы тут ))
Вы, похоже, перепутали с питоном. руби (irb) не является стандартным софтом нигде.
Вполне себе используются, когда цикл не связан с итерацией по коллекции.
Сама область применения не предполагает, что такие use case-ы возникнут, конечно.
Нет никакой нужды писать так (через отрицание), если можно написать «if found_product».
Проще и легче воспринимается.
На рубях так никто никогда не пишет. Явно вызывать метод eql нет никакой нужды. "==" вам в помощь.
Насчёт применения в машинном обучении — я думаю, это очень маловероятно.
Да и как академ.язык тоже вряд ли. Руби пал жертвой популярности рельс. А последний заточен исключительно под веб.
Ну такое…
Ruby присутствует по умолчанию в комплекте любой современной операционной системы (или может быть доустановлен в Windows)
Вы, похоже, перепутали с питоном. руби (irb) не является стандартным софтом нигде.
В программах на Ruby крайне редко можно увидеть циклы типа for, while, loop. Они предусмотрены в синтаксисе, но почти не используются.
Вполне себе используются, когда цикл не связан с итерацией по коллекции.
Сама область применения не предполагает, что такие use case-ы возникнут, конечно.
unless found_product.nil?
# Булочки нашли, делаем что-то полезное.
end
Нет никакой нужды писать так (через отрицание), если можно написать «if found_product».
Проще и легче воспринимается.
product.name.eql? 'булочка с маком'
На рубях так никто никогда не пишет. Явно вызывать метод eql нет никакой нужды. "==" вам в помощь.
Насчёт применения в машинном обучении — я думаю, это очень маловероятно.
Да и как академ.язык тоже вряд ли. Руби пал жертвой популярности рельс. А последний заточен исключительно под веб.
Ну такое…
Вы, похоже, перепутали с питоном. руби (irb) не является стандартным софтом нигде.
IRB это не сам руби, а модуль из стандартной библиотеки, интерактивная оболочка. В убунте и на маках руби предустановлен точно.
Явно вызывать метод eql нет никакой нужды. "==" вам в помощь.
Ну не всегда:
1 == 1.0 #=> true
1.eql? 1.0 #=> false
И когда это руби пал?
IRB это не сам руби, а модуль из стандартной библиотеки, интерактивная оболочка. В убунте и на маках руби предустановлен точно.
Прощу прощения, возможно я проглядел. Мне всегда почему-то казалось, что по дефолту руби там нет.
Ну не всегда:Очень хороший пример. :) Исключение из правил при сравнении. И в реальной жизни, как мне кажется, малоприменимый случай.
Конкретно для строк в этом точно нет необходимости.
И когда это руби пал?
С тех пор, как руби стал прочно и безразрывно ассоциироваться с рельсами. Лет эдак 10 назад и по сей день. Даже несмотря на то, что на руби написаны многие утилиты и есть много других фреймворков.
Когда он стал ассоциироваться рельсами, он начал только сильней развиваться. И развивается по сей день. И прочие фреймворки и утилиты продолжают развиваться. В чём же заключается его падение?
«Падение», кмк, заключается в том, что руби по сути за редкими исключениями не нашёл себя ни в чём другом, кроме как веб-разработке.
Так он и не ориентирован на что-то большее. Хотя, если сильно захотеть, то можно и десктопное приложение на нём написать (shoes), и мобильное (rubymotion), и многое другое. В девопсе он хорош (chef). По назначению он аналогичен питону. И вполне себе с ним конкурирует. С компилируемыми языками его вообще нет смысла сравнивать.
Очень хороший пример. :) Исключение из правил при сравнении. И в реальной жизни, как мне кажется, малоприменимый случай.
Я ведь правильно понимаю, что это аналог (примерный) строгого и нестрогого сравнения в JS, где активно рекомендуется использовать строгое везде где только можно, чтобы не делать лишних приведений типов?
Ruby — это не очередной императивный язык программирования,Википедия опять врёт?
на котором можно начать программировать за вечер, а за неделю постичь полностью.Так нужно сразу предупреждать (у кого английский не родной и программировал на других языках), что в языке полно псевдонимов, которые работают аналогично с одинаковой скоростью (например, методы array.inject и array.reduce). В конце картинка в тему.
Под какую версию написан курс? Например, метод array.sum появился только в версии 2.4.
Вы серьезно, чувак который кодит на C++/Java в жизни не посмотрит на интерпретаторы (разве что у него есть куча свободного времени, и он хотел бы еще что-то обуздать), Ruby не годится для этого, это даже не PHP, который имеет канонический C-подобный синтаксис, и максимально приближенное ООП к реальности.
ИМХО, начинать изучать программирование, и понимание ООП в целом, как раз нужно с компилируемых языков, а комбинация C++/Java будем лучшим вариантом для достижения этой цели.
ИМХО, начинать изучать программирование, и понимание ООП в целом, как раз нужно с компилируемых языков, а комбинация C++/Java будем лучшим вариантом для достижения этой цели.
Ruby не годится для этого
Для чего он не годится? Для своей области применения и он отлично годится.
который имеет канонический C-подобный синтаксис
Как будто это что-то хорошее)
максимально приближенное ООП к реальности
И чем же оно ближе к реальности, чем ООП Ruby? Он же изначально был создан для выполнения простейших операций, без какой-либо внятной архитектуры. А потом на него начали натягивать некое ООП имеющимися средствами.
ООП в SmallTalk, Objective-C и Ruby как раз более приближенно к реальности.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, очень полезный и интересный материал по Ruby и веб-разработке на Ruby!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Курс «Языки веб-программирования» (на основе Ruby) от МГТУ им. Н. Э. Баумана на канале Технострим