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?
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.
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.
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
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.
17 comments
[ 4.1 ms ] story [ 41.8 ms ] threadSo I guess it 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.
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.
I think a better example would be Typed Racket.
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.
Well, to his defense, TypeScript is indeed a variant of JS.