Чувак, ты как-то слишком агрессивно себя ведёшь. У тебя нет цели понять, как люди живут (неплохо, кстати) с немножко другим языком, нет цели понять, зачем и почему он такой, какова его область применения, но зато есть желание наехать и устроить срач. Иди в баню с такой манерой общения.
Самая большая ложь или заблуждение, выбирай сам. Вот теье несколько примеров - интернет это военная разработка не для гражданского использования, компьютеры не задумывались для персонального использования, кока-кола это медецинское лекарство, зонтик был изобретен не для защиты от дождя, «все гениальное просто» сказано гебьельсом совсем не в том ключе в котором его все используют. Ну и наконец - строение организма опорно двигатнльного аппарата человека не предназначено для ходьбы прямо при земной гравитации, именно поэтому человек самое хрупкое существо на планете и страдает всеми возможными заболеваниями ОДА. В общем, если так любишь применять все по назначению и сетлапть этим где попало, становись на четвереньки, как задумано природой. А все разумные люди прлдолдат решатт задачи любым возможным и удобным способом, приспосабливаясь, чем все свле сузесивование и занималлмь и, собственно, благодаря этому и выжило.
Еще сходи изучи, чем на самом деле является инженерия. Может однажды преодолеешь барьер собственного скудоумия.
Я хотя бы в случае чего подотрусь, и доеду куда мне нужно, пока ты будешь сидеть с обосранной жопой и причитать на тему того, что мамка бумагу не купила и денег на проезд не оставила.
Не думал задаться вопросом, что твоя картина мира ошибочна. Если все вокруг видят цвет красным, а ты зеленым, то может дальтоник это все таки ты?
Порефлексируй уже на тему того, как что-либо вообще появлялось в истории человечества. Может быть поймешь, что все развитие построено на применение чего-либо не «по назначению».
И со своим микроском, вспомни про пушки с воробьями. Потом пересиань заниматься софистикой и начни решать задачи, а не рассуждать, чем их решать. Пока ты выбираешь себе самый правильный молоток, другие уже забили гвозди.
Вот в том моем сообщении миллион опечаток, например. А все потому, что я пишу с телефона, которым пользуюсь раз в сутки и то в основном, чтобы читать. Я не использую скользящий наьор, потому что не привык к нему, как и автозамену и интелессенсе. Значит ли это, что смартфон не предназначен для активной переписки? Не подходящий инструмент? Несколько миллиардов людей на планете так не считают, у них это основной девайс. Да и сам я каких-то лет десять назад активно чатился именно с наладонника, а то и вовсе с телефона, где клавиатура была еще мельче. Это все к тому, что дело на самом деле все не в инструменте, а в навыке использования. Собственно странно говорить о назначении вещей и правильности их использования, и в то же время выдумывать такую категорию людей, как ВИРТУОЗЫ.
Если ты не умеешь качественно забивать гвозди микроскопом, как ты выражаешься, это говорит лишь о том, что ты недостаточно профи, или как бы сказал царь - анскильная лалка.
Люди делятся на две категории - те, кто ищут оправдания и во всем винят все вокруг, и те, кто умеют подстраивать мир под себя и создают его.
Если в твоем мире что-то не так, то это не мир плохой, а ты. Мир самый обычный, а ты в нем самый виновный. Он такой, каким ты его себе делаешь.
Если я глаза закрою, вы все тут без света останетесь.
Если дале воспринять это за солипсизм, чтотна самом деле не рак, то можно внезапно понять, что у него две стороны медали - ты можешь солипсировать в эгоцентризм и думать, что мир крутиться вокруг тебя, а модешь внезапно прозрев познать дзен, что миру от тебя не жарко не холодно, от твоих переживаний, твоих нервов, твоих ему сопротивлений. И вместо того, чтобы напрасно тратить себя на это самое сопротивление, стоило бы начать тратить себя на извлечение пользы или ее производство. Для себя или для каких-либо еще, важных ДЛЯ ТЕБЯ целей. Пока ты переживаешь о том, как все вокруг неправильно по-твоему живут - они живут, а ты - переживаешь.
Ты на полном серьезе считаешь, что мухи ошибаются в процессах своей жизнедеятельности? Или к чему ты оперируешь это бессмысленной фразой?
Тебя смущает, что мухи используют фекалии как срелу для рпзмнодения и доьычи питательных веществ? Так ты и ты их используешь для этого. Про удобрения слышал? А то, что ты падальщик и питаешься трупами теья например не смущает?
Луа не считают полноценным языком даже те, кто его использует.
Я тебе больше скажу: его полноценным не считают даже его разработчики. Потому что у языка есть область применения, под которую он заточен и с которой он прекрасно справляется.
Если есть более подходящий для решения задачи инструмент
бля, какие вы скучные все стали. «зависит от конкретной задачи, каждый, бля, инструмент заточен под свое дело, да у всего своя ниша, а вот тут неизвестно что будет, а вот это вот не ясно». нет бы сказать «КТО? ЛУА? ДЛЯ ВСЕГО НАХ ПОДХОДИТ». и начать тут же сраться, вы но лоре, бля, или где, бля?
local base = CroApp.GetBank():GetVocabulary():GetBase("XX")
if base then
local rst = base.RecordSet
if rst then
local v = 0;
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
end
rec:GetValue(20, 0) - это, если память не изменяет, и есть многозначное поле записи, которое чудесно забирается в таблицу lua. Красота )
Ты же вроде не домохозяйка? Луа крут встраиваемостью и с 5.2 идиальной изоляцией. Что позволяет давать пользователям возможность запиливать свои расширения для чего либо не боясь того что они уронят хост программу. Вот и всё что от него нужно, вот и всё для чего он создан. В этом ему равных нет. Если же нужна расширяемость + скорость и возможность на пользовательском уровне жонглировать so либами то есть luajit. Ах да через тот же luajit ffi черезвычайно удобно проводить тестирование библиотек. Более того можно скомпилировать elf приложение в котором будет сохранены символы и можно к простому исполняему файлу писать lua расширения которые будет дёргать внутренний api программы. Да много всего можно, но сводится всё к встраиванию и оно черезвычайно тупо удобное. Так как большинство задач расширения сводятся к наложению дополнительной логики, а не вычислениям то тут lua просто вписывается идеально. Хотя и для просто приложений вполне годно, где хост на сях и тяжёлое на сях, а остальное на lua например редактор lite https://github.com/rxi/lite . Ты требуешь какой то абстрактной крутости, у языка есть чёткая сфера применения в ней он хорош и крут. Для иного есть иное.
Ну так то да, для всего подходит. Но ест места где подходит лучше других на голову лучше. Си тоже для всего, вообще для всего. Но есть места где ему нет равных и не будет никогда. Си зе бест, луа зе бест. На них обоих можно абсолютли всё что только в голову взбредёт больное просто ультра убер комбо.
Большая запутанная спецификация != богатый язык. PL/I — это типичный такой язык эффективных менеджеров, которые расписали ключевые слова под каждый чих, то есть, формально получили «много фич». Фактически же язык был уровня паскаля, позволял строить абстракции уровня паскаля, но при этом требовал изучать намного больше конструкций языка. То есть, PL/I представлял собой сплошные свистелки и перделки, которые радуют детишек, но ничего не дают серьезным дядям.
А зачем выполнять арифметические операции над строками и делать прочую гадость?
Как ты гарантируешь, что в некой ячейке значение будет числом, а не строкой и не пустым?
Луа не может быть невстроенной. Когда ты в терминале запускаешь интерпретатор lua. Ты не запускаешь какой то там оффициальный интерпретатор. Ты просто запускаешь программу хост в которую встроена lua машина и всё. Он встраиваемый как там модно говорить by design. А так это полноценный язык, маленький понятное дело. Для встройки монстры были, но все благополучно сдохли. Ты просто предвзято придираешься. Язык как язык, есть куча вариантов использования. Или у тебя это как его я тред не читал но наверняка тут были фанбои луа и ты чисто по принципу теперь имеешь цель пообсирать язык называя его неполноценным что бы у них пукан горел? ))) Только вот такие заявления … ты бы потоньше тролил чтоль. У фанбоя да гореть будет инфа сотка, а я вот начинаю смотреть на тебя после таких слов как на дурачка троля. Потоньне надо сир да похитрее! Иначе уныло ))
Я вообще не понял вашей ветки обсуждения: вроде как ответ был про PL/I против JS, потом внезапно обсуждение снова возвращается к Lua. Естественно, Lua и JS — это два весьма близких языка.
Оно и без твоих исключений узнаётся. Тебе в голову вбили мантру что исключения это такие штуки которые бла бла бла и ты теперь под бла бла бла ожидаешь наличие исключений. У машины луа есть состояние с любым уровнем погружения можешь хоть весь стек выводить покадрово для отладки и видеть куда что, на каком уровне и где (при желании даже мышкой можно стек тыкать если морду сделать за 1 день) Так что не гони если не знаешь. В луа стековая машина, и если на 91 уровне вложенности что-то крякнуло вдруг (ой ли?) ты это место получаешь и смотришь. или хоть весь стековый фрейм берёшь и смотришь. А с исключением ты хрен там чего узнаешь точно. Если тебе проще понять то любое место исполнения программы на lua и сбой в этом месте может быть рассмотрен, остановил в любой момент и смотришь на всё что угодно, а с твоим исключением где остановил что выплюнул то и увидел.
Это вы 1С, наверное, не отлаживали. ) Чуть с ума не сошел в его отладчике позавчера ) Или таки сошел...
ЕстьЗадержкаВыполненияЗаданияПолученияИОтправкиПисем() - глобальная функция такая.
ещё про реализацию транслятора была статья с умопотрясающе уместным эпиграфом из ПНС про диван-транслятор ручной работы Бен Бецацеля, мол, старик, а всё сам, всё сам но что-то её сходу не найду
сам базовый язык прост и в том, и в другом случае: это гибрид между фортраном, коболом и немного алголом.
от фортрана взяли формульный калькулятор, от кобола – BCD арифметику про денежные типы – вроде бы и решено давным-давно однако вот в том же C# в типе Decimal всё ещё умудряются делать неправильно, от алгола – блочную структуру и некоторые неочевидные языкововые моменты:
вперво, язык сей без зарезервированного набора ключевых слов. сиё есть не прихоти страдальцев от языкознания, структуральнейших лингвистов (како же наприклад двухэтажные W-грамматики из алгола суть конечные автоматы не только синтаксиса но и семантики, и ежели рукопись того Вейнгаардена почитать – универсальный, занятный формализм наподобие клеточных автоматов, игры жизнь и машины Тьюринговой) – а есть продуманный наперёд ход.
безсомненно, что язык без зарезервированного набора ключевых слов есть более разширяем языковыми средствами, создающими и определяющими новые слова (язык сей не аналитичный а синтетичный должен бысть).
сюминут кажется что фича сия не нужна и токмо усложняет транслятор. на самом же деле (как пишет в статьях «сколько должно быть проходов у транслятора» про мультипроходовый транслятор и далее про мультипроходовый ассемблер) – вовсе не усложняет.
наоборот, вдругорядь язык в котором нет особых выделенных слов – расширяем незримо более чем тот, в котором они жёстко заданы, зафиксированы. потому что создавая новые слова в языковых разширениях мы гарантированно получим неконфликтность эдаких разширений со старым кодом, стандартными словами. при этом если старые слова можно перекрыть, (однако же контролируемым образом) переопределить – можно переделать их базовую реализацию. не только рантайма из стандартной библиотеки, но и вообще все слова
впрочем, для эдаких экзерцисов вовсе нет потребности к метаязыковому разширению в полноценные DSLи и диалекты, говоры.
безсомненно одно: ежели у вас есть язык, на нём потребно уметь выражаться.
невместно же как неправильно употреблять слова и парадигмы мышления, не вполне разумея чего именно пытаетесь сформулировать кодом, нащупав смысл наобум – так и не изпользовать (к вящей того великой пользе) имеющиеся языковые конструкции, и способы их конструирования, новых смыслов, диалектов и говоров – из старых, уже изречённых и написанных кодовъ.
для простой замены языковых слов стандартных на удобные (например, с поддержкою русской речи) – достаточно и базовых макросредств.
сиречь, %REPLACE. однако (право же, в компиляторе PL/1-KT это не вполне заметно как и в оригинальном его прародителе Digital Research PL/1-86 – но вполне себе заметно в IBM-овском) – гораздо более мощные языковые средства существуют в сиём препроцессоре.
препроцессор PL/I в отличие от Сишнаго, умеет сформировать строку любым доступным ему способом – и её подать к конпеляции.
наприклад отседова сей кусок кода с неблагозвучным названием парсе.сру реализует диалект PARSE из скриптоязыка REXX средствами исключительно препроцессора PL/I.
как видно, здесь %declare Parse entry определяет функцию времени конпеляции, вызываемую PL/I препроцессором:
%Parse: /************************************ REXX-statement in PL/I */ procedure (Upper, Value, With) statement returns (char); будучи объявленной statement она вызывается препроцессором
подробный же разбор синтаксису происходит далее в %Find_stmts и %Assign_stmts через Line(..), вызываемых из оной.
вестимо, упрощается и сочетаемость таких вот диалектов.
суть такова: ежели C препроцессор умеет токмо %INCLUDE и %REPLACE, заменяющий слова (из-за свободной структуры синтаксиса этот %REPLACE позволяет выразить бОльшее). но не позволяет почти сконструировать строку произвольным образом (в циклах, сравнениях, сопоставлении съ образцомъ – как и устроен почти любой парсер).
то препроцессор PL/I невозбранно сиё решительно позволяет.
к сожалению превеликому, полноценно такие вот конструкции покамест поддерживаются токмо в IBM-овских VisualAge конпеляторах.
следует, очевидно добавить подобное и в PL/I-КТ вдругорядь.
ибо тулчейн сей судя по статьям и так уже написан изпользуя возможности языкового разширения, изначально архитектурно добавленные туда Гари Килдаллом: начиная с ассемблера RASM, невозбранно попоспешествующего добавлению новых опккодов, ISA и архитектур процессоров – стандартными его макросредствами, способных невозбранно добавлять оные микрокоды, экстракоды) в кодогенераторе, так и реализовать некоторые механизмы удобного языкового разширения как и малых говоров и диалектов (простых навроде put dataотсюдова ) так и более серьёзно устроенных – через DSL-и навроде REXX из ссылки парсе.сру выше – приводя в итоге к совершенствованию самого языка, невозбранно достигнув желаемого – Столпа Величия Духа некоторого мета языкового совершенства.
вестимо, грамотная архитектура тулчейна, спроектированного Гари Кидаллом – как и языковые особенности PL/I, PL/M, RASM этому непременно способствуют, облегчая сиё – в других языковых инструментах нередко труднодостижимое и сложно умопостижимое.
. Фактически же язык был уровня паскаля, позволял строить абстракции уровня паскаля, но при этом требовал изучать намного больше конструкций языка.
в этом языке меньше конструкций, а не больше – чем в каком-нибудь С++.
чтобы программировать например под WinAPI – и этих конструкций достаточно.
однако же, сложность состоит вовсе даже и не в этих базовых конструкциях – а исключительно в объёмности, необозримости, стозевности и лаяй-ности сего API.
что там за конструкции-то такие? обычные формулы фортрановские, структуры коболовские, точные десятичные для денежных типов. ну ещё про приведение типов помнить нужно. далее большое (в отличие от той же сишки) количество встроенных функций.
далее языковой рантайм, напрямую поддерживающий
1)принты: как и get put окромя read write, форматы edit picture-типы (напрямую из фортрана или кобола)
2)исключения ON ERROR – возобновляемые, не отматывающие стек
3)отладчик, монитор
4)если компилятор позволяет, то и более полноценный препроцессор
сопрограммы и задачи в некоторых диалектах
ну и что там из конструкций языка такое сложное? бОльшее количество встроенных функций?
эти вот действительно языковые фичи 1)..5) не такие уж сложные.
системы на Cobol и MUMPS никто не переписывает, а так и продолжают поддерживать. Хотя однократное переписывание обойдется дешевле, чем поддержка старой системы в течении следующих 20 лет.
То есть, PL/I представлял собой сплошные свистелки и перделки, которые радуют детишек, но ничего не дают серьезным дядям.
дооо уж. серьёзные дяди спят и видят эдакую мегафичу – переписывать отлаженный, уже годами работающий, проверенный код.
ну просто в жопе свербит, что ли? есть код, он работает, кушать не просит. есть определённые языки, системы и компиляторы с верной семантикой – в которых он и работает.
теперь ты предлагаешь однократно переписать все эти гомны исторические наслоения. и ты серьёзно думаешь, что это обойдётся дешевле?
разбираться с глюками, почему твоя переписанная семантика отлична от оригинальной, исходной, проверенной годами в соответствующей духу времени среде.
отлаживать и переписывать ещё раз, пока все эти твои глюки однократноголол переписывания полностью не вылезут.
отлаживать и переписывать их ещё раз, когда потребуется их изменять и интегрировать. каждый раз проходить этот геморой.
как-то не выходит однократно же? не так ли?
ну да, серьёзные дяди без этого не могут. обязательно ищут себе
на жопу приключений.
их бы хлебом не корми – а дай всё везде опять заново попереписывать: годами проверенные, отлаженные ынтерпрайз решения.
разбираться с глюками, почему твоя переписанная семантика отлична от оригинальной, исходной, проверенной годами в соответствующей духу времени среде.
отлаживать и переписывать ещё раз, пока все эти твои глюки однократного лол переписывания полностью не вылезут.
отлаживать и переписывать их ещё раз, когда потребуется их изменять и интегрировать. каждый раз проходить этот геморой.
как-то не выходит однократно же? не так ли?
Ога. Главное он не уточнил на что переписывать. А то перепишут на какой-нибудь раст или питон лол, хайп пройдет, раст закопают, какой-нибудь питон устареет при выходе 4-го новопитона, который уже не взлетит (и всех их вместе тоже дружно закопают), и все по-новой.
Как раз на днях читал How Javascript Works, где автор говорит про ожидаемый им «следующий язык», от которого он как раз хотел бы отсутствия ключевых слов, в числе прочего.