Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
S>> Что же так популярность дарта то не растет?
S>>https://habr.com/ru/company/skillfactory/blog/504194/
V>Опять опрос stack overflow? ))
V>Т.е. опрос тех, у кого возникают вопросы?
V>И тебя не смущает, что на первом месте Rust, который в рейтинге TIOBE на 30-м месте?
V>А дарт в этом же рейтинге на 22-м?
V>А топ выглядит так:
V>Питон
V>Си
V>Джава
Где ты увидел Rust на первом месте
JS на первом месте, затем Питон, Java и C#, PHP и TS!!!
S>>И смотрим как растет популярность TS.
V>Смотрю как много Rust и TS вызывает вопросов на SO. ))
TS это замена самому популярному языку. Вопросов много потому что активно развивается и куча нововведений!
S>> Ну Xamarin может использовать и блазор в натив, и сейчас MAUI кроссплатформенный развивается, ну и родные андроидные axml
V>Простое ветвление прямо в коде намного органичней смотрится, чем ветвление в JS, где или согласно условиям рендерят текст HTML, или ручками напихивают DOM, или переключают стили/классы видимые/невидимый.
То же самое можно делать и напрямую создание компонентов в коде. Кстати на Xamarin сначала вообще не было редактора и все описывалось в коде аналогично Dart,
но декларативно описывать прощею
V>Все три способа — убожество.
V>При кажущейся лаконочности последнего, у него расползаются зависимости м/у HTML-страницей, логикой в JS-коде и CSS-стилями, что приводит к той самой забористой каше современного фронтенда, где в одном месте чуть дунул — и всё поломалось.
Но при этом альтернативы, которая вытеснила HTML то и нет. Вот TS активно вытесняет JS, но он и компилируется в JS.
V>>>Это у тебя много голословного.
V>>>Имеешь привычку рассуждать о том, чем лично не занимался и даже не пробовал.
S>> Я то как раз говорю о том, в чем разбирался
V>С Unity ты не разбирался, посему твоё упорство выглядело странным.
V>Особенно когда ты не мог поверить, что в нейтивном релизе есть GC, но нет "среды".
Угу чего мне не верить если в .Net Native есть GC но нет среды? Я говорил про отладку в среде и то, что для андроида она опциональна.
И присутствует моно. Ты же отрицал моно и среду. Типа все в С++
V>>>И среда там есть аж бегом, без ней .Net Native не живёт.
S>> Ну вот нет там среды!
V>Ошибаешься:
V>https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md
V>V>Native (AOT) compilation is a great scenario addition to .NET Core apps on Windows, OS X and Linux. We've seen significant startup and throughput benefits of native compilation for Windows UWP apps, using .NET Native.
V>...
V>CoreRT is a refactored and layered .Net Core runtime. The base is a small native execution engine that provides services such as garbage collection(GC). This is the same GC used in CoreCLR.
V>...
V>CoreRT offers great benefits that are critical for many apps.
V>...
V>The native compiler generates a SINGLE FILE, including the app, managed dependencies and CoreRT.
V>https://mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for-AOT/
V>V>Firstly, what exactly is CoreRT? From its GitHub repo:
V>- a .NET Core runtime optimized for AOT (ahead of time compilation) scenarios, with the accompanying .NET native compiler toolchain
V>...
V>So whilst CoreRT is a run-time, it also needs a compiler to put everything together, from Intro to .NET Native and CoreRT:
V>.NET Native is a native toolchain that compiles CIL byte code to machine code (e.g. X64 instructions). By default, .NET Native (for .NET Core, as opposed to UWP) uses RyuJIT as an ahead-of-time (AOT) compiler, the same one that CoreCLR uses as a just-in-time (JIT) compiler.
V>...
V>The Runtime
V>All the user/helper code then sits on-top of the CoreRT runtime, from Intro to .NET Native and CoreRT:
V>CoreRT is the .NET Core runtime that is optimized for AOT scenarios, which .NET Native targets.
V>Точный GC не может работать без метаинформации, поэтому, там и метаинформации овердофига.
V>Можно сравнивать у разных объектов результат вызова GetType(), работает is и as, работает проверка на отношение base/derived и т.д. и т.п.
Ну во первых ты говоришь про CoreRT, который возможно и будет использовать JIT компилятор в рантайме. Но во всех твоих ссылках нет ссылок на JIT в рантайме!!!
is и as прекрасно работают в Delphi ибо есть информация в VMT по отрицательным смещениям.
S>>Кроме сборщика мусора. Если бы среда была, то не было бы проблем с докомпиляцией и рефлексией.
V>Для этого надо было бы оставить символьные строки, соотв. названиям неймспейсов, классов и их мемберов.
V>А насчёт докомпиляции — по ссылке для особо понятливых несколько раз повторяется, что это AOT-технология, но при этом используется тот же самый RuiJIT.
Опять же речь про CoreRT. Опять проблема не AOT, а в рантайме. Для .Net Native нет JIT компиляции в рантайме, а значит и нет среды в нормальном понимантт.
Под понятием среда в .Net Native это GC, без JIT компиляции в рантайме! (на всякий случай ибо JIT англ. Just-in-Time, компиляция «на лету»)
V>V>Native compiled apps startup faster since they execute already compiled code. They don't need to generate machine code at runtime nor load a JIT compiler.
Не надо! Если нет рефлексии не нужно. При этом динамическая компиляция отсутствует
https://stackoverflow.com/questions/68114109/using-system-reflection-emit-in-uwp-with-net-native-tool-chain
Если Jit ер используется то почему нельзя?
V>А тебя послушаешь, так даже в случае обычного дотнета, после того как JIT перевёл в нейтив весь наличествующий байткод, сразу "среда" перестаёт быть "средой".
V>Ведь происходящее далее не сильно будет отличаться от происходящего в .Net Native UWP.
Нет я как раз приводил ссылку на различие NGEN и .Net Native! передергиваешь
https://stackoverflow.com/questions/68114109/using-system-reflection-emit-in-uwp-with-net-native-tool-chain
Образы IL Fallback — NGEN содержат как машинный код, так и MSIL для сборки (среди других структур данных). Если во время выполнения происходит что-то, что заставляет CLR нуждаться в машинном коде, который он не может найти в образе NGEN, он может вернуться к JITing. В текущем предварительном просмотре разработчика .NET Native в нативном образе присутствует только нативный код. Это означает, что если код отсутствует в изображении, он никогда не будет выполняться во время выполнения.
Что по твоему должен компилировать JIT если не IL кода?
S>>Подтверди свои утверждения ссылками. Опять голословный треп.
V>А в сад тебе не прогуляться, к остальным двоечникам? ))
Вот за что мне нравится с тобой общаться! Подымаешь настроение.