5 ms·
Is typescript not a gradual typing variant of javascript?
by drb91 8y ago
Is typescript not a gradual typing variant of javascript?
- Const-me 8y agoAre C++ and ObjectiveC variants of C?
- SigmundA 8y agoWell 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?
- Const-me 8y ago> 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.
- SigmundA 8y agoHmmm 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.
- drb91 8y agoWell, 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.
- Const-me 8y ago> 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.
- drb91 8y agoYea sure, I suppose you could compare typescript to C++ from 1983. That's certainly not the original comparison (or one anyone would assume), though.
- Const-me 8y agoI would say it’s more like C++/98, e.g. generics are already here (roughly equivalent to C++ templates).
- drb91 8y agoThe 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 https://en.wikipedia.org/wiki/Cfront