17 comments

[ 4.1 ms ] story [ 41.8 ms ] thread
I don't understand why Peter Bright reports on MS at Ars? He obviously doesn't like their tech (calling TypeScript a variant of js?) and doesn't bother to check facts (no Python in VS is not a novelty, PTVS supported VS 2013 already and IronPython is old as rocks.). Who wants to read 3 paragraph rant about releases and versioning?
I stopped reading him years ago for this reason, he always reads as very jaded.
Funny to say that since he was an MS shill back when I cared about those things (12 years ago?)
(comment deleted)
Is typescript not a gradual typing variant of javascript?
Are C++ and ObjectiveC variants of C?
Well Objective C was always touted as a superset of C, any valid C program is a valid Objective-C program, the same with Typescript and Javascript.

So I guess it depends on your usage of variant, does that include strict supersets?

> depends on your usage of variant, does that include strict supersets?

In my rulebook, the answer’s no. When you say “X is a variant of Y” I assume it means Liskov substitution principle must be true for them.

You can’t compile C++ with C compiler, therefore C++ is not a variant of C.

Hmmm Liskov substitution principle is an object oriented programming concept, not sure it applies real well to languages, it definitely wasn't coined for that use.

If you squint a certain way since a Typescript library transpiled can be used from any Javascript library then it would be roughly analog to the Liskov substitution principle for types in an OO language.

The same applies to Objective-C as it can be called from C.

Well, neither are comparable to typescript/js, so I'm not sure what your point is. Both add heavy language features and runtimes that are completely absent from Typescript's additions. Typescript truly is javascript with type annotations and validations.

I think a better example would be Typed Racket.

> Both add heavy language features and runtimes

C++ did none of that.

Unlike ObjC, there was no heavy runtime in initial versions. It was physically impossible, because it compiled into C. Even in modern versions, C++ runtime is very small unless you use corresponding standard library features.

Similar for language features. Before templates, C++ only added a few keywords to the language. In the same manner TS adds strong typing, interfaces, generics and modules.

Yea sure, I suppose you could compare typescript to C++ from 1983. That's certainly not the original comparison (or one anyone would assume), though.
I would say it’s more like C++/98, e.g. generics are already here (roughly equivalent to C++ templates).
The runtime behavior I was alluding to with C++ would be exceptions, which dramatically changed the language compared to c—I'd peg the demise of C++-as-a-superset-of-C with the death of cfront in 93: https://en.wikipedia.org/wiki/Cfront
>He obviously doesn't like their tech (calling TypeScript a variant of js?)

Well, to his defense, TypeScript is indeed a variant of JS.

Yep. Typescript touts itself as, "Javascript that scales," and "A typed superset of Javascript."
As another commenter says: I don’t recognise this at all - all I ever see from Bright is breathless coverage of whatever Microsoft marketing did a press release about that day.