LINUX.ORG.RU

Ruby прекрасен

 , , ,


1

6

Раньше на скриптоте вообще не писал (питон всегда отпугивал своим видом, а эру расцвета перла я пропустил), а тут попалась книжка по руби и я прям влюбился. Ну это ж чудо, а не язык. Он точно не умрет в близком будущем (с загибанием рельсов), имеет смысл его не спеша постигать?

★★★

вообще то:) весна — это женщины. остальное вторично

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

Я маловато видел кода где только стандартная библиотека.

Но вопрос-то был:

Где пример как оно «шикарно организованно» в твоем раби?

А так на любом ЯП можно написать библиотеку любого качества и труднопонимаемости.

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

Из 76-ти? Я бы на твоем месте никому это число не называл, чтобы не позорить любимый ЯП.

Чем тебе цифра 76 не нравится?

З.ы. твой пример как-раз показывает убогость ЯП и его не очевидные каракули.

И да, вот еще хороший пример «шикарно организованно»: https://www.destroyallsoftware.com/talks/wat

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

В чём «суть» Ruby? Что он нового принёс?

Новый уровень тормозов он принес. Язык одного фреймворка и то с этого фремворка все убегают =)

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

Любитель попусту тратить время на разбор убогого синтаксиса?

Это точно не про Ruby.
В руби синтаксис продуман на философском уровне (есть только объекты и их методы). Синтаксис руби лаконичен и предсказуем в любой момент.

Покажи пример что по твоему значит «шикарно организованы» и чем это лучше того же питона?

Пожалуйста. Например, мне нужно запаковать целочисленные параметры в строку и потом распаковать обратно. В Ruby методы встроены в стандартные классы Array и String:

comm = [datasize, fullcrc32, segsize].pack('NNn')
datasize, fullcrc32, segsize = comm.unpack('NNn')

В Python'е же только для упаковки мне пришлось подключать отдельную библиотеку. Сам код при этом менее очевиден:

import struct

comm = struct.pack('!iiH', datasize, fullcrc32, segsize)
datasize, fullcrc32, segsize = struct.unpack('!iiH', comm)

Ещё пример: работа со временем и датами.
в руби методы класса Time перекрывают все потребности, а в питоне опять надо подключать отдельные библиотеки (time, datetime), и потом изгаляться с ними.

И это правило тотально: классы объктов руби содержат исчерпывающий набор методов на все случаи жизни - открываешь описание базового класса и ищешь нужный метод.

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

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

p.s. Я не говорю, что «питон-говно», у питона есть свои преимущества (скорость, отлаженность, большое сообщество). Но чисто в плане комфорта программирования - я пока кайфовей руби ничего не видел.

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

Novator ★★★★★
()
Ответ на: Недолисп от Camel

Обычная недофункциональщина с перегибами. У меня даже в универе была пара задачек, где нужно было выполнить именно этот набор требований и именно на руби.

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

Мир тесен?

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

Какой универ? Кто преподаватель?

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

пффф...

<<DataSize:32, Fullcrc:32, Segsize:64>> = A,
A = <<DataSize:32, Fullcrc32:32, Segsize:64>>.
А так твой гибутнон сделает?
A = <<V1:2, V2:3, V3:11>>,
<<V2:3, V3:2, V1:11>> = T.
на битах вертел дон эрланге гибу вместе с ритноном.

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

Увидеть Питон и не полюбить его всем сердцем может только бесчувственный кретин.

Увидеть пайтон и полюбить его всем сердцем может только человек напрочь лишённый чувства прекрасного и всяческих представлений об эстетике.

Camel ★★★★★
()
Ответ на: Мир тесен? от Camel

rubinovich видимо не в курсе про hello mike? просто жесть. сборище налов. идите уроки делайте.

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

Можно возраст для протокола, у меня идет ресерч о том какие категории граждан употребляют юный и школота в качестве офенса? :)

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

мне нужно запаковать целочисленные параметры в строку

А если мне нужно чтото не из stdlib?

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

А для тех, у кого уже есть базовые навыки - JS вполне неплох.

Неплох по сравнению с чем, с поеданием говна? Нет, спасибо. Уж лучше питон.

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

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

Бгг. Во первых: ты привел пример того, что никто никогда не использует. Во вторых тут же привел пример того, что в питоне это тоже возможно, но сторонней библиотекой - и это решение более правильное: хочешь извращений - подключи библиотеку, нечего всякий ненужный хлам тянуть в стандартный набор.

Расскажи еще как красиво и лаконично набивать в твоем раби набивать те же словари с помощью оператора «=>».

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

Что-то я сильно сомниваюсь что ты вышел за хеллоуволды в обоих языках.

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

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

На гуманитария учился?

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

Да, эрланг настолько хорошо, что там даже работа со строками происходит внутри все тех же <<>>. Невероятно хорош.

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

Угу, на гуманитария в области физики детекторных систем.

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

Что-то я сильно сомниваюсь

А кого интересует твоё мнение?

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

Ты что то путаешь, гражданин. смотри раздел 4 пункт 2 правил здешнего форума.

anonymous
()

Руби - хорошая штука, Гвидо его специально придумал, чтоб всякие хипсторы в питон не лезли.

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

кто-то до сих пор пишет на коболе

Саныч утверждает что нет :-)

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

Информация не умирает. Книги по Windows 98 до сих пор живут в чьих-то книжных шкафах, кто-то до сих пор пишет на коболе, а кто-то — юзает Slackware.

Fixed!

tazhate ★★★★★
()

Ruby однозначно самый прекрасный язык программирования. Это золотая середина между монструозностью perl'а (который никто не знает в полном объёме) и унылым python'ом (от одного вида кода на котором клонит в сон). Код на ruby красив и понятен даже для начинающих, можно посмотреть в исходники любого gem'а и увидеть что код очень читабельный (даже если только начал изучать ruby), лишённый различных хаков. Тот же python выглядит как унылая последовательность self'ов и андерскоров с уже начавшимися наслаиваться друг на друга фичами прямо как в пёрле (взять хотя бы 2 типа классов!!!). А вот ruby продуман от начала и до конца, ruby имеет чёткую упорядоченную организацию.

Ещё хочется похвалить Ruby on Rails как прекрасный пример практического применения ruby. Когда я использовал php я жутко уставал к концу проекта, начинало всё бесить до стука по клавиатуре, возникало желание уйти из этого бизнеса. Однако когда я начал использовать Ruby on Rails я начал получать оргазмическое удовольствие от работы над проектом в независимости от его размера и сроков работы над ним. Удовольствие от работы с правильно структурно организованным framework'ом где не приходится велосипедировать и хакерствовать на каждом шагу нисчем несравнимы.

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

Ложки нет, как и строк в энларге.

zz ★★★★
()

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

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

В CLOS не смолток-like ООП.

В CLOS любое ООП.

(use-package :message-oo)

(defmessage (c (eql 'Integer)) :all 
  (let ((n 0))
    (lambda () (incf n))))

(defmessage function (:select tester)
  (lambda () 
    (loop 
       (let ((res (funcall function)))
          (when (funcall tester res) (return res))))))

(defmessage function (:first n)
  (loop for i from 1 to n collection (funcall function)))

(@ 'Integer
   :all
   (:select (lambda (x) (zero? (mod x 3))))
   (:select palindrome?)
   (:first 10))
monk ★★★★★
()

Пишу в ST3 на баше под Napalm Death и на питоне под Weekend Nachos. На руби только под Марка Ланегана, иначе не идёт!

spijet ★★★
()

Ruby - мертвый язык. Не стоит заниматься некрофилией.

anonymous
()
1 декабря 2016 г.

хорошая вещь склероз - каждый день новости

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

Что это такое? Это типа «осетрины второй свежести»?

Не успели в дедлайн в hard realtime - фатальная ошибка.

Не успели в дедлайн в soft realtime - плохо, но что делать?

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

А чем это отличается от не-realtime?

Очевидно, что дедлайнов нет. Работает, как получится, или как больше пропускная способность будет (рилтайм этому обычно ортогонален).

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