Как стать автором
Обновить

Комментарии 85

<теперь у нас есть 51 стандарт.жпг/>

Плюсую за смелость, и за название языка.

Однажды на олимпиаде я битый час искал ошибку, перепутав l с 1 :)

CodeBlocksовский шрифт что ли?

Вероятность того, что кто-то станет внедрять новый язык минимальна.

А вот если бы вы написали набор рекомендаций и методов работы с существующими языками и библиотеками для людей с вашими особенностями (этакие best practices для людей которые не могут всё охватить) - это было бы здорово.

Тем более что в наше время, на самом деле, к таким людям можно отнести практически всех. Взять хотя бы стандарт C++ - один человек его в принципе не в состоянии охватить. Аналогично с WEB стандартами. Просто большинство этого пока не осознают, а вы оказались на переднем крае и осознали.

НЛО прилетело и опубликовало эту надпись здесь

Главное не пользоваться макросами вообще и не подключать сторонние библиотеки еще.

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

в духе LISP, Tcl или Forth, когда всё описание синтаксиса занимает
один короткий абзац текста. Как правило, такие языки еще и выразительны
до умопомрачения.3

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

Цитата из статьи по Форт с Лурк.

Итого, если в LISP скобка — это базовый эзотерический символ, а в прочих языках соблюдается некий баланс, то в Форте вся эзотерика строится на отсутствии скобок в записи выражений. Мегаследствие: все различия глобальных концептов в программировании определяются числом скобок в языке! А не всякими там ООП, замыканиями и прочими коротящими мозги штуками.

Вот поэтому будущее за Tcl, где типов скобок больше, чем в Лиспе!

Вероятность того, что кто-то станет внедрять новый язык минимальна.
Будем программировать на C++ и Python [или каком-то другом популярном сейчас языке] до скончания веков, что-ли? Попробуйте представить, что будет использоваться в IT-сфере через 50-100 лет, если вы не верите в возможность изменений в ближайшие годы/десятилетия.

Данный проект не направлен на быстрый захват аудитории, поэтому не стоит удивляться его низкой популярности [на момент публикации этого сообщения]. Сначала я намерен тщательнейшим образом проработать основы языка (встроенные типы, функции, модули) и наиболее интересные решения оформить в виде статей (вот одна из них). Кроме того, я непрерывно провожу анализ существующих языков программирования, их возможностей, особенностей и их эволюции/развития, при этом порой удаётся найти очень интересные возможности даже в достаточно старых языках (как например в PL/1) [возможности, которых нет в современных популярных языках].

Современные языки программирования имеют свои сильные стороны, но в то же время практически в каждом из языков есть ошибки проектирования или просто неудачные решения [а те языки, в которых их нет, обладают очень ограниченными возможностями]. К тому же, в современные языки добавляют очень много ненужного функционала [т.к. например современный браузер, современный 3D-движок или современную операционную систему вполне возможно написать на C++98 с использованием буквально нескольких возможностей C++11, а ядро Linux вообще целиком написано и до сих пор пишется на Си (и Rust даже не упоминается в списке языков на GitHub-странице проекта)]. И своей задачей я ставлю продумать и разработать такой язык программирования, который будет практически лишён ошибок проектирования и который будет содержать достаточно функционала [и по возможности минимальное его количество] для того, чтобы оставаться актуальным и практичным в очень долгосрочной перспективе.

Перевод Python->С++ показался интересным, думаю вам стоит развивать это направление. Можно узнать - изучали ли вы аналогичные сторонние решения перевода Python->С++? Как ваше решение в сравнении с ними?

По вопросу нового языка. Язык ценен количеством носителей (ну или писателей в случае разработки). Изучают язык, как правило, по нужде, а не для удовольствия - на чем говорят, за что платят - то и вынуждены изуать, нравится нам или нет. Хороший искусственный язык не обязательно станет востребованным. Вот есть Логлан - логически правильный язык. Будете ли вы его изучать?

изучали ли вы аналогичные сторонние решения перевода Python->С++?

Да, конечно. Вот здесь представлены диаграммы производительности (конкретно Python в C++ транслирует Nuitka и Shed Skin).

Еще оффтоп. Если не секрет, по какой причине возникли проблемы с памятью?

Неизвестно.

а удалось это исправить?

Не совсем. Скорее удалось исправить [моё] отношение к этим проблемам.

Все это сильно похоже на микроинсульт(ы)...

Не увидел ни примеров кода, ни спецификации / документации. Тоже хотел сделать свой язык до знакомства с Rust, который меня пока полностью устраивает

UPD: Еще могу вспомнить подход котлина с .let и прочими - читается прекрасно и помогает структурировать код

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

Поэтому я программирую на С и С++. С# применяю только по необходимости.

А не смотрели в сторону Vlang? Там вроде достаточно чистый синтаксис и есть запрет на использование глобальных переменных.

Разработка нового языка программирования сейчас имеет мало шансов на успех, т. к. трудно создать коммьюнити, трудно создать библиотеки, трудно создать IDE...

Не пробовали написать программу, заменяющую тот тип памяти, что не работает у вас? Это было бы полезно большему кругу людей (не только программистам).

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

Сейчас как раз проще чем когда-либо создать IDE и компилятор - все необходимые инструменты уже есть. Возмите clang и eclipse например. А библиотеки можно использовать сишные - их уже на все случаи жизни написали. Достаточно обеспечить прозрачный интерфейс для их вызова.

У меня есть немного другая проблема. Когда читаю различные статьи и попадается не интересный( но важный) текст то я автоматически его перескакиваю на следующий абзац или дальше. Так что приходится завставлять себя вернуться назад и с усилием вчитываться. Может это просто банальная лень... но раздражает.

... или фоновая многолетняя перегрузка нервной системы и организма.

Или нехватка витаминов типа В12, например. А может и СДВГ. Если это проявляется систематически, лучше идти к врачу.

Впервые такое заметил за собой больше двадцати лет назад, на старших курсах универа.
Несмотря на это, ещё мечтал о научной карьере, на аспирантуру поступил.
«Графа Монте-Кристо из меня не вышло...»

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

Lisp,Common Lisp не рассматривали?
Мне кажется, он более логичен, чем остальные языки.
Синтаксического сахара там почти нет.

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

В сериале каком-то видел, как расклевивают по дому листочки пост-ит с напоминаниями.

Хочу такую штуку в Augmented Reality (чтобы не пугать окружающих, и чтобы легко backup'илось).

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

Да, источником ошибки может быть все что угодно ...

Навеяло. После института, на моей первой работе, до сих пор помню эпизод: при тестах как-то странно не работал поиск в базе данных.

Причиной в итоге оказалось то, что наборщик базы не всегда переключался с латыни на русский на букве "c". Или просто не замечал - как известно, "c" в обоих раскладках находится на одной клавише, заметить ошибку невозможно. Хороший был урок.

/

его странице в Википедии

Ожидаемо страница помечена к удалению. А чего сразу на сайт/репозиторий не сослаться? Кажется это более ожидаемое поведение.

Почему для while-циклов <...>

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

auto it = vec.begin();
for (;it != vec.end(); ++it) {
  if (somecond(it))
    break;
}
// и тут мы используем наш it для чего-нибудь. 

Также много вопросов возникает к switch оператору. Нет примеров многстрочных кейсов, типа

// C++
switch(c) {
  case 'a' : {
    print("aaaaaaaaaa");
    scream = true;
    break;
  }
  case 'b': {
    print("bebebebe");
    sanitazer_scream = true;
    break;
  }
  default: {
    print("everything is quite");
  }
}

У раста в этом плане паттерн матчинг выглядит неплохо (настолько, что даже в С++23/25 может быть завезут аналогичный синтаксис)

match c {
  // для простых кейсов контекс кончается после запятой
  'a' => println!("the first in the kind"),
  'b' => println!("not an omega"),
  // контекс кейса заканчивается фигурной скобкой
  'c' => {
    maybe_omega = true;
    println!("suspicious {}", maybe_omega);
  },
  // можно использовать диапазоны и байндинги к локальным переменным
  x@'d'..'f' =>  println!("some dudes {}",x),
  // паттерн матчинг всегда должен покрывать все варианты
  _ => println!("whatever else"), 
}

Объявление констант через параметры кажется тоже лишнее действие. Почему не взять better defaults и не считать все объявления без V константами?

Не очень понятно как отличать статичные и глобальные переменные.

Что с модулями? Или пока оно работает исключительно с одним файлом?

Ожидаемо страница помечена к удалению.

Аккурат после публикации этой статьи.

А чего сразу на сайт/репозиторий не сослаться?

Верно. Тогда бы и не была помечена к удалению.

Ну прямо буриданов мост.

Аккурат после публикации этой статьи.

Вас смущает наличие редакторов википедии на хабре чи шо?

То, что автор создал/отредактировал статью о своём проекте, не доказывает незначимости проекта.

Как будто оттого, что автор наймёт кого-то написать статью, проект станет значимее.

Значимость обычно проистекает из популярности/распространения языка. Иначе можно смело переносить туда весь esolang.org, добавить статьи про YoptaScript и миллион диалектов того же лиспа. Заодно доки по либам NPM или PyPI добавить.

Поэтому уж лучше оно храниться где-нибудь в Github Arctic Vault - и аудитория подходящая и значимость соответствующая. На вики же оно будет пылиться с парой сотней просмотров мертвым грузом.

Значимость явления напрямую связана со смыслом.

Распространённость придаёт смысл. Люди, вкладывая энергию/внимание, этот смысл находят/создают. Но это не обязательное условие для наличия смысла. Пример: фундаментальная физика, которую более-менее понимают единицы.

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

Не берусь оценивать, достаточно ли обоснований значимости по тем у вас там этим критериям. Я лишь обратил внимание, что написание статьи самим автором не является доказательством недостатка значимости. Как и малая распространённость. Это признаки (статистически чаще так), а не доказательства. Но да, статьи в авторитетных источниках и примеры использования проекта третьими лицами будут в плюс.

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

Также, если редактор википедии, только что пометивший страницу к удалению, пишет здесь

Телега не моя, статья по моём прочтении уже была помечена. Ожидаемо. Мои правки заметно меньше.

Также много вопросов возникает к switch оператору. Нет примеров многострочных кейсов

Самый первый пример на веб-сайте языка содержит двухстрочный кейс: I --nesting_level == 0 ....


Не очень понятно как отличать статичные и глобальные переменные.

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


Что с модулями? Или пока оно работает исключительно с одним файлом?

Есть пример на Rosetta Code.
Т.е. чтобы вызвать функцию модуля необходимо написать:
<имя_модуля>:<имя_функции>(...)

Знакомо, у меня тоже ухудшилась память с возрастом, возможно не так сильно. Лайфхаки: записная книжка на телефоне, и распечатанные куски кода с пометками.

Syntax is the least important aspect of programming language design.

А потом у нас есть такие сайты:
http://fuckingblocksyntax.com
https://fuckingifcaseletsyntax.com

У меня, буквально, распечатка на страницу со второго прижатая монитором сейчас лежит

a.len
len(a)
a.len()

sum(a)
a.sum()

a.map(f)
map(a, f)

Так а почему a.len без скобок, а a.sum с ними? Неконсистентно, как раз придется запоминать.

Обоснование этого решения приводится на форуме:
I think all such functions should be called without parentheses to denote their ultra low cost.

Я говорю о примере в статье - если для len есть вариант без скобок, то для sum и map приводятся только с ними, неконсистентно.

А как map можно записать без скобок?

Как в Perl, например, когда есть правила, в каких случаях можно обходиться без скобок:

'$ perl -E 'say map $_*2, 1..4'                                                                        
2468

Прекрасная штука.

Только как её использовать вместо Obj-C, Swift, Bash и пр., ведь нужна состыковка с используемыми API/Frameworks?

Вместо Bash — запросто.
Можете привести пример Bash-скрипта, который не получается перевести на 11l?
[Можно перевести Bash-скрипт на Python, а затем воспользоваться транспайлером Python → 11l.]

https://github.com/Robotizing/MiceWeb/blob/master/miceweb

Bash используется потому, что он работает везде (кроме Windows).

Можно бы сделать native-версию под Windows на 11l. Как думаете, реально?

Можно бы сделать native-версию под Windows на 11l. Как думаете, реально?

Теоретически да, но в данном случае это скорее нецелесообразно.

Как реализовать на 11l выполнение команд терминала Windows (запуск exe-файлов, с передачей данных от одной команды следующей команде, скажем, echo "1" | ipfs add)?

Как реализовать на 11l выполнение команд терминала Windows (… скажем, echo "1" | ipfs add)?

Вот так:
os:(‘echo "1" | ipfs add’)

Вернёт и код завершения команды, и результат выполнения (stdout, желательно также stderr)? Кажется, понял, выведет в консоль, как system().

Как быть с задачей, когда нужно получить вывод команды в виде массива?

Это эквивалент функции system()/_wsystem().
Сохранение stdout/stderr в строковую переменную в данный момент не поддерживается, т.к. я не знаю хорошего способа сделать это под Windows (непонятно как реализовать поддержку Unicode).

А насколько легко конвертировать этим транспайлером Python-проект https://github.com/zeronet-conservancy/zeronet-conservancy? Там, наверное, завязки на библиотеки Python, которые всё равно непонятно как решать.

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

P.S. Придумал применение: обучение программированию младших школьников (не всех подряд, а те ~5%, кому интересно).

Было бы интересно взглянуть на грамматику языка, потому что составить даже беглое мнение о новом языке по одному лишь FAQ труновато. И вот ещё вопрос. В случае sum(a) как вычисляется область видимости? Ведь если вызов sum(a) это эквивалент a.sum, то символ "sum" должен сперва быть найден в области имён типа/класса объекта "a". Но если "sum" это свободная функция, то придётся делать лишний поиск по таблице имён. Короче говоря, с точки срезния использования это, может, и удобно, но реализация пока под вопросом. Да и ООП flavor пока неясен: в С++ у нас функции-члены, в Java честные методы, в JavaScript - свойства и function(), в Ruby - каноничный message passing c его respond_to. А у вас как?

P.S. Катаури это та самая из Владивостока, которая писала "King's bounty"?

На katauri.com:

1999 г. "Генерал"Разработчик: "NewGame Software". Распространение - Freeware.Стратегическая игра. Игра имела успех среди стратегов, выделяясь из ряда стратегий сильнейшим AI и возможностью турнирной игры.

Неужели одна из немногих игр, где ИИ не для галочки?

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

Что вы имеете в виду под FAQ? Данную статью? Но я ведь привёл ссылку на веб-сайт языка, где есть примеры, документация и ссылки на статьи, чего имхо вполне достаточно для получения представления о данном языке.


Ведь если вызов sum(a) это эквивалент a.sum

Почему вы так решили? В 11l правильно писать только sum(a).


А у вас как?

Также как в C++.


Катаури это та самая из Владивостока, которая писала "King's bounty"?

Да, та самая. :)(:

Каюсь, прочитал первый раз по диагонали. Сейчас перечитал - всё стало понятней.

Имею схожий (может, не столь радикальный) опыт потери памяти.

Я работал над проектом объёмом в 30 тысяч строк кода. Причём особенностью проекта являлась существенная зависимость частей кода друг от друга (то есть это не был набор независимых частей, каждую из которых можно расслабленно прочесть за час и затем работать с ней). Чтобы работать с каким-то местом кода, надо было держать в голове как минимум 10 тысяч других, зависимых строк.

Я аутист, и с кодом вполне справлялся. Бывало, по неделе не заглядывал в код, программируя (или ища ошибку) в голове на основе запомненных наизусть 10-15 тысяч строк кода. Затем в пятницу садился, и всё набирал.

И тут у меня случился небольшой приступ фиксационной амнезии. Буквально часов 8 была полная амнезия, потом ещё сутки-двое частичная.

В общем, через неделю вышел я на работу, сел за компьютер и обнаружил, что больше не могу работать с исходным кодом. И так, и сяк пытаюсь — не вмещаются в голову 10 тысяч строк кода. Опытным путём установил, что теперь мой предел — это около 6-7 тысяч строк кода. Пришлось экстренно (и мучительно) рефакторить. За 2-3 месяца привёл код к состоянию, когда достаточно держать в голове лишь 5 тысяч строк (интересно, что при этом кодовая база выросла с 30 до 35 тысяч строк). Но всё равно, несмотря на рефакторинг, продуктивность упала пропорционально сократившейся памяти. Хотя сейчас понемного восстанавливается.

Далее пара слов про саму амнезию.

Фиксационная амнезия — это неспособность запоминать новую информацию. Очень хорошо показано в фильме Memento Кристофера Нолана. В какой-то момент я проснулся именно так, как просыпался главный герой фильма. С одной крайне важной разницей: на тумбочке рядом с больничной койкой я обнаружил свой смартфон с фотографиями и историей чатов. Это существенно снизило остроту проблемы (если бы у главного героя фильма был смартфон, то и фильм не о чем было бы снимать).

Опыт амнезии был незабываемый! Особенно в начале, когда памяти у меня хватало лишь на 10 секунд. Каждые 10 секунд ощущение, что ты только что проснулся от какого-то сна, который не помнишь, и что вот теперь этот кошмар закончился. И так непрерывно.

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

Кроме того, в состоянии фиксационной амнезии имеется существенный риск «зацикливания». Выяснилось, что в здоровом состоянии моё поведение определялось: 1) текущими ощущениями 2) памятью 3) поставленной целью. В состоянии же амнезии, если цель не поставить, остаются только текущие ощущения. Если они отличаются несильно (например, передо мной сидит всё тот же собеседник), то возникает зацикливание, когда начинаешь говорить собеседнику одну и ту же фразу. Если же поставить цель (например, спуститься по лестнице), то можно спускаться по лестнице хоть минуту (несмотря на 10-секундную память) потому, что цель освежается в памяти с каждой пройденной ступенькой (хотя я могу не помнить, зачем я спускаюсь).

В итоге оставалось лежать в кровати и смотреть в потолок, периодически «находя» на тумбочке свой мобильник.

Есть ещё такая грустная история.

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

И с кофе поаккуратнее, а то его люто пропагандируют.

Какая жуткая история по ссылке. От кофе я отказался.

А в чем связь кофе и истории по ссылке? :-О (я кофеман, если что)

Я никакой связи не подразумевал. Это два ответа на разные части предыдущего комментария.

А откуда у вас воспоминания обо всём этом? Ведь по логике они тоже должны были исчезнуть.

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

Из-за чего у вас это?

Занялся сексом во время жары.

Врачи изначально подозревали инсульт. В уголках памяти от того дня у меня остались скорая помощь, какие-то расспросы врачей, бесконечные МРТ, КТ, катетеры с контрастной жидкостью в мозг, какие-то провода (энцефалограмма?), анализы, наушники (?) и прочее. Ко мне было особое внимание: как сказали врачи, я единственный молодой пациент их неврологического отделения за последнее время. Ничего не нашли. В выписке написали возможный диагноз: «нарушение баланса нейромедиаторов» или как-то так.

В школах в 90-е не зря учили Basic. После него отношение к Pascal и C было неоднозначное.

Для компилятора, конечно, проще, когда расставлены все эти скобки и точки с запятыми. А человеку?

Компилятор Pascal, а тем более C, действительно эффективнее. Кто-то скажет, что Basic это вообще интерпретатор. Да нет, Quick Basic это и интерпретатор (с возможностью менять программу во время выполнения, чего потом так долго не хватало и теперь только вот в Swift появилось) и компилятор (make Executable, запускаем, и скорость выполнения увеличивается в разы). Как бы там ни было, сейчас, когда сильно выросли и вычислительные мощности и наши алгоритмистские навыки, что мешает написать синтаксис без компромиссов, чтобы именно машина помогала человеку? Поэтому я приветствую такие проекты, как 11l.

P.S. В Pascal/C ещё строгая типизация, которая избавляет от ошибок, но это важно на достаточно сложных программах, школьнику трудно оценить по достоинству. И нормальные ассемблерные вставки (а не "хакерские" Peek, Poke, Absolute, которые в Basic).

НЛО прилетело и опубликовало эту надпись здесь

Спасибо, что поделились опытом и обратили внимание на некоторые аспекты языкостроительства.

Но возникает вопрос: а почему не Лисп? Там вообще ничего не нужно помнить. Ощущение, которое я испытал, написав на нём первую программу, сложнее `a + b`, было примерно такое: "Ух, ты! Да у меня процентов 50 рабочей памяти освободилось от особенностей языка под работу с самими алгоритмами!". Перешёл я на Лисп после смеси из Bash и C++. Это было физическое ощущение облегчения. У лиспов, конечно, есть свои недостатки, но это самый лёгкий для мозга язык из испробованных мной.

Если решите попробовать какой-нибудь Лисп (Scheme наиболее компактный из них, используется и в игровой индустрии), хотелось бы узнать о Вашеи опыте.

Неужели в лиспе совсем нет синтаксиса? Те же самые if, def, циклы. Если писать что-то сложное - и классы появятся.

Всё равно ЯП сохраняется в голове подобно человеческому языку, и нет разницы, (if...) или if (...){...}.

Тоже после ковилды в декабре 2020го через пару месяцев резко ухудшилась память.

Поправил курсом приёма МС и курсом Вессел+Цитофлавин на месяц.

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

Пробуйте и все получится!

Не получилось найти документацию по работе с файлами. Понятно, что есть read_bytes, но он же прочитает весь файл, а как читать по кускам?

Интересный способ популяризации технологий это конкурсы. Например, разработчики Колибри ОС провели как минимум два конкурса игр.

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

Публикации

Истории