Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Сравнивал ли кто-нибудь производительность TypeScript с нативным JS? (http://www.flasher.ru/forum/showthread.php?t=212905)

mikhailk 25.05.2016 17:43

Сравнивал ли кто-нибудь производительность TypeScript с нативным JS?
 
При разработке на TypeScript получаем в итоге сгенерированный код JS, который не похож на тот код, который получился бы, если бы писали непосредственно на нативном JS.

Сравнивал ли кто-нибудь, насколько этот код отличается от нативного по производительности? Может кто видел ссылку на уже проведенные такие тесты?

alatar 26.05.2016 15:12

http://stackoverflow.com/questions/2...r-and-overhead
http://benchmarksgame.alioth.debian....cript&lang2=v8

mikhailk 26.05.2016 17:05

Ну да, как-то так я и думал.
По идее, ничего критичного.

undefined 26.05.2016 19:24

Можете в двух словах прояснить такие вопросы:
1)Контроль типов происходит только при "компиляции"?Или в рантайме тоже?
2)Есть ли аналоги флэшевых операторов as/is?

Zebestov 26.05.2016 23:44

Цитата:

Сообщение от undefined (Сообщение 1194317)
Есть ли аналоги флэшевых операторов as/is?

Не знаю, как там в TS, а в JavaScript as не нужен, а is — это instanceof.

mikhailk 27.05.2016 12:18

Цитата:

1)Контроль типов происходит только при "компиляции"?Или в рантайме тоже?
Если отбросить лирику, то Typescript это вот что такое:

Код:

class Person {
    name: string;
    surname: string;
    private id: number;
    static title = "Example";
   
    constructor (name: string, surname: string) {
        this.name = name;
        this.surname = surname;
    }
 
    setID (id) { this.id = id; }
   
    getFullName () { return this.name+" "+this.surname; }
}

превращается в нативный js такого вида:

Код:

var Person = (function () {
        function Person(name, surname) {
            this.name = name;
            this.surname = surname;
        }
    Person.prototype.setID = function (id) {
        this.id = id;
    };
    Person.prototype.getFullName = function () {
        return this.name + " " + this.surname;
    };
    Person.title = "Example";
    return Person;
})();

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

Кстати, ES-2015 для JS показывает правильное направление развития самого JS.
https://learn.javascript.ru/es-modern

Причем, кое-кто из браузеров уже поддерживает его, а для остальных есть Babel. Но мы все-таки пока остановились на TypeScript.

undefined 27.05.2016 13:56

Цитата:

Сообщение от Zebestov (Сообщение 1194325)
Не знаю, как там в TS, а в JavaScript as не нужен, а is — это instanceof.

ну в js то и нет типизации по сути.Походу TS с полиморфизмом не дружит.Значит на оба вопроса ответ - "нет".Благодарю

Zebestov 28.05.2016 01:48

Цитата:

Сообщение от undefined (Сообщение 1194336)
ну в js то и нет типизации по сути … значит на оба вопроса ответ — "нет"

На второй вопрос был дан конкретный ответ. Что там "нет", автор ответа не понимает. Пояснишь?

undefined 28.05.2016 12:58

Цитата:

Сообщение от Zebestov (Сообщение 1194343)
На второй вопрос был дан конкретный ответ. Что там "нет", автор ответа не понимает. Пояснишь?

Вопрос был:
Цитата:

Есть ли аналоги флэшевых операторов as/is?
Ответ:
Цитата:

Не знаю, как там в TS, а в JavaScript as не нужен, а is — это instanceof.
Т.е. 50% "нет"

Zebestov 28.05.2016 13:07

О каких 50% идет речь? Ответ был дан по поводу того, во что в конечном счете превращается TS (это видно по ответу ниже моего) — по JavaScript. А в нем аналог is имеется. То, что в JavaScript нет аналога as, не значит, что "на оба вопроса ответ - нет", это же очевидно. Да и отсутствие строгой типизации здесь не понятно к чему упомянуто.

undefined 28.05.2016 13:38

is - есть,
as - нету
50%

Добавлено через 1 минуту
про типизацию я упомянул в том смысле что в js её нет, потому там as и не нужен.А в TS где пытаются эту типизацию имитировать он пригодился бы.

amesqit 28.05.2016 13:48

А что можете сказать о Dart? Есть какие-то существенные преимущества/недостатки относительно TypeScript?

Zebestov 28.05.2016 14:13

Цитата:

Сообщение от undefined (Сообщение 1194336)
Значит на оба вопроса ответ - "нет"

Цитата:

Сообщение от undefined (Сообщение 1194350)
is - есть,
as - нету

Ты определись =)

undefined 28.05.2016 14:19

Цитата:

Т.е. 50% "нет"
+пару символов для объема

Zebestov 28.05.2016 15:37

Статистика… бессмысленная и беспощадная. На я тебя понял, ты ошибся и придумал как не отвечать на вопрос =)

undefined 28.05.2016 15:40

Я ошибся что оба ответа "нет" - на самом деле "нет" там всего 75%
ПС:что за вопрос?

Zebestov 28.05.2016 15:42

Теперь уже 75%? У тебя реально семь пятниц на неделе =)

undefined 28.05.2016 15:44

так что за вопрос то?

Добавлено через 1 минуту
50% - "нет" это по второму вопросу было

Zebestov 28.05.2016 15:47

Второй мой комментарий в этом тредике. Ты со своими одному тебе понятными и чем-то ценными процентами запутался в трех соснах =)

undefined 28.05.2016 15:50

давай просто окончим этот оффтоп

Zebestov 28.05.2016 15:52

Да вроде никто не мешал тебе сделать это еще на первой странице =)


Часовой пояс GMT +4, время: 21:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.