Brendan Eich (2013-10-28T15:14:55.000Z)
domenic at domenicdenicola.com (2013-11-03T22:01:04.863Z)
Tristan Zajonc <mailto:tristan at senseplatform.com> October 27, 2013 5:47 PM > I apologize for jumping in here with an incomplete understanding > what's being proposed, but perhaps somebody can help clarify it for > me. I've been following value types and operator overloading > discussion with great interest. From the slides and video, it appears > that operator overloading is only being discussed in the context of > immutable value objects. Is this right? Or is it just what the > examples use? If operator overloading only applies to value objects, > what's the motivation? Do you mean "what's the motivation for not applying operators to mutable objects too?" > I've implemented a large part of MATLAB/R like functionality in > JavaScript. The biggest hurdle is a tolerable API for the core matrix > and dataframe types. While perhaps silly, it's a deal breaker for > some people coming from other environments. Otherwise, JS is an > amazing platform, particularly with ES6 features. Mutable objects may want certain operators for convenience, but for mutable objects in JS, === must be reference (not transient value) identity, and == would be pretty bug-inducing if transient value comparing. Same comment for < and <=. > A secondary issue, and probably a bigger can of worms, is whether the > proposal will allow for additional operators. For matrices, there is > a well-defined and established set of operators that operate > elementwise and objectwise (MATLABs dot-operators vs. operators). What punctuators or (non-ASCII?) lexemes would you want for these operators? > The API Function.defineOperator(symbol, type1, type2) would be perfect > to support this. However I assume this is not the intention? Is there > any openness to supporting user defined infix operators or at least an > extended set similar to Python's PEP 225 proposal > (http://www.python.org/dev/peps/pep-0225/)? I'm not proposing syntactically novel operator extension. That is hard in a C-like language, but doable with enough work. It would be a separate proposal on top. > Sorry if my comments are based on not understanding the proposal. No worries,