@ProLua

Страница 87 из 307
Snusmumriken
28.04.2017
09:52:47
А я не люблю хранить лишние исходники. Скрипты - на то и скрипты, что в них всегда можно залезть и поправить. Поэтому я не очень люблю компилируемые языки. Можно, конечно, подключать свои либы ООП. Но тем не менее, тут же появляется куча "если". Я могу заменить почти весь сахар мунскрипта библиотеками, и получить крайне читаемую штуку.

Рома
28.04.2017
09:53:31
Гитхаб вовсе не запрещает хранить все хоть пол года, хоть 10 лет

Snusmumriken
28.04.2017
09:54:25
Хех, тем не менее. А теперь смотри, что мне нужно сделать для проверки кода на мунскрипте: 1. Пересобрать сурцы 2. Запустить проект Это ровно в два раза больше действий чем в луях. Скрипты на то и скрипты, что их можно запускать прям сразу. Ну блин, мунскрипт хорош, но он убирает почти все плюшки скриптов, за которые лично я их люблю.

Это хорошая штука для крошечных проектов, но для крупных - фигня.

Google
Рома
28.04.2017
09:56:38
Я как веб разработчик в этом ничего плохого не вижу. Там тебе и coffee, и stylus, и ещё куча всякой фигни, которую прекомпилировать надо, сейчас странные нехорошие веяния ещё кучу страшных вещей насаждают, вроде бабеля

Snusmumriken
28.04.2017
09:56:59
Крошечные проекты, чувак. Но и в крошечных - лень. Попробуй прочитать стактрейс глубины 20 луа-кода, скомпилированного в мунскрипт.

Рома
28.04.2017
09:57:35
А тут в дело вступает jit

Snusmumriken
28.04.2017
09:57:44
Стактрейс. Ты знаешь что это? Его надо читать, при падениях.

Рома
28.04.2017
09:57:53
На руби стактрейс раз в 50 больше, чем в самом сложном проекте на луях

Tverd
28.04.2017
09:58:19
Да ладно, не все так страшно, как Снус описывает, с удовольствием пользуюсь мунскриптом, когда надо побыстрому

Snusmumriken
28.04.2017
09:58:21
Там он за счёт рельсов, которые делают 100500 оболочек над базовыми вещами.

Рома
28.04.2017
09:58:25
Да, руби == рельсы же

Плюшка
28.04.2017
09:58:33
Snusmumriken
28.04.2017
09:58:35
Tverd
28.04.2017
09:58:42
Неа, целая игра

Snusmumriken
28.04.2017
09:59:13
Боюсь что в твоём варианте, это всё равно крошечный проект. Сколько файлов используется? Какой уровень абстракции?

Google
Рома
28.04.2017
09:59:20
Что означает крошечный проект?

По сравнению с некрошечным

Tverd
28.04.2017
09:59:48
Snusmumriken
28.04.2017
10:00:19
Хех, ну тут может и не шибко крошечный. И как отлаживается?

Tverd
28.04.2017
10:00:51
да ошибок мало на удивление, отладка не фонтан конечно, но скорость написания и читабельность прямо радуют

Snusmumriken
28.04.2017
10:00:52
Или ты в zerobrane?

Tverd
28.04.2017
10:01:01
не, в саблайме

Snusmumriken
28.04.2017
10:02:41
Да, предупреждаю что это только моё мнение о мунскрипте, основанное на том что у меня всё очень большое и очень стрёмное, а ещё необходимость в безумной производительности, и я снабжён кучей собственных библиотек на любой чих. И не люблю компилировать/пересобирать, но мне нужен максимально удобный дебаг.

Tverd
28.04.2017
10:03:36
Ну гуд, каждому свое, я говорю что не надо бояться пробовать, может кому-то и понравится )

Рома
28.04.2017
10:08:53
Можно немного оффтопика? Говорю заказчику, что реакт говно и с него лучше бы проект переводить. Он говорит, как говно, вот на нем фейбук сделали и ничего. Открываю фейсбук, никакого реакта там не нахожу. Кто знает, где на фейсбуке есть реакт?

Snusmumriken
28.04.2017
10:09:27
https://facebook.github.io/react/

Рома
28.04.2017
10:10:28
Не сам реакт, а в соц сети фейсбук где он используется

Snusmumriken
28.04.2017
10:10:57
Ну, соцсеть и есть разработчик реакта. Подозреваю что для чего-то они его писали.

Рома
28.04.2017
10:13:29
Имеет место скрытый замысел, они его сделали, чтобы сайты конкурентов тормозили, а сам фейсбук на него переводить не спешат

Snusmumriken
28.04.2017
10:15:09
Подозреваю что где-то он используется. Ой, ну блин, такая подстава - это как-то по детски : ) У меня на работе делают часть простых вещей с реактом. Ничего страшного. Он жирен, это да, но свои задачи исполняет. На хабре есть забавное описание: https://habrahabr.ru/post/249107/

Он захайпован, это да. Но в интернете сейчас слишком много хайпа по поводу веб-библиотек и фреймворков. Сам вебом не занимаюсь, потому что о-о-о-о-очень скучно. Да, за это платят, но ещё и работать, занимаясь скучным делом - я не настолько убийца времени.

Alex Фэils?︙
28.04.2017
10:19:35
Но, оно будет занимать далеко не ноль времени.
Эт да. Компилиться будет наверное долго

Snusmumriken
28.04.2017
10:19:50
После компиляции - тоже не ноль времени. Просто меньше. Тот же квиксорт на динамически изменяемой структуре - и после компиляции будет занимать не меньше n log(n) времени.

Рома
28.04.2017
10:20:15
Это самое худшее, с чем приходилось сталкиваться, он ужасен во всем, от клонирования всех состояний каждый раз при изменении состояния, до загрузки стилей в сами элементы, что какие грибочки привели к идее дома теней - вообще молчу, </offtopic>

Snusmumriken
28.04.2017
10:21:04
Кому как. Я работаю с довольно разумными людьми в данном плане. Если бы им было не норм - они выбрали бы что-то другое.

Google
Snusmumriken
28.04.2017
10:25:12
Но сам веб сейчас, имхо, слишком стрёмен: людям лень писать три строчки ajax-запроса, они хотят одну строчку, поэтому подключают десять фреймворков по 5-10мб каждый. Низкий порог входа провоцирует обилие макак-с-лептопом, которые не умеют в оптимизацию и даже простейший sql, поэтому подрубается ещё одна orm-либа. А то и не одна. А потом проект становится таким жирным, что только v8 спасает его от зависаний на минуты, пока все скрипты отработают. Самое противное то, что потом эти люди фигачат свои фреймворки, рекламируют их, и остальные сайты становятся ещё более говёными чем были. Браузер им в этом помогает, кешируя всё что можно и что нельзя в оперативке, в результате имеем вкладки по пол гига каждая. Спасибо конечно, но имхо, веб 1.0 был честнее. Хоть там и надо жмакать f5 )))) По моему мнению, веб = раковая опухоль. Там давно нужна смена парадигмы на "загружаемое приложение, использующее почти только стандартные библиотеки браузера, и минимум загружаемых"

Alex Фэils?︙
28.04.2017
10:26:47
Но сам веб сейчас, имхо, слишком стрёмен: людям лень писать три строчки ajax-запроса, они хотят одну строчку, поэтому подключают десять фреймворков по 5-10мб каждый. Низкий порог входа провоцирует обилие макак-с-лептопом, которые не умеют в оптимизацию и даже простейший sql, поэтому подрубается ещё одна orm-либа. А то и не одна. А потом проект становится таким жирным, что только v8 спасает его от зависаний на минуты, пока все скрипты отработают. Самое противное то, что потом эти люди фигачат свои фреймворки, рекламируют их, и остальные сайты становятся ещё более говёными чем были. Браузер им в этом помогает, кешируя всё что можно и что нельзя в оперативке, в результате имеем вкладки по пол гига каждая. Спасибо конечно, но имхо, веб 1.0 был честнее. Хоть там и надо жмакать f5 )))) По моему мнению, веб = раковая опухоль. Там давно нужна смена парадигмы на "загружаемое приложение, использующее почти только стандартные библиотеки браузера, и минимум загружаемых"
+

Рома
28.04.2017
10:28:05
А какой там результат?

Alex Фэils?︙
28.04.2017
10:28:25
А какой там результат?
Все фишки с другой стороны?

Рома
28.04.2017
10:28:25
print "все сделано" на луа тоже быстро сработает

Alex Фэils?︙
28.04.2017
10:28:51
Но он не посчитает ж)

Snusmumriken
28.04.2017
10:29:12
Угу. Так можно. А если у тебя вычисление ханойской башни только после того как ты принял состояние игры с сервера, и там могут быть очень разное количество и расположение этажей? Ну да, квиксорт на этапе компиляции тоже не работает с заполняемыми в процессе исполнения структурами. Но тогда теряется суть квиксорта: можно сортировать хоть пузырьком. Просто чуть дольше компилиться будет.

Alex Фэils?︙
28.04.2017
10:30:15
Тогда никого компайл-тайм, эт да

Snusmumriken
28.04.2017
10:32:03
Карочи, всю статику можно обрабатывать на этапе компиляции. Это как макросы.

Рома
28.04.2017
10:32:06
Ещё насчет веба, если сказать, что все можно сделать на ванильном js, код будет понятнее, работать будет во многом раз быстрее, это сейчас означает выглядеть нубом, который *ничего* не умеет, и просто не может осилить современный веб, вот в чем цимес

Snusmumriken
28.04.2017
10:33:19
Ну, ванильный js бедноват, и ты будешь очень долго писать простые вещи. Просто сами библиотеки должны быть крошечными и выполнять те самые простые вещи, подключаясь только при необходимости, и не подключая иных библиотек (хоть это и может выдать некоторое дублирование кода). Вместо пихания фреймворка-на-все-случаи-жизни.

Рома
28.04.2017
10:34:19
луа тоже бедноват, истинный фанат (я) самую сложную задачу примет как вызов и зад всем надерет

Snusmumriken
28.04.2017
10:35:59
Только ты будешь это делать долго. Я тоже долго (пару лет) писал себе либы на каждый чих. Часть из них не нужна, другая часть требует переписывания, третья часть - отличный инструментарий. Это всё равно велосипедописательство, но я это делал в основном для самообучения, и потому что существующие библиотеки не такие сахарные.

FailsBot
28.04.2017
10:36:33
Alex Ф-ф-фэils!?︙ вспомнил свои велосипедолибы начала 2000-х

Рома
28.04.2017
10:36:36
Там есть геттеры и сеттеры, вот и вся реактивность, ничего в этом долгого нет

Snusmumriken
28.04.2017
10:37:29
Мы про разное говорим. Дзен - в отсутствии крайностей. Фронтэнд склонил баланс сил в сторону жирноты, и потянул за собой бекенд. Ладно, я успешно пожаловался на "четырёх гигов оперативки не хватает для хрома((((". Пора заканчивать оффтоп.

Чай
28.04.2017
16:06:59
Интересный трюк, спасибо.

Yuriy
28.04.2017
18:02:43
Всем привет, все еще работаю с gsub 3 параметром может быть функция Она точно может в себя принимать более одного Аргумента? Сейчас я делаю так string.gsub(str,pattern,function(s,myVar) print(myVar) end) Мою переменную функция ен видит

fgntfg
28.04.2017
18:06:37
А если сказать function (...)?

Google
Yuriy
28.04.2017
18:09:04
так она анонимная

gsub ругается если ему подставить не анонимную функцию

точнее описанную ранее

то есть если написать function myFn(...) end и потом gsub(str,pattern,myFn(a,b)) то gsub ругнется

Tverd
28.04.2017
18:17:45
gsub(str,pattern,myFn)

Yuriy
28.04.2017
18:18:09
без входных параметров?

Tverd
28.04.2017
18:18:17
ну да

Yuriy
28.04.2017
18:18:43
то есть передат ьв нее свой параметр не вариант получается...

Tverd
28.04.2017
18:19:44
никогда не пробовал) но тогда придется динамическую делать

Admin
ERROR: S client not available

Snusmumriken
28.04.2017
18:22:53
Всем привет, все еще работаю с gsub 3 параметром может быть функция Она точно может в себя принимать более одного Аргумента? Сейчас я делаю так string.gsub(str,pattern,function(s,myVar) print(myVar) end) Мою переменную функция ен видит
Видна будет только первая переменная. Вторая - нет, и это нормально. Потому что gsub работает примерно так: function string.gsub(str, patt, arg3) c = str:match(patt) if type(arg3) == 'function' then arg3(c) elseif type(arg3) == 'table' then ... elseif type(arg3) == 'string' then ... end end

Yuriy
28.04.2017
18:24:02
Окей. То есть крмое как через глобальную туда передавать что то других путей нет..

Snusmumriken
28.04.2017
18:25:58
Эм. Можно сделать генератор с замыканием. function stringirator(arg1, arg2, arg3) return function(char) return char .. arg2 .. arg3 .. arg1 end end str = str:gsub('.', stringirator('.', '.', '.'))

Эта хрень будет добавлять каждому символу многоточие, если что.

Это стандартное правило: если куда-то что-то нельзя передать никак как через глобальную - фигачим замыкания.

Yuriy
28.04.2017
18:29:43
Не .Я не против) надо просто понять как это работает) Пока не въехал

Snusmumriken
28.04.2017
18:30:36
Смари: Функция которая возвращает функцию, которая использует переменные, объявленные в первой функции. Внешняя функция работает оболочкой над второй. И всё что объявлено в первой - работает во второй, но не работает нигде больше, потому что локальное пространство замкнуто.

Yuriy
28.04.2017
18:31:12
Не. Я это понимаю)) Я не совсем пока что одупляю как эт оприменить к gsub

чтобы передать переменную

Snusmumriken
28.04.2017
18:31:30
Пихнуть вторым аргументом функцию, сгенерированную стрингиратором, которая использует всякую фигню которую ты передал стрингиратору.

Google
Yuriy
28.04.2017
18:31:55
У gsub вторая переменная это же паттерн Так ведь?

Snusmumriken
28.04.2017
18:33:05
Смотря как вызывать. string.gsub('str', 'patt', 'str'/func/{table}) str:gsub('patt', 'str'/func/{table}) Я имею ввиду второй вариант.

Yuriy
28.04.2017
18:33:49
а. ну мне по идее 1 нужен У меня во втоорм арг паттерн который должен мачиться

Snusmumriken
28.04.2017
18:34:08
Пофигу как вызывать. Результат один и тот же. Строки = объекты с методами, которые можно дёргать через двоеточие.

Yuriy
28.04.2017
18:34:31
а

Все

Туплю

Понял

Спасибо!

Snusmumriken
28.04.2017
18:35:42
Карочи, если функцию из стрингиратора в качестве третьего аргумента - эта функция сможет использовать всё что ты передал стрингиратору. Вот такой я умный :В

Yuriy
28.04.2017
18:35:56
да да)) я уже понял)

Спасиб)

Snusmumriken
28.04.2017
18:38:32
Напрямую сразу создать строку и дёрнуть её метод выражением типа такого, нельзя: a = 'yormammaisfat':match('yo.') Но можно заключив в скобки: a = ('yormammaisfat'):match('yo.') Теперь print(a) --> 'yor'

Yuriy
28.04.2017
18:40:22
Я ж говорил что lua крутой язык) мне никто не верит))

Snusmumriken
28.04.2017
20:43:23
Нужны доказательства. Почему луа - крутой язык? Тут же всё не как у людей. Индексация - с единицы, нельзя пихать в функции множественные результаты нескольких функций, типа: function foo() return 1, 2 end function bar() return 3, 4 end function foobar(a, b ,c ,d) print(a, b, c, d) end foobar(foo(), bar()) --> 1, 3, 4 Это вообще законно? Нельзя делать цепочки сравнений: a > b > c - ошибка!

Snusmumriken
28.04.2017
20:44:08
Синтаксис похож на древний вонючий бейсик! do-end - это омерзительно! Они не могли скобки завести? С сишки же кальку делали!

Yuriy
28.04.2017
20:44:50
Если сравнивать с JS то тут все гораздо круче. Как минимум все гибче

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