@ProLua

Страница 285 из 307
Snusmumriken
04.05.2018
14:54:22
Как будто только я их на бой выкатываю )))

Насибуллин
04.05.2018
14:55:42
ну, не знаю та же монго была бажная до последнего

мол ее проекты использовали такие же как редис и мемкашед

а потом срочно платили саппорту монги за багфиксы

Google
Snusmumriken
04.05.2018
14:58:03
Монга сложная и поэтому бажная, чем сложнее инструмент тем более бажен он, пока всё не отловили.

Насибуллин
04.05.2018
14:58:34
нет, она изначально говном была

Насибуллин
04.05.2018
14:58:48
это как попил бюджета

Snusmumriken
04.05.2018
14:58:50
Раз она есть и используется - значит есть ниша : )

Насибуллин
04.05.2018
14:58:57
просто на хайпе хотели срубить бабла

Andrey
04.05.2018
14:59:09
Твои боевые условия недостаточно боевые!
Самые боевые - когда базы данных отношения на серваке начинают выяснять? ?

Snusmumriken
04.05.2018
14:59:43
"- Это моя память, я первый её зарезервировал!" "- Memory exception, сучки!" "- Сук, сервер упал!"

Andrey
04.05.2018
14:59:46
"Остаться должен только один!"

Philipp
04.05.2018
15:00:40
Andrey
04.05.2018
15:01:41
Когда админы начинают выяснять отношения
Нууууу... у кого пурген для сахара и ключи от туалета, тот и прав?

Snusmumriken
04.05.2018
15:03:14
Нууууу... у кого пурген для сахара и ключи от туалета, тот и прав?
Если невтерпёж - можно и в кухонную раковину, главное - запереться и проветрить. И никому не говорить. Секретики : )

Andrey
04.05.2018
15:04:08
Ну пока остальные админы отсутствуют, правый накатывает те решения в прод, которые он видит как художник?

Google
Vadim
04.05.2018
17:04:51
?
> JavaScript's ecosystem is awesome. ну-ну. Как там та хренота называлась когда все дружно соснули? leftpad?

Philipp
04.05.2018
17:05:18
> JavaScript's ecosystem is awesome. ну-ну. Как там та хренота называлась когда все дружно соснули? leftpad?
> Как там та хренота называлась когда все дружно соснули? Javascript?

Snusmumriken
04.05.2018
17:15:34
это фиаско https://realmensch.org/2016/05/28/goodbye-lua/
Я читал эту фиговину в свой день рождения два года назад. Ну сбежал один чел потому что ему что-то не понравилось, ну что поделать. Сколько было статей по поводу "JS/Python/C/C++/Java/C#/Obj-C/[any_lang] - это фиаско, не таким я его хотел видеть!", что пересчитать не выйдет.

Andrey
04.05.2018
19:01:43
В прямых руках любой инструмент хорош

Но все же нельзя отрицать что у lua есть недостатки

Насибуллин
04.05.2018
19:22:42
Дело не в недостатках луа, ьут просто человек пишет жаваскрипт экосистем из авесоме + агитирует за ссаный обрубок под названием тайпскрипт

Это как бы диаггноз уже, вот эти две фразы

Snusmumriken
05.05.2018
15:10:27
Но все же нельзя отрицать что у lua есть недостатки
Если бы у нас был язык без недостатков, мы все бы писали бы на нем, и остальные ЯП были бы не нужны.

?
05.05.2018
15:29:09
это точно)

Snusmumriken
05.05.2018
15:58:18
Вы оскорбляете чувства нонкомформистов
а) Чем? б) Если нонкомформисты всё таки от этого оскорбляются - так им и надо.

Andrey
05.05.2018
16:24:42
Если бы у нас был язык без недостатков, мы все бы писали бы на нем, и остальные ЯП были бы не нужны.
Если бы у бабушки... ))) Моя ремарка была скорей к тому, что в статье помимо топления за *script, есть обоснованная критика луа.

Andrey
05.05.2018
16:29:34
luarocks, упоротая конкатенация строк, и хтонические таблицы - которые в себя поглотили почти все классы

А еще неявная типизация и слабая стандартная билиотека)

Я как то попробовал через нее с файловой системой поработать

Упоротая в том смысле, что синтаксис выбрали две точки)

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

Google
Andrey
05.05.2018
16:34:14
В squirrel это разбили на отдельные сущности)

Snusmumriken
05.05.2018
16:39:13
1. Бедная стандартная библиотека - это хорошо, но могли бы заняться официальными подключаемыми модулями, крутыми и отлаженными, как LPEG, только в большем количестве областей. Они "не стандартные" но "от разрабов языка", типа появляется хоть какой-то стандарт. 2. Сборка мусора - довольно упоротая, слишком много елозенья сборщика мусора без необходимости, особенно когда у нас уже есть тонна объектов. 3. Мало современных-молодёжных синтаксических фич (особенно всяких стрелочных лямбд `a, b => a + b') и мелкой функциональщины. 4. Отсутствие аналога PEP8, в результате народ калякает кто во что горазд, а чем меньше мозгов тем сложнее и упоротее это получается. Ну, или сишники лезут в луа и делают миллиард глобальных функций в разных модулях, и тонну констант. > синтаксис выбрали две точки Это осознанный ход. В lua, '8' + '5' == 13. Если строка приводится к числу, она работает как число при арифметике. Иначе получишь мясо как в JS.



> таблицы оказались сильно переусложнены Ну такое. Я бы не трогал таблички, потому что они ШИКАРНЫ. Единственное неприятное - в ООП тип остаётся табличкой, поэтому приходится заводить поля класса типа __type. Таблички, имхо, это неплохой пример не плодения сущностей без необходимости, очень не хватает подобной штуки в нормальных языках. Швабодка! Переусложнённость только в метатаблицах. В остальном - отлично.

Andrey
05.05.2018
16:40:27
JS: 1 + 1 = 11 11 - 1 = 10 )))))

На неподготовленного человека они сваливаются как кирпич на голову ?

Snusmumriken
05.05.2018
16:43:37
Ну и пущай использует как знает, пока учится. Как словарик или массивчик. Я так и делал!

Andrey
05.05.2018
16:44:24
А пример выше с '5' + '8' = 13 как раз изза нестрогой типизации и неявного приведения

Snusmumriken
05.05.2018
16:44:47
Я сам это выяснил сравнительно недавно, всю жизнь явно приводил и буду продолжать приводить : )

Но две точки конкатенации - это пример ХОРОШЕГО дизайна чётко определённого поведения, пусть и непривычно.

Ну, знаешь? Когда результат твоих действий очевиден - это хорошо, разве не так?

Andrey
05.05.2018
16:46:41
Неявное приведение как раз хуже - везде приходится проверки и приведения типов делать, чтобы быть уверенным в коде

Snusmumriken
05.05.2018
16:47:33
Где-то валялась функция проверки типов: function foo(a, b, c) check(a, 'n', b, 's', c, 't?') end

Andrey
05.05.2018
16:48:39
Еще один пример бедности стандартной библиотеки)

Хотя там вроде было чтото для проверки типов

Snusmumriken
05.05.2018
16:49:20
Конечно же есть type(5) ==> 'number'.

Andrey
05.05.2018
16:49:51
)

Snusmumriken
05.05.2018
16:51:10
Но опять таки, при нормальной грамотности разраба - он будет чисто и нормально (и с комфортом) калякать на луях всё что хочешь. Остальное - рассуждения на тему "почему на луа нельзя биться головой о клавиатуру и получать поддерживаемый продукт?(((".

Andrey
05.05.2018
16:51:56
Ну для меня это дико слегка после языков с нормальной типизацией

Snusmumriken
05.05.2018
16:52:15
Ну для меня это дико слегка после языков с нормальной типизацией
Ты имел ввиду, со строгой статической, да? : ) Я всё ещё могу тебе рассказать мильён причин, почему статическая не нужна.

Google
Dika
05.05.2018
16:53:03
var x * 3; невалидно

Snusmumriken
05.05.2018
16:53:20
Но на самом деле, статическая таки нужна, но только в некоторых условиях, поэтому я предпочёл бы опционально статическую.

Andrey
05.05.2018
16:54:01
Ну в том же С++ и ruby не совсем строгая - они float и int позволяют друг к другу приводить. А вот преобразования строка<->число уже нужно явно делать

А и жутко бесит глобальность переменных по умолчанию

Snusmumriken
05.05.2018
16:54:42
А и жутко бесит глобальность переменных по умолчанию
Ой, вот тут можешь научиться в setfenv, и следить за локалами только внутри функций.

Но если ты пилишь библиотеку или модуль, следить за локалами почти не надо: local lib = {} function lib.foo(a, b) return a + b end return lib Ну, типа функции присобаченные к lib имеют ту же область видимости что и lib. Не надо лишний раз писать local и следить за этим.

Nikolay
05.05.2018
16:59:18
А и жутко бесит глобальность переменных по умолчанию
для конфигов и коротких скриптов, задающих логику взаимодействия компонентов - как раз норм.

Andrey
05.05.2018
17:00:13
У меня в астериске на нем логика. В неумелых руках это один файл на пару тысяч строк ?

Nikolay
05.05.2018
17:00:40
конкатенация двумя точками - везде бы так. мне как раз не нравится плюс в питоне и JS.

Snusmumriken
05.05.2018
17:00:49
У меня в астериске на нем логика. В неумелых руках это один файл на пару тысяч строк ?
С питоном, сишкой, шарпом и чем угодно ещё - было бы абсолютно то же самое. Это уже человеческий фактор.

Nikolay
05.05.2018
17:01:15
таблицы ?

Vadim
05.05.2018
17:01:54
и никто не озвучит маленький футпринт рантайма :(

Andrey
05.05.2018
17:02:07
Да я знаю - я тут в руби гем для общения с AMI интерфейсом астериска переписываю, потому что там такой лютый трэш в чужих поделиях

Snusmumriken
05.05.2018
17:03:36
Говнокод, говнокод никогда не меняется.

Andrey
05.05.2018
17:04:34
https://www.rubydoc.info/gems/asterisk-ami/0.0.4/Asterisk/Connection#events-instance_method Метод events советую заглянуть

bebebe
05.05.2018
17:05:45
https://www.rubydoc.info/gems/asterisk-ami/0.0.4/Asterisk/Connection#events-instance_method Метод events советую заглянуть
а вы не могли бы на пальцах рассказать что в нем не так?

Andrey
05.05.2018
17:05:52
Там еще в функции парсинга того что этот метод возвращает не меньшее говно

Оно за пару часов выжирает весь лимит памяти в 512 мегабайт и падает

Ну и вложенные циклы)))

Snusmumriken
05.05.2018
17:08:19
Красиво. Такую вложенность я обычно убираю через досрочный return. Ну, типа function foo() if not (good_condition) then return nil, 'bad condition!' end if (something_bad) then return nil, 'something is bad!' end do something nice end return nice end Типа точно проверяем что всё ок, и делаем чистый код в конце, который делается "как на лучший вариант стечения событий". Но мы уже как бы всё проверили.

Google
Vadim
05.05.2018
17:10:15
я, кстати, никогда не использовал парадигму do ... return за пределами циклов

ибо не очень понимаю профита её использования по сравнению с неиспользованием :D

Andrey
05.05.2018
17:10:55
Я проще сделал - взял TCPSocket - в array добавляю строки сообщения - астериск его построчно возвращает, до разделителя между сообщениями - пустой строки. После чего содержимое импровизированного буфера кидаю в функцию обработчик и очищаю его

Snusmumriken
05.05.2018
17:11:13
Ну, message queue, да.

Andrey
05.05.2018
17:11:24
Как результат - на тестовом сервере скрипт уже сутки крутится и отъел 20 мегабайт

10 на старте и еще 10 в процессе работы за все время

Snusmumriken
05.05.2018
17:13:17
У меня сейчас на "основной работе" логирование похожим образом работает. Условно, на каждой машине развёрнуто приложение, принимающее строчки по TCP, и пихающее их в луа-табличку. Когда накопится буфер или по истечению таймаута - каждая машина сгружает всё на сервер логов. Уже месяца полтора крутится с первого тестового запуска, а логов там ~100-500мб в секунду бывает : ) Не каждый раз, конечно, среднее - 5-30мб.

Andrey
05.05.2018
17:14:53
В руби очень много из коробки есть - поэтому его использую. Просто бездумное написание кода некоторыми людьми убивает))))

Snusmumriken
05.05.2018
17:16:13
Это было и будет всегда, пока к комплюхтерам не начнут пускать только тех, кто уже написал пару сотен мильёнов строчек кода и нескольких лет поддержки собственных, кхм, продуктов (и не умер за это время).

Snusmumriken
05.05.2018
17:19:42
Некоторые необучаемы - какое говно писали 10 лет назад, такое же могут и сегодня писать ?
После школ "только сегодня и только сейчас, пройдите курс пыхо-js-погроммиста, начните зарабатывать мульёны за одни выходные" - таких ещё больше.

Andrey
05.05.2018
17:21:18
а питон не зашел?
Персональная непереносимость логики организации кода в питоне.

Revertron
05.05.2018
17:21:18
Некоторые необучаемы - какое говно писали 10 лет назад, такое же могут и сегодня писать ?
Это всё решается грамотным код-ревью. Новичок поисправляет-поисправляет, а потом таки научится.

Andrey
05.05.2018
17:21:21
И ОТСТУПЫ!

?
05.05.2018
17:22:12
а ты код без них пишешь?

Snusmumriken
05.05.2018
17:22:28
Это всё решается грамотным код-ревью. Новичок поисправляет-поисправляет, а потом таки научится.
Боюсь что таких - процентов тридцать из тех кто лезет в кодинг. Ну, плюс это схоже натаскиванию человека на определённый круг задач, как натаскивание на ЕГЭ. Решать ЕГЭ научится, но ничего больше.

Andrey
05.05.2018
17:23:03
а ты код без них пишешь?
С ними. Просто когда в консоли надо по быстрому поправить скрипт, они превращают это в ад)

Страница 285 из 307