Сообщение Re[23]: А что мешает заменить JS? от 19.03.2017 13:23
Изменено 19.03.2017 16:34 Serginio1
Re[23]: А что мешает заменить JS?
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
V>>>Гугл, напротив, предлагает уже оптимизированный байт-код.
S>> И чем он не оптимизирован. Для примера
S>>roslyn-linq-rewrite
V>Ты уже давал эту ссылку.
V>Переписывание исходника — это еще не тот уровень оптимизаций.
Запишем. Шаблоны не являются уровнем оптимизации.
S>>На самом деле есть две возможности оптимизации при компиляции в Il Roslyn и компиляция в натив RyuJIT
V>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.
Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
По поводу Webasm, то по сути то как я понял это аналог
CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF
Со всеми проблемами.
V>>>В аннотациях типа.
V>>>Это серьезное отличие синтаксиса, которое тянет за собой много чего.
S>>Так в Darte и этого нет. Ничего это за собой не тянет. Поверь мне. Я то в отличие от тебя пишу на нем.
V>Чего нет? Аннотаций типов?
Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.
Если будет отличная система от JS, то и в TS буде компилироваться в эту систему. Хоть в .Net
V>>>А если при этом, таки, требуется указать тип переменной, то получается совсем ж-па, т.к. у нас будет и ключевое слово, и имя переменной и аннотация её типа. Неудобно, как по мне.
S>>ты в чем жопу то увидел.
V>Если ты её не увидел, то это минус тебе.
V>Перечитай выделенное внимательней.
S>>Для тебя value:string жопа по отношению string value
V>Вот это ошибка на TS:
V>
V>Надо так:
V>
Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.
Да и есть автовывод типа
V>Итого, имеем лишнее ключевое слово let.
Это для тебя оно лишнее. Еслть глобальные переменные.
V>Аналогично для объявления ф-ий тоже требуется некое ключевое слово.
V>В Дарте никаких лишних ключевых слов не требуется.
Какое???? Изучи предмет
V>>>Так и в Dart автовывод присутствует.
V>>>И ковариантность полноценная:
S>>В TS это так
S>>
V>Суть была в том, что peekMammalList ожидает аргумент List<Mammal>, а ему подают на вход List<Cow>.
Ели ему подадут List<Cow> то будет ошибка.
Где лишнии ключевые слова? Еще раз разберись с предметом.
V>>>А в C# полноценная ковариантность поддерживается только на встроенных массивах.
S>> Почему? в Дженериках и в делегатах
S>> interface ICovariant<out R> { }
V>Ну так какие проблемы?
V>Покажешь мне условный пример с MyList<T>?
Я тебе показал примеры.
V>Здравствуйте, Serginio1, Вы писали:
V>>>Гугл, напротив, предлагает уже оптимизированный байт-код.
S>> И чем он не оптимизирован. Для примера
S>>roslyn-linq-rewrite
V>Ты уже давал эту ссылку.
V>Переписывание исходника — это еще не тот уровень оптимизаций.
Запишем. Шаблоны не являются уровнем оптимизации.
S>>На самом деле есть две возможности оптимизации при компиляции в Il Roslyn и компиляция в натив RyuJIT
V>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.
Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
По поводу Webasm, то по сути то как я понял это аналог
CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF
Со всеми проблемами.
V>>>В аннотациях типа.
V>>>Это серьезное отличие синтаксиса, которое тянет за собой много чего.
S>>Так в Darte и этого нет. Ничего это за собой не тянет. Поверь мне. Я то в отличие от тебя пишу на нем.
V>Чего нет? Аннотаций типов?
Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.
Если будет отличная система от JS, то и в TS буде компилироваться в эту систему. Хоть в .Net
V>>>А если при этом, таки, требуется указать тип переменной, то получается совсем ж-па, т.к. у нас будет и ключевое слово, и имя переменной и аннотация её типа. Неудобно, как по мне.
S>>ты в чем жопу то увидел.
V>Если ты её не увидел, то это минус тебе.
V>Перечитай выделенное внимательней.
S>>Для тебя value:string жопа по отношению string value
V>Вот это ошибка на TS:
V>
V>abs: string = xyz();
V>V>Надо так:
V>
V>let abs: string = xyz();
V>Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.
Да и есть автовывод типа
abs = xyz();V>Итого, имеем лишнее ключевое слово let.
Это для тебя оно лишнее. Еслть глобальные переменные.
V>Аналогично для объявления ф-ий тоже требуется некое ключевое слово.
V>В Дарте никаких лишних ключевых слов не требуется.
Какое???? Изучи предмет
V>>>Так и в Dart автовывод присутствует.
V>>>И ковариантность полноценная:
S>>В TS это так
S>>
S>>peekMammalList(list:List<Mammal> ) {
S>> return list[2];
S>>}
S>>V>Суть была в том, что peekMammalList ожидает аргумент List<Mammal>, а ему подают на вход List<Cow>.
Ели ему подадут List<Cow> то будет ошибка.
Где лишнии ключевые слова? Еще раз разберись с предметом.
V>>>А в C# полноценная ковариантность поддерживается только на встроенных массивах.
S>> Почему? в Дженериках и в делегатах
S>> interface ICovariant<out R> { }
V>Ну так какие проблемы?
V>Покажешь мне условный пример с MyList<T>?
Я тебе показал примеры.
Re[23]: А что мешает заменить JS?
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, Serginio1, Вы писали:
V>>>Гугл, напротив, предлагает уже оптимизированный байт-код.
S>> И чем он не оптимизирован. Для примера
S>>roslyn-linq-rewrite
V>Ты уже давал эту ссылку.
V>Переписывание исходника — это еще не тот уровень оптимизаций.
Запишем. Шаблоны не являются уровнем оптимизации.
S>>На самом деле есть две возможности оптимизации при компиляции в Il Roslyn и компиляция в натив RyuJIT
V>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.
Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
По поводу Webasm, то по сути то как я понял это аналог
CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF
Со всеми проблемами.
V>>>В аннотациях типа.
V>>>Это серьезное отличие синтаксиса, которое тянет за собой много чего.
S>>Так в Darte и этого нет. Ничего это за собой не тянет. Поверь мне. Я то в отличие от тебя пишу на нем.
V>Чего нет? Аннотаций типов?
Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.
Если будет отличная система от JS, то и в TS буде компилироваться в эту систему. Хоть в .Net
V>>>А если при этом, таки, требуется указать тип переменной, то получается совсем ж-па, т.к. у нас будет и ключевое слово, и имя переменной и аннотация её типа. Неудобно, как по мне.
S>>ты в чем жопу то увидел.
V>Если ты её не увидел, то это минус тебе.
V>Перечитай выделенное внимательней.
S>>Для тебя value:string жопа по отношению string value
V>Вот это ошибка на TS:
V>
V>Надо так:
V>
Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.
Да и есть автовывод типа
V>Итого, имеем лишнее ключевое слово let.
Это для тебя оно лишнее. Есть глобальные переменные.
https://metanit.com/web/typescript/4.1.php
V>Аналогично для объявления ф-ий тоже требуется некое ключевое слово.
V>В Дарте никаких лишних ключевых слов не требуется.
Какое????
V>>>Так и в Dart автовывод присутствует.
V>>>И ковариантность полноценная:
S>>В TS это так
S>>
V>Суть была в том, что peekMammalList ожидает аргумент List<Mammal>, а ему подают на вход List<Cow>.
Ели ему подадут List<Cow> то будет ошибка.
Где лишние ключевые слова?
V>>>А в C# полноценная ковариантность поддерживается только на встроенных массивах.
S>> Почему? в Дженериках и в делегатах
S>> interface ICovariant<out R> { }
V>Ну так какие проблемы?
V>Покажешь мне условный пример с MyList<T>?
Я тебе показал примеры.
V>Здравствуйте, Serginio1, Вы писали:
V>>>Гугл, напротив, предлагает уже оптимизированный байт-код.
S>> И чем он не оптимизирован. Для примера
S>>roslyn-linq-rewrite
V>Ты уже давал эту ссылку.
V>Переписывание исходника — это еще не тот уровень оптимизаций.
Запишем. Шаблоны не являются уровнем оптимизации.
S>>На самом деле есть две возможности оптимизации при компиляции в Il Roslyn и компиляция в натив RyuJIT
V>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.
Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
По поводу Webasm, то по сути то как я понял это аналог
CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF
Со всеми проблемами.
V>>>В аннотациях типа.
V>>>Это серьезное отличие синтаксиса, которое тянет за собой много чего.
S>>Так в Darte и этого нет. Ничего это за собой не тянет. Поверь мне. Я то в отличие от тебя пишу на нем.
V>Чего нет? Аннотаций типов?
Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.
Если будет отличная система от JS, то и в TS буде компилироваться в эту систему. Хоть в .Net
V>>>А если при этом, таки, требуется указать тип переменной, то получается совсем ж-па, т.к. у нас будет и ключевое слово, и имя переменной и аннотация её типа. Неудобно, как по мне.
S>>ты в чем жопу то увидел.
V>Если ты её не увидел, то это минус тебе.
V>Перечитай выделенное внимательней.
S>>Для тебя value:string жопа по отношению string value
V>Вот это ошибка на TS:
V>
V>abs: string = xyz();
V>V>Надо так:
V>
V>let abs: string = xyz();
V>Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.
Да и есть автовывод типа
abs = xyz();V>Итого, имеем лишнее ключевое слово let.
Это для тебя оно лишнее. Есть глобальные переменные.
https://metanit.com/web/typescript/4.1.php
V>Аналогично для объявления ф-ий тоже требуется некое ключевое слово.
V>В Дарте никаких лишних ключевых слов не требуется.
Какое????
V>>>Так и в Dart автовывод присутствует.
V>>>И ковариантность полноценная:
S>>В TS это так
S>>
S>>peekMammalList(list:List<Mammal> ) {
S>> return list[2];
S>>}
S>>V>Суть была в том, что peekMammalList ожидает аргумент List<Mammal>, а ему подают на вход List<Cow>.
Ели ему подадут List<Cow> то будет ошибка.
Где лишние ключевые слова?
V>>>А в C# полноценная ковариантность поддерживается только на встроенных массивах.
S>> Почему? в Дженериках и в делегатах
S>> interface ICovariant<out R> { }
V>Ну так какие проблемы?
V>Покажешь мне условный пример с MyList<T>?
Я тебе показал примеры.