|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 36053. Ответов 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 в меньшей степени "сборной солянкой"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Software Engineer
336 / 340 / 55
Регистрация: 23.09.2014
Сообщений: 1,047
|
||
| 20.11.2025, 15:40 | ||
0
|
||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,689
|
||
| 20.11.2025, 15:55 | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
|
||
| 20.11.2025, 15:57 | ||
|
Custos, помню я когда-то давно играл в тетрис (не игру, а игрушку, где кроме тетриса было где-то 20 игр), так я заметил, что если в включенном состоянии достать и сразу же ставить одну из АА батареек, то иногда появлялась новая игра - мод существующих. Например, гоночки без встречных машин)
Добавлено через 1 минуту
0
|
||
|
Software Engineer
336 / 340 / 55
Регистрация: 23.09.2014
Сообщений: 1,047
|
||||||||
| 20.11.2025, 17:02 | ||||||||
![]()
0
|
||||||||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,689
|
||
| 20.11.2025, 17:42 | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
|
||
| 20.11.2025, 18:10 | ||
$ - называется input terminator, который подавляет вывод (т.е. вычисление происходит, но результат не выводится). Похожее есть в Maple, там оператор :, а в Mathematica ;Наверное, это что-то похожее. Типа есть отступ, но он не отображается)
0
|
||
|
Труд вопреки насмешкам
|
||
| 20.11.2025, 18:43 [ТС] | ||
|
0
|
||
|
92 / 72 / 10
Регистрация: 22.12.2024
Сообщений: 493
|
|
| 21.11.2025, 10:14 | |
|
Megaclass
Предупреждения:
... - Класс, объявленный со словом Class, содержащий более 16 функций. В качестве альтернативы - новое ключевое слово Megaclass, автоматически делающее класс статическим. - Класс, объявленный со словом Megaclass, содержащий менее 8 функций. - Программа, содержащая более 8 классов. В будущем слово "программа" будет заменено на "сборка". Читаю эти требования линтера и волосы дыбом встают от такого ООП... Megaclass начинается с 16 функций. То есть в ЯП есть класс, кило-класс и мега-класс? Почему мега начинается не с миллиона функций, как обязывает приставка Мега, а с 16...? Если 10^6 тут не при чем, а это просто литературный прием придания веса объекту, как "Мегатрон", то лучше переименовать в BossClass, более адекватно будет для среды информатики.
0
|
|
| 21.11.2025, 10:36 | ||
|
Странное "ограничение". Еще ладно если имеются ввиду публичные методы. Или модификаторы доступа не предусмотрены?
Добавлено через 1 минуту При чем интереснно. А нафига? Т.е. если я сегодня уложился в понятие простого, а завтра добавил еще один метод... и должен еще и megaclass дописывать? Добавлено через 4 минуты
0
|
||
|
92 / 72 / 10
Регистрация: 22.12.2024
Сообщений: 493
|
||
| 21.11.2025, 10:55 | ||
![]() Прочитал в профиле: О себе
Только полнейший идиот может верить, что если человек прочитает учебник, случится чудо и он превратится в знающего.
Я таки идиот по мнению ТС и верю, что если ТС прочитает хотябы школьный учебник информатики и начнет все с нуля, адекватно и в общей парадигме, то случится чудо! Насмешек не будет.
0
|
||
|
92 / 72 / 10
Регистрация: 22.12.2024
Сообщений: 493
|
||
| 21.11.2025, 11:08 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
|
| 21.11.2025, 11:18 [ТС] | |
|
0
|
|
| 21.11.2025, 11:28 | ||
|
Пока вижу только то, что требует дополнительных усилий по программированию. Т.е. я должен вести подсчет методов и менять где то в начале class на нечто другое? Допустим мы пытаемся предотвратить создание божественных классов. И "подсветка" классов где много публичных методов - вполне оправдана. НО! Это имеет отношение к качеству кода для чтения программистом. компилятору/интерпретатору вообще пофиг на это должно быть. Т.е. разумным было бы: - количество методов при котором происходит подсветка разумно сделать конфигурируемым для уровня проекта. - предусмотреть форматированную подсказу в кометнарии, которая отключает проверку в заданном классе на количество методов. т.е. типа "да, я понял что тут много, но это необходимо, и вот тебе что то типа "SkipGodClassCheck" в коментарии. Ну или сделать более гибкое: указывать в комментарии GodClassALertLevel(10) - что будет означать сообщи если в этом классе количество публичных методов перевалит за 10
0
|
||
|
92 / 72 / 10
Регистрация: 22.12.2024
Сообщений: 493
|
||||||
| 21.11.2025, 11:39 | ||||||
|
Общепринятая норма - подавлять предупреждения линтера комментариями перед проблемной строкой.
1
|
||||||
|
Труд вопреки насмешкам
|
||||
| 21.11.2025, 11:50 [ТС] | ||||
|
Добавлено через 5 минут
0
|
||||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,689
|
|
| 21.11.2025, 11:54 | |
|
Etyuhibosecyu, а зачем это выкручивание рук разработчику? Почему твой ЯП за программиста решает, где что правильно, а где не правильно? Тебе C# никак не мешает портянки в одном файле делать. Что не так?..
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" (широколиственные) или. . .
|