|
Труд вопреки насмешкам
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 40527. Ответов 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 в меньшей степени "сборной солянкой"? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Труд вопреки насмешкам
|
|
| 29.01.2025, 12:11 [ТС] | |
|
0
|
|
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|||
| 29.01.2025, 12:13 | |||
|
Но сначала про него, конечно, стоило бы хотя бы узнать. Добавлено через 1 минуту
0
|
|||
|
Труд вопреки насмешкам
|
|||
| 29.01.2025, 12:26 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 29.01.2025, 12:28 | ||
|
Пока что я понял только то, что в твоём языке можно легко говнокодить многомерные вложенные списки, писать рекурсию, которую ещё нужно как-то так написать, чтобы её правильно размотало, но как её так правильно писать - это тайна, а также строка поддерживает метод +=. На этом все "преимущества" заканчиваются.
0
|
||
|
Труд вопреки насмешкам
|
||||
| 29.01.2025, 12:34 [ТС] | ||||
|
Добавлено через 3 минуты goto, а список поддерживает все возможности массива и многие другие.
0
|
||||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|||
| 29.01.2025, 12:44 | |||
|
Затем конкретику - ключевые отличия, какие уникальные возможности у тебя есть, что нет у других. Всё это с примерами кода, тестами производительности и т.д.
0
|
|||
|
Труд вопреки насмешкам
|
||
| 29.01.2025, 12:58 [ТС] | ||
List<List<List<T>>>, а с массивом достичь этого же было бы намного сложнее)?
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 29.01.2025, 13:02 | ||
Но вообще, тебе вроде никто не предлагает использовать массив. А лишь специализированные типы. Может у тебя потому и проблемы с производительностью в твоём AresTools, что ты там вместо нормальных структур данных ворочаешь многомерными вложенными списками.
0
|
||
|
Труд вопреки насмешкам
|
|||
| 29.01.2025, 13:04 [ТС] | |||
|
0
|
|||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
||
| 29.01.2025, 13:07 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
|||
| 29.01.2025, 13:12 [ТС] | |||
NList<ShortIntervalList>.Добавлено через 3 минуты
0
|
|||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
|
|||
| 29.01.2025, 13:15 | |||
|
Добавлено через 27 секунд
0
|
|||
|
Труд вопреки насмешкам
|
|||
| 29.01.2025, 13:18 [ТС] | |||
|
Добавлено через 2 минуты NList<T> - нативный список из Corlib.NStar. ShortIntervalList - внутренний список AresTools, поддерживающий не более восьми элементов, зато занимающий минимум памяти и генерирующий минимум мусора.
0
|
|||
|
Модератор
|
||
| 29.01.2025, 15:02 | ||
|
В некоторых языках нету... внезапно как раз таки листов, а есть только массивы. Например язык Swift, там есть только тип Array (который кратко объявляется как [T]), так же там отказались от инкреметов/дикрементов и простых циклов for (вместо него цикл for-in). Язык современный и развивающийся, без сборщика мусора и ручного управления памятью. Язык создается максимально безопасным, то есть если специально не пытаться, то ошибок выполнения получить очень сложно, например NRE (null reference exception). Без опционалов не обойтись. Так что не те вещи выброшены. Добавлено через 2 минуты А так же можно было избавиться от лишних символов, например круглых скобок в условиях и точки с запятой в конце строки
0
|
||
|
Software Engineer
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 29.01.2025, 15:05 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
||||||
| 29.01.2025, 17:53 [ТС] | ||||||
|
Добавлено через 2 часа 48 минут Билд второй (та же ссылка). Теперь работают операторы <<= и >>=, функции, возвращающие null, исправлена ошибка с делением на бесконечность. Как оказалось, оператор pow= работал и раньше, но если переменная типа real, а не одного из целых. Самый краткий способ сделать переменную типа real - при инициализации целым числом добавить к этому числу суффикс r (например, var x = 5r;). Также можно явно объявить переменную типом real (real x = 5;). Из того, что не работает, а хотелось бы - только:
0
|
||||||
|
78 / 73 / 19
Регистрация: 18.05.2021
Сообщений: 290
|
|
| 29.01.2025, 17:57 | |
|
Etyuhibosecyu, чрезвычайно рекомендую прервать/замедлить развитие языка и сделать документацию, а затем постоянно ее пополнять в соответствии с тем, что появляется в языке. Каким образом тестировать (ну или в перспективе использовать, но Вы так ни разу никому и не ответили, чем Ваш язык лучше условного питон, с# и т.д.), не имея никакой справочной информации по языку?
2
|
|
|
Труд вопреки насмешкам
|
|
| 29.01.2025, 18:00 [ТС] | |
|
-_human_-, так на сайте перечислены функции, операторы и другие конструкции, которые уже работают в каждой новой версии.
0
|
|
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|