Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 36046. Ответов 523
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 12:24  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
Но его нельзя ставить наряду с другими полноценными языками.
Почему, если транспайлированный код работает?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 12:32
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Почему, если транспайлированный код работает?
Это просто синтаксический конвертер на C# - так сказать, тренировочный проект. Полагаю, что при его написании ты узнал много нового по C#. Это единственная польза от этого проекта. Но очень сомневаюсь, что кому-нибудь он понадобится.

Как по мне, если бы ты написал компилятор, который переводит код, написанный на C# .NStar в CIL, то я бы согласился, что ты создал полноценный язык. Хотя, даже в этом случае, не факт, что кто-то захотел бы использовать этот язык.
Это мое мнение. Другие могут с ним не соглашаться.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 12:35  [ТС]
Royal_X, я не понимаю, почему с компилятором - это полноценный язык, а с транспайлером - не полноценный, если программа на нем в любом случае исполняется?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 12:47
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
я не понимаю
особо не утруждайся и не пытайся понимать - я же написал, что это мое мнение, а не абсолютная истина.

Etyuhibosecyu, например, я когда-то видел игру, созданную на Unity, которая представляла собой очень простенький игровой движок. То есть человек создал редактор игр на Unity. Можно ли называть этот игровой движок полноценным? Я не уверен. Это же несерьезный проект - создать игровой движок на игровом движке. Производительность движка была на уровне говна. Конечно, когда мы создаем приложение, мы же не на машинном коде пишем, а всегда берем что-то готовое, чтобы было легче писать. Но и переходить на сверхвысокую абстракцию тоже не стоит. Игровой движок можно создать, используя графическое API - Vulkan, DX, OpenGL и т.д., но точно не на другом игровом движке.

То же самое в твоем случае. Ты создал просто несерьезную игрушку на C# с низкой производительностью. Практического применения этот язык не получит. Даже если синтаксис твоего языка лучше синтаксиса C#, он лучше C# не станет, поскольку код на твоем языке не компилируется в CIL, как это у других .Net - языков. Т.е. ты проиграешь в производительности.

Вот если бы ты использовал не C#, а хотя бы C/C++, то возможно, в лучшем случае, ты бы получил что-то на уровне питона, но очень сомневаюсь (поскольку те же разрабы CPython - это опытные программисты, а не из твоей категории). Но ты выбрал медленный язык и получил в итоге сверхмедленный...
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 16:44  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Производительность движка была на уровне говна.
У меня производительность на уровне C# плюс константа, померьте сами и убедитесь.

Добавлено через 6 минут
Нет, не константа, но не на уровне питона.
C#
1
2
3
List<String> list = [];
for (var i = 0; i < 100000000; i++)
    list.Add("AAA");
- 25 секунд.
Code
1
2
3
list() string list = new();
for (int i in Chain(1, 100000000))
    list.Add("AAA");
- 35 секунд.

Добавлено через 14 минут

Не по теме:

Эх, а раньше об этом можно было только мечтать... Помню, как другой мой язык рекурсивно складывал числа от 1 до 10к за несколько минут, потом от 1 до 2М за 10 секунд, сейчас, к сожалению, рекурсивно не получится, но то, что похожий код выполняется за похожее время (во всяком случае, одного порядка) - это, конечно, невероятно...



Добавлено через 29 минут
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Нет, не константа, но не на уровне питона.
Не учел, что у моего Add() под капотом AddRange(). Если заменить на такой код:
C#
1
2
3
List<String> list = [];
for (var i = 0; i < 100000000; i++)
    list.AddRange((String)"AAA");
- то и будет время C#.NET плюс константа.

Добавлено через 2 часа 58 минут
Билд второй. Добавлен оператор typeof(), возвращающий тип выражения в скобках. Возвращенный тип можно присвоить переменной рекурсивного типа, а затем использовать эту переменную как тип другой переменной. При этом действии технически вызывается рефлексия, поэтому оно медленное, а в таких переменных преобразуются только элементарные типы и строка (при попытке в таком контексте преобразовать число в список произойдет падение).
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:06
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
list()
это твой NList?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:16  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
это твой NList?
Транспайлер автоматически определяет, использовать List, NList или BitList.

Добавлено через 9 минут
Билд третий. Теперь, если пытаться добавить к списку не список и не кортеж, Add преобразуется в Add, а не в AddRange, благодаря чему этот код:
Code
1
2
3
list() string list = new();
for (int i in Chain(1, 100000000))
    list.Add("AAA");
- исполняется на моем сравнительно быстром компьютере не за 35, а за 19 секунд.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:21
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Add
ты про этот ?

C#
1
2
3
4
5
6
7
8
9
public virtual TCertain Add(T item)
{
    if (_size == Capacity)
    {
        EnsureCapacity(_size + 1);
    }
    SetInternal(_size++, item);
    return (TCertain)this;
}
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:25  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
ты про этот ?
Да, теперь транспайлер также автоматически определяет, использовать этот метод или соседний AddRange.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:26
Etyuhibosecyu, Insert, естестественно, будет медленнее

C#
1
2
3
4
public virtual TCertain AddRange(ReadOnlySpan<T> span)
{
    return Insert(_size, span);
}
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:30  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Insert, естестественно, будет медленнее
Да, почему я и исправил.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:32
Etyuhibosecyu, ты поленился даже иконку создать для своего транспайлера, оставил иконку авалонии...
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:35  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
ты поленился даже иконку создать для своего транспайлера, оставил иконку авалонии...
В Lineedge иконка появилась с версии Semi-Alpha, здесь, вероятно, будет где-то так же.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:39
Etyuhibosecyu,

C#
1
2
var x = "Hello, world!";
return x;
а почему не сделать так

C#
1
2
var x = "Hello, world!";
x
то есть, если в конце x без точки с запятой, то выводится значение х, а если с точкой с запятой, то вывод гасится.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:43  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
а почему не сделать так
Это мой язык, мне не нравится. Я вообще собираюсь сделать альтернативный стиль кода, где точек с запятой не будет. То есть все операторы и фреймворк те же, а только визуальный стиль немного другой.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:43
Цитата Сообщение от red-star-soft
C#.NStar, в принципе, подходит для написания игр, но если это гигантская игра с большим открытым бесшовным миром, как Lineedge, то написать ее будет намного сложнее, чем если использовать специальные инструменты, называемые "игровыми движками". Но если это что-то маленькое и простое, как три в ряд, то вы потратите больше времени на освоение движка, чем на написание такой игры на C#.NStar.
так писать любой сможет, напиши пример игры "три в ряд" на своем языке и чтобы в нее играть было так же прикольно, как в игру, созданную на игровом движке
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:45  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
напиши пример игры "три в ряд" на своем языке и чтобы в нее играть было так же прикольно, как в игру, созданную на игровом движке
Пока не могу, так как в языке нет GUI. Это написано на перспективу.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:49
Документация написана для умственно отсталых людей? Зачем всё так детально разъяснять?

Скачайте последний EXE здесь (большая ссылка по центру). Если вы живете в крупном городе и у вас 5G, он скачается мгновенно. На 3G/4G потребуется несколько секунд. Большинство браузеров позволяют запустить скачанный файл прямо из браузера, хотя конкретный интерфейс может различаться. Если же у вас это не так, он, скорее всего, попал в папку "Загрузки", доступную на левой панели любого окна Проводника. (Если вы отключили эту панель или выбрали другую папку в настройках браузера - значит, вы уже не чайник и знаете, что делаете.) Сразу при запуске установочный файл не требует прав администратора, но потребует, если вы выберете "Установить для всех пользователей". Если вы не хотите давать неизвестной программе прав администратора (и это хорошо, хотя мы гарантируем отсутствие вирусов, но произвольный EXE, скачанный из Интернета, может содержать что угодно), выберите пункт "Установить только для меня". Следуйте инструкциям установщика. Обратите внимание, что на этапе выборе папки, если вы выбрали "Установить только для меня", стандартная папка "C:\Program Files" окажется заблокированной, и вам придется установить в очень глубокую папку, путь к которой вы вряд ли запомните. Поэтому лучше сразу при установке отметить флажок "Создать значок на рабочем столе" и запускать с рабочего стола, иначе для запуска придется лезть в меню "Пуск" или вообще Бог знает куда. А вот флажок о запуске при установке лучше снять, или сразу же закрыть запущенную программу, чтобы потренироваться запускать самостоятельно.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Пока не могу, так как в языке нет GUI. Это написано на перспективу.
Так написал бы сразу "на перспективу", что "C# .NStar рвет ассемблер по скорости и что на ней можно за полчаса написать операционку не хуже винды"
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
04.11.2025, 18:50  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Документация написана для умственно отсталых людей?
Поосторожнее!
Цитата Сообщение от Royal_X Посмотреть сообщение
Так написал бы сразу "на перспективу", что "мой C# .NStar рвет ассемблер по скорости и что на ней можно за полчаса написать операционку не хуже винды"
Спасибо за шутку.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,444
04.11.2025, 18:54
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Это мой язык, мне не нравится.
Ну ты ж не только для себя создал этот язык?


Если не только для себя, то нужно спрашивать мнения других - делай опросы как Илон Маск, за что проголосуют люди, именно то и реализуй.
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" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru