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 — а это уже почти миллиард долларов.

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

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