1.3, ijuij (?), 14:31, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Мне нравится в Ruby только то, что он простой, код легко читать, и есть возможности для метапрограммирования!
class Calculator
[:add, :subtract, :multiply, :divide].each do |operation|
define_method(operation) do |a, b|
case operation
when :add
a + b
when :subtract
a - b
when :multiply
a * b
when :divide
a / b
end
end
end
end
calc = Calculator.new
puts calc.add(5, 3) # => 8
puts calc.subtract(5, 3) # => 2
| |
|
2.17, Аноним (17), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]
| +7 +/– |
Это делает 4 метода с case и это, конечно, позор. При этом напрямую написать было бы короче и проще для понимания.
| |
2.18, Ананий (?), 15:29, 25/12/2024 [^] [^^] [^^^] [ответить]
| +5 +/– |
на Lua можно сделать это с помощью метатаблиц и с гораздо более читабельным кодом
| |
|
|
4.152, anonymos (?), 04:54, 27/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Незнающим Lua, лучше почитать книжку про Lua. А вот показать, как расширяется Lua на С++, стоит:
'''C++
#include <lua5.4/lua.hpp
/** Функция предоставляемая модулем */
static int luasimd_query(lua_State* L)
{
// Получить параметр функции из Lua
auto x = luaL_checkinteger(L, 1);
// Передать результат в Lua
if (x == 0)
lua_pushinteger(L, 42);
else
lua_pushinteger(L, x);
// В Lua передается один параметр
return 1;
}
/** Стартовая функция модуля */
extern "C" int luaopen_libsimd(lua_State* L)
{
// Структура с определением библиотечных функций для Lua
struct luaL_Reg function[] = {
{ "query", luasimd_query },
{ NULL, NULL },
};
// Регистрация функций в Lua
luaL_newlib(L, function);
// 1 - это указатель на вершину стека Lua, где лежит новая таблица с функциями модуля
return 1;
}
'''
'''Lua
local simd = require("libsimd")
io.write("query = ", tostring(simd.query(0)), "\n");
io.write("query = ", tostring(simd.query(1)), "\n");
io.write("query = ", tostring(simd.query(2)), "\n");
io.write("query = ", tostring(simd.query(3)), "\n");
os.exit(true);
--[[
query = 42
query = 1
query = 2
query = 3
--]]
'''
| |
|
|
2.56, Анониматор (?), 17:47, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Подтверждаю легкость чтения. Года 3 назад не владея этим языком легко нашел в сорцах одного софта программы выключатель платных энтерпрайз-функций и разблокировал их.
| |
|
3.60, Аноним (17), 17:49, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Для этого не нужно читать и понимать код. Ты лучше почитай исходники гитлаба часик и перескажи его архитектуру.
| |
|
2.67, Аноним (-), 18:11, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Говорят, что Юкихиро Мацумото создал максимально читабельный язык. Мне кажется операторы "when, end" делают семантику языка громоздкой. Напомнило Паскаль.
| |
|
3.95, Аноним (95), 23:09, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
>операторы "when, end" делают семантику языка громоздкой
Точно семантику? Может, ты хотел сказать "синтаксис"?
| |
|
4.137, Аноним (-), 16:31, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ну пацаны, вы сами хотели этого я не виноват.
Сема́нтика (от др.-греч. σημαντικός «обозначающий») — раздел лингвистики, изучающий смысловое значение единиц языка. Прочитайте Страуструпа он в своих трудах оперирует двумя терминами - семантика и синтаксис. Вам ПТУ-шникам его не понять, он птица высокого полёта.
Семантика показана как второй, самый верхний уровень, охватываемый прагматикой и включающий синтаксис.
| |
|
5.143, Аноним (117), 20:01, 26/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Мне кажется операторы "when, end" делают семантику языка громоздкой.
Семантика "громоздкой" не бывает!
"смысловое значение единиц языка", то есть слова, несет конкретный (точный) смысл, если к слову языка применить понятие "семантически громоздкое", то смысл этого слова должен быть избыточный какой-то. Отсюда, если мы говорим, что операторы "when, end" "семантически громоздко", то оно должно означать, как я думаю, избыточность (то есть не одну функцию выполняют) функций этих самих операторов. Но ведь эти операторы выполняют необходимую, достаточную, конкретную функцию, в чем их избыточность ("громоздкость")?
> Семантика показана как второй, самый верхний уровень, охватываемый прагматикой и включающий синтаксис.
точно "прагматикой", может грамматикой?
| |
|
|
|
4.131, Аноним (-), 15:02, 26/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Максимально читабельный = болтливый (понятный с первого раза). Выразительный = короткий (зачастую непонятный с первого раза).
Как найти ту золотую середину, чтобы язык имел одновременно два свойства читабельность и выразительность. Замена < end > символом < ; > делает язык выразительным не в ущерб читабельности.
| |
|
5.145, Аноним (117), 20:06, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Замена < end > символом < ; >
разница лишь в два лишних символа, ничего от этого не изменилось.
| |
|
|
|
2.69, freebzzZZZzzd (ok), 18:16, 25/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Мне нравится в Ruby только то, что он простой
не хочу расстраивать, но код выше не выглядит простым или понятным навскидку.
и зачем рассматривать калькуль? давайте лучше про какой-нибудь документооборот на 5-10 млн строк. какие плюсы у прыщ^Wруби?
| |
|
3.118, Аноним (117), 11:58, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> про какой-нибудь документооборот на 5-10 млн строк.
что там должно быть на такое количество строк? Вероятно папка ноде_модулес.
| |
|
2.102, bdrbt (ok), 07:23, 26/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это руби то читабельный? Руби читабельный, только в момент, когда, допустим, некая функция только что написана и прошла тесты, когда всерьёз начинаешь его оптимизировать (а без этого всё совсем печально) - получается нечитабельные марсианские манускрипты.
| |
2.105, дилетант (?), 09:09, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Хм, мультиметоды в лиспах гораздо читабильней. стали не нужны рельсы - стал не нужен руби. я так думаю.
| |
|
3.115, Аноним (115), 11:19, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> стали не нужны рельсы - стал не нужен руби.
[s]группа одного хита[/s] язык одного фреймворка.
| |
|
2.124, Аноним (124), 13:58, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
В каком месте это легко читать? Как IDE должа находить такие методы?
| |
|
3.151, Аноним (-), 03:45, 27/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Как IDE должа находить такие методы?
В динамически типизируемом языке? Только прогоном кода через все возможны пути выполнения, для того чтобы доказать, что в данном месте тип переменной будет Calculator и никакой другой.
| |
|
|
|
2.7, q (??), 14:55, 25/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вполне себе. В рф из крупных Сбер и Самолет используют.
| |
|
3.16, аном (?), 15:25, 25/12/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
В Сбере на нем легаси, которую никто не хочет переписывать. Как в Яндексе питон2.
| |
|
2.14, Аноним (17), 15:18, 25/12/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Его никогда и не использовали в проде. Это язык одного фреймворка - рельсов, вот их использовали, и да, они себя изжили. А больше нигде его и не было.
| |
2.20, Бывалый Смузихлёб (ok), 15:41, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
ну на яблоке используют. В pod-файлах установочника сторонних модулей и корректировки любой возникающей ерудны
| |
2.22, Аноним (22), 15:46, 25/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Загибай пальцы. Гитхаб, гитлаб, твитч Какая фигура у тебя на руке получилось?
| |
|
3.57, Аноним (17), 17:48, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Довольно ничтожная. Такая же фигура получалась 5 лет назад когда считали кто всё ещё на mercurial сидит. С тех пор и те три пальца разогнулись.
| |
|
2.59, Facemaker (?), 17:49, 25/12/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
>Его ещё используют в проде или он изжил себя?
Когда-то делал на Ruby систему интеграционных тестов для сложного продукта, написанного на C++. Просто из-за идиосинкразии к Питону. Ну и не на C++ же :).
Сейчас сделал бы на Rust. Писать так же легко и быстро, сопровождаемость несравненно выше.
| |
|
3.104, Аноним (104), 08:28, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
>на Rust. Писать так же легко и быстро
Hello, World!, и то, если зазубрить, как.
| |
|
4.106, Аноним (106), 09:14, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> В отличие от JIT-компилятора MJIT новый YJIT применяет версионирование базовых блоков (LBBV - Lazy Basic Block Versioning) вместо обработки методов целиком и реализован в форме интегрированного JIT-компилятора, написанного на языке Rust.
Ага. Новость-то прочитай.
| |
|
|
|
1.5, Аноним (5), 14:40, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
веселят меня такие заявления:
«вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp»
если он так хорош, что ж он не так популярен? :-)
| |
|
2.9, Аноним324 (ok), 15:07, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> если он так хорош, что ж он не так популярен?
С какого перепугу он не популярен, если он входит в топ 20 самых популярных языков в индустрии по разным топам. На гитхабе вообще топ-10.
| |
2.11, Аноним (17), 15:15, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> «вобравшего в себя лучшие черты Perl, Java, Python, Smalltalk, Eiffel, Ada и Lisp»
> если он так хорош, что ж он не так популярен? :-)
Так из этого никак не следует что он хорош. Тут сказано что он вобрал в себя лучшее из худших языков в истории.
| |
|
3.110, adolfus (ok), 10:47, 26/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> он вобрал в себя лучшее из худших языков в истории.
Для серьезных систем с развитым параллелизмом ничего лучше ады пока нет.
Для числодробилок только фортран -- все остальное либо тормозит, либо не в состоянии обнаружить переполнения разрядной сетки.
Ну а что касается лиспа, то если программа делает то, что предусмотрено, то у нее практически нет ошибок. Именно поэтому вариант лиспа используется в автокаде -- приходит вчерашний студент в конструкторский отдел, ему в зубы дают мануал автолиспа на 30 страниц, и через месяц он уже в теме и пополняет библиотеку отдела.
| |
|
2.72, Вова (?), 18:37, 25/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Для популярности нужны деньги, а не хорошесть.
Чем популярен Киркоров? Опра Уинфри? Джигурда? Вот-вот. :)
| |
|
3.77, Аноним (17), 19:15, 25/12/2024 [^] [^^] [^^^] [ответить] | +/– | Они популярны своими выступлениями Не было бы выступлений, не было бы денег Ты... большой текст свёрнут, показать | |
|
4.85, Аноним (85), 20:17, 25/12/2024 [^] [^^] [^^^] [ответить] | –1 +/– | Хм а как это язык взлетел если даже вакансий нету А если посты пишут не за ... большой текст свёрнут, показать | |
|
|
|
1.23, Вы забыли заполнить поле Name (?), 15:56, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Помню раньше разрабы на этом языке любили говорить, что программист дороже железа и что мол дешевле писать быстро на скриптухе, а потом железом в случае нехватки производительности закидать. Что вы скажете теперь?
| |
|
2.24, Аноним (22), 15:58, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Все правильно сказали. Или ты где-то нашел залежи дешёвых программистов?
| |
|
3.28, Аноним (17), 16:09, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Так джунов с чатгпт наперевес пруд пруди. Что, ruby для них слишком сложный?
| |
|
4.32, Аноним (22), 16:15, 25/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
У десятка тысяч настоящий обезьян случайно барабанящих по клавишам больше шансов написать что-то стоящее чем у этих джунов.
| |
|
5.34, Аноним (17), 16:21, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Так и есть. Кроме того, любой джун которого можно взять за еду через полгода научится программировать и захочет зарплату миддла, а уволить его будет ещё дороже, потому что возиться в его скриптне другой джун уже не сможет, а миддл согласится только с ЗП ещё в разы выше.
| |
|
6.35, Аноним (17), 16:22, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Да, а рубийный код всё это время пока собственник пытается экономить на программистах будет жрать свои 10х железа.
| |
|
7.43, Аноним (22), 16:48, 25/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вместо 10% процессорного времени будет есть 100%? Да на здоровья.
| |
|
8.52, Аноним (17), 17:39, 25/12/2024 [^] [^^] [^^^] [ответить] | +3 +/– | Админы локалхостов с 0 001 RPS нагрузки могут хоть на AVR ках или эльбрусах запу... текст свёрнут, показать | |
|
9.79, Аноним (22), 19:20, 25/12/2024 [^] [^^] [^^^] [ответить] | –2 +/– | Вот ты и прокололся Для сколь-нибудь серьезного применения арендные сервера ни... текст свёрнут, показать | |
9.101, User (??), 07:01, 26/12/2024 [^] [^^] [^^^] [ответить] | –1 +/– | О, а вот и хайлоадеры из 2004 подъехали облака, гибридные облака, эластичные вы... текст свёрнут, показать | |
|
|
11.121, User (??), 12:57, 26/12/2024 [^] [^^] [^^^] [ответить] | +/– | Так и я говорю, что не слышали и по привычке х10 core2duo с LA 100500 в кладов... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
6.36, Аноним (22), 16:24, 25/12/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Если ты завозишь по левому импорту через три страны, то нет.
| |
|
7.53, Аноним (17), 17:41, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Ещё раз, 10x расходов на железо в любой стране 10x. Читайте пока не поймёте что написано.
| |
|
8.80, Аноним (22), 19:21, 25/12/2024 [^] [^^] [^^^] [ответить] | +/– | Ещё раз это копейки по сравнению с ценой программиста в нормальной стране Норма... текст свёрнут, показать | |
|
|
6.130, Аноним (140), 14:59, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Желающих писать на питоне в разы больше, чем на Руби. У питона с производительностью всё хуже, чем у Руби. Значит проблем с железом в этом мире нет.
| |
|
5.39, Аноним (39), 16:40, 25/12/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Зато в этой скоро дешёвых программистов будет пруд пруди. Только вот их всех рассадят по шаражкам.
| |
|
6.45, Аноним (22), 17:07, 25/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
И будут они просто по ходить на работу и пить чай. Такое уже проходили.
| |
|
7.54, Аноним (54), 17:43, 25/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да только что! Сколько там эффективные линуксоиды распилили на ядре? А сколько на саму разработку ушло? Вооот...
Кончилось высокомерие прогеров, теперь это просто расходник.
| |
|
8.75, Аноним (22), 18:42, 25/12/2024 [^] [^^] [^^^] [ответить] | +/– | Просто на разработку ядра тратилось не само ядро А компании кому интересно ядро... текст свёрнут, показать | |
|
|
|
|
|
3.83, Анон1110м (?), 19:49, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Судя по тем зарплатам которые предлагаются, то дешёвых программистов должно быть полно.
| |
|
2.108, wyry (ok), 10:11, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
И тогда и сейчас это глупости. В реальной жизни крайне часто бывают проблемы с производительностью таких систем. 9 женщин не родят ребёнка за месяц, а увеличение железа не всегда приводит к увеличению производительности системы, а в ряде случаев может даже её замедлить, если плохо спроектирована переадресация данных/задач.
| |
2.129, Анониссимус (?), 14:43, 26/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Всё просто. Существуют разные проекты. Если мы пишем движок для нейросети, то оборудование будет дороже программиста. Если пишем условный сервис для бекапа, который вызывается раз в день, то программист дороже оборудования.
| |
|
3.136, Аноним (136), 16:21, 26/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Всё просто. Существуют разные проекты. Если мы пишем движок для нейросети, то
> оборудование будет дороже программиста. Если пишем условный сервис для бекапа, который
> вызывается раз в день, то программист дороже оборудования.
Ну мыж на опеннете, тут несколько другие критерии:
1) ЯП для утилиты, запускаемой раз в месяц (или вообще, при миграции какого-то софта), должен быть Ъ, иначе "нинужна!"
2) Если такой утилиты на Ъ ЯП нет (потому что никто не хочет писать кучу бойлерплейткода и самописных лисапедов), то утилита - "нинужна!"
| |
|
|
|
2.41, Аноним (39), 16:43, 25/12/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну если не ставить задачу, чтоб газонокосилка гонялась за хозяином, то должно бы.
| |
|
1.42, mustai (ok), 16:46, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
В своё время начал изучать этот язык потому, что понравилось высказывание его создателя:
"Человек создан для творчества, и я всегда знал, что люблю творить. Увы, я обделён талантом художника или музыканта. Зато умею писать программы. Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен уметь быстро и эффективно объяснить ему, что делать."
Юкихиро Мацумото, создатель языка Ruby
| |
|
2.44, Аноним (22), 16:49, 25/12/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Люди которые любят что-то из-за чужих высказываний странные.
| |
2.61, Аноним (17), 17:52, 25/12/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Я хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен уметь быстро и эффективно объяснить ему, что делать.
Звучит как пользователь Алисы, а не программист.
| |
2.92, Вы забыли заполнить поле Name (?), 22:46, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> В своё время начал изучать этот язык потому, что понравилось высказывание его
> создателя:
> "Человек создан для творчества, и я всегда знал, что люблю творить. Увы,
> я обделён талантом художника или музыканта. Зато умею писать программы. Я
> хочу, чтобы компьютер был моим слугой, а не господином, поэтому должен
> уметь быстро и эффективно объяснить ему, что делать."
> Юкихиро Мацумото, создатель языка Ruby
На самом деле руби популярность получил благодаря dhh и рельсам.
| |
|
1.66, кепаса (?), 18:08, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
самый любимый и ахрененный язык, писал на нем прод код на замену шелл скриптов и ранбуки для Chef, сейчас иногда приходится что-то делать на Python так неудобно(
| |
|
2.91, Вы забыли заполнить поле Name (?), 22:41, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
> самый любимый и ахрененный язык, писал на нем прод код на замену
> шелл скриптов и ранбуки для Chef, сейчас иногда приходится что-то делать
> на Python так неудобно(
В чем нудобство?
| |
|
3.112, Аноним (-), 10:49, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
В отвратительном синтаксисе? Не знаю как у анонима, а у меня лично питон вызывает рвотный рефлекс именно своим синтаксисом.
| |
|
|
1.93, Nora Puchreiner (?), 22:53, 25/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> ("it" подразумевает, что всегда имеется только один аргумент, а при указании "_1", не ясно, существует ли параметр "_2").
Почему не ясно?
Конечно, существует: '{a:1, b:2, c:3}.each { puts _2 }'
А вот как это будет с 'it'
| |
|
2.96, Аноним (96), 23:30, 25/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
Потому что вместо {a:1, b:2, c:3}.each скорее всего будет somename.each и сразу не очевидно массив somename или хэш.
| |
2.125, Аноним (124), 14:06, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Почему не ясно?
В нормальных языках аргументы и переменные объявляются явно
ocaml
fun i -> i + 1
haskell
\i -> i + 1
| |
|
1.123, Аноним (124), 13:56, 26/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот бы ещё популярность всяких питонов и жабоскрипов упала бы до уровня руби и перла.
>"it" подразумевает, что всегда имеется только один аргумент, а при указании "_1", не ясно, существует ли параметр "_2"
write only. А если взять функции первого класса, то вообще городить этот огород не понадобится. А проболема по тому, что в руби сделали скобочки не обязательными
>Продолжена оптимизация производительности JIT-компилятора YJIT
Вместо того, чтобы сделать вывод типов по Хиндли-Милнеру, как в компилируемом хаскеле или окамле, они десятилетиями пытаются разогнать интерпретатор.
| |
|
2.133, Аноним (140), 15:09, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
JS/TS точно никуда не денутся. Python может и вымереть по мере автоматизации задач машинного обучения и внедрение их везде в стандартные сервисы.
Но вряд ли это поможет Ruby, хотя язык, безусловно, приятный.
| |
|
3.146, Аноним (124), 22:42, 26/12/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Но вряд ли это поможет Ruby
Я не за руби, я против этих двух языков
| |
|
|
1.138, Аноним (138), 16:50, 26/12/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ну шо там ? Очередной убийца с\с++ :D Ребята а помните Perl какой изящный синтаксис! Стихи писать можно!
| |
|