|
Труд вопреки насмешкам
|
|||||||||||||||||||||||||||||||
C#.NStar22.11.2020, 01:26. Показов 29672. Ответов 471
Метки нет (Все метки)
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен. 2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка. 3. Списки - не только возврат списка, но и переменные списочных типов. 4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
А вот несколько будущих возможностей: 1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором " :", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
1
|
|||||||||||||||||||||||||||||||
| 22.11.2020, 01:26 | |
|
Ответы с готовыми решениями:
471
Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|
| 22.11.2020, 09:52 | |
|
Это все конечно замечательно, но мы так и не поняли, кому и зачем этот ваш язык может потребоваться и какие проблемы того же сишарпа он решает.
0
|
|
|
Труд вопреки насмешкам
|
||
| 22.11.2020, 11:18 [ТС] | ||
|
0
|
||
|
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,028
|
||
| 22.11.2020, 15:57 | ||
|
Перефразирую: ваше ПО говно не по тому, что C# плохой, а потому, что у вас руки из... Ну вы поняли. Т.е. решение всех ваших проблем не в изобретении нового языка, а в изучении существующих практик. Не верите мне? ОК. Изобретайте говно дальше. Одной вашей веры в то, что вы "творите" не достаточно.
0
|
||
| 22.11.2020, 16:36 | |
|
Не по теме: Внесу посильную лепту в дело развития языка. Раз тут упомянуто дерево - предлагаю такое дерево:
0
|
|
|
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
| 22.11.2020, 16:47 | |
|
...
0
|
|
|
Модератор
|
|
| 22.11.2020, 21:36 | |
|
напоминает кашу из языков, switch лямбды почти один в один есть в джаве с 12 версии (14 уже стандарт, самая новая это 15), некоторое остальное в том или ином виде встречал в питоне
кстати идея для "языка", как в питоне отрицательные индексы, это тоже удобно))
0
|
|
|
Труд вопреки насмешкам
|
||
| 22.11.2020, 21:43 [ТС] | ||
|
0
|
||
|
Труд вопреки насмешкам
|
||||||
| 23.11.2020, 12:22 [ТС] | ||||||
|
alecss131, и знаете ли вы, что swtich с лямбда-выражениями в Java присутствует не "почти один в один", а совсем иначе? А я вот не поленился и посмотрел! В Java как-то так:
0
|
||||||
|
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
|
|||
| 27.11.2020, 08:38 | |||
|
планируется платный/халява?, или сначала халява, а потом денег запросишь? справка на русском будет? в качестве идеи, IF - ENDIF или IF {}, иметь два варианта, кому как удобней а ты уверен, что потянешь многолетнюю поддержку, обновление, расширение? ну и так далее я не против нового языка, я за НОВЫЙ, а не клон
0
|
|||
|
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,028
|
||
| 27.11.2020, 08:53 | ||
|
0
|
||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
|
| 27.11.2020, 11:18 | |
|
0
|
|
|
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
|
|
| 29.11.2020, 00:58 | |
|
0
|
|
|
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,028
|
|
| 29.11.2020, 06:14 | |
|
newJS, нужны, согласен, но от тех, кто хотя бы примерно представляет, что он делает и какие недостатки существующих компенсирует. А тут этого нет.
0
|
|
|
Труд вопреки насмешкам
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| 05.10.2022, 23:14 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
И вот, наконец, я сделал это! Вторая версия революционного языка программирования под названием C# .NStar (Pre-Pre-Alpha) 0.09 готова! Причем именно под этим названием это пока что первая достигшая продакшена версия. И вот что сообщает статистика - на версию Preview 1.0 (что эквивалентно 0.05) ушло полтора года, на версию 0.09 - два года - интересно, на версию 0.13 уйдет два с половиной года, и она выйдет весной 2025 года, или мне удастся хоть немного ускориться?
Что уже проверено и работает в дополнение к версии Preview 1.0: 1. Список ошибок теперь работает именно в виде списка, а не в виде конкатенаций строк в цикле. Думаю, для знакомых с C# .NET последствия очевидны. 2. Следующие статические функции: DateTime.Compare(), DateTime.DaysInMonth(), DateTime.FromBinary(), DateTime.IsLeapYear(). 3. Следующие экземплярные функции: DateTime.AddDays(), DateTime.AddHours(), DateTime.AddMilliseconds(), DateTime.AddMinutes(), DateTime.AddMonths(), DateTime.AddSeconds(), DateTime.AddTicks(), DateTime.AddYears(), DateTime.CompareTo(), DateTime.IsSummertime(), DateTime.SpecifyKind(), DateTime.ToBinary(), DateTime.ToLocalTime(), DateTime.ToUniversalTime(), list.Add() (может добавить как один элемент, так и целый список; то же самое касается функций, помеченных далее (*)), list.Clear(), list.Contains() (*), list.GetRange(), list.IndexOf() (*), list.Insert() (*), list.LastIndexOf() (*), list.Remove() (при передаче двух параметров удаляет диапазон, вызов с одним параметром удалит от этого индекса до конца списка), list.RemoveLast(), list.Reverse(), string.Contains(), string.ContainsAny(), string.ContainsAnyExcluding(), string.Count(), string.EndsWith(), string.GetAfter(), string.GetBefore(), string.IndexOf(), string.IndexOfAny(), string.IndexOfAnyExcluding(), string.Insert(), string.LastIndexOf(), string.LastIndexOfAny(), string.LastIndexOfAnyExcluding(), string.Remove(), string.Replace(), string.Split(), string.StartsWith(), string.Substring(), string.ToCharList(), string.ToLower(), string.ToUpper(), string.Trim(), string.TrimEnd(), string.TrimStart(). 4. Следующие типы: byte, long int, unsigned long int, list() T, System.Func[TResult, T1, T2, ...]. 5. Пространства имен. 6. Списки и индексы. 7. Процедурный подход в прошлом! Теперь процветает структурное программирование: классы, методы и свойства могут быть как статическими, так и экземплярными, экземплярные классы могут быть сконструированы, присутствует даже инкапсуляция в виде модификаторов closed, protected и internal. К сожалению, полноценного объектно-ориентированного программирования еще нет вследствие отсутствия наследования и полиморфизма. 8. Циклы следующих типов: loop, repeat (n), while (condition), for (type var in collection). Для выполнения действий заранее неизвестное число раз подходит только цикл while, так как в repeat выражение вычисляется один раз, и изменение входящих в него переменных после этого бесполезно, а попытка изменить коллекцию в for может привести к непредсказуемым последствиям. 9. Операторы break и continue. 10. Сложные условия с разными комбинациями ядер в фигурных скобках и без них. Разумеется, до бесконечной глубины проверить нельзя, но доступные мне проверки отлажены. 11. Можно обратиться к свойству или функции, входящим в тот же класс, что и место вызова, или во включающий класс, без явного указания имени класса. 12. Делегаты. Но лямбды не работают. В делегат можно подставлять только полноценную функцию, но большое преимущество в этом плане над ранним C# .NET - то, что функции и даже классы с самой первой версии могут быть объявлены внутри других функций. Что уже проверено и не работает в дополнение к версии Preview 1.0: 1. Циклы следующих типов: loop-while, for-while, repeat-while. 2. Конструкции switch. 3. Кортежи. Внезапно реализовать их оказалось сложнее, чем я думал, из-за сложных комбинаций сингулярных кортежей. Но у меня уже есть наброски плана по исправлению. 4. Сокращенный вид списка ( () T).5. Комментарии все еще не работают! Рабочие примеры кода на C# .NStar:
1. Экстенты IndexesOf, FindAllIndexes, FindMin, FindMax, FindMean, FindMedian, FindAllMin, FindAllMax, FindAllMean, FindAllMedian, IndexOfMin, IndexOfMax, IndexOfMean, IndexOfMedian, LastIndexOfMin, LastIndexOfMax, LastIndexOfMean, LastIndexOfMedian, IndexesOfMin, IndexesOfMax, IndexesOfMean, IndexesOfMedian, FindMinIndex, FindMaxIndex, FindMeanIndex, FindMedianIndex, FindLastMinIndex, FindLastMaxIndex, FindLastMeanIndex, FindLastMedianIndex, FindAllMinIndexes, FindAllMaxIndexes, FindAllMeanIndexes и FindAllMedianIndexes. В результате этого можно будет вместо такого громоздкого кода:
Обновлено: бо́льшая часть этих экстентов уже реализована в библиотеке OptimizedLinq, так что это фактически уже не перспективная, а реальная возможность, предоставляемая компанией Red-Star-Soft. 2. Оператор ubd - сокращение от "upper bound division" - "деление по верхней границе". Эквивалентен x == 0 ? 0 : (x - 1) / y + 1, что отличается от (x + y - 1) / y гарантией, что не произойдет переполнение. Применим для целых чисел. 3. Функции Round(x, y), Floor(x, y), Ceil(x, y) и Truncate(x, y) - эквивалентны F(x / y) * y, где F - соответствующая функция от одного аргумента. Применимы для целых и действительных чисел. 4. Постфиксные унарные операторы x+, x-, x*, x% и x? - эквивалентны соответственно x + 1, x - 1, x * x, x % 2 и x >= 1 (преобразование числа в bool - если опустить этот оператор, компилятор выдаст предупреждение). Оператор x% применим для целых чисел, x? - для целых и действительных, остальные - для целых, действительных и комплексных. 5. По аналогии с пространствами имен верхнего уровня в классическом C#, также классы верхнего уровня, позволяющие иметь еще на отступ меньше. Например, для сравнения старый и новый код:
6. (Это касается IDE, а не языка.) Возможность выполнить код до определенного места в текущем вызове функции. То есть, если, например, эта функция прямо или косвенно рекурсивна, то попадание в эту точку в одном из вызовов этой рекурсии не заставит выполнение остановиться. Если целевой вызов завершен, а попадание в эту точку так и не случилось, то IDE может на выбор (в настройках) либо вывести сообщение, либо просто продолжить выполнение. 7. (Это также касается IDE.) Возможность у точки останова установить ограничение на глубину стека вызовов. Это ограничение может быть вида ==, <=, >= или is. 8. Возможность в выражении для оператора is использовать ключевое слово when. Например:
Надеюсь, хоть кто-то приложит усилия не только к болтовне. Мне важно мнение со стороны, но только если оно осмысленно, а мнение тех, кто даже прочитать шапку поленился, таким не является. Господин Usaga уже получил красную карточку кое за что, и я очень надеюсь, что и другие садисты будут наказаны.
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||
| 05.10.2022, 23:48 | ||
|
Зачем исполняемый файл C# .NStar (Pre-Pre-Alpha) 0.09.exe при каждом запуске извлекает кучу файлов во временную папку (%TEMPDIR%\.net\C# .NStar (Pre-Pre-Alpha) 0.09\)? Чтобы быстрее SSD исчерпал свой ресурс? Где компилятор этого языка? Запускать код в окне это несерьезно! С таким же успехом вы могли сделать веб приложение без необходимости скачивать файлы на комп.
1
|
||
|
Труд вопреки насмешкам
|
||||
| 06.10.2022, 00:05 [ТС] | ||||
|
locm, спасибо за то, что скачали EXE, пусть даже и не протестировали полноценно!
0
|
||||
|
|
|||||
| 06.10.2022, 00:23 | |||||
|
Если хотели обойтись без .NET, полно ЯП компилирующих в натив без зависимостей (достаточно того что есть в дистрибутиве Win7 и выше). Вы же сделали, как бы так помягче скачать... Практического применения нет.
0
|
|||||
|
Труд вопреки насмешкам
|
|||
| 06.10.2022, 00:29 [ТС] | |||
|
0
|
|||
|
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,028
|
|||
| 06.10.2022, 08:04 | |||
|
Сможете сжато обрисовать чем ваш язык лучше того же шарпа?
0
|
|||
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|