On Monday, April 27, 2015 at 8:27:59 AM UTC-4, Tamas Papp wrote:
>
> On Mon, Apr 27 2015, Scott Jones <[email protected] <javascript:>> 
> wrote: 
>
> > How is `cholfact` completely clear to the general programming community? 
>   
> > I bet most people, just seeing the name, would think it was some fact 
> about 
> > "chol"... 
>
> If there are indeed such people and they are wondering about the 
> function, they can just type help(cholfact) and figure it out. 
>
> The reverse problem (finding the function that does what you want, 
> instead of figuring out what a given function does) is much more common 
> and difficult to solve, which is why I think that 
> factorize(Cholesky,...) would be just awesome. 
>
> > Same thing with the explanation of why * was used for string 
> concatenation 
> > (that it screamed "not commutative"... but, I'd also bet, that at least 
> 9 
> > out of 10 college graduates 
> > would assure you that multiplication *was* commutative, and could point 
> you 
> > to a ton of results on Google to back that up!) [I *do* understand that 
> in 
> > matrix multiplication, a dot product is not commutative, but how many 
> > people, even well educated people, would know that...]) 
>
> I guess that 90% of people who have a college degree and program had 
> some exposure to intro linear algebra, so they might know it. The rest, 
> of course, are out of luck and will have to google it, which is not a 
> big deal. 
>
>  
???
I think you are *way* off base with that (and this, to me, is an example of 
the rarified world it seems a lot of the Julia community lives in! ;-) )

1) A large number of people who program do NOT have CS degrees, or have 
even had a single CS course (probably the vast majority, actually)
2) Even at places like MIT, linear algebra is not a requirement for a 6.3 
(CS) degree (at least, it wasn't 30+ years ago)
3) Even for people who've had linear algebra (like me, I did take 18.06, 
the linear algebra course),
    * does not "scream" non-commutative, in fact, I still think of * as 
generally being commutative, and would explicitly
    say "matrix multiplication" if I were talking about the non-commutative 
matrix operation.
4) If you Google "commutative", guess what you find?  Pages upon pages that 
say commutative property of multiplication!
    In fact, the *very top* result is this:

com·mu·ta·tive
> ˈkämyəˌtātiv,kəˈmyo͞otətiv/
> *adjective*
> MATHEMATICS
> involving the condition that a group of quantities connected by operators 
> gives the same result whatever the order of the quantities involved, e.g., 
> *a* × *b* = *b* × *a*.
>
>
>
To me, if I saw "string" * foo, that would "scream" repitition, NOT 
concatenation... (and I hold that if you did a survey, outside of the Julia 
community, that at least
90% of programmers would say the same thing)

So, I hope that lays to rest the justification of using * for string 
concatenation... it simply was a very bad choice, and I *really* wish it 
would be changed ASAP...
(at least, use a new operator [not overload some other binary operator] 
that also works for concatenation of vectors, and deprecate the confusing 
use of * for
string concatenation...)


While I agree that * for strings is unfortunate (in fact, I don't think 
> that strinng concatenation warrants infix syntax), IMO this whole issue 
> is a red herring: all languages have quirks like this, and while 
> minimizing the number of them is a worthy goal, I wouldn't think that 
> these pose the greatest conceptual difficulty when learning Julia. 
>

It is a pretty big one, I think, for people coming from most any other 
language...
+,  &, _, ||, .. are all infix operators for string concatenation in other 
languages... + being by far the most common [not that I think that ANY 
numeric operator
should be overloaded for string concatenation in Julia]

I can tell then that you don't do much string processing... Nobody would 
want to use Julia if you didn't have infix syntax for one of the most 
common operations!
Sorry, but I feel that that's insane... dot product warrants infix syntax, 
but string concatenation does not???
 

> Best, 
>
> Tamas 
>

 

Reply via email to