случайно наткнулся на очень интересный проект нового языка программирования... думаю, что он окажется интересным адептам сишечки и ассемблера... из интересных фич языка... мануальное управление памятью (и это в эпоху заселья всяческих сборщиков мусора и борроу чекеров)... хороший три шейкер (хелой уорлд под венду собирается в 4кб для x86 и 5кб для x64, могло бы быть еще меньше, но линкер по неведомой причине генерит таблицу экспорта)... кросс компиляция из любой системы в любую (хотя с венды скомпилить под x86 линукс и макос у меня не получилось, судя по всему баг в компиле, но x64 под линукс и макос завелись)... простая обработка ошибок, контролируемая компилятором (без эксепшенов и всякой подобной чуши)... рефлексия и исполнение функций на этапе компиляции... автоматический импорт деклараций из сишных .h файлов (насколько я понимаю, с плюсами этот номер не пройдет, но все же) и в обратную сторону может генерить .h для использования в сишных/плючовых проектов... один существенный минус - проект очень молодой, до версии 1.0 еще долго лопатить... сайт языка: https://ziglang.org/ документация: https://ziglang.org/documentation/master/ хайлайт синтакса: https://marketplace.visualstudio.com/items?itemName=tiehuis.zig теперь запилим хеллоу уордл: Код (Text): const std = @import("std"); pub fn main() !void { const stdout_file = try std.io.getStdOut(); try stdout_file.write("Hello World!\n"); } и скомпилим его: Код (Text): zig build-exe test.zig --release-small --single-threaded --strip --target-os windows --target-arch i386 --target-environ msvc --output test-win32.exe zig build-exe test.zig --release-small --single-threaded --strip --target-os windows --target-arch x86_64 --target-environ msvc --output test-win64.exe --- Сообщение объединено, 7 фев 2019 --- единственная публичная презентация, где автор говорит о философии языка: статья и обсуждение на хабре: https://habr.com/en/post/435872/
ничего гениальнее с++ и ооп еще не придумано, да и не будет придумано вообще, хоть там квантовый проц - хоть какой.
C++ не для всех задач хорош, ООП само по себе ограничено. В действительно удобных языках есть элементы ФП типа стримов в Java 8, которые предсталяют собой декларативную цепочку вычислений (монаду). ФП-фичи позволяют писать меньше дрисни. При этом чистое ФП тоже не нужно. При попытке писать на ФП эффективный продакшен код получается дрисня.
все дрова - это фп + чем фп в реале отличается от ооп??? если яп поддерживает указатели на варики и функи, то вот тебе и ооп - никто в той же сишечке не мешает впендюривать пойнтеры на функи в структуры. короче, фп есмь базовая штука.
ФП предполагает отсутствие сайд-эффектов у функций, а это значит, что ты даже в файл записать без монады не можешь.
можно заниматься всякой эквилибристикой слов, но в сущности процедура и функция есмь одно и тоже.. https://en.wikipedia.org/wiki/Monad_(functional_programming) и вот Вам обоим Вопрос: имеет ли всякая процедура аналогичную функцию? Вопрос №2: обычно мы контролируем тип переменной, её значение и статус операции - вот аким дикобразом можно эту цепочку полноценно заменить, не меняя архитектуру компа?
На rosettacode немного решённых задач на языке Zig (114) https://rosettacode.org/wiki/Category:Zig --- Сообщение объединено, 12 июл 2023 --- Так реализовано решение по токенизации строки использующей разделить в примере "," const std = @import("std"); pub fn main() void { const string = "Hello,How,Are,You,Today"; var tokens = std.mem.split(u8, string, ","); std.debug.print("{s}", .{tokens.next().?}); while (tokens.next()) |token| { std.debug.print(".{s}", .{token}); } } https://rosettacode.org/wiki/Tokenize_a_string#Zig --- Сообщение объединено, 12 июл 2023 --- А, так в варианте разных Бейсиков: https://rosettacode.org/wiki/Tokenize_a_string#BASIC
Можно заниматься всяческой эквилибристикой слов, но в сущности огурец и апельсин есмь одно и тоже, тк обычно заходят в одно и тоже человеческое отверстие и выходят из другого... обычно... если только это не "живой огурец, вот он" (с)...
Интересно, что Zig язык представлен в списке языков для решения задач и в проекте code.golf https://code.golf/rankings/holes/all/zig/bytes (в этом проекте можно попробовать свои силы и в решении представленных задач на Ассемблере ...) P.S. Форт (gForth) язык на сайте был добавлен дней 10-ть назад и уже он пошёл в составление решений и на нём. (попробовал немного задач тоже решить на Форт