On Thursday, 21 August 2014 23:08:18 UTC+2, Dima Pasechnik wrote:
>
> On 2014-08-21, Bill Hart <goodwi...@googlemail.com <javascript:>> wrote: 
> > ------=_Part_5_2037022158.1408650350021 
> > Content-Type: text/plain; charset=UTF-8 
> > 
> > Julia can already call Python functions (and I don't mean in some 
> > theoretical, technical sense, I mean very practically via an interface 
> > designed explicitly for such). So it's not necessary to "move" Sage from 
> > Python to Julia. Other Scientific Python projects haven't done this. 
> > 
> > There are other reasons why this is not necessary, because of other 
> > technical advances that will become available in the coming few years 
> (they 
> > are working in labs right now). 
> > 
> > Instead, the Sage project should do two things in my opinion: 
> > 
> > 1) Make Julia part of the Sage ecosystem (it's already had a huge 
> > investment from the scientific and statistical communities, so this is a 
> > no-brainer if you want to embrace that community) 
> > 
> > 2) Invest in the technologies that are making Julia successful (jit, 
> > dependent typing, metaprogramming, type checking and inference, etc.) 
> > 
> > Whether 2 involves rewriting some functionality in Julia, or simply 
> finding 
> > ways of adding such functionality to Python is really neither here nor 
> > there. 
> > 
> > What Sage can't do is just stagnate and ignore progress. If it does, it 
> > will be brushed aside as if it wasn't even there, as has happened over 
> and 
> > over again in the history of computer algebra! And it's happening to 
> Sage. 
> > A few years ago, people at conferences were excitedly demonstrating 
> stuff 
> > in Sage. This year, they've moved back to Magma. 
>
> Perhaps, it's merely thanks to Simons Foundation making Magma free for all 
> universities in USA? 
>

Definitely a factor. But a minor one.

William is pretty much right about why people are going back to Magma. But 
a lot of people are missing the other reasons....
 

>
> Oh, perhaps you mean that Magma has switched over to Julia? :-) 
>

Noooo. Julia is not the issue here. I honestly couldn't give a toss about 
Julia. I've been very open about the fact that I think there are things 
wrong with Julia and that I will likely move my work from Julia to some 
other language in the future (when such a language becomes available). But 
it is definitely the best language around for this sort of thing.

The issue here is the technology Julia is based on. Without it, you are 
going to very rapidly fall behind. And I said so very publicly, years 
before Julia was even announced (I'd have to check, but possibly even 
before private development of Julia began). At the time my "criticism" was 
posted to sage-flame and ridiculed.

Anyway, to address your point. Magma is technologically superior to Sage in 
many ways (and in other ways is completely backward).

Magma has been actively investing in parallel and GPU technology. And I 
happen to know they employed at least one person working on LLVM and 
web-based technologies.

Magma has its own language, and doesn't need Julia. They can (just as Sage 
can), embrace the new technological innovations, without throwing away 
everything they have.

Magma isn't a static target for which development stopped when Sage began. 
It is a moving target, that in some areas will always outstrip Sage. The 
only way to beat it, is to make sure Sage can move even faster than they 
can in embracing new technology. It needs to be possible to get a Magma 
beating solution off the ground in half the time Magma can do it. And that 
is nowhere near the case.
 

>
> > 
> > As I have already mentioned, the technology behind Julia can in theory 
> do 
> > generic programming even faster than C or C++. So it is a strictly 
> superior 
> > technology to what has been available in the past. It's a genuine 
> > innovation, whether the Julia designers see it that way or not. 
>
> Wait, are you saying there is an optimising Julia compiler available? 
>

You don't need an optimising compiler for Julia. Precisely the same backend 
that is used for the Clang C/C++ compiler underlies Julia. It's over 1 
million lines of code. The difference is, it is jit compiled.
 

> Without it, it sounds a bit like claims by Java poeple saying that their 
> JIT compilers are so great that they beat C compiled with gcc... 
>

No, I said generic programming can be faster in Julia than in C. Not that 
generic programming can be faster than some particular C compiler. The 
technology is fundamentally superior to C. That's a concept people are 
going to take a long time to understand and accept, but it's true.

In theory, I can do generic programming in Julia that is faster (at 
runtime) than you can do in *any* C compiler. And I don't just mean a 
little bit. I mean a lot. I don't even think the Julia people fully realise 
this yet (I might be wrong about that, I don't know). And it's not been 
realised in practice for many cases. But it is true.

On the other hand, because the Julia Jit is based on the technology behind 
Clang, it can sometimes outperform gcc, just because Clang can. GCC isn't 
working on their own Jit technology for nothing!
 
The point is, Julia has a massive optimising compiler behind it. People 
don't realise this. LLVM is NOT a virtual machine, nor is it a peephole 
optimiser. It is an optimising compiler. It performs most of the 
optimisations *at the back end* that would normally be done by the compiler 
*front end*, because it carries "rich type information" right through. Type 
erasure still occurs at execution time, obviously. But LLVM can optimise 
what would otherwise be done by the front end of a compiler because it 
retains enough semantic information to do so.

And LLVM can be used to automatically optimise any program language that 
uses it for GPU's and, and, and.

However, none of that is what I am referring to. I'm referring to Julia's 
ability to do zero cost abstractions, meta programming all on top of a Jit. 
You cannot do any of those things in C. It's strictly more powerful.

My cursory look into Julia only poped out JIT stuff, not a real complier... 
>

Static compilation is coming to Julia. But not because it will speed things 
up. It already has all the speed of an optimising compiler at the console, 
as you type!


> > 
> > The Julia developers are not like me. They like Python and embrace it 
> (many 
> > of them are pythonistas). They would never go around claiming Julia is 
> in 
> > any way superior to Python. But I am not one of them and can go around 
> > making such claims, because in the sense that I mean it, it is true. 
>
> What personally put me off Julia when it was announced was that 
> "We are power Matlab users" in the top of the blog post announcing 
> Julia project back in Feb 2012. I thought "oh yes, swell, we do need a 
> better 
> Matlab nchoosek() and 'everything is a matrix' greatness :-)"... 
>

They actually wanted to be the next R. But lots of Matlab users saw 
potential.

In my opinion, Julia is Ma* agnostic. They have a heavy bias towards 
numerical stuff at present, and they need an algebraic stack. But I'm 
having no problem writing one.

You can literally load Julia in bare-module mode. It throws all the numeric 
stuff in the toilet, and you can define your own semantics on top of Julia. 
Kind of like the prelude in Haskell.

This needs to be done by some serious algebraists. But it's not hard work.
 

>
> Dima 
>
> > 
> > Bill. 
> > 
> > On Thursday, 21 August 2014 20:33:00 UTC+2, mmarco wrote: 
> >> 
> >> So, would it be thinkable of to move sage from Python to Julia? Sounds 
> >> like a titanic task, but sounds like if there are so many advantages in 
> >> Julia with respect to Python, it could be worth it. 
> >> 
> > 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to