LINUX.ORG.RU

Избранные сообщения Vladimir1982

Есть ли учебники по языку Gambas на русском языке?

Форум — Development

Есть ли учебники по языку Gambas на русском языке?

 

Vladimir1982
()

Чо пацаны новый ЯП

Форум — Talks

https://dtf.ru/gamedev/22648-avtor-braid-i-the-witness-planiruet-nachat-beta-...

По словам геймдизайнера Джонатана Блоу, один из главных факторов, сдерживающих развитие игровой индустрии — это распространённость C++, языка программирования, который зародился ещё в 1970-х.

Ждем ответа сишников, растеров и прочих фанатов «тру-яп».

 , , ,

ozz_is_here
()

Доброе слово про раст

Форум — Talks

Я много ругал Раст, по делу и без дела. Но есть в расте нечто, что является его несомненным плюсом.

Так получилось, что я пилю свой «кисий» язык. Название выбрано таким потому что изначально я хотел сделать инструмент для моделирования микросхем вместо анального верилога. Ну чтоб сразу и топологию прикинуть можно было и шины в один тык менять например 2 параллельные на одну double data rate. В общем была такая задача, потом подумалось что с помощью небольших усилий можно из имеющегося супа сварить игру песочницу для симуляции 8битных компов. Прямо с платами, 3д модельками микрух. И назвать я ее решил к155ла3. Собственно язык был назван «к».

Так вот, далее оказалось что подход симулятора микросхем на плате (или блоков в топологии) можно распространить ещё дальше: на симуляцию просто программ. Пришлось сильно редизайнить уже готовый код. Суть в том, что язык программирования К это не язык, а база данных. В процессе проектирования мы рассматриваем программу с нескольких сторон. Ну представьте себе что вы взяли кубик и его рассматриваете с нескольких сторон по очереди.

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

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

При чем же тут Раст, спросите вы? А вот я, хоть и считаю Раст попыткой рукожопов отомстить своим кривым рукам, почитал про этот самый раст. Некоторые концепции мне очень даже понравились. Например вот это impl. У меня та же срань сделана. И matching тоже збс идея. Вы даже не представляете насколько она тащит. Не сама реализация а идея о том, что переменная может быть больше чем просто сама она, а может также содержать например инфу об ошибке.

Например пусть у вас есть переменная Х. Пусть её тип не указан. То есть по факту переменная Х содержит два значения - адрес данных о типе и значение. Пусть Х = 5.4/0.0; давайте в Х добавим возможность посмотреть флаги операции: nan, денормализованное, и т.д. пусть Х=0х80000000+0х80000000. Давайте дадим возможность прочитать carry flag: Х.carry. Пусть Х = 0х80000000*0х80000000. Давайте дадим возможность прочитать старшие 32бита результата. Это лишние поля в большинстве случаев но оптимизация может херить неиспользуемые поля.

Я думаю что Раст это на самом деле хорошее явление. Люди ищут новые пути и решения и это можно только приветствовать. Беда Раста в том, что люди, создающие его, создают ещё один язык. Язык это текстовое представление. А если быть точным - то это представление двадцатого века как и блок схемы.

Это статичное представление: его можно напечатать на бумаге, отсканировать волшебным сканером с нейросеткой и получить обратно свой код. Кисий язык нельзя распечатать на бумаге, его видимое представление зависит от того, что ты сейчас исследуешь. Лишнее отфильтровается. Ну правда, кто лопатил сырцы на 5к+ строк поймет в чем профит.

Расту надо выйти за рамки статичного представления чтоб стать 'убийцей с++". Ему надо... Например включить в себя конечные автоматы на уровне языка, принудительно вычисляемые величины(как в верилоге assign x=...) и поддержку диаграмм. Чтоб автомат был именно что наглядным. Это довольно малая модификация языка но я вам прямо скажу: если такое будет в расте, Раст начнет теснить и то нагибать плюсы

 ,

ckotinko
()

Сравнение ЯП и музыкальных жанров

Форум — Talks

Дежавю упорно твердит мне, что года 4 назад я уже создавал подобный тред. Но не нахожу такого даже в архиве RSS, так что вряд ли даже снесли.

Зачынаю:

  • COBOL — Industrial. Орыгинально, нетленно, беспощадно.
  • Pascal — New Age. Слишком академично и странно, чтобы взлететь, но, тем не менее, как-то взлетело.
  • Delphi — Trance. Попытка намешать в Pascal моднявое ООП. Несмотря на почтенный возраст, всё ещё шевелится, хоть и считается уделом унтерменшей.
  • FORTRAN — Techno. Когда-то было в каждом тапке, сейчас шевелится весьма неохотно, можно сказать, что никак.
  • BASIC — Disco. Смари, как деда под Коммодор отплясывал, ух!
  • Visual Basic — Eurobeat. Нуфф хрюкнул и пошёл переустанавливать Офис в Мюнхене.
  • Algol — Big Beat. Поплясало и полегло, хотя в своё время выглядело многообещающе.
  • CRock. Ценится в основом олдфагами, что не мешает активно набирать новых апологетов. Обросло кучей стандартов.
  • Objective-C — Alt Rock. Think different, так сказать.
  • C++Metal. По незнанию часто путается с роком. Тоже имеет кучу стандартов. Многими считается слишком тяжёлым и упоротым по сравнению с роком.
  • Java — Drum'n'Bass. Моднявая штука из 90-х, эволюционировавшая до неузнаваемости; во многих нишах уходит на второй план, но актуальности не теряет. Характеризуется однообразностью и быстрым темпом из-за многословности.
  • PerlJazz. Побольше импровизируй, каждая программа не должна быть похожа на другую, даже если делает то же самое.
  • PythonDub. Примитивно, уныло, своеобразно. Форма — всё, если басы не по PEP-8 — нещитова.
  • RubyReggae. Любим наркоманами и прочими альтернативно одарёнными. Одно время опопсел (Ruby on Rails), но после опять ушёл в андерграунд.
  • JavaScriptPop. Постоянно всасывает в себя другие популярные жанры ради повышения удобоваримости. Любители других языков не понимают, как это можно слушать, некоторые даже перестают из-за этого выполнять телевизоры в браузере. Но рынок упорно продвигает, а Emscripten позволяет любую музыку превратить в слащавую попсу.
  • PHP — Rap. Претерпел за время существования большие изменения, но суть в целом осталась той же. Неотъемлемый атрибут низших слоёв населения. В своей нише (работа с текстами), тем не менее, весьма крут и практически незаменим.
  • Tcl — Chiptune. Вне культуры игровых сонсолей (Tk) мало кому нужен.
  • Shell — EBM. Дремучая для неподготовленных вещь, принципиально не менялась за десятилетия.
  • Bash — Darkwave. Ибо.
  • Rust — Brostep. По сути, митол со свистоперделками, поражающий неподготовленный моск. Доступен далеко не каждому. Выглядит многообещающе и революционно, но на деле пошумел и не взлетел.
  • APL — IDM. Весьма. Своео6р4зная. М`зыка. Но в сущн0сти, н-283чем не примечат3льная, если закрYть глаза на зв8329коjfkls#$@#$98вые особенНости *анра.
  • Assembler — Classic. Нуфф сказал. Некоторые даже пытаются это сейчас писать, но переносимость между музыкальными инструментами оставляет желать лучшего.
  • Brainfuck — TDPLM.
  • Malbolge — Noise. Многими за музыку не считается, ибо слушать невозможно. Пока не проникнешься и не расширишь сознание матаном.
  • Swift — Vaporwave. Взяли старое и перепели, культурная ценность околонулевая, но хипсторкам нрявицца.
  • ZSH — Retrowave. Непонятно, зачем, но раз запилили — значит, пусть будет.
  • ML — Blues. Подальше от суровых программ, поближе к душевной математике. Пыталось стать попсятиной (R'n'B/Ocaml), но как-то не взлетело.
  • Lisp — Ska. Опередил своё время, в настоящей время в основном считается уделом паствы церкви GNU Footbalcs.
  • Smalltalk — Garage. Ценим своей простотой, хорошо сочетается с другими жанрами, даровал жизнь ряду новых направлений, но сам остался уделом маргиналов.
  • PL/1 — Electronica. Изрядно нашумело, было революционно, но слишком оторвано от реальности и сложно к приготовлению, посему ушло вместе с эпохой.
  • C# — House. Король танцпола, тупой, но при этом разнообразный в плане ответвлений. С чем его только не мешали...
  • Haskell — Chillout. Старательно обходит острые углы и при этом как-то умудряется быть полноценным жанром, хотя применимость остаётся нишевой.
  • ForthHardcore. Тупо, сурово, сидит десятки лет в андерграунде и не вылазит оттуда, на адекватную голову употреблять не рекомендуется. А вот для атсральных астрономов — самое то, часами циферки ногами молотить.
  • Go — Synthpop. Многообещающе, вроде как взлетело, да не взлетело.
  • D — Djent. Кто-то видит в этом смысл и гордится, по факту нужен только ценителям, способным отличить рок от митола и шарящим хотя бы в типовых риффах (написании макросов и шаблонов), иначе растворяется в пучине ненужности.
  • Crystal — Future Funk. Бессмысленная НЁХ и перепевочка.
  • Erlang — Witch House. ФункциАнально, пропитано демонами параллелизации.

Критикуйте, дополняйте, ненужняйте.

 , , ,

bodqhrohro_promo
()