Метатабличный / Говнокод #28273 Ссылка на оригинал

0

  1. 1
Блять, какое же lua говно блять...

Запостил: kcalbCube kcalbCube, (Updated )

Комментарии (87) RSS

  • В своей сфере вполне себе. Ну, то есть там даже конкурентов и нет. Я вот на неё перешёл для конфигурации неовима, вполне себе.
    Ответить
    • какого хуя вместо for v in list мне нужно использовать for i, #list do local v = list[i] ?
      Ответить
      • Lua - это нереально ебанутая смесь Go и Паскаля.
        Ответить
        • От паскаля там только begin и end.
          На самом деле, вполне годный язык, если бы не регистрочувствительность. На нем написан чуть больше, чем весь игровой движек "Сталкера".
          Ответить
      • никакого
        local languages = {'lua', 'ruby', 'perl', 'c', 'c++', 'awk', 'c#'}
        for _, value in ipairs(languages) do
          print(value)
        end


        Это идеоматичкский обход массива в луа. Можно конечно и ручной фор делать, но зачем?

        Кстати, кто сходу вспомниит отлоичие pairs и ipairs, тому билет в каталический университет Сан Пауло, в Бразилию, где много диких донов Педру
        Ответить
        • ЕМНИП ipairs обходит только числовые значения ключей, а pairs — все.
          (ЛУА — совершенно нецарский язык, потому что в нём нет традиционных массивов, только ассоциативные, называемые таблицами)
          Ответить
          • Верно, причем pairs не гарантирует порядок.

            В lua вообще есть только один нескалярный тип: таблица. Она может быть неймспейсом, объектом, структурой, ассоциативным массивом, или массивом обычным.

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

            Но мы прощаем это Луа (а ПХП не прощаем) потому что луа -- няшечка
            Ответить
            • с пхп мы не прощаемся потому что он никак не может блядь сгинуть
              Ответить
              • Через годы
                Через рассстояния
                На любой планете, в стороне любой
                Пыху не скажешь "досвиданья"
                Смега не прощается с тобой
                Ответить
            • Я уже когда-то упоминал, что если в языке нет статической типизации, то в принципе, всё, что ему нужно — словарь и возможность класть функции в него. Всё остальное ООП банально строится на этой основе. Что ЛУА и подтверждает.
              Ответить
              • Ну тоже самое делали Perl (точнее там в хеше хранишлись поля, а функции блессались с пакетом), или preES6 JS.

                Свинтаксис правда не очень приятный, но и само по себе ООП тоже так себе.

                Кстати, в каком языке самый всратый ООП?
                Ответить
            • > Но мы прощаем это Луа (а ПХП не прощаем) потому что луа -- няшечка

              Biased.
              Ответить
    • tcl еще можно встроить, но от него у хипстоты крыша поедет куда больше
      Ответить
  • В любом языке (кроме ПХП) есть что-то хорошее. В lua это:

    * легкость встройки в си
    * минимальное количество типов
    * почти декларативный синтаксис таблиц
    * корутины
    * возможность обращаться foo.bur.baz вместо ["foo"]["bur"]["baz"]
    * годная книжка от создателя
    * неебически маленький размер
    Ответить
    • > * легкость встройки в си
      > * минимальное количество типов
      > * неебически маленький размер

      Это делало его очень популярным встраиваемым скриптовым языком для игр. Особенно интероперабельность с С (а, соответственно, и с С++) на которых написаны чуть более чем все адекватные движки для игр.
      Ответить
      • Причем он еще и компилируется любым компилятором начиная чуть ли не с C89.
        Я как-то с ним игрался, и там чуть ли не файлик ``lua.c`` надо было подсунуть, вызвать три функции, передать туда текст модуля, и потом забрать результат.
        Ответить
  • lua забкесь
    local width = love.graphics.getWidth()
    local height = love.graphics.getHeight()
    local function loveupdate()
      local angle = 45
      local speed = 90
      points = calcTrajectoryPoints(speed, angle, 0.4)
      position = (position or 0) + 2
      if position > width-25 then position = 0 end
    end
    
    local start = {x = 20, y = height-25}
    function lovedraw()
      love.graphics.setColor(0,255,0,255)
      love.graphics.rectangle("fill", position, start.y+-15, 30, 15)
      love.graphics.print("FPS: "..love.timer.getFPS(), 50, height-25)
      love.graphics.setColor(0,0,255,255)
      for i=1, #points do
        local radius = (points[i].vx + points[i].vy) * 0.1
        if (radius < 3) then radius = 3 end
        love.graphics.circle("fill", start.x + points[i].x, start.y - points[i].y, radius)
      end
    end
    
    function love.update() pcall(loveupdate) end
    function love.draw() pcall(lovedraw) end
    Ответить
    • function love.update() pcall(loveupdate) end
      local height = love.graphics.getHeight()


      механическая любовь
      Ответить
  • Согласен.

    Луа нетипизированное говно - очепятолся - получи новую глобальную переменную, записал не тот тип в переменную - приятной отладки.
    Инструменты для Луа Говно - изучать код на луа та еще жопа. Немного скрашивают IDE JetBrains с плагином EmmyLua.
    Сишное АПИ луа говно - без либ вроде sol2 нихуя путного не сделать.
    Ответить
    • Это ты пишешь из нашего мира, где миллоны хомячков продвигают python, javascript и json с еще более хуёвыми ТТХ?
      Ответить
      • я пишу по своему опыту работы с Луа.
        Спасибо, я наелся этого дерьма на работе.
        Больше не хочу.
        Ответить
        • Просто твои аргументы (вполне валидные) относятся к любому скриптоговну, которым забито сейчас 80% разработки.

          А куда ты перешел с Lua? на чем пишешь?
          Ответить
          • основной язык лет 10-25 как - C++

            Но по работе приходится погружаться с головой в виде Луа скриптов
            Ответить
            • ну окей, вот мы написали движок на С++, а на чем писать логику игрушек гейм дизайнеру?
              Ответить
              • > а на чем писать логику игрушек гейм дизайнеру?
                Сделай визуальный редактор. Нарисовал плоскость-триггер, протянул стрелочку к спавнеру, кликнул на него, выбрал из выпадающих списков параметры — бах, готовая логика.
                На подобной хуйне строился Дум и игры на его движке, игры на Build, SeriousEngine так работал...
                В 4 героях такая хуйня в редакторе, В варкрафте 3/старкрафте 1/2 подобная поебень с триггерами. Age of Empires 1/2...


                Напиши свою скриптушню, ёба! Следуй примеру Близзард.


                Вкрути питухон, как в Цивилизации.
                Ответить
                • в говномирование мышкой я не верю, питухон точно не решает описанных Дарком проблем, насрать свой SCUMM я конечно могу, но зачем?
                  Ответить
            • > Но по работе приходится погружаться с головой в виде Луа скриптов

              то есть ты пришел сюда гугля рабочие вопросы?

              > основной язык лет 10-25 как - C++

              неплохой разброс!
              Ответить
              • И правда

                Я чото как-то даже не подумал, что С++ в 2012 (C++11 под 32битную а то и 64битную ОС, и стат анализатор) и в 1997 (достандартовые темные времена без юников и шариков, зато может быть с ближними и дальними указателями под дос и без всякого анализа) это совсем разные языки и совсем разный экспериенс

                Разница примерно как между собрать ядро в 1997 и поставить убунту в 2022
                Ответить
            • хм

              а вы там реально игры на плюсах девелопите?

              >All methods (including constructors and destructors) are virtual.
              фу (говорю как джавист)

              остальное ок для скриптушни, даже холрошо
              Ответить
              • У нас не игровой проект.
                Скорее всего его можно описать как сервис приложений, которые пишутся на скриптах.
                Основной софт и скрипты крутятся на железе заказчика.
                Ответить
              • На С++ разрабатывается низкоуровневая логика.
                Дальше на основе предоставленного АПИ скриптовики реализуют нужную логику.
                Ответить
                • а там прямо суперважен перформанс?
                  Нельзя логику вынести в отдельный процесс, и пусть хоть на VBS пишут, а интегрироваться через протобуф?
                  Ответить
                  • Я не являюсь архитектором в проекте - я рядовой кодер.
                    Архитектор хочет Луа и ничего другого не признает =\
                    Ответить
                  • protobuf/grpc - говно. (личное мнение) - сложно интегрировать в систему сборки да и реализация нужного функционала на них совсем не тривиальна.
                    Ответить
                    • все то у вас там говно, на чем же интероп делать?

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

                      А вы ебитесь дальше со своими JSON/XML.
                      Ответить
                        • Стат типизация удобнее.
                          Автоматически сгенерированные классы для всех языков.
                          Удобная схема.
                          Автоматически сгенерированные клиент и сервер со всеми методами API.
                          Ответить
                            • верно. Но SOAP хипстеры отменили соап

                              Теперь у них ошибки типа "я неправильно назвал поле, и получил вместо данных undefined"
                              Ответить
                                • Верно. Но кто в него умеет?

                                  Тут получилось как с ПХП: __теоретически__ на ПХП можно писать нормальный код, модульный, версионируесый, с юнит тестами, с разделением представления и модели, использовать пакетный менеджер , и не использовать SQL инъекции

                                  А на самом деле 101% пхп программистов так не делает


                                  С JSON примерно тоже самое

                                  Я недавно опять видел как жаваушок писал на коко
                                  json.getString("foo")?.getInt("bar")

                                  и ничего блядь у него не дрогнуло
                                  Ответить
                                    • У меня знакомые тоже так делают.

                                      Я однажды хотел сказать "SOAP", успел только сказать "SO", как меня обложили хуями: медленно, устарело, был бэд экспириенс, не нужно, только не SOAP, SOAP is so 2005 и пр

                                      Ощущение было, словно я про С++ сказал джавушку
                                      Ответить
                                      • > SOAP

                                        Я только что покушал. Зачем ты заставил меня это гуглить?
                                        Ответить
                                        • ну вот видите, пожалуйста, о чем я говорил?

                                          Как говорят современные программисты: "зачем делать что-то автоматически, если это можно сделать вручную?"
                                          Ответить
  • Хипстокал продолжает захватывать мир

    1. IT использует слак робота чтобы узнавать об ошибках, и так читает логи
    2. В ошибке есть скажкем ":abc:"
    3. Один из тысяч питухов в слаке делает эмодзи "abc" и рисует там хуйню (скажем рикроллинг)
    4. Все. Теперь в логах у IT сплошной never ever let you go или что там

    И это блядь не анедкот, это IT-2022
    Ответить
    • Ничего не понимаю. Юникод дал создателям мессенджеров сотни эмодзи разных форм и расцветок. Используй, используй Юникод — не хочу, хочу жрать говно, хочу заменять сочетания буков картинкой.

      Это мессенджеры? Это мессенджеры? Пидоры, блядь, говно жрут.
      Ответить
      • там можно кастомного говна нарегистрироватть


        короче, нихуя не изменилось со времен обрезания восьмого бита в SMTP и "белосежка и семь гомов" сами знаете где
        Ответить
        • Помню «Н» заглавную в «ФИДО»; помню картавую клавиатуру, на которой «р» не вводится; читал также про платформы, на которых есть проблемы с «щ» и «ъ». До стандартизации cp 866 последние 16 кодпоинтов были забиты всякой фигнёй, поэтому в некоторых русификаторах нельзя было ввести «Ё» и «ё». Да и после появления cp 866 ещё десятилетия эти кривые русификаторы гуляли.
          Ответить
      • Как мне сделать смайлик рик роллера, если его нет в юникоде?
        Ответить
        • Использовать PUA — private unicode area — кастомный шрифт со своими смайликами.

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

          А вообще я не против гипертекста (HTML, BBCode, мрак-даун, вики и т. п.), но должно быть явное переключение между WYSIWYG и между режимом правки исходного кода. В любом случае должен быть способ ввода текста, совпадающего с кодами разметки (вроде :abc: из примера), но пусть его мессенджер эскейпит.
          Ответить
          • а вообще сосуществование анимированных смайликов и логов серверов в одной системе вам ок?

            Это всё часть общей проблемы обсмегмивания мозгов и захипстятчивания мира.
            Когда тебе всместо мануала дают видео это та же самая проблема
            Или когда на "JavaScript" пишут...
            Ответить
          • Тормозиты почти нигде не работают, а Potentially Unwanted Application не пропустит антивирус - пораженчество и возврат к wingdings.
            Ответить
          • во-первых, почему ты не вспомнил про restructured?

            во-вторых, когда у мракдауна будет один повсеместный сука стандарт??
            Ответить
            • Когда в пятницу будет среда,
              Когда вырастут розы повсюду
              Голубые, как яйца дрозда.
              Ответить
    • это было в симпсонах скайпе ещё десять лет назад

      возможно, и в аське двадцать лет назад, но я не знаю точно
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8