Информация об изменениях

Сообщение Re[25]: А что мешает заменить JS? от 19.03.2017 18:40

Изменено 19.03.2017 19:29 Serginio1

Re[25]: А что мешает заменить JS?
Здравствуйте, vdimas, Вы писали:

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


S>>Запишем. Шаблоны не являются уровнем оптимизации.


V>Записывать надо правильно:

V>Шаблоны — это вообще не про оптимизацию бинарника.
V>Шаблоны — они про автоматизацию разработки.


V>>>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.

S>>Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
S>>По поводу Webasm, то по сути то как я понял это аналог

V>Нет, это NaCL.

NaCl это совсем другое. Оно основано на событиях.

S>>Со всеми проблемами.


V>С девушками и настольными играми.



V>>>Чего нет? Аннотаций типов?

S>>Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.

V>Можно вопрос переформулировать?

V>Я че-то проблематики не улавливаю при переводе из более сильной системы типов в более слабую.
V>А в бинарник нейтива как программы переводятся? Там же вообще типы затираются.

Вот когда TS будет компилироваться в натив, тогда и дополнительные типы появятся и тд.
Сейчас нет необходимости.


S>>Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.


V>Я уже сказал в чем проблема — в необходимости использовать только объявленные переменные.

V>Не надо пытаться оспаривать какое-то другое утверждение.

то есть

int I; это не объявленная переменная?

чем она лучше

let I=0;

Или на том же даро

var I=0;

При этом у TS совместимость с JS var.

V>>>Итого, имеем лишнее ключевое слово let.

S>>Это для тебя оно лишнее.

V>Это ты уже как бабка базарная склочничаешь.

V>пффф... ))

Еще раз для тебя повторю, что ты вырезал
Это для тебя оно лишнее. Есть глобальные переменные.
https://metanit.com/web/typescript/4.1.php



Как ты в dart собрался решать проблему глобальных переменных.

при этом ты просто говоришь не всю правду

https://www.dartlang.org/resources/dart-tips/dart-tips-ep-3

var name = 'Bob';


Вот такое объявление применяется в 99% случаях.

string name;
let name:string;


встречается не часто.
Кроме того

А вот вывод типа функции


func(I:int)
{ return I;}


почти постоянно. Так, что ты насчет бабки базарной посмотри на себя. Я уже кучу раз указал на неправильность твоих выводов.
Потому, что ты даже не удосужился прочитать туториал.
Нет особой разницы между dart и Ts.
У TS есть куча приспособлений для типизации. Почитай на русском по ссылке.
А самое главное у Ts есть заголовочные файлы
https://metanit.com/web/typescript/4.1.php

Это файлы с расширением .d.ts, они описывают синтаксис и структуру функций и свойств, которые могут использоваться в программе, не предоставляя при этом конкретной реализации. Их действие во многом похоже на работу файлов с расширением .h в языках C/C++.


С помощью них типизировано куча JS библиотек. А это перекрывает все воображаемые премущества Dart.

Кроме того
http://stackoverflow.com/questions/17488611/how-in-dart-create-private-variable

From Dart documentation:
Unlike Java, Dart doesn’t have the keywords public, protected, and private. If an identifier starts with an underscore _, it’s private to its library.
Libraries not only provide APIs, but are a unit of privacy: identifiers that start with an underscore _ are visible only inside the library.


То есть TS уже готовый Фреймворк для работы по верх JS. И ничего ему не мешает так же работать поверх .Net.

Кроме того он развивается
https://github.com/Microsoft/TypeScript/wiki/Roadmap
и осуществляется поддержка в IDE

https://github.com/Microsoft/TypeScript/issues/6508
Re[25]: А что мешает заменить JS?
Здравствуйте, vdimas, Вы писали:

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


S>>Запишем. Шаблоны не являются уровнем оптимизации.


V>Записывать надо правильно:

V>Шаблоны — это вообще не про оптимизацию бинарника.
V>Шаблоны — они про автоматизацию разработки.


V>>>Да, речь идёт о чем-то вроде .Net Native, где одним из target будет webasm.

S>>Ну и? Есть оптимизация на уровне компиляции в il и .Net Native
S>>По поводу Webasm, то по сути то как я понял это аналог

V>Нет, это NaCL.

NaCl это совсем другое. Оно основано на событиях.

S>>Со всеми проблемами.


V>С девушками и настольными играми.



V>>>Чего нет? Аннотаций типов?

S>>Чем в Darte типы отличаются от типов в TS если они все так же компилируются в JS.

V>Можно вопрос переформулировать?

V>Я че-то проблематики не улавливаю при переводе из более сильной системы типов в более слабую.
V>А в бинарник нейтива как программы переводятся? Там же вообще типы затираются.

Вот когда TS будет компилироваться в натив, тогда и дополнительные типы появятся и тд.
Сейчас нет необходимости.


S>>Правильно. Проблема в том, что в JS есть еще и var. Кроме того не будет ошибки если abs это поле класса.


V>Я уже сказал в чем проблема — в необходимости использовать только объявленные переменные.

V>Не надо пытаться оспаривать какое-то другое утверждение.

то есть

int I; это не объявленная переменная?

чем она лучше

let I=0;

Или на том же даро

var I=0;

При этом у TS совместимость с JS var.

V>>>Итого, имеем лишнее ключевое слово let.

S>>Это для тебя оно лишнее.

V>Это ты уже как бабка базарная склочничаешь.

V>пффф... ))

Еще раз для тебя повторю, что ты вырезал
Это для тебя оно лишнее. Есть глобальные переменные.
https://metanit.com/web/typescript/4.1.php



Как ты в dart собрался решать проблему глобальных переменных.

при этом ты просто говоришь не всю правду

https://www.dartlang.org/resources/dart-tips/dart-tips-ep-3

var name = 'Bob';


Вот такое объявление применяется в 99% случаях.

string name;
let name:string;


встречается не часто.
Кроме того

А вот вывод типа функции


func(I:int)
{ return I;}


почти постоянно. Так, что ты насчет бабки базарной посмотри на себя. Я уже кучу раз указал на неправильность твоих выводов.
Потому, что ты даже не удосужился прочитать туториал.
Нет особой разницы между dart и Ts.
У TS есть куча приспособлений для типизации. Почитай на русском по ссылке.
А самое главное у Ts есть заголовочные файлы
https://metanit.com/web/typescript/4.1.php

Это файлы с расширением .d.ts, они описывают синтаксис и структуру функций и свойств, которые могут использоваться в программе, не предоставляя при этом конкретной реализации. Их действие во многом похоже на работу файлов с расширением .h в языках C/C++.


С помощью них типизировано куча JS библиотек. А это перекрывает все воображаемые премущества Dart.

Кроме того
http://stackoverflow.com/questions/17488611/how-in-dart-create-private-variable

From Dart documentation:
Unlike Java, Dart doesn’t have the keywords public, protected, and private. If an identifier starts with an underscore _, it’s private to its library.
Libraries not only provide APIs, but are a unit of privacy: identifiers that start with an underscore _ are visible only inside the library.


То есть TS уже готовый Фреймворк для работы по верх JS. И ничего ему не мешает так же работать поверх .Net.

Кроме того он развивается
https://github.com/Microsoft/TypeScript/wiki/Roadmap
и осуществляется поддержка в IDE

Так же поддержка JSX

https://www.typescriptlang.org/docs/handbook/jsx.html

/// <reference path="react.d.ts" />

interface Props {
  foo: string;
}

class MyComponent extends React.Component<Props, {}> {
  render() {
    return <span>{this.props.foo}</span>
  }
}

<MyComponent foo="bar" />; // ok
<MyComponent foo={0} />; // error