LINUX.ORG.RU

Zig 0.8

 , ,


2

5

После 7 месяцев работы и 2711 коммитов вышла новая версия Zig: 0.8

Zig это:

  • Современный компилятор С

  • Современный компилятор С++

  • Компилятор языка Zig

  • Сборочная система для C, C++, языка Zig

  • (Планируется) Пакетный менеджер для С, C++, языка Zig

Zig разрабатывается под лицензией MIT: https://github.com/ziglang/zig/blob/master/LICENSE

Язык Zig – это язык общего назначения, который старается быть простым. Нет макросов, скрытых аллокаций, скрытого потока управления.

Небольшая заметка, которая пытается объяснить зачем нужен Zig, когда уже есть C++, D, и Rust: https://ziglang.org/learn/why_zig_rust_d_cpp/

Даже если вам не интересен язык Zig, возможно вам будет интересен Zig как кросскомпилятор С или С++.

#include <iostream>
int main() {
    std::cout << "Hello World!\n";
    return 0;
}
$ zig c++ -o hello hello.cpp -target riscv64-linux
$ qemu-riscv64 ./hello
Hello World!

Ещё про использование zig как кросскомпилятора: https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html

В новой версии:

  1. Обновление LLVM до LLVM 12.

  2. Поддержка arm64 macOS (aka the Apple Silicon) и также поддержка кросскомпиляции C, C++, и Zig в arm64 и x86_64 macOS.

  3. Zig также разрушает миф, что вам нужен Mac и Xcode для компиляции кода для Mac OS. Заголовочные С файлы Apple выложены под Apple Public Source License которая разрешительная.

Так что вы можете собирать бинарники для Apple из-под Linux/Windows/FreeBSD без XCode:

#include <iostream>

int main() {
   std::cout << "Hello World!\n";
}
$ zig c++ main.cpp -o test -target x86_64-macos
$ file test
test: Mach-O 64-bit x86_64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE>

Подробнее: https://ziglang.org/download/0.8.0/release-notes.html#macOS-Support

и

https://github.com/ziglang/fetch-them-macos-headers

  1. Добавлена поддержка WASI libc

  2. Начальная поддержка Haiku

  3. Изменения в языке: https://ziglang.org/download/0.8.0/release-notes.html#Language-Changes

  4. Изменения в стандартной библиотеке: https://ziglang.org/download/0.8.0/release-notes.html#Standard-Library

  5. Zig поддерживает Position Independent Executables, даже когда компилируются статические бинарники

  6. Изменения в сборочной системе: https://ziglang.org/download/0.8.0/release-notes.html#Zig-Build-System

  7. Обновление musl до 1.2.2, mingw-w64 до 9.0.0, возможность нацеливания glibc 2.33

Полный список изменений: https://ziglang.org/download/0.8.0/release-notes.html

>>> Официальный сайт

★★★★★

Проверено: Satori ()
Последнее исправление: xaizek (всего исправлений: 6)
Ответ на: комментарий от aist1

Оторвись ты от своей 1С. Твой API потянет задачу сделать поиск по содержимому картинок?

Все вы меня победили.
Объяснял, объяснял, объяснял, …
Просьба закончить диалог на эту тему.

PS: Много раз вам в предыдущих постах все объяснил же …

Потянет, если разработаю необходимые для задачи объекты и код.

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

если разработаю необходимые для задачи объекты и код

Очень сильное допущение, скажу я тебе.

Вот я об этом и говорю. У тебя уже должна быть решаемая задача. Для которой «код» или уже есть, или может быть разработан в рамках имеющихся бюджетов. Всё, о чем ты пока что тут говоришь — это 1С и его типичные сценарии применения. А вот, чтобы выйти за эти сценарии, тебе придется хотя бы выйти за рамки того, что ты называешь объектом.

Попытка вывести тебя за эти рамки приводит к «Объяснял, объяснял, объяснял, … Просьба закончить диалог на эту тему.»

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

Очень сильное допущение, скажу я тебе.

Это уже ни как не обсуждение …
Ранее вы задавали конкретные вопросы на которые отвечал.

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

Вполне конкретный вопрос. Как ты собрался представлять в рамках своей списковой модели данных (массивы ссылок на другие массивы) концепции, не поддающиеся объектной декомпозиции. Их вокруг нас полным-полно.

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

@aist1 посмотрел ваш проект https://bitbucket.org/vsmirnov/memoria/wiki/Home

Скорее всего ваши суждения исходят из функциональности вашего проекта.

У меня проект - а-ля OLE.
Разница лишь в том, что он много более функциональней.

У Microsoft вся архитектура приблизительно такая: Variable, idl + код.

У меня Object + метаданные + код /в т.ч. динамический код/.

Object может быть любой сложности.

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

У меня проект - а-ля OLE. Разница лишь в том, что он много более функциональней.

И все это можно использовать в run-time.
У Microsoft требуется компиляция, …
Вообщем общее с Microsoft лишь где-то название подсистемы - OLE.
Остальное все существенно разнится.

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

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

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

ибо имеется куча програм на Qt, которые более богаты функциональностью и более удобны в сравнении с их GTK-аналогами

примеры?

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

А если я отвечу, что всё плохо, это будет говорить о всратости С++

или о всратости Раста

о всратости Qt

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow
  1. Konsole (Yakuake) vs. GNOME Terminal
  2. Dolphin vs. Nautilus
  3. Okular vs. Evince
  4. Kate (KWrite) vs. Gedit
  5. VirtualBox vs. GNOME Boxes
  6. Krita vs. GIMP
  7. Qt Creator vs. GNOME Builder
  8. qBittorent vs. Transmission (GTK)

etc.

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

VirtualBox vs. GNOME Boxes

Совсем разные приложения. Virtualbox умеет в libvirt? Или в VNC? SPICE?

Krita vs. GIMP

qBittorent vs. Transmission (GTK)

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

Всё остальное - это не gtk vs qt, это gnome vs kde. И все аргументы из спора между этими двумя окружениями применимы и к спору между отдельными приложениями. Конкретно - приложения GNOME может и имеют меньше возможностей, но то что они умеют - делают лучше, чем приложения KDE. Так что тут ещё неизвестно что лучше. Ну и да, почти по каждому пункту можно подобрать приложение на GTK сравнимое или превосходящее приложение на Qt.

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

не поддающиеся объектной декомпозиции. Их вокруг нас полным-полно.

Можно хоть один пример?

P.S. Число или строка тоже пример объекта

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

Можно хоть один пример?

Можно два.

Первый пример будет очень сложным, если ты не в теме. И еще более сложным, если в теме (тут есть игра слов).

Как во фразе «я вижу красный цвет» смоделировать «вижу», т.е. наблюдателя в виде объекта. Не спеши отвечать.

Второй пример может выглядеть проще и конкретнее, но он не проще первого. Как во фразе «Вася любит свою страну» представить в виде объекта «любит»?.

В обоих случая мы имеем дело с т.н. феноменальным сознанием, очень трудно поддающимся деконструкции. Число Pi очень хорошо поддается деконструкции, так как есть короткий алгоритм, его попрождающий. А вот, например, математически случайное число деконструкции не поддастся, так как для него такого алгоритма не существует (тут по определению). Биты математически случайного числа можно только переписать в виде строки — и всё.

Проблема с феноменальным материалом (переживаниями) в том, что он очень богат и разнообразен (смотрим на искусство и культуру), но его ечень трудно впихнуть в какой-то порождающий алгоритм, который при этом был бы понимаем и интерпретируем человеком. Их (переживания) можно только перечислить «как есть». Что быстро приведет к комбинаторному взрыву размера описания. Который мы сейчас и видим на примере различных нейронных сетей, которые «толстеют» по экспоненте (пока еще могут).

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

В общем, с «объектными БД» даже думать не стоит соваться в ИИ. Они там уже были, и они там не шмогли.

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

Если говорить в более ООП-шной терминологии, то все дело в сложности поведения объекта. Какое у этого объекта количество состояний и как эти состояния можно «сжать» в автомат или машину Тьюринга. Для некоторых существительных такое сжатие найти легко. А вот по теореме о несжимаемости строк, большинство объектов реального мира сложны в колмогоровском смысле, т.е. для них не существует компактных описаний. Мы о них можем легко говорить, потому что у нас в голове охренельярды ячеек памяти. И мы легко друг-друга понимаем, потому что модели близкие. А вот вытащить эту модель из головы и поместить в машину будет нетривиальной задачей.

По этой же причине не существует «идеального» языка программирования, на котором все программы будут просты и понятны. Объекты реального мира сложны (длинные несжимаемые строки), и они будут сложны на любом языке программирования. Пытаться найти такой иделаьный язык — пустая трата времени.

Поэтому я, например, улучшаю используемость С++ путем улучшения тулинга — перекладываения описательной сложности с человека на машину. Именно это, например, сделало Java тем, что она есть.

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

Как во фразе «я вижу красный цвет» смоделировать «вижу», т.е. наблюдателя в виде объекта. Не спеши отвечать.

Наблюдатель «я» – объект класса «человек». «вижу» – объект событие.

очень трудно поддающимся деконструкции. … ечень трудно впихнуть в какой-то порождающий алгоритм

Зачем объекту порождающий алгоритм и деконструкция? Для объекта достаточно списка возможных с ним действий. А сам объект в ООП — всего лишь денотат для чего-либо.

Нейросети к ООП тоже перпендикулярны, или даже, скорее, противоположны. В ООП/фреймах/экспертных системах всегда есть набор критериев/правил и любое решение объяснимо. В нейросетях решение, как правило, объяснить невозможно (ни одна нейросеть, успешно отличающая людей от котиков на фото, не сможет сформулировать ни одной черты, по которым она это делает).

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

По этой же причине не существует «идеального» языка программирования, на котором все программы будут просты и понятны.

Лисп. Для кого-то питон или бейсик.

Объекты реального мира сложны (длинные несжимаемые строки), и они будут сложны на любом языке программирования.

Размер объекта не обязательно делает его непонятным. Да и сложность как и красота почти всегда в глазах смотрящего.

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

Да и сложность как и красота почти всегда в глазах смотрящего.

Вот эта сложность имелась в виду. Она не зависит от наблюдателя.

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

Я тебя просил не торопиться отвечать.

Для фиксации факта видения и вывода на основании этого факта какой-то информации философская трактовка квалиа несущественна. К тому же возможно его не существует. Нам неважно чем является «вижу», нам важно лишь какие действия к нему мы можем применить и какие результаты получить.

Вот эта сложность имелась в виду. Она не зависит от наблюдателя.

Зависит. По Вашей же ссылке указано, что объективная (не зависимая от наблюдателя) Колмогоровская сложность невычислима. При этом для конкретного программиста для любой строки всегда существует наименьшая программа, которую он смог придумать для вывода этой строки.

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

Хорошие, годные ворзражения. Принимаю.

По квалиа. Речь идет о феноменальном сознании, трудность проблемы которого состоит в том, что у него очень разнообразное поведение, относительно которого вообще стоит вопрос о его вычислимости. Даже если оно вычислимо, компактная форма (когнитивная архитектура) неизвестна, и нам приходится довольствоваться лишь языковыми аппроксимациями феноменальных отчетов, которые не отличаются компактностью (плохо сжимаемые строки). Объекты объектно-ориентированных языков программирования, в свою очередь, — это хорошо сжимаемые строки. Обычно это просто автоматы с небольшим количеством состояний. Или автоматы с (небольшой) памятью. Плохо сжимаемым строкам у нас соответствуют структуры данных, которые уже имеют не-объектную семантику, т.е. мы не говорим в узком смысле об их поведении, состоянии и идентичности.

И вот между хорошо сжимаемыми строками и плохо сжимаемыми строками есть концептуальная пропасть. Такие математические объекты промужуточного класса сложности в обычных языках программирования никак не представлены. На столько, что 99.9% прочитавших это вообще не поймут, о чем это я сейчас тут говорю. Слепая зона.

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

Возвращаясь к твоему примеру выше:

Наблюдатель «я» – объект класса «человек». «вижу» – объект событие.

Это, конечно, можно назвать объектной декомпозицией феномнальной расстановки. Именно пытаются работать когнитивные архитектуры. Но, если говорить в теоретико-информационном ключе, в рамках классической объектной парадигмы произойдет потеря существенной части поведения таких объектов. А попытка всё же впихнуть это поведение в обычные объекты приведет к быстрому их «распуханию» до физически нереализуемых размеров.

По описательной сложности.

Зависит. По Вашей же ссылке указано, что объективная (не зависимая от наблюдателя) Колмогоровская сложность невычислима. При этом для конкретного программиста для любой строки всегда существует наименьшая программа, которую он смог придумать для вывода этой строки.

К.С. невычислима, но она аппроксимируема сверху, причем проблема остановки тут на практике не мешает. Поэтому-то мы и можем программировать.

Важный момент в том, что К.С. не может быть существенно уменьшена никакими формальными преобразованиями, и изначально сложные строки будут сложны в любой системе описания, что я и имел в виду под независимостью от наблюдателя.

С точки зрения психологии, «субъективно сложные» объекты могут быть как просты, так и сложны в колмогоровском смысле. Тогда как сложные в колмогоровском смысле объекты будут субъективно сложны всегда.

Описательная сложность неуничтожима, и всегда будет прорываться в виде того или иного «бардака». Всё, что мы можем тут сделать, это перевести её в «данные» (код как данные — привет, Лисп!) и работать с нею уже как с данными, т.е. как с плохо сжимаемыми строками (дата-платформы и всё такое).

Вот это я называю дата-ориентированным дизайном языка.

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

Объекты объектно-ориентированных языков программирования, в свою очередь, — это хорошо сжимаемые строки. Обычно это просто автоматы с небольшим количеством состояний.

Игровой мир какой-нибудь MMORPG с точки зрения ООП объект GameWorld. Любое приложение на Qt — объект QApplication. Они отнюдь не хорошо сжимаемые.

А попытка всё же впихнуть это поведение в обычные объекты приведет к быстрому их «распуханию» до физически нереализуемых размеров.

Практически всё, что можно описать как-либо, можно описать в терминах объектов. Накладные расходы тем меньше, чем сложнее объекты. Поэтому если что-то физически неописуемо через объекты, то это что-то вообще неописуемо.

К.С. невычислима, но она аппроксимируема сверху

Сверху - да. Функция «вывести строку как есть». А снизу зависит от наблюдателя.

Важный момент в том, что К.С. не может быть существенно уменьшена никакими формальными преобразованиями, и изначально сложные строки будут сложны в любой системе описания, что я и имел в виду под независимостью от наблюдателя.

Для любой изначально сложной строки можно сделать язык в котором именно эта строка кодируется одним символом.

Тогда как сложные в колмогоровском смысле объекты будут субъективно сложны всегда.

Контрпример: объект «Бог». Или объект «наука». Человек их воспринимает субъективно простыми несмотря на огромную колмогоровскую сложность.

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

https://en.wikipedia.org/wiki/Qualia

Мистический философский бред, не имеющий отношение к науке и реальности. Основывается на философской концепции идеализма.

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

Они отнюдь не хорошо сжимаемые.

Годное возражение. Только надо смотреть не на содержимое их полей, которе уже есть продукт сжатия, т.е. генеративная модель, а на множество конкретных семплов, которые эта модель способна порождать. Что и будет являться поведением этих объектов.

Другой пример. Программа (пусть будет на С) быстрой сортировки — сжатая кодировка отображения неотсортированных входов на отсортированные. Если эти входы просто перечислять в виде пар (X, Y), то памяти они будут занимать в бесконечно раз больше. Потому что размер программы сортировки О(1) от размера сортируемых данных. Ввиду наличия алгоритмов сортировки, сортирующее отображение F: Y=F(X) — хорошо сжимаемая строка.

Так и с объектами ООЯП. Их поля данных и их методы — это уже сжатая форма поведения, существенно сжать которую далее будет проблематично (трудозатраты начнут расти по экспоненте).

Практически всё, что можно описать как-либо, можно описать в терминах объектов.

В теории — да. Любое вычислимое число можно определить как объект. Вопрос же в том, как представить поведение объекта в виде достаточно компактного набора «состояние + код». Тут уже от возможностей нашего мозга зависит. Одни строки мы «сжимаем» более-менее хорошо, другие — никак. И процесс этот очень энергохатратный, чисто физически.

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

Для любой изначально сложной строки можно сделать язык в котором именно эта строка кодируется одним символом.

Этот аргумент не работает, так как такой язык сможет компактно представить только ограниченное количество строк. Да, ты можешь сделать такое количество строк переменным. Ну и получишь язык с базой данных и библиотеками. Т.е. вся сложность «перетечет» в них.

Контрпример: объект «Бог». Или объект «наука». Человек их воспринимает субъективно простыми несмотря на огромную колмогоровскую сложность.

Эта простота — мнимая. Попроси человека объяснить, что такое «Бог» или что такое «Любовь» (я не просто так привел выше пример с Васей) — и любуйся на растущие горы исписанных на эту тему книг. Вот она — сложность феноменальных отчетов.

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

Нет, это просто спец-термин для обозначения трудности объяснения наблюдателя через наблюдаемое (каузальные схемы). Как научить машину видеть, т.е. иметь бытие (beingness) так, как его имеет человек. То же самое — сведение семантики к синтаксису. Когда ты увидишь где-то выражение «операционная семантика языка/машины», ты уже одной нагой на этом поле.

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

Всё, что связано с отношением субъекта к объекту (наблюдателя к наблюдаемому) очень трудно представить алгоритмически без потери существенных элементов проявления таких отношений. А, поскольку наблюдатель — сам проявляет объектные свойства и является элементом онтологии, то такие онтологии (включающие самого наблюдателя) могут быть только в голове человека. Машина в них не может (не в принципе, а потому что нам её этому очень трудно научить).

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

У меня есть любимый философский трюк. Я задаю программистам один вопрос: «Как ты пишешь программы?». Самые умные и проницательные отвечают что-то типа: «Я не знаю, это — интуиция.» Интуиция — это скрытые психические процессы.

Те, кто не так продвинут, начинают что-то рассказывать про методологии. Про всякие ООП, классы, как вот это вот объектом представить и т.п. Но это всё на самом деле не про то, как в голове рождается программа. Это просто рационализации на эту тему и не более того. Нет в ООП ничего про то, как именно пишется программа.

Ну а кто еще совсем юн умом, вообще не понимают, о чем я спрашиваю. Рефлексия у них еще не развита для этого.

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

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

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

Верно. И именно эти строки в этом языке станут простыми. Например, в PERL ассоциативные массивы и регулярные выражения являются простыми объектами, а указатели и структуры – сложными (с ними сложнее работать).

Поэтому нет никакой объективной сложности. Она зависит как минимум от языка.

Огромный размер программы, получающийся при этом — это и есть манифестация присущей сложности реальных объектов.

??? «Программа» для многослойного перцептрона – всего лишь присвоение массива чисел в коэффициенты нейронов. Она тривиальна. Сложность в угадывании нужных чисел.

Эта простота — мнимая.

То есть субъективная.

Попроси человека объяснить, что такое «Бог»

«Всемогущий создатель Вселенной.» Достаточно короткое описание.

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

Нет, это просто спец-термин для обозначения трудности объяснения наблюдателя через наблюдаемое (каузальные схемы).

Сторонники этого термина наделяют его сверхъестественными свойствами не сводимыми к законам физики. Само определение квалиа содержит отсылку к сверхъестественному. Так что разумно всех сторонников квалиа записывать в лженаучные фрики. Всякие их построения вроде философского зомби просто абсурдны: либо зомби и обычный человек полностью эквивалентны, либо в них есть физически наблюдаемые различия в структуре.

иметь бытие (beingness) так, как его имеет человек

Этого бытия и у человека нет. Есть модель окружающего мира в мозге, включающая самого владельца мозга. Проблема в том, что для компьютеров такие семантические модели окружающего мира делать пока не научились, но это не принципиальная невозможность, а недоработанность алгоритмов.

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

«Программа» для многослойного перцептрона – всего лишь присвоение массива чисел в коэффициенты нейронов. Она тривиальна.

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

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

Я задаю программистам один вопрос: «Как ты пишешь программы?».

Написание программы — всего лишь перевод текста задачи с русского языка на язык программирования. И ничем принципиально не отличается от перевода на английский, например.

Нет в ООП ничего про то, как именно пишется программа.

Разумеется. ООП — всего лишь набор терминов языка программирования, а не правила перевода с человеческого.

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

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

Вообще-то любой AI для компьютерной игры, в которой управляешь персонажем, примерно так и устроен. Разница только в сложности модели.

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

Вообще-то любой AI для компьютерной игры, в которой управляешь персонажем, примерно так и устроен.

В AI игры есть значительная халтура: боты имеют прямой доступ к объектам движка игры и им не надо распознавать объекты по пикселям с камеры.

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

В AI игры есть значительная халтура

Я про нормальные внешние, а не встроенные. Типа AlphaStar и подобные.

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

Для компьютерных игр распознавание проще чем для реального мира.

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

Типа AlphaStar и подобные.

AlphaStar’s behaviour is generated by a deep neural network that receives input data from the raw game interface (a list of units and their properties)

Халтура. ИИ должен видеть только растровую картинку на экране и нажимать на кнопки клавиатуры/геймпада.

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

нажимать на кнопки клавиатуры/геймпада

… и обязательно манипулятором не менее 16 степеней свободы и находить кнопки клавиатуры/геймпада обязательно камерой.

А если наоборот: человеческий игрок пусть получает данные в виде такого же пакета данных, который передаётся AI (a list of units and their properties), а действия вводит таким же бинарным пакетом, как тот, который отправляет AI? Чтобы честно было.

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

… и обязательно манипулятором не менее 16 степеней свободы и находить кнопки клавиатуры/геймпада обязательно камерой.

Для настоящего ИИ это не будет проблемой. Смешно говорить про «ИИ», который даже кнопки найти не может.

Вот где основная проблема ИИ, а не во всяких квалиа и семантической модели мира.

человеческий игрок пусть получает данные в виде такого же пакета данных, который передаётся AI

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

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

Реальный мир никаких пакетов не передаёт, он передаёт поток фотонов и прочие физические явления.

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

И в реальном мире ИИ совсем не обязательно ограничиваться потоком фотонов: робомобиль Яндекса «видит» в темноте, одновременно во всех направлениях, верно видит расстояние до объектов и не имеет мёртвых зон в отличие от биологического водителя.

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

Вот мы общаемся при помощи передачи пакетов, но преобразованных для наших несовершенных органов чувств.

Не совсем. При разговоре помимо букв важна интонация и тайминги произношения. Конечно это тоже можно в пакетах закодировать, но только букв будет недостаточно.

И в реальном мире ИИ совсем не обязательно ограничиваться потоком фотонов

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

верно видит расстояние до объектов

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

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

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

Я имею в виду, прямо сейчас общаемся. Безо всяких интонаций и таймингов. Через клавиатуру/электронные импульсы/IP/TCP/HTTP/HTML/…/монитор/глаза.

Дальнометры на автомобилях с автопилотом тоже через фотоны работают,

Бывает и радар и ультразвук.

Листик от дерева/полиэтиленовый пакет пролетел и уже неверно видит.

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

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

Я задаю программистам один вопрос: «Как ты пишешь программы?». Самые умные и проницательные отвечают что-то типа: «Я не знаю, это — интуиция.» Интуиция — это скрытые психические процессы.

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

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

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

Пример нерешаемых задач я как раз и привел выше. А так же разъяснил, почему они по факту нерешаемые.

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

Она зависит как минимум от языка.

Колмогоровская сложность зависит от языка не более, чем на константу. Величина этой констранты — длина интерпретатора языка А, написанная на языке Б. Размер интерпретатора для универсальных языков программирования — O(1).

??? «Программа» для многослойного перцептрона – всего лишь присвоение массива чисел в коэффициенты нейронов. Она тривиальна. Сложность в угадывании нужных чисел.

Извиняюсь. Имелось в виду, закодировать многомерный (>>3) линейный классификатор вручную, if-ами. Так, как мы пишем свой код. Тема в том, что мы относительно легко пишем «узкий и дилнный» линейный код или код с небольшим количесвом if-ов. Чем «шире» if-ы, тем сложнее ная такой код писать. Для некоторых случаев (формальные грамматики для контестно-свободных и регуоярных языков) мы можем использовать DSL-и, но для тех же контестно-зависимых языков иэто уже не работает (exptime).

Т.е. есди ты пишешь программу и начинаешь видеть, что твои if-ы начинают расползаться в ширину, то ты имеешь дело с манифестацией присущей описательной сложностью реальных объектов.

«Всемогущий создатель Вселенной.» Достаточно короткое описание.

Это не описание, а символ. Описанием будет значение этого символа.

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

И вот мне нужно было передать дела нашему самому умному тимлиду (без иронии). «Всё очень просто» превратилось в три недели рассказов и огромный объем информации, которую из меня наш тимлид достал. А всего-то одно слово, sendmail (или что я юзал, уже не помню).

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

Давай так, чтобы не скатиться в ситуацию strawman argument, я просто поясню свою позицию по этим вопросам.

Термином qualia пользуются как дуалисты всех мастей, так и хардкорные физикалисты. Кто им не пользуется — радикальные элиминативисты. Я не уверен, относишь ли ты себя к последния явно и сознательно, но ты звучишь, как они. Это не проблема, а просто обозначение конкретной позиции в дискуссии о феноменальном сознании.

Дуалисты считают, что феноменальное сознание, представленное в переживаниях в виде qualia, имеет внефизическую природу (душа), тогда как физикалисты утверждают, что очень даже физическую. Ни те, ни те, правда, не могут пока указать на конкретный субстрат психического, и именно в этом и состоит полемика вокруг этого термина.

Есть «гипотеза Сильного ИИ», состоящая в том, qualia можно запрограммировать, и машина будет переживать beingness точно так же, как человек (хотя и в другой форме). Элиминативисты гипотезу Сильного ИИ отвергают вообще и фокусируются на «слабом ИИ». «Если ты плаваешь, как утка, летаешь, как утра и крякаешь, как утка, то ты — утка». Чисто поведенческий аспект интеллекта, как черного ящика.

Я же являюсь сторонником истинности гипотезы Сильного ИИ. Поэтому я проблематику феноменального сознания не элиминирую.

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

Написание программы — всего лишь перевод текста задачи с русского языка на язык программирования. И ничем принципиально не отличается от перевода на английский, например.

А что делать, когда исходного текста-то и нет. А есть переживание. «Вася очень любит свою страну» — эдесь есть определенный потенциал действия (поведения), который понимается человеком, но не вербализуется. Если Вася попробует описать формальным языком (в операционной семантике), что это значит — любить свою страну, его ждет фиаско. В лучшем случае он опишет только крошечную часть юзкейсов.

Вот эта самая крошечная часть юзкейсов — и есть те программы, которые мы пишем. Прикол в том, что мы даже не осознаем, что это всего лишь крошечная часть юзкейсов (эффект Даннинга-Крюгера).

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

Я же являюсь сторонником истинности гипотезы Сильного ИИ.

Феноменальное сознание - это епархия философов. Никаких практических последствий связанных с ИИ в обозримом будущем эта дискуссия иметь не будет.

С инженерной точки зрения детектирование наличия «переживаний beingness» и qualia сведётся к анализу статистических различий вербальных отчётов об этих явлениях у ИИ и людей и выяснении их связи с внутренними процессами.

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

Феноменальное сознание - это епархия философов. Никаких практических последствий связанных с ИИ в обозримом будущем эта дискуссия иметь не будет.

Совсем нет. Вот когда тебе нуджно решить задачу, этому предшествует анализ. Результатом анализа является понимание проблемы. Так вот это понимание — это переживание, которе содержит как «феноменальную» компоненту, так и «доступную». Выразить языком можно только последнюю. Это не проблема, когда речь идет о реактивных объектах реального мира, у которых низкая сложность поведения. Проблема возникает, когда феноменальную компоненту всё же приходится так или иначе программировать.

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

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

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

Дополню. Вот я выше уже описал чисто практический трюк с предоставлением любителям программировать — возможность программировать нерешаемые задачи. Эвристика в том, чтобы уметь распознавать феноменальную компоненту переживания, которая может более-менее нормально аппроксимироваться, и подбирать под неё правильные инструменты решения: это можно вручную запрограммировать, тут нужен генератор парсеров, тут уже нужен простенький ML и он справится, а вот сюда лучше не соваться без огромного R&D бюджета.

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

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

Так вот это понимание — это переживание, которе содержит как «феноменальную» компоненту, так и «доступную»

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

Вопросы начнут возникать тогда, когда нейросети превысят эффективный размер мозга

Если. Если имеющиеся и появившиеся подходы окажутся неспособны воспроизвести функциональность человеческого мозга, то возникнет вопрос чего в них не хватает. А уже потом, может быть, когда-нибудь, выяснится что это что-то - манифестация субъективных феноменов. Или не выяснится.

red75prim ★★★
()
Последнее исправление: red75prim (всего исправлений: 2)
Ответ на: комментарий от aist1

возможность программировать нерешаемые задачи

Нерешаемые задачи не решаются. Возможность переформулировать нерешаемые задачи так, чтобы сделать их решаемыми, но не сильно потерять в эффективности, точности и т.п.

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