LINUX.ORG.RU

Ответ на: комментарий от annerleen

Давай. Только ты мне сначала расскажешь, как ты будешь читать pg без драйвера pg, например.

anonymous
()

Потому что просто, встраиваемо, быстро и компактно.

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

в этом языке меньше конструкций, а не больше – чем в каком-нибудь С++

Около 130 встроенных идентификаторов:

https://www.ibm.com/support/knowledgecenter/SS3JHP_6.1.0/com.ibm.raa.analyze....

95 в крестах, из них 15 добавлены последними стандартами. И это кресты, который претендуют на звание самого сложного языка, в котором совместимость совместимостью погоняет, поскольку он еще и включает себя Си.

чтобы программировать например под WinAPI – и этих конструкций достаточно

У WinAPI интерфейсы сишно-асмовые. Еще бы интерфейсы MS DOS всомнил.

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

ну просто в жопе свербит, что ли? есть код, он работает, кушать не просит

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

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

Как правило, бизнес-процессы не стоят в каменном веке десятилетиями. Появляется необходимость вводить новые технологии, которые через прокладки общаются с новой системой. Когда прокладок и новых технологий становится много — есть смысл как раз заняться переводом всей системы целиком. Конечно же нет смысла обновлять систему, которая работает, всех устраивает, и не требует никаких дополнительных расходов.

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

по какой не?:

(function()
  local base = CroApp.GetBank():GetVocabulary():GetBase("XX")
  if !base then return BaseIsNull end
  local v=0,rst = base.RecordSet
  if !rst then then return rstIsNull end
  rst:Sort{ 
            {field=5, descent=true, case=false},
            {field=7, descent=false, case=false},
            {field=10, descent=false, case=false}
          }
  for rec in rst.Records do
    v = v + 1
    arrSimpleConv[v] = {
                         Type = rec:GetValue(5),
                         LegName = rec:GetValue(10),
                         PickName = rec:GetValue(11),
                         Rules = {},
                         FlagHierarch = tonumber(rec:GetValue(30)),
                         HyTable = nil
                       }
    arrStrRules = rec:GetValue(20, 0)
    for i,p in ipairs(arrStrRules) do
      arrSimpleConv[v].Rules[i] = table.unserialize(p)
    end
  end  
end)()			

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

https://github.com/daurnimator/cqueues-pgsql A wrapper around luapgsql that uses cqueues luapgsql Languages: C 88.0%

https://github.com/leafo/pgmoon Some socket library is required, depending on the environment you can chose one: OpenResty Langauges: C 100.0% LuaSocket Langauges: C cqueues Langauges: C 79.0%

  • есть самописный драйвер на сях

Так, и причем тут lua?

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

необходимость вводить новые технологии какая ёмкая метафора!

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

следующий (если вообще) питон будет 5ый ( ибо 2+3)

всмысле питон фибоначчи? апплодирую стоя, прямо со своего проперженного дивана.

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

Ты собрался мерить проивзодительность языка, или производительность дергания нативных библиотек?

По ссылке выше тебе даны чистые вычисления, где можно замерить скорость интерпретатора. Ты же, предлагая измерять на реальных задач, отдаешь себе отчет, что из жса можно ровно так же дергать нативные биндинги? Что ты в итоге мерить будешь? Скорость ввода вывода? Переключения контекста? Потребление памяти? GC luajit кстати уже умеет адресовать более 2ГБ памяти, м?

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

Давай - пишешь zero-dependices скрипт, используя только встроенные возможности рантайма, без сторонних библиотек, с решением своей реальной задачи для запуска в бинаре lj. Потом я тебе пишу скрипт на js, решаюющий такую же реальную задачу, так же без сторонних зависимостей, кроме самого рантайма жс.

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

Давай - пишешь zero-dependices скрипт, используя только встроенные возможности рантайма, без сторонних библиотек, с решением своей реальной задачи для запуска в бинаре lj. Потом я тебе пишу скрипт на js, решаюющий такую же реальную задачу, так же без сторонних зависимостей, кроме самого рантайма жс.

кхем, plain-lua библиотеки можно использовать?

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

Ты собрался мерить проивзодительность языка, или производительность дергания нативных библиотек?

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

GC luajit кстати уже умеет адресовать более 2ГБ памяти, м?

зависит от реализации.
openresty'овский умеет, moonjit тоже (но это не точно), апстримовый скорее нет, чем да.

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

+1. Даже в Паскале это настраивается

Тебе в луа никто не запрещает индексов ать нулём элемент массива. Единственное - этого никто не ожидает, например, оператор взятия длинны. (который, емнип, тоже можно переделать через метатаблицы)

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

по какой не?

Даже не знаю ) Может по той, что не Гуру? )

Про return - меня так учили, что не надо делать много в разных местах. Return должен быть один. Уж лучше goto к нему.

Ну и, строго говоря, это мелкий, относительно-осмысленный кусочек из сценария на 2000 строк по конвертации одной удивительной БД, в другую не менее удивительную.

Покажу самое удивительное место из той конвертилки )

-- Нулевая дата для HyTech версии 2.1 - 1 января 1872 года,
-- (а по документации к 2.5 должна быть 01-01-1900)
-- причём там явная ошибка с 29 февраля 1900 - такой даты НЕ БЫЛО,
-- а количество дней считается как-будто было (юлианский календарь?),
-- поэтому руками откусываем один день если дата больше 28-02-1900
dtZeroHyDate = DateTime("01.01.1872 00:00:00")
dtsDays = DateTimeSpan()
function DateStringFromHyTech(iDaysFromZero)
  local Ret = nil
  if iDaysFromZero > 0 then
    if (iDaysFromZero > 10285) then iDaysFromZero = iDaysFromZero - 1 end
    dtsDays.Days = iDaysFromZero
	Ret = (dtZeroHyDate + dtsDays):ToString("%d.%m.%Y")
  end
return Ret
end

И сразу с упреждающими ответами - вынес в глобальную область dtZeroHyDate и dtsDays потому что точно знаю, что они еще пригодятся дальше по коду, но не знаю как Lua себя будет вести - он каждый раз будет создавать эти объекты если они будут локальные или догадается, что не надо каждый раз из под них память освобождать и заново создавать?

И, да, мне нравится венгерская нотация )

И, да, я простой эникейщик, а не узкий специалист. Чего дадут - того и делаю. Хоть Lua, хоть 1С, хоть php, хоть zfs собрать. Давеча вот по работе открыл для себя способ восстановления всеми забытого пароля от почты, но сохраненного в клиенте в зашифрованном виде, методом подмены зашифрованного оригинального сервера на свой подставной без шифрования с последующим отловом его в трафике - жуть как доволен собой, а поделиться не с кем )

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

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

Но в случае с правилами нумерации элементов массива, ты сам же отказываешься луа в праве самостоятельно определять понятия, мол, чейта они не делают как общепринято

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

Так и не осилил, в интернете одни хеллоуворлды их которых сути луа не понять

Прочитай родную книжку Иерусалимски: если без описания стандартной библиотеки - 200 страниц. Написана изумительно, читается легко и приятно. После прочтения - влюбишься

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

да и стоит ли?

Стоит. Вечер потратишь, даже если не понравится - расширить кругозор.

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

Ты просто предвзято придираешься.

Ну конечно. Я же потратил целых 15 минут, чтобы прочитать справочник луа по диагонали.

Язык как язык

Так я и говорю, что язык, как язык, а тут рассказывают, что он какой-то там «мощный».

пообсирать язык называя его неполноценным что бы у них пукан горел? ))) Только вот такие заявления …

Так их вас по-другому ничего про ваш луа не выудить. Приходится толсто набрасывать, чтобы была тема для разговора. Лор такой лор, шито поделать.

ты бы потоньше тролил чтоль

Тонко может не прокатить, а толсто всегда прокатывает.

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

либо не боясь того что они уронят хост программу.

Насчёт падений - спорно.

сводится всё к встраиванию

Про встраивание понятно. Жс можно также встроить и не будет никакой разницы. Это вопросы обвязки и наработанных в этой области решений, т.к. что с луа это делают уже много лет, а в8 только начали пытаться везде вкорячивать. В сухом остатке что?

Ты требуешь

Мне заявляют, что оно язык крутой и мощный, я хочу узнать, чем __язык__ такой крутой и мощный.

Для иного есть иное.

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

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

Два раза спрашивал чем так крут этот ваш луа - все молчат

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

А ещё он реально очень быстро связывается с и и обратно. Я делал опыт, писал программку, чтоб из луа рисовались линии на контексте cairo. Например на событие перемещения мыши все перерисовывалось. Постепенно удесятерял количество линий на кадр. Так вот, видимо лагать начало со ста тысяч линий за кадр. Потом убрал луа и рисовал прямо из си - то же самое. То есть каиро уже стал не успевать, а луа успевал.

Такая скорость позволяет на нем хоть кадр отрисовывать. Love2D смотри. Я не говорю что js плох, но он большой и постоянно меняется, а луа маленький и нет ощущения что его всю жизнь надо учить, чтоб знать

Вкусовщина, конечно, но никто обратного и не обещал

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

Это все к тому, что дело на самом деле все не в инструменте, а в навыке использования

«когда вы говорите, у меня ощущение, что вы бредите» (с) Инженер Тимофеев

Ну так приделай к ПК. Смартфон и выкинь основную клавиатуру. Дело ж не в инструменте по назначению, а в навыке. Потренируйся. И паять зажигалкой. И шурупы закручивать ножом. И так далее.

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

Луа не считают полноценным языком даже те, кто его использует. Так, встройка, костыль для си без амбиций.

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

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

чувство меры (лебегову не предлагать)

в «исходной» эвристике было один вход - один выход ; в «го» деферами подкрепили привычку чуваков комнаты 1120 не загоняться вложенностями.

... Шире только ...Никто, кроме нас


dtZeroHyDate = DateTime("01.01.1872 00:00:00")
dtsDays = DateTimeSpan()
function DateStringFromHyTech(nDays) --iDaysFromZero
  if nDays <= 0 then return nil end
  dtsDays.Days = nDays - ((nDays > 10285)and 1 or 0) --Скобка Айверсона
  return (dtZeroHyDate + dtsDays):ToString("%d.%m.%Y")
end


зы. переписывание алгебраических выражений из КрИстала али каких Русских(Эйлер там ..) учебников по алгебре( в 18..19 смысле)
anonymous
()
Ответ на: комментарий от byko3y

Как ты гарантируешь, что в некой ячейке значение будет числом, а не строкой и не пустым?

Щас оброню немного мудрости: в языках программирования есть условия :)

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

Зачем исполняемый код в конфигах?

Такой декларативный подход, когда в итоге все выносится в конфиги вместе с некоторым кодом, а ядро никто не трогает.

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

Но да, использовать кириллицу для имен функций и переменных - тот еще маразм…

Почему? А как англо говорящие пишут? Кириллицей?)

// но выглядит дико, я б с ума сошёл)

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

Почему? А как англо говорящие пишут? Кириллицей?)

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

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

Роберт Иерусалимски, программирование на языке луа. Есть на рутрекере. Или почту какую скажи, сброшу

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

Зачем исполняемый код в конфигах?

Ради условий, инклудов. Ты серьёзно не видел конфигов с условиями? Или просто неприемлешь?

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

Они стабилизировались? Когда смотрел прошлый раз, там всё ломали каждый релиз.

Не похоже. Я смотрел один раз – оно еще развивалось семимильными шагами.

Но кадры отрисовывать успевал )

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

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

Ну пиши все в именительном падеже, тоже мне проблема

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

Ты серьёзно не видел конфигов с условиями?

Практически не видел. Иногда там есть ограниченные не Тьюринг-полные условия.

Или просто неприемлешь?

This. Конфиги с исполняемым кодом невозможно редактировать автоматическими инструментами (команды внесения изменений: crudini и т.п., GUI редакторы настроек), только руками.

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

я нашел издание за 2013 год еще, оно?

Третье издание, не знаю какой год. Про Lua5.3 уже есть. Анон выше ссылку на пдф-ку кидал, у меня оно.

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

Хипотеза:

Британские Колониальные Компании ввели и вели бумажное делопроизводство редуцируя(постепенно - обусловлено практикой) флексии сия практика постепенно распространилась через трендсетеров- обитателей дворца Якова (али какие Вестминстерсие аля Версали) в толщу народную

как итог за несколько веков от Шекспира язык всё удобней и удобней для автообработки

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

Конфиги с исполняемым кодом невозможно редактировать автоматическими инструментами (команды внесения изменений: crudini и т.п., GUI редакторы настроек), только руками.

if winda then
  window_caption = "ССЗБ"
  tmp_dir = "C:\Users\sszb\Desktop"
else
  window_caption = "That's my boy"
  tmp_dir = "/tmp/myapp/"
end 

это нельзя редактировать не руками?

А какие-нибудь конфиги апача видел?

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

потому что избыточно и этот ненавидимый мною delphi/pascal синтаксис := (присваивание) если есть общий формат операции присваивания просто = то зачем это нужно сейчас := ?

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

это нельзя редактировать не руками?

Это пока ещё можно. Но такое несложно обрабатывать специальным парсером без всяких Lua. Зачем например циклы нужны в конфигах — не понятно. А они могут повесить программу на этапе чтения конфигов и надо будет долго искать что не так.

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