@delt0r: my non-commutative comments only about non-primitive types. Float ops are worse in that they are non-associative and not (normally) special cased, so I don’t find any big deal about using the common product token for non-commutative products.
@kaffiene: To me it seems like most people seem to base their opinion on C++ operators and a very high percentage without any real first hand experience. I’ve no knowledge of scala so I cannot really comment on that implementation. I look more to mathematical DSLs than any general purpose language for reasonable operator overloading.
Not having operators doesn’t change this fact. With or without the situation is identical.
I’ve always seen inner and outer products having higher president than add/sub. I cannot see any logical argument to give them the same. But ultimately that’s a different story because the outer product of vector analysis isn’t a product so why overload the product operator in the first place? And besides some language do indeed allow user defined prescience rules…but that’s a different can of worms and something that the vast majority of people would totally hate. Personally I’m not in favor of.
No argument…more operators is all good. If fact many algebras need many operators for operator overloading to be of any real usage. Example Clifford algebra pretty much needs product, geometric inner and outer products, Euclidean inner and outer products and multiple conjugates to be generally useful. But really this is a different issue.
Nor should you as it’s not a product. It’s an outer product, specifically: (ab-ba)/2…as such overloading product is an illogical choice. Only being about to choice from basic operators, then the only logical choice is “^” as the wedge product is a semi-standard notation for outer products. (SEE: later)
Exactingly…we agree from different perspectives. You can’t prevent programmers from writing bad code, so don’t even attempt to do so.
WRT: vector analysis. I don’t care about operator overloading for this algebra. Why? Vector analysis is like C++. It’s totally awful, which is not to be confused with useless. It’s in fact very useful, but it’s a horrible algebra. It has virtually no operators and operator chains tend to be very short…so explicit method calls instead of operators is no big deal.