|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 36046. Ответов 523
Метки нет (Все метки)
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен. 2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка. 3. Списки - не только возврат списка, но и переменные списочных типов. 4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
А вот несколько будущих возможностей: 1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором " :", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест? 1. Работа с файлами. 2. При техническом крахе сохраняется лог во временную папку. 3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически. 4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю. 5. Сокращенный оператор for - можно написать так:
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства. 8. Структуры (Struct - с прописной буквы). 9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
10. Обработка исключений:
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя. Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22.11.2020, 01:26 | |
|
Ответы с готовыми решениями:
523
Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar? Стал ли .NStar в меньшей степени "сборной солянкой"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Труд вопреки насмешкам
|
|
| 04.11.2025, 12:24 [ТС] | |
|
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
||
| 04.11.2025, 12:32 | ||
|
Как по мне, если бы ты написал компилятор, который переводит код, написанный на C# .NStar в CIL, то я бы согласился, что ты создал полноценный язык. Хотя, даже в этом случае, не факт, что кто-то захотел бы использовать этот язык. Это мое мнение. Другие могут с ним не соглашаться.
0
|
||
|
Труд вопреки насмешкам
|
|
| 04.11.2025, 12:35 [ТС] | |
|
Royal_X, я не понимаю, почему с компилятором - это полноценный язык, а с транспайлером - не полноценный, если программа на нем в любом случае исполняется?
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
||
| 04.11.2025, 12:47 | ||
|
Etyuhibosecyu, например, я когда-то видел игру, созданную на Unity, которая представляла собой очень простенький игровой движок. То есть человек создал редактор игр на Unity. Можно ли называть этот игровой движок полноценным? Я не уверен. Это же несерьезный проект - создать игровой движок на игровом движке. Производительность движка была на уровне говна. Конечно, когда мы создаем приложение, мы же не на машинном коде пишем, а всегда берем что-то готовое, чтобы было легче писать. Но и переходить на сверхвысокую абстракцию тоже не стоит. Игровой движок можно создать, используя графическое API - Vulkan, DX, OpenGL и т.д., но точно не на другом игровом движке. То же самое в твоем случае. Ты создал просто несерьезную игрушку на C# с низкой производительностью. Практического применения этот язык не получит. Даже если синтаксис твоего языка лучше синтаксиса C#, он лучше C# не станет, поскольку код на твоем языке не компилируется в CIL, как это у других .Net - языков. Т.е. ты проиграешь в производительности. Вот если бы ты использовал не C#, а хотя бы C/C++, то возможно, в лучшем случае, ты бы получил что-то на уровне питона, но очень сомневаюсь (поскольку те же разрабы CPython - это опытные программисты, а не из твоей категории). Но ты выбрал медленный язык и получил в итоге сверхмедленный...
0
|
||
|
Труд вопреки насмешкам
|
||||||||||||||||||
| 04.11.2025, 16:44 [ТС] | ||||||||||||||||||
|
Добавлено через 6 минут Нет, не константа, но не на уровне питона.
Добавлено через 14 минут Не по теме: Эх, а раньше об этом можно было только мечтать... Помню, как другой мой язык рекурсивно складывал числа от 1 до 10к за несколько минут, потом от 1 до 2М за 10 секунд, сейчас, к сожалению, рекурсивно не получится, но то, что похожий код выполняется за похожее время (во всяком случае, одного порядка) - это, конечно, невероятно... Добавлено через 29 минут
Добавлено через 2 часа 58 минут Билд второй. Добавлен оператор typeof(), возвращающий тип выражения в скобках. Возвращенный тип можно присвоить переменной рекурсивного типа, а затем использовать эту переменную как тип другой переменной. При этом действии технически вызывается рефлексия, поэтому оно медленное, а в таких переменных преобразуются только элементарные типы и строка (при попытке в таком контексте преобразовать число в список произойдет падение).
0
|
||||||||||||||||||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
|
| 04.11.2025, 18:06 | |
|
0
|
|
|
Труд вопреки насмешкам
|
|||||||
| 04.11.2025, 18:16 [ТС] | |||||||
|
Добавлено через 9 минут Билд третий. Теперь, если пытаться добавить к списку не список и не кортеж, Add преобразуется в Add, а не в AddRange, благодаря чему этот код:
0
|
|||||||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
|||||||
| 04.11.2025, 18:21 | |||||||
0
|
|||||||
|
Труд вопреки насмешкам
|
||
| 04.11.2025, 18:25 [ТС] | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
||||||
| 04.11.2025, 18:26 | ||||||
|
Etyuhibosecyu, Insert, естестественно, будет медленнее
0
|
||||||
|
Труд вопреки насмешкам
|
|
| 04.11.2025, 18:30 [ТС] | |
|
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
|
| 04.11.2025, 18:32 | |
|
Etyuhibosecyu, ты поленился даже иконку создать для своего транспайлера, оставил иконку авалонии...
0
|
|
|
Труд вопреки насмешкам
|
||
| 04.11.2025, 18:35 [ТС] | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
|||||||||||
| 04.11.2025, 18:39 | |||||||||||
|
Etyuhibosecyu,
0
|
|||||||||||
|
Труд вопреки насмешкам
|
||
| 04.11.2025, 18:43 [ТС] | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
||
| 04.11.2025, 18:43 | ||
0
|
||
|
Труд вопреки насмешкам
|
|
| 04.11.2025, 18:45 [ТС] | |
|
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
|||
| 04.11.2025, 18:49 | |||
|
Документация написана для умственно отсталых людей? Зачем всё так детально разъяснять?
0
|
|||
|
Труд вопреки насмешкам
|
|
| 04.11.2025, 18:50 [ТС] | |
|
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
|
||
| 04.11.2025, 18:54 | ||
|
Если не только для себя, то нужно спрашивать мнения других - делай опросы как Илон Маск, за что проголосуют люди, именно то и реализуй.
0
|
||
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|