4 ms·
I don't think LtU is all about type system design. There are plenty of discussions about parsing, semantics, programming language implementation and so on. And
by nandemo 15y ago
I don't think LtU is all about type system design. There are plenty of discussions about parsing, semantics, programming language implementation and so on.
And type system is optional? Besides Assembly, I can't think of any widely used programming language that is untyped.
Yes, there are plenty of languages with weak typing or dynamic typing, but that's very different from no typing at all.
- yassim 15y agoDart (from what I've heard) is actually a form smalltalk. strongtalk[1] is also an optional typed system. [1] : http://www.strongtalk.org/ http://www.strongtalk.org/
- chc 15y agoI don't see what would make "Smalltalk" a good description of Dart. It doesn't appear to be message-based, isn't built with images and doesn't appear to be pervasively object-oriented (e.g. it has a syntactic `if` rather than using messages to booleans). I can see some Smalltalk influence in Dart, but only as much as I see in Java.
- rayiner 15y agoI mean there are articles on LtU about typing parsers, expressing semantics through typing, etc. Which is fine its a forum with a specific niche, what is sad is that niche has come to totally dominate PL design in academia. And at least the static type system in Dart is optional. Yet all I hear about Dart is digs at its static type system. Can't express non-nulity, has covariant generics, etc. Who really cares? It's designed to throw up a warning when you pass a string to Math.min, not to allow expressing every static invariant possible through the static type system.
- chc 15y agoThe reason people are deriding it is because it's touted as a feature of the language, but it's really a very unhelpful and relatively powerless type system. Enforcing non-null is more useful than warning me if I pass a string to Math.min. The amount of time I've spent debugging strings passed to Math.min (so to speak) is a rounding error next to the time I've spent weeding out unwanted nulls. Imagine if I were to put out a language with great fanfare given to the fact that it has a built-in string type. What would your reaction be?
- simcop2387 15y agoAnd to be fair even Assembly might be considered to be typed on most architectures. You've got multiple different sized integers, and possibly floating point registers.
- barrkel 15y agoEhud drops heavy hints when things wander too far from the academic and theoretical mainstream (which happens to be proving more and more things with type systems, by and large). Discussing pragmatics that tread into territory covered by existing books is discouraged.
- ehudla 15y agoI am, in fact, very interested in pragmatics. We value new insights and results, and substantiated claims. But syntax, semantics, pragmatics are all fair game. As are the sociology of the PL world, and psychological insights about cognitive aspects of PL work. And of course we are also into the history of the field.
- barrkel 15y agoThat's not been my experience. In particular, commercial (ie non academic) language development is heavily influenced by business concerns, but you are very hostile to any mention of them if it's not just to disparage industry from not following the trends du jour; you believe such commercial discussion is off topic, but it actually excludes reasoned discussion of stuff the hasn't either come out of a lab or academia. If I have time, I'll go look up and post links to some of your comments. As a practitioner it put me quite off LtU for some time, and I don't interact there as much as I could.
- ehudla 15y agoDiscussion of business concerns per se is off course off topic. Reasoned discussion of their effects on PLs is not. It's a fine line, to be sure. Be that as it may, there are many issues that are neither type theory related, nor related to business concerns :-) Anyway, I think this discussion would be more appropriate on LtU than here.
- JeremyBanks 15y agoYou've misunderstood the type system. It's not untyped, it's the static typing that is optional. It's mostly just your typical dynamic type system with optional type checks in debug mode and (incompletely) at compile-time.