|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 36060. Ответов 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, 23:07 [ТС] | |
|
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,448
|
|||||||
| 04.11.2025, 23:16 | |||||||
--self-contained true чтобы не ставить .Net на маке
0
|
|||||||
|
14364 / 9465 / 1360
Регистрация: 21.01.2016
Сообщений: 35,689
|
|
| 04.11.2025, 23:20 | |
|
Royal_X, осталось ещё объяснить Коле разницу между IDE и SDK
0
|
|
|
Труд вопреки насмешкам
|
|
| 07.11.2025, 00:57 [ТС] | |
|
Билд четвертый. Добавлен прототип GUI-фреймворка, позволяющего показать новое окно и добавить в него элементы управления. На этом фреймворке теперь можно написать примитивный вариант трех в ряд, что я и сделал, код прилагается. Есть только баг, что иногда появляется комбо, которое, вместо того, чтобы удаляться, остается на месте, и иногда удалить его бывает не просто, обмен местами двух фишек внутри комбо не работает, нужно с какой-то четвертой. Отображается уведомление о конце:
(Играл где-то до 80 очков, дальше терпения искать совпадения не хватило, включил автокликер с брутфорсом.) Теперь, надеюсь, я получу тестирование как языка, так и приложения?
0
|
|
|
|
||||||
| 07.11.2025, 08:46 | ||||||
|
Не по теме:
Глянул писанину: если убрать рядовые отличия аля list() Button, то обычный C#.
0
|
||||||
|
Труд вопреки насмешкам
|
|||
| 07.11.2025, 11:29 [ТС] | |||
|
0
|
|||
|
Труд вопреки насмешкам
|
|
| 07.11.2025, 11:54 [ТС] | |
|
Билд пятый. Исправлена ошибка с ToString() для строки, вот исправленный код.
0
|
|
|
|
|||
| 07.11.2025, 12:46 | |||
- то что совпадает ок, тут как бы вещи, которые унифицированы и обкатаны не то что в C#, а во многих других языка - ваши отличия выглядят местами очень странно Например for (var i in Range(1, 10)) -- доку глянуть не получилось (ваш сайт не грузит), но если вы убрали классический for, то это конечно сильно. Очень часто нужно задать специфический шаг, сразу для нескольких значений и условия выхода тоже могут быть оригинальные. А тут прям лютое перечисление, ещё и не упрощено на максимум, а через доп-метод. Короче хз, у меня больше вопросов глядя на это, чем ответов. Если бы было что-то в духе readout(var i from 1 to 10) -- я бы ещё понял такой сахар. А так -- не очень.Лист объявляется с указанием типа через пробел, а вот словарь уже в квадратных скобках. Т.е. нет никакой унификации. Не смертельно, но не ясно что у вас там с дженериками тогда. Сам словарь и элементы словаря разграничиваются круглыми скобками. Не уверен что хорошее решение, т.к. круглые скобки в первую очередь воспринимаются как вызов метода, а не описание какого-то блока (в нашем случае коллекции словаря). Если бы круглыми скобками например разграничивались только (key, value), то ещё можно было бы сказать "тут просто иначе" и не парится.loop -- это тупо антипатерн while(true). ИМХО это вообще не стоит добавлять в язык, дабы не провоцировать говнокод.--------------------------------------- А теперь главный вопрос -- что ваш код делает такого, чего не делает C#? Пока на вид ничего, а то что делает иначе, явно делает хуже. Т.е. он не решает никаких проблем, только добавляет новые.
1
|
|||
|
Труд вопреки насмешкам
|
||||||||||||
| 07.11.2025, 13:17 [ТС] | ||||||||||||
Добавлено через 17 минут Не по теме: Мой язык и есть улучшенная версия C#... Вы же понимаете, что это находящаяся в разработке заготовка языка, а не релизная версия? Понимаете же?
0
|
||||||||||||
|
Модератор
|
||||||||||||||||||||
| 07.11.2025, 13:27 | ||||||||||||||||||||
stride(from:through:by:), а для второго реализовано вот это
Можно поменять задание от 0 до 10 с шагом 1 пока квадрат меньше 10
0
|
||||||||||||||||||||
|
Супер-модератор
3961 / 2124 / 833
Регистрация: 13.03.2010
Сообщений: 6,974
|
||
| 07.11.2025, 13:29 | ||
|
1
|
||
|
Труд вопреки насмешкам
|
|
| 07.11.2025, 13:33 [ТС] | |
|
gogolik, разве это запрещено? Мне кажется, готовые продукты на форум не выкладывают, для этого есть большой сайт с крутым доменом и т. д., а форум как раз для заготовок.
0
|
|
|
Супер-модератор
3961 / 2124 / 833
Регистрация: 13.03.2010
Сообщений: 6,974
|
|
| 07.11.2025, 13:35 | |
|
Etyuhibosecyu, нет, не запрещено. Просто вы берётесь за всё подряд и ничего не доделываете. И всегда нелепейшие отмазки лепите.
0
|
|
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,448
|
||
| 07.11.2025, 14:23 | ||
|
Etyuhibosecyu, поиграл я в твою игру.
Но я напомню, что ты писал
- слишком много кода для такого прототипа игры. За такое количество строк, я написал бы даже на С++ / WinAPI, например, на GDI+. И получилось бы в разы красивее. А если бы использовать игровой движок, то код был бы в разы меньше. Ты же рекламируешь C#.NStar как более удобный, чем C#, дескать с большим количеством сахара. Но либо просто ты не умеешь лаконично писать код на своем языке, либо язык все-таки не позволяет. - у тебя получилась кое-какая посредственная игра. Конечно, ты называешь ее заготовком, сам понимая, что до игры не дотягивает и никто бы не стал играть в нее. Глаза кровоточат, играя в эту игру, поскольку нет даже анимации исчезновения ячеек. Но ведь, ты же писал, что " вы потратите больше времени на освоение движка, чем на написание такой игры на C#.NStar". Т.е. "такой" означает, что ты должен был создать игру, которая и по уровню визуалов не хуже игры, созданной на игровом движке. Вот поэтому, ты не смог переубедить меня, что я должен отказаться, допустим, от Godot, Unity и делать игру на C#.NStar. Ведь, на движке получится игра в разы красивее и с меньшим количеством кода.
0
|
||
|
Труд вопреки насмешкам
|
||||
| 07.11.2025, 14:46 [ТС] | ||||
|
Добавлено через 2 минуты
0
|
||||
|
Труд вопреки насмешкам
|
||
| 07.11.2025, 15:03 [ТС] | ||
|
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,448
|
|||
| 07.11.2025, 15:18 | |||
|
Игра на Unity тоже будет весить до 100 МБ, хотя там для получения движка придется скачивать гигабайты. Но поскольку ты писал "сотни мегабайт" про готовую игру, то и юнька подходит.
0
|
|||
|
Труд вопреки насмешкам
|
||
| 07.11.2025, 15:42 [ТС] | ||
|
Добавлено через 21 минуту Royal_X, Wolfdp, а посоветуйте: если транспайлер упал, стоит ли делать не просто "the execution failed because of internal error", а выдавать наружу внутренности программы в виде ex.Message? Или лучше пусть новички даже и не пытаются гадать, что же зашифровано в этой внутренней ошибке? Или сделать и так, и так на выбор?
0
|
||
|
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,448
|
|
| 07.11.2025, 15:44 | |
|
Etyuhibosecyu, можно записать лог при краше.
1
|
|
|
Новые блоги и статьи
|
|||
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
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
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|