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
>