Новости C#13. params
От: rameel https://github.com/rsdn/CodeJam
Дата: 14.03.24 15:44
Оценка: 157 (4) +1
В превью версию C#13 добавили для так называемой `params` collections поддержку IEnumerable<T> и ReadOnlySpan<T>. Значит скоро можно будет писать вот так
void M(params IEnumerable<int> numbers);
void M(params ReadOnlySpan<int> numbers);


https://x.com/jcouv/status/1767967748259545522

ЗЫ. Из proposal вытекает, что поддерживаются также

* System.Span<T>
* System.Collections.Generic.IEnumerable<T>,
  System.Collections.Generic.IReadOnlyCollection<T>,
  System.Collections.Generic.IReadOnlyList<T>,
  System.Collections.Generic.ICollection<T>,
  System.Collections.Generic.IList<T>
* Класс или структура, который реализует IEnumerable, если есть доступный конструктор без аргументов, и экземплярный (не extension) метод Add.
* Класс или структура со статическим методом Create.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re: Новости C#13. params
От: dmitry_npi Россия  
Дата: 14.03.24 19:15
Оценка: +1
Здравствуйте, rameel, Вы писали:

R>В превью версию C#13 добавили для так называемой `params` collections поддержку IEnumerable<T> и ReadOnlySpan<T>.


Конечно, давно пора. Хотя мне казалось, что params IEnumerable уже давно ввели. Это же естественно.
Атмосферная музыка — www.aventuel.net
Re: Новости C#13. params
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.03.24 17:24
Оценка:
Здравствуйте, rameel, Вы писали:

R>В превью версию C#13 добавили для так называемой `params` collections поддержку IEnumerable<T> и ReadOnlySpan<T>. Значит скоро можно будет писать вот так

R>
R>void M(params IEnumerable<int> numbers);
R>void M(params ReadOnlySpan<int> numbers);
R>


Не прошло и 20 лет!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Новости C#13. params
От: _FRED_ Черногория
Дата: 28.03.24 21:44
Оценка: +1
Здравствуйте, VladD2, Вы писали:

R>>void M(params IEnumerable<int> numbers);

VD>Не прошло и 20 лет!

Прошло 😭
Help will always be given at Hogwarts to those who ask for it.
Re[3]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.03.24 10:08
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, VladD2, Вы писали:


_FR>
R>>>void M(params IEnumerable<int> numbers);
_FR>

VD>>Не прошло и 20 лет!

_FR>Прошло 😭


Нет дженерики появились в 2005 году!
и солнце б утром не вставало, когда бы не было меня
Re[4]: Новости C#13. params
От: _FRED_ Черногория
Дата: 29.03.24 10:29
Оценка:
Здравствуйте, Serginio1, Вы писали:

R>>>>void M(params IEnumerable<int> numbers);

VD>>>Не прошло и 20 лет!
_FR>>Прошло 😭

S> Нет дженерики появились в 2005 году!


System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.
Help will always be given at Hogwarts to those who ask for it.
Re[5]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.03.24 10:44
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>
R>>>>>void M(params IEnumerable<int> numbers);
_FR>

VD>>>>Не прошло и 20 лет!
_FR>>>Прошло 😭

S>> Нет дженерики появились в 2005 году!


_FR>System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.


На самом деле это еще тот геморрой при рефлексии обрабатывать все варианты. Да еще разные варианты с количество перегрузок методов.
и солнце б утром не вставало, когда бы не было меня
Re[6]: Новости C#13. params
От: _FRED_ Черногория
Дата: 29.03.24 11:23
Оценка:
Здравствуйте, Serginio1, Вы писали:

_FR>>System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.

S>На самом деле это еще тот геморрой при рефлексии обрабатывать все варианты. Да еще разные варианты с количество перегрузок методов.

Какие варианты и рефлексию вы имеете в виду? Можете пример показать? Как это связано с первой, второй или 13-той версией языка?
Help will always be given at Hogwarts to those who ask for it.
Re[7]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.03.24 11:33
Оценка: :)
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Serginio1, Вы писали:


_FR>>>System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.

S>>На самом деле это еще тот геморрой при рефлексии обрабатывать все варианты. Да еще разные варианты с количество перегрузок методов.

_FR>Какие варианты и рефлексию вы имеете в виду? Можете пример показать? Как это связано с первой, второй или 13-той версией языка?


Вот у тебя есть имя метода и параметры. По этим данным надо найти реальный метод.
.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
и солнце б утром не вставало, когда бы не было меня
Re[8]: Новости C#13. params
От: _FRED_ Черногория
Дата: 29.03.24 11:50
Оценка: 6 (1) +1
Здравствуйте, Serginio1, Вы писали:

_FR>>>>System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.

S>>>На самом деле это еще тот геморрой при рефлексии обрабатывать все варианты. Да еще разные варианты с количество перегрузок методов.
_FR>>Какие варианты и рефлексию вы имеете в виду? Можете пример показать? Как это связано с первой, второй или 13-той версией языка?

S> Вот у тебя есть имя метода и параметры. По этим данным надо найти реальный метод.

S>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед

Спасибо за очень понятное объяснение. Конечно, это всё объясняет.
Help will always be given at Hogwarts to those who ask for it.
Re[9]: Новости C#13. params
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.06.24 19:52
Оценка: 14 (1) +2
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Serginio1, Вы писали:


_FR>>>>>System.Collections.IEnumerable, например, тоже поддержали, что могли бы сделать и с самого начала.

S>>>>На самом деле это еще тот геморрой при рефлексии обрабатывать все варианты. Да еще разные варианты с количество перегрузок методов.
_FR>>>Какие варианты и рефлексию вы имеете в виду? Можете пример показать? Как это связано с первой, второй или 13-той версией языка?

S>> Вот у тебя есть имя метода и параметры. По этим данным надо найти реальный метод.

S>>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед

_FR>Спасибо за очень понятное объяснение. Конечно, это всё объясняет.

Да в целом-то всё понятно. Вот у нас есть некий object, а ещё — string methodName, плюс object[] arguments.
И хочется воспроизвести все нюансы перегрузки, реализованные в C#.
Внезапно выясняется, что когда мы видим в коде foo.bar(baz1, baz2), то там происходит много всяких подкапотных интересностей.
Начиная от того, что результат зависит не от фактических типов baz1 и baz2, а от формальных. А вот для foo важен как формальный тип, так и фактический.
Даже если выбросить из рассмотрения extension методы, ограничившись только экземплярными, то всё равно там чёрт ногу сломит. Далеко не всякий сходу скажет, что выведет такой код:

using System;
                    
public class Program
{
    public class Foo
    {
       public string bar(object a, string b) => "1";
       public string bar(int a, object b) => "2";
       public string bar(object a, object b) => "3";
       public string bar<A>(A a, string b) => "4";
       public string bar<B>(int a, B b) => "5";
       public string bar(params object[] xs) => "6";
       public string bar(int a, params string[] b) => "7";
    }

    public static void Main()
    {
        var foo = new Foo();
        Console.WriteLine(foo.bar(42, "42"));
    }
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Новости C#13. params
От: _FRED_ Черногория
Дата: 04.07.24 08:26
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>> Вот у тебя есть имя метода и параметры. По этим данным надо найти реальный метод.

S>>>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
_FR>>Спасибо за очень понятное объяснение. Конечно, это всё объясняет.
S>Да в целом-то всё понятно. Вот у нас есть некий object, а ещё — string methodName, плюс object[] arguments.
S>И хочется воспроизвести все нюансы перегрузки, реализованные в C#.
S>Внезапно выясняется, что когда мы видим в коде foo.bar(baz1, baz2), то там происходит много всяких подкапотных интересностей.

Да, там много сложностей и действительно задача "в самом общем виде" не самая простая. Но 1) заметно проще, чем у компилятора и 2) думаю, если не хочется самому это всё выписывать, можно воспользоваться тем, что компилятор создаёт для вызова метода с dynamic-параметрами, типа такого:

S>using System;
                    
S>public class Program
S>{
S>    public class Foo
S>    {
S>       public string bar(object a, string b) => "1";
S>       public string bar(int a, object b) => "2";
S>       public string bar(object a, object b) => "3";
S>       public string bar<A>(A a, string b) => "4";
S>       public string bar<B>(int a, B b) => "5";
S>       public string bar(params object[] xs) => "6";
S>       public string bar(int a, params string[] b) => "7";
S>    }

      public class Foo2
      {
         public static string bar(Foo foo, dynamic a, dynamic b) => foo.bar(a, b);
      }

S>    public static void Main()
S>    {
S>        var foo = new Foo();
S>        Console.WriteLine(Foo2.bar(foo, 42, "42")); // Вызываем "наш" метод заместо искомого
S>    }
S>}
Help will always be given at Hogwarts to those who ask for it.
Re[11]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.07.24 09:40
Оценка:
Здравствуйте, _FRED_, Вы писали:

_
_FR> public class Foo2
_FR> {
_FR> public static string bar(Foo foo, dynamic a, dynamic b) => foo.bar(a, b);
_FR> }

Но пишем то мы универсальный код. Конечно можно динамически скомпилировать.
В той же статье для эвентов генерируется и компилируется код.
Но геморроя добавляется.
и солнце б утром не вставало, когда бы не было меня
Re[12]: Новости C#13. params
От: _FRED_ Черногория
Дата: 04.07.24 09:58
Оценка: 7 (1) +1
Здравствуйте, Serginio1, Вы писали:

_FR>>      public class Foo2
_FR>>      {
_FR>>         public static string bar(Foo foo, dynamic a, dynamic b) => foo.bar(a, b);
_FR>>      }


S> Но пишем то мы универсальный код. Конечно можно динамически скомпилировать.

S>В той же статье для эвентов генерируется и компилируется код.
S> Но геморроя добавляется.

Так посмотрите во что компилятор это превращает:
    public class Foo2
    {
        [CompilerGenerated]
        private static class <>o__0
        {
            public static CallSite<Func<CallSite, Foo, object, object, object>> <>p__0;

            public static CallSite<Func<CallSite, object, string>> <>p__1;
        }

        [NullableContext(1)]
        public static string bar(Foo foo, [Dynamic] object a, [Dynamic] object b)
        {
            if (<>o__0.<>p__1 == null)
            {
                <>o__0.<>p__1 = CallSite<Func<CallSite, object, string>>.Create(Microsoft.CSharp.RuntimeBinder.Binder.Convert(CSharpBinderFlags.None, typeof(string), typeof(Foo2)));
            }
            Func<CallSite, object, string> target = <>o__0.<>p__1.Target;
            CallSite<Func<CallSite, object, string>> <>p__ = <>o__0.<>p__1;
            if (<>o__0.<>p__0 == null)
            {
                Type typeFromHandle = typeof(Foo2);
                CSharpArgumentInfo[] array = new CSharpArgumentInfo[3];
                array[0] = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.UseCompileTimeType, null);
                array[1] = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null);
                array[2] = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null);
                <>o__0.<>p__0 = CallSite<Func<CallSite, Foo, object, object, object>>.Create(Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember(CSharpBinderFlags.None, "bar", null, typeFromHandle, array));
            }
            return target(<>p__, <>o__0.<>p__0.Target(<>o__0.<>p__0, foo, a, b));
        }
    }

и делайте так же.
Help will always be given at Hogwarts to those who ask for it.
Re[10]: Новости C#13. params
От: Baiker  
Дата: 03.09.24 01:53
Оценка: :))
Здравствуйте, Sinclair, Вы писали:

S>Далеко не всякий сходу скажет, что выведет такой код:


S> public string bar(object a, string b) => "1";

S> public string bar(int a, object b) => "2";
S> public string bar(object a, object b) => "3";
S> public string bar<A>(A a, string b) => "4";
S> public string bar<B>(int a, B b) => "5";
S> public string bar(params object[] xs) => "6";
S> public string bar(int a, params string[] b) => "7";

"Ваш код — $#$$%!" (ц) Ванко

Если человек(!!) не может сказать, что выведет компилятор (я угадал — 7), то и КОМПИЛЯТОР НЕ ДОЛЖЕН!
Машина не должна делать то, что человек не в состоянии осмыслить (например, тупые "нейронные сети").
Если ты наоверлоадил и некоторые методы схожи вплоть до неявной конверсии типов, это ПЛОХОЙ оверлоадинг и надо решать задачу по-другому или убирать неоднозначный оверлоадинг.

Это классика тупого поведения микрософта: думать за юзера больше, чем хочет сам юзер. Это программирование, точная наука! Здесь "я программист, я знаю как юзеру лучше!" не работает.
Лучше прогер напишет лишний символ/приведение типов/etc, чем компилятор распухнет от "хардкоженных догадок" и потом люди будут долго медитировать над тем, почему очевидный код ведёт себя криво.
Простота — залог надёжности.
Re: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 15:19
Оценка: :))
Здравствуйте, rameel, Вы писали:

R>В превью версию C#13 добавили для так называемой `params` collections поддержку IEnumerable<T> и ReadOnlySpan<T>. Значит скоро можно будет писать вот так

R>
R>void M(params IEnumerable<int> numbers);
R>void M(params ReadOnlySpan<int> numbers);
R>


R>https://x.com/jcouv/status/1767967748259545522


Ну добавили финтифлюшку и что от этого изменилось? Теперь быстрее программы писать будете?

Я к 40 годам начал смотреть на суть. Когда будет возможно сделать библиотеку на C#, которую можно будет использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?
Re[2]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.10.24 15:38
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, rameel, Вы писали:


R>>В превью версию C#13 добавили для так называемой `params` collections поддержку IEnumerable<T> и ReadOnlySpan<T>. Значит скоро можно будет писать вот так

R>>
R>>void M(params IEnumerable<int> numbers);
R>>void M(params ReadOnlySpan<int> numbers);
R>>


R>>https://x.com/jcouv/status/1767967748259545522


S>Ну добавили финтифлюшку и что от этого изменилось? Теперь быстрее программы писать будете?


S>Я к 40 годам начал смотреть на суть. Когда будет возможно сделать библиотеку на C#, которую можно будет использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?


.Native AOT. Только зачем? В том же .Net в большинстве случаев отказываются от P/Invoke
Так или иначе в .Native AOT Il сначала транслируется в С++, затем с помощью С++ компиляторов генерится машинный код со сборщиком мусора.
и солнце б утром не вставало, когда бы не было меня
Re[3]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 15:45
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> .Native AOT.


iOS и Android: Официально не поддерживаются для Native AOT на данный момент. Для мобильных платформ используются другие технологии, такие как Xamarin/MAUI.

WebAssembly: Не поддерживается напрямую Native AOT. Для работы с WebAssembly используется Blazor и связанный с ним стек.


Т.е. не возможно для всех ОС — и ты хоть обвешай себя разными финтифлюшками — когда нет фундамента дома — бесполезно делать рюшечки на ставнях.

S> Только зачем?


Чтобы переиспользовать код — вынести код в библиотеку и использовать один и тот же код на всех платформах, коих у человечества ровно шесть штук:

1. Windows.
2. Linux.
3. MacOS.
4. Android.
5. iOS.
6. WASM.
Отредактировано 10.10.2024 15:46 Shmj . Предыдущая версия .
Re[4]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.10.24 15:50
Оценка:
Здравствуйте, Shmj, Вы писали:

S>> .Native AOT.


S>

S>iOS и Android: Официально не поддерживаются для Native AOT на данный момент. Для мобильных платформ используются другие технологии, такие как Xamarin/MAUI.

S>WebAssembly: Не поддерживается напрямую Native AOT. Для работы с WebAssembly используется Blazor и связанный с ним стек.


S>Т.е. не возможно для всех ОС — и ты хоть обвешай себя разными финтифлюшками — когда нет фундамента дома — бесполезно делать рюшечки на ставнях.


S>> Только зачем?


S>Чтобы переиспользовать код — вынести код в библиотеку и использовать один и тот же код на всех платформах, коих у человечества ровно шесть штук:


S>1. Windows.

S>2. Linux.
S>3. MacOS.
S>4. Android.
S>5. iOS.
S>6. WASM.

Ииии? Нужно компилировать под каждую платформу отдельно.
Еще кстати есть Tizen OS https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=windows%2Cnet8

Platform Supported architecture Notes
Windows x64, Arm64
Linux x64, Arm64
macOS x64, Arm64
iOS Arm64 Experimental support
iOSSimulator x64, Arm64 Experimental support
tvOS Arm64 Experimental support
tvOSSimulator x64, Arm64 Experimental support
MacCatalyst x64, Arm64 Experimental support
Android x64, Arm64 Experimental, no built-in Java interop
и солнце б утром не вставало, когда бы не было меня
Re[5]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 15:58
Оценка: :)
Здравствуйте, Serginio1, Вы писали:

S> Ииии? Нужно компилировать под каждую платформу отдельно.


Вы можете сделать приложение на .Net, чтобы именно из .Net использовать повторно C#-код.

Однако из того же Python или JS — уже не сможете библиотеку использовать, хотя это самый популярный ЯП.

Т.е. это вещь в себе — песочница для детей и экспериментов, отдаленная от реальной жизни.
Re[6]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.10.24 16:11
Оценка:
Здравствуйте, Shmj, Вы писали:


S>> Ииии? Нужно компилировать под каждую платформу отдельно.


S>Вы можете сделать приложение на .Net, чтобы именно из .Net использовать повторно C#-код.

В большинстве случаев да.
S>Однако из того же Python или JS — уже не сможете библиотеку использовать, хотя это самый популярный ЯП.
Почему? Например .Net через тот же COM прекрасно используется. В том же 1С

Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux

Использование классов .Net в 1С для новичков
S>Т.е. это вещь в себе — песочница для детей и экспериментов, отдаленная от реальной жизни.

Ну это для тебя. Многие используют. Например тот же WebAssembly в Blazor
и солнце б утром не вставало, когда бы не было меня
Re[7]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 17:29
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Однако из того же Python или JS — уже не сможете библиотеку использовать, хотя это самый популярный ЯП.

S> Почему? Например .Net через тот же COM прекрасно используется. В том же 1С

Потому что НЕТ и такова реальность.

Покажите мне хотя бы одну .Net библиотеку, которую авторы предлагают для использования на других языках на всех 6 платформах. ОДНУ!!!

Это просто вы можете верить что так можно, блажен кто верует. Но когда столкнетесь с реальностью — поймёте что это не возможно в принципе, даже за миллионы долларов нет.

Готов поспорить что вы такой библиотеки не найдете.
Отредактировано 10.10.2024 17:31 Shmj . Предыдущая версия .
Re[8]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.10.24 18:03
Оценка:
Здравствуйте, Shmj, Вы писали:

S>>>Однако из того же Python или JS — уже не сможете библиотеку использовать, хотя это самый популярный ЯП.

S>> Почему? Например .Net через тот же COM прекрасно используется. В том же 1С

S>Потому что НЕТ и такова реальность.


S>Покажите мне хотя бы одну .Net библиотеку, которую авторы предлагают для использования на других языках на всех 6 платформах. ОДНУ!!!


S>Это просто вы можете верить что так можно, блажен кто верует. Но когда столкнетесь с реальностью — поймёте что это не возможно в принципе, даже за миллионы долларов нет.


S>Готов поспорить что вы такой библиотеки не найдете.


Вопрос, а зачем? На самом деле .Net хорош во многом, но прежде всего в рефлексии и динамической компиляции.
.Native AOT прежде всего для обфускации и оптимизации критических по скорости приложений.
Но если ооочень хочется то можно https://github.com/dotnet/samples/tree/main/core/nativeaot/NativeLibrary

Суть в том, что сейчас не все классы поддерживают AOT. Много динамической компиляции или рефлексии без ограничений на типы.
Но сейчас такие вещи обходятся интерпретацией Il кода.
Ну и .Native AOT всего то года 2-3!
и солнце б утром не вставало, когда бы не было меня
Re[9]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 18:11
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Вопрос, а зачем?


Чтобы твою библиотеку могли использовать разные разработчики из разных ЯП на 6 платформах. Иначе придется под каждую платформу под каждый язык писать что-то в нуля, а это увеличивает работу сотни и тысячи раз — кроме разработки еще и поддержку.

S>На самом деле .Net хорош во многом, но прежде всего в рефлексии и динамической компиляции.


Это все рюшечки — основа это переиспользование кода и возможность игнтеграции.

S>.Native AOT прежде всего для обфускации и оптимизации критических по скорости приложений.

S>Но если ооочень хочется то можно https://github.com/dotnet/samples/tree/main/core/nativeaot/NativeLibrary

Уже обсуждали — это не работает в моб. осях и WASM. Вообще.

Еще раз вам вопрос. Вот пример либы — https://github.com/jedisct1/libsodium

Она работает:

1. На Windows.
2. На Linux.
3. MacOS.
4. iOS.
5. Android.
6. WASM.

Есть примеры вызова из Python, .Net, Java.

И таких библиотек много. Представляете что было бы, если бы для каждой ОС и для каждой платформы пришлось писать код с нуля???

И во взрослом мире программирования все библиотеки такие. Работают на всех платформах и использовать можно из всех ЯП.

А теперь попробуйте найти хотя бы ОДНУ .Net библиотеку, которую так же можно использовать. Нет и не может быть такого. Сразу начинаются вопросы — а типа зачем, да можно же и без этого и т.д.

S> Ну и .Native AOT всего то года 2-3!


Ну вот когда достигнет зрелости — тогда и можно будет рассматривать.
Отредактировано 10.10.2024 18:12 Shmj . Предыдущая версия .
Re[10]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 10.10.24 18:16
Оценка:
Здравствуйте, Shmj, Вы писали:


S>>.Native AOT прежде всего для обфускации и оптимизации критических по скорости приложений.

S>>Но если ооочень хочется то можно https://github.com/dotnet/samples/tree/main/core/nativeaot/NativeLibrary

S>Уже обсуждали — это не работает в моб. осях и WASM. Вообще.


Угу а как же Blazor WASM то работает?
и солнце б утром не вставало, когда бы не было меня
Re[11]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 10.10.24 18:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>>.Native AOT прежде всего для обфускации и оптимизации критических по скорости приложений.

S>>>Но если ооочень хочется то можно https://github.com/dotnet/samples/tree/main/core/nativeaot/NativeLibrary

S>>Уже обсуждали — это не работает в моб. осях и WASM. Вообще.


S> Угу а как же Blazor WASM то работает?


Blazor WASM разве использует native aot?

См. мой вопрос выше — попытайтесь ответить и все поймете — хотя бы один аналог такой библиотеки https://rsdn.org/forum/dotnet/8829536.1
Автор: Shmj
Дата: 10.10 21:11
Re[12]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.10.24 07:14
Оценка:
Здравствуйте, Shmj, Вы писали:

S>>>>.Native AOT прежде всего для обфускации и оптимизации критических по скорости приложений.

S>>>>Но если ооочень хочется то можно https://github.com/dotnet/samples/tree/main/core/nativeaot/NativeLibrary

S>>>Уже обсуждали — это не работает в моб. осях и WASM. Вообще.


S>> Угу а как же Blazor WASM то работает?


S>Blazor WASM разве использует native aot?

ASP.NET Core Blazor WebAssembly build tools and ahead-of-time (AOT) compilation

Тоже предполагаю, что переводится в C++, а затем компилятором C++ уже в WASM. То есть все то же самое что и в библиотеки или приложение

То есть все, что может С++ то же умеет и .Native AOT

Компиляция кода C/C++ в WebAssembly

C# in Browser via WebAssembly (without Blazor)
и солнце б утром не вставало, когда бы не было меня
Отредактировано 11.10.2024 8:30 Serginio1 . Предыдущая версия . Еще …
Отредактировано 11.10.2024 7:42 Serginio1 . Предыдущая версия .
Отредактировано 11.10.2024 7:38 Serginio1 . Предыдущая версия .
Отредактировано 11.10.2024 7:28 Serginio1 . Предыдущая версия .
Re[13]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 09:18
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>Blazor WASM разве использует native aot?

S>ASP.NET Core Blazor WebAssembly build tools and ahead-of-time (AOT) compilation

S>Тоже предполагаю, что переводится в C++, а затем компилятором C++ уже в WASM. То есть все то же самое что и в библиотеки или приложение


А как можно перевести в C++ ? Разве такая возможность есть?
Re[14]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.10.24 09:48
Оценка:
Здравствуйте, Shmj, Вы писали:

S>>>Blazor WASM разве использует native aot?

S>>ASP.NET Core Blazor WebAssembly build tools and ahead-of-time (AOT) compilation

S>>Тоже предполагаю, что переводится в C++, а затем компилятором C++ уже в WASM. То есть все то же самое что и в библиотеки или приложение


S>А как можно перевести в C++ ? Разве такая возможность есть?

Вот нахрена я тебе ссылки даю?
https://learn.microsoft.com/ru-ru/dotnet/core/deploying/native-aot/?tabs=linux-ubuntu%2Cnet8#prerequisites
Для ubuntu например нужен clang.

Кстати я как понял после покупки MONO они взяли и IL2CPP Overview
Введение в IL2CPP

.NET Native это предшественник Native AOT
.Net Native использует ту же серверную часть, что и компилятор C++, который оптимизирован для статических сценариев предварительной компиляции.

.NET Native может обеспечить производительность на уровне C++ для разработчиков управляемого кода, так как эта технология использует те же или аналогичные средства, что и C++, как показано в этой таблице.
и солнце б утром не вставало, когда бы не было меня
Отредактировано 11.10.2024 10:10 Serginio1 . Предыдущая версия .
Re[15]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 11:14
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>А как можно перевести в C++ ? Разве такая возможность есть?

S> Вот нахрена я тебе ссылки даю?
S>https://learn.microsoft.com/ru-ru/dotnet/core/deploying/native-aot/?tabs=linux-ubuntu%2Cnet8#prerequisites
S>Для ubuntu например нужен clang.

Напрямую C++ код можно получить?

Далее — есть ли пример хотя бы одной .Net библиотеки, которую можно использовать из любого языка на всех 6 платформах? Хотя бы одна?

Скорее всего сделать такое не возможно в принципе — это фундамент, а в фундаменте как всегда заложена мина. Т.е. это чисто вещь в себе — будете использовать из приложений .Net, и с ограничениями, все будет медленно, приложения будут большими + не всегда стабильно работать.
Отредактировано 11.10.2024 11:15 Shmj . Предыдущая версия .
Re[16]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.10.24 12:48
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:


S>>>А как можно перевести в C++ ? Разве такая возможность есть?

S>> Вот нахрена я тебе ссылки даю?
S>>https://learn.microsoft.com/ru-ru/dotnet/core/deploying/native-aot/?tabs=linux-ubuntu%2Cnet8#prerequisites
S>>Для ubuntu например нужен clang.

S>Напрямую C++ код можно получить?


S>Далее — есть ли пример хотя бы одной .Net библиотеки, которую можно использовать из любого языка на всех 6 платформах? Хотя бы одна?


S>Скорее всего сделать такое не возможно в принципе — это фундамент, а в фундаменте как всегда заложена мина. Т.е. это чисто вещь в себе — будете использовать из приложений .Net, и с ограничениями, все будет медленно, приложения будут большими + не всегда стабильно работать.

Почему нельзя объясни? Это всё твои предположения. Еще раз все компилится в С++ а из него в нужный машинный код!

https://joeysenna.com/posts/nativeaot-in-c-plus-plus
https://stackoverflow.com/questions/74944873/call-nativeaot-c-sharp-dll-from-delphi
https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.unmanagedcallersonlyattribute?view=net-8.0
и солнце б утром не вставало, когда бы не было меня
Отредактировано 11.10.2024 12:54 Serginio1 . Предыдущая версия .
Re[17]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 16:30
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Почему нельзя объясни? Это всё твои предположения. Еще раз все компилится в С++ а из него в нужный машинный код!


S>https://joeysenna.com/posts/nativeaot-in-c-plus-plus

S>https://stackoverflow.com/questions/74944873/call-nativeaot-c-sharp-dll-from-delphi
S>https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.unmanagedcallersonlyattribute?view=net-8.0

Вместо теоретических размышлений и вопросов — дай хотя бы ОДНУ практически реализованную библиотеку, которая такой фукнционал предоставляет — т.е. чтобы был запуск на 6 платформах и возможность использовать из любого языка.

Уверен что нет таких библиотек. Ни одной.

И при попытке реализовать — будет масса проблем, после которых неудобства синтаксиса С++ или Rust вам покажутся цветочками.

Жду от вас практическую бибилиотеку. Ну или вы попробуйте сделать. Уверен что нет таких библиотек и когда РЕАЛЬНО попробуете сделать (а не языком) — столкнетесь с непреодолимыми сложностями. Может сделать и даже статью на Хабре запилить если что-то получится из этого (и даже если не получится).
Re[18]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.10.24 17:01
Оценка:
Здравствуйте, Shmj, Вы писали:

S>> Почему нельзя объясни? Это всё твои предположения. Еще раз все компилится в С++ а из него в нужный машинный код!


S>>https://joeysenna.com/posts/nativeaot-in-c-plus-plus

S>>https://stackoverflow.com/questions/74944873/call-nativeaot-c-sharp-dll-from-delphi
S>>https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.unmanagedcallersonlyattribute?view=net-8.0

S>Вместо теоретических размышлений и вопросов — дай хотя бы ОДНУ практически реализованную библиотеку, которая такой фукнционал предоставляет — т.е. чтобы был запуск на 6 платформах и возможность использовать из любого языка.


S>Уверен что нет таких библиотек. Ни одной.


S>И при попытке реализовать — будет масса проблем, после которых неудобства синтаксиса С++ или Rust вам покажутся цветочками.


Еще раз есть проблемы с компиляцией в рантайме, которая обходится через интерпретатор и рефлексия без ограничений.

S>Жду от вас практическую бибилиотеку. Ну или вы попробуйте сделать. Уверен что нет таких библиотек и когда РЕАЛЬНО попробуете сделать (а не языком) — столкнетесь с непреодолимыми сложностями. Может сделать и даже статью на Хабре запилить если что-то получится из этого (и даже если не получится).

Мне они не нужны. И времени на данный момент тоже, что бы статьи писал. Возможность есть. Многие используют, так как в много библиотек. Но не все они на данный компилируются.
Но вот блазор в вэбассембли содержит еще и IL код который интерпретируется.
Но ты же утверждаешь, что нет возможности. Я тебе привел что IL код переводится в C++ а из него уже в код на нужной платформе со сборщиком мусора.

Обычно пишут такого рода библиотеки как плагины для доступа к существующему софту на .Net.
Просто раньше можно было подключаться через Написание пользовательского хост-приложения .NET для управления средой выполнения .NET из машинного кода

Сейчас можно сразу компилировать в натив и использовать напрямую. Возможно еще и добавят генерацию заголовочных файлов.
и солнце б утром не вставало, когда бы не было меня
Re[19]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 18:02
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Мне они не нужны. И времени на данный момент тоже, что бы статьи писал. Возможность есть. Многие используют, так как в много библиотек. Но не все они на данный компилируются.

S>Но вот блазор в вэбассембли содержит еще и IL код который интерпретируется.
S> Но ты же утверждаешь, что нет возможности. Я тебе привел что IL код переводится в C++ а из него уже в код на нужной платформе со сборщиком мусора.

Меня интересуют не философские измышления и как в теории это возможно (может быть) — а практика.

Вы хотите сказать что это возможно, но еще никто в мире не сделал ни одной библиотеки кроссплатформенной, не смотря на то что такая возможность присутствует?

Т.е. реально думаете что на C# можно написать код, который компилить скриптами для всех 6 платформ и потом использовать из любого ЯП, как на нормальных ЯП? Реально думаете что возможно это, но никто еще не сделал такой библиотеки в мире?
Re[16]: Новости C#13. params
От: rudzuk  
Дата: 11.10.24 18:38
Оценка: 7 (1)
Здравствуйте, Shmj, Вы писали:

S> Скорее всего сделать такое не возможно в принципе — это фундамент, а в фундаменте как всегда заложена мина. Т.е. это чисто вещь в себе — будете использовать из приложений .Net, и с ограничениями, все будет медленно, приложения будут большими + не всегда стабильно работать.


Во, смари: https://www.remobjects.com/elements/ Шесть языков, шарп в том числе, с возможностью фигачить под семь программных платформ (прикинь, на шарпе можешь фигачить под жэвээм и ведроид). Пользуйся. Средства для кросс наличествуют.
avalon/3.0.2
Re[17]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 18:48
Оценка: :))
Здравствуйте, rudzuk, Вы писали:

R>Во, смари: https://www.remobjects.com/elements/ Шесть языков, шарп в том числе, с возможностью фигачить под семь программных платформ (прикинь, на шарпе можешь фигачить под жэвээм и ведроид). Пользуйся. Средства для кросс наличествуют.


Но это платное — чтобы не учить C++ и писать ущербные библиотеки на любимом шарпике — вам придется платить налог $999 за вход и 749/year за обновление. При этом платформа не известная, не популярная и вы не сможете найти команду под эту платформу.

Так же не думаю что там все гладко — скорее всего банальные либы будут получаться дутые — типа мин. функционал — 5 МБ, а добавил чуть либ — уже 50 МБ, притом что такая же читая на C++ будет 500 Кб.

Смотрите на суть — смотрите не на финтифлюшки а на фундамент.
Отредактировано 11.10.2024 18:50 Shmj . Предыдущая версия .
Re[18]: Новости C#13. params
От: rudzuk  
Дата: 11.10.24 18:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Но это платное — чтобы не учить C++ и писать ущербные библиотеки на любимом шарпике — вам придется платить налог $999 за вход и 749/year за обновление.


$999 не за вход, а за все языки. За один язык — $749. Впрочем, есть и за 200 баксов вариант. Зато любая платформа на любимом язычке, а не пердолинг с сисиплюсами и растаманией. Не хочешь платить — пердолься и дальше.

S> При этом платформа не известная, не популярная и вы не сможете найти команду под эту платформу.


Завязывай, теоретик.
avalon/3.0.2
Re[18]: Новости C#13. params
От: rudzuk  
Дата: 11.10.24 19:00
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S> Так же не думаю что там все гладко — скорее всего банальные либы будут получаться дутые — типа мин. функционал — 5 МБ, а добавил чуть либ — уже 50 МБ, притом что такая же читая на C++ будет 500 Кб.


Завязывай, теоретик.
avalon/3.0.2
Re[20]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.10.24 19:09
Оценка:
Здравствуйте, Shmj, Вы писали:



S>> Мне они не нужны. И времени на данный момент тоже, что бы статьи писал. Возможность есть. Многие используют, так как в много библиотек. Но не все они на данный компилируются.

S>>Но вот блазор в вэбассембли содержит еще и IL код который интерпретируется.
S>> Но ты же утверждаешь, что нет возможности. Я тебе привел что IL код переводится в C++ а из него уже в код на нужной платформе со сборщиком мусора.

S>Меня интересуют не философские измышления и как в теории это возможно (может быть) — а практика.


S>Вы хотите сказать что это возможно, но еще никто в мире не сделал ни одной библиотеки кроссплатформенной, не смотря на то что такая возможность присутствует?


S>Т.е. реально думаете что на C# можно написать код, который компилить скриптами для всех 6 платформ и потом использовать из любого ЯП, как на нормальных ЯП? Реально думаете что возможно это, но никто еще не сделал такой библиотеки в мире?


То есть ты утверждаешь, что на С++ невозможно компилить код для 6 платформ?
IL код прекрасно транслируется в С++. А кто там, что пишет мне неизвестно. Я даже нативными библиотеками не пользуюсь. Вернее если и пользуюсь, то они где то далеко скрыты в PInvoke
и их минимум.
и солнце б утром не вставало, когда бы не было меня
Re[19]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 22:50
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>$999 не за вход, а за все языки. За один язык — $749. Впрочем, есть и за 200 баксов вариант. Зато любая платформа на любимом язычке, а не пердолинг с сисиплюсами и растаманией. Не хочешь платить — пердолься и дальше.


Все-равно — ты платишь за якобы неспособность выучить нормальный язык, который умеет все это из коробки.

А что на выходе то получается? Каков размер мин. библиотеки WASM получается?

S>> При этом платформа не известная, не популярная и вы не сможете найти команду под эту платформу.

R>Завязывай, теоретик.

Дело вот в чем. Ты можешь создать либу на C# — но чтобы другие ее могли использовать на всех 6 платформах им нужно заплатить $749. Бывает что у либы 1 млн. пользователей — и каждый из 1 млн. — должен заплатить $749 — а это уже почти миллиард долларов.

Все дело в деньгах — на нормальных платформах все это БЕСПЛАТНО для всех.

Более того — это вендорлок. Что ты будешь делать, если эта конторка загнется или решит перестать поддерживать твой язык?
Re[19]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 22:52
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> Так же не думаю что там все гладко — скорее всего банальные либы будут получаться дутые — типа мин. функционал — 5 МБ, а добавил чуть либ — уже 50 МБ, притом что такая же читая на C++ будет 500 Кб.


R>Завязывай, теоретик.


А ты то использовал эту платформу? Я не слышал даже ранее, не смотря на то что хабр читаю постоянно. Но дело в другом, повторюсь:

Дело вот в чем. Ты можешь создать либу на C# — но чтобы другие ее могли использовать на всех 6 платформах им нужно заплатить $749. Бывает что у либы 1 млн. пользователей — и каждый из 1 млн. — должен заплатить $749 — а это уже почти миллиард долларов.

Все дело в деньгах — на нормальных платформах все это БЕСПЛАТНО для всех.

Более того — это вендорлок. Что ты будешь делать, если эта конторка загнется или решит перестать поддерживать твой язык?


А теперь подумай почему конкретно ты так не хочешь учить C++ и готов отмазывать C#, даже платить деньги за это — крыть нечем?
Re[21]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 11.10.24 22:53
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> То есть ты утверждаешь, что на С++ невозможно компилить код для 6 платформ?

S>IL код прекрасно транслируется в С++. А кто там, что пишет мне неизвестно. Я даже нативными библиотеками не пользуюсь. Вернее если и пользуюсь, то они где то далеко скрыты в PInvoke
S>и их минимум.

Как IL транслировать в C++ ? Дай пример — посмотрим что там получается. Что со сборкой мусора?
Re[20]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 01:02
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Все-равно — ты платишь за якобы неспособность выучить нормальный язык, который умеет все это из коробки.


Нет. Ты платишь за клевые возможности предоставляемые инструментом (в доку загляни, почитай о концепциях), а так же за качественную поддержку.

S> А что на выходе то получается? Каков размер мин. библиотеки WASM получается?


Скачай и проверь

S> Дело вот в чем. Ты можешь создать либу на C# — но чтобы другие ее могли использовать на всех 6 платформах им нужно заплатить $749.


Выдыхай, бобер. Ты платишь за инструмент, а результат своего труда (полностью отчуждаемый и не привязанный к вендору тулзов) можешь раздавать бесплатно.

S> Более того — это вендорлок. Что ты будешь делать, если эта конторка загнется или решит перестать поддерживать твой язык?


Какой еще вендорлок??? У них только один собственный язык (паскалеподобный), остальные языки мейнстримовые (например, там есть радость Лаптева — GOшечка, на которой так же можно фигатчить под все платформы и даже с гуем). RTL и некоторые тулзы вообще с открытыми кодами Загнись контора, языковые скилы никуда не пропадут (будет печально, конечно, вернуться в песочницу МС/гугла/жабы, но люди и там живут. не смертельно)

А что ты будешь делать, когда завтра АНБ запретит использовать сисиплюсы во всех странах сателитах? Вернешься в неньку, возрождать местое ойти? Глупости, примерно, одного порядка.
avalon/3.0.2
Re[20]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 01:02
Оценка:
Здравствуйте, Shmj, Вы писали:

S> А ты то использовал эту платформу?


Да. И знаю людей, у которых на этом продукт.

S> Я не слышал даже ранее, не смотря на то что хабр читаю постоянно.


Читай лучше.

https://habr.com/ru/sandbox/111016/
https://habr.com/ru/articles/489708/

S> А теперь подумай почему конкретно ты так не хочешь учить C++ и готов отмазывать C#, даже платить деньги за это — крыть нечем?


От ненадобности. От ненадобности и отвратного синтаксиса. И шарп туда же.
avalon/3.0.2
Re[21]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 01:18
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Нет. Ты платишь за клевые возможности предоставляемые инструментом (в доку загляни, почитай о концепциях), а так же за качественную поддержку.


Нам лишь нужна одна возможность — чтобы код либы работал на всех 6-ти платформах — об этом же речь.

C# из коробки стандартными инструментами так не умеет — в мире нет ни одной НИ ОДНОЙ библиотеки на C#, которая бы собиралась под все платформы. Ну нет их.

И вы тут приводите какой-то сторонний инструмент, который за немалые деньги якобы может это обеспечить.

R>Выдыхай, бобер. Ты платишь за инструмент, а результат своего труда (полностью отчуждаемый и не привязанный к вендору тулзов) можешь раздавать бесплатно.


А как люди будут собирать вашу библиотеку? Допустим, вы хотите продать библиотеку с исходниками за $500. Люди ее сами хотят собирать. Пробуют собрать под все платформы (проверив код, добавив то что им нужно) — и фига. Спрашивают у вас как — а вы такой — ну, понимаете, еще нужно штуку баксов добавить чтобы купить прогу, которая умеет это собирать Сказать куда вас пошлют?

Нет, это не решение.

S>> Более того — это вендорлок. Что ты будешь делать, если эта конторка загнется или решит перестать поддерживать твой язык?


R>Какой еще вендорлок??? У них только один собственный язык (паскалеподобный), остальные языки мейнстримовые (например, там есть радость Лаптева — GOшечка, на которой так же можно фигатчить под все платформы и даже с гуем). RTL и некоторые тулзы вообще с открытыми кодами Загнись контора, языковые скилы никуда не пропадут (будет печально, конечно, вернуться в песочницу МС/гугла/жабы, но люди и там живут. не смертельно)


Да причем тут их языки. Без их приблуды вы уже не сможете собирать либы на C# под все платформы. Т.е. вы привязываетесь к ним. Поднимут цену или или вообще выкинут C# — и все.

R>А что ты будешь делать, когда завтра АНБ запретит использовать сисиплюсы во всех странах сателитах? Вернешься в неньку, возрождать местое ойти? Глупости, примерно, одного порядка.


Это не в их власти. А вот коммерческий продукт вполне могут прекратить развивать — скажут что убыточно. Было уже много раз.
Отредактировано 12.10.2024 1:20 Shmj . Предыдущая версия .
Re[21]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 01:19
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> А теперь подумай почему конкретно ты так не хочешь учить C++ и готов отмазывать C#, даже платить деньги за это — крыть нечем?

R>От ненадобности. От ненадобности и отвратного синтаксиса. И шарп туда же.

Так а что же не туда же?
Re[22]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.10.24 10:42
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:


S>> То есть ты утверждаешь, что на С++ невозможно компилить код для 6 платформ?

S>>IL код прекрасно транслируется в С++. А кто там, что пишет мне неизвестно. Я даже нативными библиотеками не пользуюсь. Вернее если и пользуюсь, то они где то далеко скрыты в PInvoke
S>>и их минимум.

S>Как IL транслировать в C++ ? Дай пример — посмотрим что там получается. Что со сборкой мусора?

Я уже давал тебе ссылки на Il2CPP. Смотри Unity на том же яблоке.
Но IL2CPP старый проект надо смотреть Native AOT
Кстати про заголовочные файлы https://github.com/dotnet/runtime/issues/100747

По .Net Native больше информации
https://learn.microsoft.com/ru-ru/windows/uwp/dotnet-native/net-native-and-compilation#just-in-time-compilation

.NET Native заменяет полную среду CLR на оптимизированную среды выполнения, которая в первую очередь содержит сборщика мусора. Оптимизированная среда выполнения находится в библиотеке mrt100_app.dll, которая является локальной для приложения и имеет размер только несколько сотен килобайт. Это возможно потому, что статическое связывание устраняет необходимость во многих операциях, реализуемых средой CLR.

Примечание

.NET Native использует тот же сборщик мусора, что и стандартная среда CLR. В сборщике мусора .NET Native фоновая сборка мусора включена по умолчанию. Дополнительные сведения о сборке мусора см. в разделе Основы сборки мусора.


Здесь про производительность про эволюцию Native AOT .Net 8 vs .Net 9.
Вообще MS вкладываются в развитие Native AOT
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/

Усовершенствования встраивание для собственного AOT

Тут нашел
https://www.linux.org.ru/forum/development/17559964/page1?ysclid=m2608onp93145387422

По словам Claude.ai:

Here are some key points about garbage collection in .NET Native AOT-compiled binaries:

GC Design: The .NET Native GC is designed to be simpler and more predictable than the traditional .NET GC. It uses a non-compacting, mark-and-sweep algorithm, which avoids the need for compaction and simplifies the GC implementation.
AOT Compilation: During the AOT compilation process, the compiler analyzes the code and generates GC information and metadata that is embedded in the final binary. This metadata is used by the AOT GC at runtime.
GC Triggering: The AOT GC is triggered based on a simple threshold mechanism. When the amount of allocated memory crosses a predefined threshold, the GC is triggered to reclaim unused memory.
Thread Suspension: Unlike the traditional .NET GC, which suspends all threads during a collection, the .NET Native GC uses a concurrent marking phase that allows threads to continue running during most of the collection cycle.
Memory Layout: The .NET Native GC uses a different memory layout compared to the traditional .NET runtime. It separates the managed heap into different regions, including the new object space, the large object space, and the pinned object space.
Performance Characteristics: The .NET Native GC is designed to be more deterministic and predictable in terms of performance, at the cost of some throughput compared to the traditional .NET GC. This predictability is important for scenarios like ahead-of-time compiled apps, where consistent performance is crucial.
Btw., следующий релиз .NET v9 нацелен на cloud-native приложения, наверно, Goкрыс на мороз будут выпинывать?

и солнце б утром не вставало, когда бы не было меня
Re[22]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 10:44
Оценка:
Здравствуйте, Shmj, Вы писали:

S> И вы тут приводите какой-то сторонний инструмент, который за немалые деньги якобы может это обеспечить.


Не якобы, а обеспечивает. Продажа всего двух лицензий твоей либы ($500) покроет все расходы. Ойфончик дороже стоит.

S> R>Выдыхай, бобер. Ты платишь за инструмент, а результат своего труда (полностью отчуждаемый и не привязанный к вендору тулзов) можешь раздавать бесплатно.


S> А как люди будут собирать вашу библиотеку?


Сам собирай.

S> Допустим, вы хотите продать библиотеку с исходниками за $500. Люди ее сами хотят собирать.


Идут и качают триал (за 30 дней осилят, поди), коли им чешется самим собирать

S> Да причем тут их языки. Без их приблуды вы уже не сможете собирать либы на C# под все платформы. Т.е. вы привязываетесь к ним. Поднимут цену или или вообще выкинут C# — и все.


Цену они, как раз, снизили и прилично. Раньше было дороже. И, разумеется, никто не станет выкидывать никакие компиляторы, не выдумывай.

S> Это не в их власти. А вот коммерческий продукт вполне могут прекратить развивать — скажут что убыточно. Было уже много раз.


Обычно, то что убыточно, выкидывают в опенсорс. В общем, спорить с твоими фантазиями скучно и не интересно. Но ты уже знаешь, что сисиплюс не единственное решение, уже хорошо.
avalon/3.0.2
Re[22]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 10:44
Оценка:
Здравствуйте, Shmj, Вы писали:

S> S>> А теперь подумай почему конкретно ты так не хочешь учить C++ и готов отмазывать C#, даже платить деньги за это — крыть нечем?


S> R>От ненадобности. От ненадобности и отвратного синтаксиса. И шарп туда же.


S> Так а что же не туда же?


Pascal, Ada.
avalon/3.0.2
Re[23]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 11:15
Оценка: :)
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, Shmj, Вы писали:


S>>Здравствуйте, Serginio1, Вы писали:


S>>> То есть ты утверждаешь, что на С++ невозможно компилить код для 6 платформ?

S>>>IL код прекрасно транслируется в С++. А кто там, что пишет мне неизвестно. Я даже нативными библиотеками не пользуюсь. Вернее если и пользуюсь, то они где то далеко скрыты в PInvoke
S>>>и их минимум.

S>>Как IL транслировать в C++ ? Дай пример — посмотрим что там получается. Что со сборкой мусора?

S>Я уже давал тебе ссылки на Il2CPP. Смотри Unity на том же яблоке.
S> Но IL2CPP старый проект надо смотреть Native AOT
S>Кстати про заголовочные файлы https://github.com/dotnet/runtime/issues/100747

S>По .Net Native больше информации

S>https://learn.microsoft.com/ru-ru/windows/uwp/dotnet-native/net-native-and-compilation#just-in-time-compilation

Если бы это реально работало — была бы хотя бы одна библиотека в мире, написанная на C#, и которую можно собрать под все 6 платформ.

Мне не охота время тратить — уверен на 99.99999% что там подводные камни, которые сводят все на нет.
Re[23]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 11:16
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Не якобы, а обеспечивает. Продажа всего двух лицензий твоей либы ($500) покроет все расходы. Ойфончик дороже стоит.


Деньги на дороге не валяются, тем более либа может быть и более дешевая.

R>Идут и качают триал (за 30 дней осилят, поди), коли им чешется самим собирать


Нет, так серьезные люди не работают.

R>Обычно, то что убыточно, выкидывают в опенсорс. В общем, спорить с твоими фантазиями скучно и не интересно. Но ты уже знаешь, что сисиплюс не единственное решение, уже хорошо.


Но потом оно будет работать ограниченно, если вообще будет.
Re[24]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 11:30
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S> R>Не якобы, а обеспечивает. Продажа всего двух лицензий твоей либы ($500) покроет все расходы. Ойфончик дороже стоит.


S> Деньги на дороге не валяются, тем более либа может быть и более дешевая.


Короче, это не высокая цена за инструмент профессиональной деятельности. И за нее ты получаешь то, чего нет у бесплатных инструментов — поддержку (а у этой конторы поддержка очень хорошая).

S> R>Идут и качают триал (за 30 дней осилят, поди), коли им чешется самим собирать


S> Нет, так серьезные люди не работают.


Чой-та? А сисиплюсы качать не потребуется для сборки твоей либы? К тому же, там триал полнофункциональный.

S> R>Обычно, то что убыточно, выкидывают в опенсорс. В общем, спорить с твоими фантазиями скучно и не интересно. Но ты уже знаешь, что сисиплюс не единственное решение, уже хорошо.


S> Но потом оно будет работать ограниченно, если вообще будет.


Чой-та? Если все будет выложено, то и проблем не будет.
avalon/3.0.2
Re[25]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 12:01
Оценка: :)
Здравствуйте, rudzuk, Вы писали:

R>Короче, это не высокая цена за инструмент профессиональной деятельности. И за нее ты получаешь то, чего нет у бесплатных инструментов — поддержку (а у этой конторы поддержка очень хорошая).


Дело в другом. Библиотеки часто продают с исходниками, не в скомпленном виде. Особенно когда речь не про $30 версию а про $200-500.

Так вот — ты обязываешь каждого пользователя покупать эту приблуду, которая им нафиг не нужна.

S>> R>Идут и качают триал (за 30 дней осилят, поди), коли им чешется самим собирать

S>> Нет, так серьезные люди не работают.
R>Чой-та? А сисиплюсы качать не потребуется для сборки твоей либы? К тому же, там триал полнофункциональный.

С++ компиляторов куча — бесплатне легально и навсегда. Все собирается одной командой. В т.ч. можно и на сервере сборку настроить автоматом.

А эта приблуда на билд-сервере будет работать на Линуксе?

S>> Но потом оно будет работать ограниченно, если вообще будет.

R>Чой-та? Если все будет выложено, то и проблем не будет.

Если нет поддержки — новые версии языка перестанут работать.

В любом случае — нафиг нужно это, привязываться к какой-то мелкой конторке с неясными перспективами да еще и за платно. Это не то. Это ограничивает и совсем другой тип продукта получается — никому это не нужно.

Опенсорс с двойной политикой лицензирования уже не получится сделать — чтобы либа, скачал и под любую платформу скриптом сбилдил БЕСПЛАТНО.
Re[26]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 12:17
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Дело в другом. Библиотеки часто продают с исходниками, не в скомпленном виде. Особенно когда речь не про $30 версию а про $200-500.


И?

S> Так вот — ты обязываешь каждого пользователя покупать эту приблуду, которая им нафиг не нужна.


Ничего покупать не нужно. Качаешь тулзу БЕСПЛАТНО. Устанавливаешь. Собираешь свою библиотеку. Целых 30 дней можешь собирать и пересобирать. Ничего платить не нужно. К слову, я уже не помню точно, но, кажется, там компилятор командной строки вообще бесплатный (т.е. будет работать без ограничений).

S> R>Чой-та? А сисиплюсы качать не потребуется для сборки твоей либы? К тому же, там триал полнофункциональный.


S> С++ компиляторов куча — бесплатне легально и навсегда. Все собирается одной командой. В т.ч. можно и на сервере сборку настроить автоматом.


И че, их качать и ставить не нужно?

S> А эта приблуда на билд-сервере будет работать на Линуксе?


Я сам не пробовал, но версия компилятора и инструментов сборки для линукса там есть.

S> Если нет поддержки — новые версии языка перестанут работать.


Так прибежит толпа фанатиков опенсорса и запилит. Так было с борландовским интребейзом, когда его выкинули на мороз. Благодаря этому сейчас есть клевый файрберд (а интербейз даже воскрес).

S> В любом случае — нафиг нужно это, привязываться к какой-то мелкой конторке с неясными перспективами да еще и за платно. Это не то. Это ограничивает и совсем другой тип продукта получается — никому это не нужно.


Я с эмоциями спорить не умею и не стану.

S> Опенсорс с двойной политикой лицензирования уже не получится сделать — чтобы либа, скачал и под любую платформу скриптом сбилдил БЕСПЛАТНО.


...и с нелепыми фантазиями тоже.
avalon/3.0.2
Re[27]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 16:58
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Ничего покупать не нужно. Качаешь тулзу БЕСПЛАТНО. Устанавливаешь. Собираешь свою библиотеку. Целых 30 дней можешь собирать и пересобирать. Ничего платить не нужно. К слову, я уже не помню точно, но, кажется, там компилятор командной строки вообще бесплатный (т.е. будет работать без ограничений).


Вы как школьник рассуждаете. Типа скачал — и раз работает — то можно делать что хочешь.

Так и Windows Server покупать не нужно — зачем, если там полноценный триал 90 дней а потом можно и грохнуть инстанс и создать заново. Зачем 6 штук баксов платить за Windows Server 2022 Datacenter?

Нет, так это не работает.

В первую очередь при выборе ПО юрист компании смотрит НА ЛИЦЕНЗИЮ. Позволяет ли лицензия использовать или нет. Код может быть доступен даже вообще открыт, но копания будет платить деньги за лицензию (не смотря на то что теоретически могли бы надуть и скачать по GPL, ведь автор то не узнает сразу об этом).

Триальная версия не дает вам права коммерческого использования и это всплывет.

R>И че, их качать и ставить не нужно?


Дело не в скачать — бесплатно скачать вы и Windows можете. Дело в политике лицензирования.

Разбирайтесь в политиках лицензирования — что такое GPL, BSD, MIT — почему даже при двойном лицензировании компании платят деньги, а не юзают тайком бесплатно.

Школьник Вася может и плевал бы на все эти вопросы — но так у него и денег нет, он по другим принципам живет. Он и покупать ничего не будет.
Отредактировано 12.10.2024 17:54 Shmj . Предыдущая версия .
Re[28]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 18:13
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Триальная версия не дает вам права коммерческого использования и это всплывет.


Компилятор командной строки там был бесплатным. Посмотрел сейчас, они вообще всю систему сборки собираются сделать открытой (кстати да, на линуксе, в рамках билд-сервера, оно работает).
avalon/3.0.2
Re[29]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 12.10.24 18:17
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> Триальная версия не дает вам права коммерческого использования и это всплывет.

R>Компилятор командной строки там был бесплатным.

Где бесплатный? Что скачать?

R>Посмотрел сейчас, они вообще всю систему сборки собираются сделать открытой (кстати да, на линуксе, в рамках билд-сервера, оно работает).


Но вот когда сделают — тогда и посмотрим. В любом случае остается риск что продукт перестанут поддерживать — уже было много подобных примеров.

C++ может и не имеет рюшечек, однако в нем есть фундамент — работает на 6 платформах бесплатно навсегда с множеством компиляторов, каждый из которых развивается независимо без риска прекращения поддержки всего — без единой точки отказа.

Вы предлагаете фундаментом сделать некую корпорацию https://en.wikipedia.org/wiki/RemObjects_Software — т.е. свою жизнь завязать на некую конторку, в которой даже не ясно сколько людей работает. Нужно ли объяснять что это плохой фундамент?
Отредактировано 12.10.2024 18:22 Shmj . Предыдущая версия . Еще …
Отредактировано 12.10.2024 18:20 Shmj . Предыдущая версия .
Re[30]: Новости C#13. params
От: rudzuk  
Дата: 12.10.24 19:06
Оценка:
Здравствуйте, Shmj, Вы писали:

S> S>> Триальная версия не дает вам права коммерческого использования и это всплывет.


S> R>Компилятор командной строки там был бесплатным. Посмотрел сейчас, они вообще всю систему сборки собираются сделать открытой (кстати да, на линуксе, в рамках билд-сервера, оно работает).


S> Где бесплатный? Что скачать?


Компилятор командной строки был бесплатным с далеких времен: http://remobjects.github.io/train/Compiling/index.html (правда, они этот факт не особо афишируют)

Страница скачивания елементов: https://www.remobjects.com/elements/channels.aspx

Там есть полный пакет, иде для мака и отдельно компиляторы и система сборки для линукса и мака.

Про установку компилятора говорится здесь: https://docs.elementscompiler.com/Compiler/Installing/

the command line compiler is installed and made available automatically as part of the regular setup. To just install the command line compiler, you can simply disable the "Water" and "Visual Studio" option when running setup.


А это https://www.remobjects.com/elements/ebuild.aspx их система сборки, которую они собираются сделать открытой.

А вот сборка C# проекта этим ebuild'ом:
C:\Utils\test\ConsoleApplication>ebuild ConsoleApplication.sln
RemObjects EBuild. An open source build engine for Elements and beyond.
Copyright RemObjects Software 2016-2024. All Rights Reserved. Created by marc hoffman.
Version 12.0.0.2933 (develop) built on bajor, 20240614-153333. Commit a71c401.

Solution 'ConsoleApplication' built successfully.
avalon/3.0.2
Re[31]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 13.10.24 06:10
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Компилятор командной строки был бесплатным с далеких времен: http://remobjects.github.io/train/Compiling/index.html (правда, они этот факт не особо афишируют)


А где скачать отдельно компилятор командной строки для MacOS?

Вообще много неудобств, даже размер бинарника. Вот у меня было требование — чтобы WASM-модуль был не более 1 Мб. И я делал прогу месяц — весь код компилился в модуль около 700 Кб. Размер кода — папка с исходниками — была 359 Кб. А remobjects после компиляции пустого проекта в WASM — уже дает 8 Мб Это важно.

R>Страница скачивания елементов: https://www.remobjects.com/elements/channels.aspx


R>Там есть полный пакет, иде для мака и отдельно компиляторы и система сборки для линукса и мака.


Не нашел бесплатный для MacOS. Для Windows тоже есть?

R>Про установку компилятора говорится здесь: https://docs.elementscompiler.com/Compiler/Installing/

R>

the command line compiler is installed and made available automatically as part of the regular setup. To just install the command line compiler, you can simply disable the "Water" and "Visual Studio" option when running setup.


R>А это https://www.remobjects.com/elements/ebuild.aspx их система сборки, которую они собираются сделать открытой.


Вопрос — могу ли я ее использовать бесплатно легально — по какой лицензии?
Re[32]: Новости C#13. params
От: rudzuk  
Дата: 13.10.24 10:39
Оценка:
Здравствуйте, Shmj, Вы писали:

S> Вообще много неудобств, даже размер бинарника. Вот у меня было требование — чтобы WASM-модуль был не более 1 Мб. И я делал прогу месяц — весь код компилился в модуль около 700 Кб. Размер кода — папка с исходниками — была 359 Кб. А remobjects после компиляции пустого проекта в WASM — уже дает 8 Мб Это важно.


Не знаю, как у тебя получилось 8 Мб, когда даже с отладочной информацией у меня получается около 3 Мб, релизная сборка — 1.8 Мб (за плюшки управляемой среды нужно платить). При передаче на клиента gzip ее пожмет до 460 Кб.

S> Не нашел бесплатный для MacOS.


Ссылка так и назывется: "Elements — Mac & Linux Zip Distro "

S> Для Windows тоже есть?


On Windows, the command line compiler is installed and made available automatically as part of the regular setup. To just install the command line compiler, you can simply disable the "Water" and "Visual Studio" option when running setup.


S> R>А это https://www.remobjects.com/elements/ebuild.aspx их система сборки, которую они собираются сделать открытой.


S> Вопрос — могу ли я ее использовать бесплатно легально — по какой лицензии?


Об этом можешь на их форуме спросить.
avalon/3.0.2
Re[33]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 13.10.24 10:52
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Не знаю, как у тебя получилось 8 Мб, когда даже с отладочной информацией у меня получается около 3 Мб, релизная сборка — 1.8 Мб (за плюшки управляемой среды нужно платить). При передаче на клиента gzip ее пожмет до 460 Кб.


Почему вы так заступаетесь?

Вот в режиме релиза: https://download.ru/files/bUD5OW6M

То что пожмет — мой WASM ужимает до 200 Кб. Это притом что мой не пустой — там месяц работы.

S>> Не нашел бесплатный для MacOS.


R>Ссылка так и назывется: "Elements — Mac & Linux Zip Distro "


Не нашел, гугл тоже не выдает.

R>Об этом можешь на их форуме спросить.


Для начала нужно его найти — я не нашел. А уже потом узнавать о лицензии. Без этого и речи быть не может, чтобы ввязываться.

Вот есть QT, по удобству использования как .Net примерно. Там лицензия более-мене прозрачная. Не супер, но для некоторых маловажных проектов сойдет.
Re[34]: Новости C#13. params
От: rudzuk  
Дата: 13.10.24 11:08
Оценка:
Здравствуйте, Shmj, Вы писали:

S> R>Не знаю, как у тебя получилось 8 Мб, когда даже с отладочной информацией у меня получается около 3 Мб, релизная сборка — 1.8 Мб (за плюшки управляемой среды нужно платить). При передаче на клиента gzip ее пожмет до 460 Кб.


S> Почему вы так заступаетесь?


Потому что верю своим глазам:


S> То что пожмет — мой WASM ужимает до 200 Кб.


Цифры одного порядка. На фоне приезжающих на клиента мегабайтов джиэса, эти цифры просто ни о чем.

S> Это притом что мой не пустой — там месяц работы.


Так и этот тоже не пустой. Там и GC и работата с DOM браузера.

S> R>Ссылка так и назывется: "Elements — Mac & Linux Zip Distro "


S> Не нашел, гугл тоже не выдает.


Я тебе ссылку дал два сообщения назад: https://www.remobjects.com/elements/channels.aspx

S> R>Об этом можешь на их форуме спросить.


S> Для начала нужно его найти — я не нашел.


На главной странице сайта смотрел? Точно?

S> Вот есть QT, по удобству использования как .Net примерно. Там лицензия более-мене прозрачная. Не супер, но для некоторых маловажных проектов сойдет.


Сколько весит wasm модуль использующий Qt? Просто интересно.
avalon/3.0.2
Re[35]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 13.10.24 14:39
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>Цифры одного порядка. На фоне приезжающих на клиента мегабайтов джиэса, эти цифры просто ни о чем.


На MacOS — вы сами видели — 4 Мб в Release.

S>> Это притом что мой не пустой — там месяц работы.

R>Так и этот тоже не пустой. Там и GC и работата с DOM браузера.

А если мне это не нужно?

R>Я тебе ссылку дал два сообщения назад: https://www.remobjects.com/elements/channels.aspx


А пробовал то перейти по ней? Меня перебрасывает на https://www.remobjects.com/elements/download.aspx — а там предлагает ввести email и присылает ссылку на триальную Elements Trial Downloads.

Возможно раньше это было а потом решили лавочку прикрыть Что не редко для таких продуктов — гарантии нет.

R>На главной странице сайта смотрел? Точно?


Попробуйте скачать. Выше написал.

В том то и фишка — это за штуку баксов. Причем для компании — нужно раскошеливаться еще больше, цена не указана а значит будут доить.

Смысла нет привязываться к платным инструментам, которыми заправляет некая мелкая контора.

S>> Вот есть QT, по удобству использования как .Net примерно. Там лицензия более-мене прозрачная. Не супер, но для некоторых маловажных проектов сойдет.

R>Сколько весит wasm модуль использующий Qt? Просто интересно.

К сожалению прямо сейчас не могу проверить, у меня установлено без WASM а доустанавливает оно долго. Я собирал wasm без QT, не нужно было.
Re[36]: Новости C#13. params
От: rudzuk  
Дата: 13.10.24 15:00
Оценка: 3 (1)
Здравствуйте, Shmj, Вы писали:

S> На MacOS — вы сами видели — 4 Мб в Release.


От ОС это не зависит. Это зависит от типа проекта, который ты выбрал. Выбери просто WebModule, размер будет меньше.

S> R>Так и этот тоже не пустой. Там и GC и работата с DOM браузера.


S> А если мне это не нужно?


GC неотъемлемая часть платформы (даже когда софт собирается для Win32 или Linux), придется смириться.

S> А пробовал то перейти по ней? Меня перебрасывает на https://www.remobjects.com/elements/download.aspx — а там предлагает ввести email и присылает ссылку на триальную Elements Trial Downloads.


Тебя смущает, что у них нет отдельных страниц для скачивания? У них непосредственно система сборки пишет, что она open source, несмотря на то, что скачивается через страницу trial downloads. Оставь им мыло, получишь прямую ссылку (https://downloads.elementscompiler.com/RemObjects%20Elements%20-%20Mac%20and%20Linux%20Zip%20Distro%20-%2012.0.0.2949.zip).

S> Возможно раньше это было а потом решили лавочку прикрыть Что не редко для таких продуктов — гарантии нет.


Чего гадать — спроси на форуме.
avalon/3.0.2
Re[37]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 13.10.24 15:16
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>От ОС это не зависит. Это зависит от типа проекта, который ты выбрал. Выбери просто WebModule, размер будет меньше.


Его и выбрал: https://download.ru/files/hQKs9igW

S>> R>Так и этот тоже не пустой. Там и GC и работата с DOM браузера.


S>> А если мне это не нужно?


R>Тебя смущает, что у них нет отдельных страниц для скачивания? У них непосредственно система сборки пишет, что она open source, несмотря на то, что скачивается через страницу trial downloads. Оставь им мыло, получишь прямую ссылку (https://downloads.elementscompiler.com/RemObjects%20Elements%20-%20Mac%20and%20Linux%20Zip%20Distro%20-%2012.0.0.2949.zip).


Вводил, прислали Elements Trial Downloads. Ну ладно, благодарю за ссылку — если она есть — то уже хорошо.

S>> Возможно раньше это было а потом решили лавочку прикрыть Что не редко для таких продуктов — гарантии нет.

R>Чего гадать — спроси на форуме.

Пока это не заслуживает внимания. Слишком не надежный фундамент. Конторка мелкая, неизвестная. Узнаваемость — плохая.

То что есть бесплатная версия — уже что-то, можно сказать что это конкурент QT худо-бедный. Хотя у QT все инструменты доступны бесплатно, просто ограничение по лицензии.

То что есть для MacOS бесплатное — уже что-то, но маловато для захвата рынка.
Re[38]: Новости C#13. params
От: rudzuk  
Дата: 13.10.24 15:41
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S> R>От ОС это не зависит. Это зависит от типа проекта, который ты выбрал. Выбери просто WebModule, размер будет меньше.


S> Его и выбрал: https://download.ru/files/hQKs9igW


Я же вижу по коду, что ты выбрал не его, а WebModule w/ CodeBehind

S> S>> R>Так и этот тоже не пустой. Там и GC и работата с DOM браузера.


S> Вводил, прислали Elements Trial Downloads. Ну ладно, благодарю за ссылку — если она есть — то уже хорошо.


Значит ты и пытался скачать полный комплект элементов (как раз первая ссылка на странице).

S> R>Чего гадать — спроси на форуме.


S> Пока это не заслуживает внимания. Слишком не надежный фундамент. Конторка мелкая, неизвестная. Узнаваемость — плохая.


Вот спрашивается, нафига было тут воду в ступе толочь, если ты для себя все давно решил?
avalon/3.0.2
Re[39]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 13.10.24 16:03
Оценка:
Здравствуйте, rudzuk, Вы писали:

S>> Пока это не заслуживает внимания. Слишком не надежный фундамент. Конторка мелкая, неизвестная. Узнаваемость — плохая.

R>Вот спрашивается, нафига было тут воду в ступе толочь, если ты для себя все давно решил?

Так а что вы предлагаете? Платить штуку баксов? Без этого нормально не поработаешь. И привязка к такой мелкой конторке — слишком рискованно. Это слишком серьезный вопрос.

Тем более это не решение индивидуального разработчика — это может решить тот, кто тебя нанимает. Никак иначе. При масштабировании придется докупать и докупать лицензии. Так что вряд-ли кто-то согласится на это.

Еще момент — оно слишком мало распространено. Если возникнут проблемы — не факт что быстро сможете решить, оно не обкатано. А проблемы возникать будут уже в процессе работы.

Вывод: плохой это фундамент. Если вы берете за фундамент MS — это еще пол беды, все-таки компания многомиллиардная. И то риск. НО MS не дает вам кроссплатформенного преимущества.
Re[20]: Новости C#13. params
От: пффф  
Дата: 13.10.24 16:14
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Меня интересуют не философские измышления и как в теории это возможно (может быть)


О-о-o, и давно?
Re[2]: Новости C#13. params
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.10.24 16:23
Оценка: +2
Здравствуйте, Shmj, Вы писали:
S>Я к 40 годам начал смотреть на суть. Когда будет возможно сделать библиотеку на C#, которую можно будет использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?
1. Зачем?
2. Никогда. На что это влияет?
3. Знаете ли вы язык, на котором можно сделать библиотеку, которую можно использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?
4. Почему вы пишете приложения не на этом языке?

Здесь отвечать не обязательно — вопросы риторические. Направлены на то, чтобы вы начали смотреть в нужную сторону хотя бы к 50 годам
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[40]: Новости C#13. params
От: rudzuk  
Дата: 13.10.24 17:29
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S> R>Вот спрашивается, нафига было тут воду в ступе толочь, если ты для себя все давно решил?


S> Так а что вы предлагаете? Платить штуку баксов? Без этого нормально не поработаешь. И привязка к такой мелкой конторке — слишком рискованно. Это слишком серьезный вопрос.


За инструмент разработки заплатить. Тебя это удивляет?

S> Тем более это не решение индивидуального разработчика — это может решить тот, кто тебя нанимает. Никак иначе. При масштабировании придется докупать и докупать лицензии. Так что вряд-ли кто-то согласится на это.


Я не пойму, то ты о своей библиотеке говоришь, то о разработке в найме. Эта контора свои продукты продает ет двадцать уже. Кто-то, таки, соглашается на такое.

S> Еще момент — оно слишком мало распространено. Если возникнут проблемы — не факт что быстро сможете решить, оно не обкатано. А проблемы возникать будут уже в процессе работы.


Снова твои фантазии. Проблемы они решаюют без бюрократической волокиты буквально за часы. Если осилишь найти форум сможешь сам в этом убедиться.

S> Если вы берете за фундамент MS — это еще пол беды, все-таки компания многомиллиардная.


Эта многомиллиардная сколько раз уже сливала своих последователей? VB, Silverlight, ActiveX, .NET FW... Другой многомиллиардной посвящен целый сайт с кладбищем ее продуктов. Тоже мне, гарантии.
avalon/3.0.2
Re[35]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.10.24 09:14
Оценка: 3 (1)
Здравствуйте, rudzuk, Вы писали:

R>Так и этот тоже не пустой. Там и GC и работата с DOM браузера.


Кстати в WebAssembly завезли GC
https://developer.chrome.com/blog/wasmgc?hl=ru

WasmGC — предложение группы сообщества WebAssembly . Текущая реализация Wasm MVP способна работать только с числами, то есть целыми числами и числами с плавающей запятой, в линейной памяти, а с учетом предложения ссылочных типов Wasm может дополнительно удерживать внешние ссылки. WasmGC теперь добавляет типы кучи структур и массивов, что означает поддержку нелинейного распределения памяти. Каждый объект WasmGC имеет фиксированный тип и структуру, что позволяет виртуальным машинам легко генерировать эффективный код для доступа к своим полям без риска деоптимизации , которая свойственна динамическим языкам, таким как JavaScript. Таким образом, это предложение добавляет в WebAssembly эффективную поддержку управляемых языков высокого уровня через типы кучи структур и массивов, которые позволяют компиляторам языков, ориентированным на Wasm, интегрироваться со сборщиком мусора в виртуальной машине хоста. Проще говоря, это означает, что с помощью WasmGC портирование языка программирования на Wasm означает, что сборщик мусора языка программирования больше не должен быть частью порта, а вместо этого можно использовать существующий сборщик мусора.

Чтобы проверить реальное влияние этого улучшения, команда Chrome Wasm скомпилировала версии теста Fannkuch (который выделяет структуры данных по мере их работы) из C , Rust и Java . Бинарные файлы C и Rust могут иметь размер от 6,1 до 9,6 КБ в зависимости от различных флагов компилятора, тогда как версия Java намного меньше — всего 2,3 КБ ! C и Rust не включают сборщик мусора, но они по-прежнему связывают malloc/free для управления памятью, и причина, по которой Java здесь меньше, заключается в том, что ей вообще не нужно связывать какой-либо код управления памятью. Это всего лишь один конкретный пример, но он показывает, что двоичные файлы WasmGC потенциально могут быть очень маленькими, и это еще до какой-либо значительной работы по оптимизации размера.


Проблемы в .Net [wasm][post-MVP] garbage collection proposal in .NET


A new way to bring garbage collected programming languages efficiently to WebAssembly

GC Post-v1 Extensions
и солнце б утром не вставало, когда бы не было меня
Отредактировано 14.10.2024 16:33 Serginio1 . Предыдущая версия . Еще …
Отредактировано 14.10.2024 16:25 Serginio1 . Предыдущая версия .
Отредактировано 14.10.2024 10:13 Serginio1 . Предыдущая версия .
Отредактировано 14.10.2024 10:09 Serginio1 . Предыдущая версия .
Re[41]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 16.10.24 03:36
Оценка:
Здравствуйте, rudzuk, Вы писали:

R>За инструмент разработки заплатить. Тебя это удивляет?


Зачем покупать, если есть лучше с лучшей поддержкой, работающее на всех платформах и бесплатно?

Можно купить, когда инструмент проверен, используется многими, баги отлажены и вы 100% знаете что он уменьшит количество работы, а не добавит новых проблем.

R>Я не пойму, то ты о своей библиотеке говоришь, то о разработке в найме. Эта контора свои продукты продает ет двадцать уже. Кто-то, таки, соглашается на такое.


Но не достигла популярности и узнаваемости.

R>Снова твои фантазии. Проблемы они решаюют без бюрократической волокиты буквально за часы. Если осилишь найти форум сможешь сам в этом убедиться.


Вы попробуйте узнать по какой лицензии RemObjects Elements — Mac and Linux Zip Distro можно использовать.

S>> Если вы берете за фундамент MS — это еще пол беды, все-таки компания многомиллиардная.

R>Эта многомиллиардная сколько раз уже сливала своих последователей? VB, Silverlight, ActiveX, .NET FW... Другой многомиллиардной посвящен целый сайт с кладбищем ее продуктов. Тоже мне, гарантии.

Вот по этому лучше сразу делать ставку на открытые стандартизированные решения.
Re[3]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 16.10.24 03:38
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>Я к 40 годам начал смотреть на суть. Когда будет возможно сделать библиотеку на C#, которую можно будет использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?

S>1. Зачем?

Кроссплатформа зачем? Потому что чем шире твои возможности — тем лучше. Зачем себя ограничивать?

S>2. Никогда. На что это влияет?


На то что не стоит к нему привязываться.

S>3. Знаете ли вы язык, на котором можно сделать библиотеку, которую можно использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?


Да. К примеру C, C++, Rust.

S>4. Почему вы пишете приложения не на этом языке?


Именно на нем и пишем.

S>Здесь отвечать не обязательно — вопросы риторические. Направлены на то, чтобы вы начали смотреть в нужную сторону хотя бы к 50 годам


Почему риторические?
Re[36]: Новости C#13. params
От: Shmj Ниоткуда  
Дата: 16.10.24 03:44
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Кстати в WebAssembly завезли GC

S>https://developer.chrome.com/blog/wasmgc?hl=ru

Ну еще не завезли — а только в планах, еще не везде работает даже к экспериментальном режиме.
Re[4]: Новости C#13. params
От: Sinclair Россия https://github.com/evilguest/
Дата: 16.10.24 06:03
Оценка:
Здравствуйте, Shmj, Вы писали:

S>>1. Зачем?

S>Кроссплатформа зачем? Потому что чем шире твои возможности — тем лучше. Зачем себя ограничивать?
Кроссплатформа — не то же самое, что и "библиотека для любого ЯП на всех шести платформах ". Сам по себе дотнет — вполне себе кроссплатформенный, и приложения на нём работают примерно везде, включая экзотику вроде Эльбруса.
S>>2. Никогда. На что это влияет?
S>На то что не стоит к нему привязываться.
Этот вывод нужно обосновывать.
S>>3. Знаете ли вы язык, на котором можно сделать библиотеку, которую можно использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?
S>Да. К примеру C, C++, Rust.
Ну, попробуйте задействовать "библиотеку на Rust" из Delphi.
Попробуйте использовать C-шную библиотеку из Java. Ну, например, отсортируйте мне джавовский String[] через qsort из C RTL.
Уверяю — вас ждут незабываемые приключения. Так что вы, судя по всему, совершенно спокойно пишете на языках, на которых невозможно написать библиотеку, доступную из любых других языков. Библиотеку на Расте вы будете использовать из Раста, библиотеку на С++ — из С++. А вовсе не из "любого ЯП". Ну, так и библиотеку, написанную на C#, можно использовать из любого языка .Net на любой из шести платформ. То есть в этом плане кроссплатформенность у шарпа выходит получше, чем у языков вашего выбора. Причём с двумя из трёх у вас могут возникнуть неожиданные приключения при переносе с платформы на платформу и без интеропа с другими языками. А с одним из этих двух вас поджидает неожиданный секас даже при смене компилятора в пределах одной платформы.

S>>4. Почему вы пишете приложения не на этом языке?

S>Именно на нем и пишем.
Ну вот нет. Единственный язык, библиотеку на котором можно вызвать более-менее из любого языка (и то, с оговорками) — это C. Вы на нём не пишете примерно ничего.
S>>Здесь отвечать не обязательно — вопросы риторические. Направлены на то, чтобы вы начали смотреть в нужную сторону хотя бы к 50 годам
S>Почему риторические?
Потому что отвечать не обязательно. Если бы вы дали себе труд подумать перед тем, как отвечать, то сами бы увидели ошибки в своих рассуждениях.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Отредактировано 16.10.2024 17:17 Sinclair . Предыдущая версия .
Re[37]: Новости C#13. params
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.10.24 07:19
Оценка:
Здравствуйте, Shmj, Вы писали:


S>> Кстати в WebAssembly завезли GC

S>>https://developer.chrome.com/blog/wasmgc?hl=ru

S>Ну еще не завезли — а только в планах, еще не везде работает даже к экспериментальном режиме.


Ну главное, что уже не на бумаге, а бетта версия. Кстати и в .Net WASM как эксперимент используется как песочница.
DotNetIsolator [EXPERIMENTAL]

Экспериментируют Experimental WASI SDK for .NET Core

Я к тому, что WASM в недалеком будущем будет основным форматом мультиплатформенных приложений
и солнце б утром не вставало, когда бы не было меня
Отредактировано 16.10.2024 7:33 Serginio1 . Предыдущая версия . Еще …
Отредактировано 16.10.2024 7:22 Serginio1 . Предыдущая версия .
Re[2]: Новости C#13. params
От: syrompe  
Дата: 16.10.24 12:33
Оценка: +2
S>Когда будет возможно сделать библиотеку на C#, которую можно будет использовать из любого ЯП на всех шести операционных системах/платформах, доступных человечеству?

Если кратко — это сейчас никому не нужно.

Вызывать напрямую библиотеку от другой среды/языка это всегда геморрой. Даже внутри C++ одно лишь конвертирование строк между разными библиотеками чего стоит.

На родном для библиотеки языке пишем executable обертку которая: читает данные из stdin, предает эти данные нужным методам библиотеки и выплевывает результат работы в stdout.

Уже на своем любимом языке/фреймворке пишем оркестрацию поднятия процессов и общения с ними.

Когда появится лишнее время или упремся в объемы данных уходим от stdin/out в сторону всяких пайпов, сокетов, http и проч.

Естественно, такое для всяких npm:is_odd библиотек не катит, но это извраты JS ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.