I looked at Sage, hoping it would be a useful alternative to the commercial products, but in my opinion it is simply not useful due to a very lax attitude towards bugs and code quality.
Most mathematicians I know tend to pay attention to detail, but that seems to go out the window with the Sage developers. As I write, there are 2228 open-tickets on their trac server, of which I would estimate at least 2000 are bugs.
http://trac.sagemath.org/sage_trac/ticket/4942
is one trivial example of where the wrong roots are found. This bug was originally marked as the highest priority (blocker) 22 months ago, then downgraded to "critical" 16 months ago by the lead Sage developer (William Stein). If the lead developer considered it critical 16 months ago, why has nobody made a single comment about it in 16 months?
Just compiling the code I get over 3000 compiler warnings. Some look harmless, some look serious. In one bit of code I looked at in some detail, I was astounded how poor it was.
One of the Sage developers has commented on the "release it now, we will make it work later mentality". That sums it up for me. There are a few developers that seem to be frustrated by a lack of quality control, but they are very much in a minority.
The source code is large (about 280 MB last time I looked, and I expect it's even bigger now). But a lot of it is unnecessary duplication.
On the positive side, the web interface is a nice idea. But again that is poorly implemented, as someone else remarks. In particular I think the security model is ill thought out. Each user has their own user name and password, so you would not expect that user1 could kill the processes user2 is running. But since each user actually runs under one single user name on the system, they can kill each others processes just by using the 'kill' command, which is easy as you can get a shell very easily.
Sage has a lot of functionality, but personally I don't feel enough attention is paid to detail.
Of course, in theory, being open-source, I can fix the bugs I find and can check the code for correctness. In practice, that is just not practical for me. I want to use the software - not spend my life checking it.
If you are a number theorist, then Sage might be useful to you, since that is what is of interest to most of the developers, and is one of the strengths of Sage. In that area is surpasses even Mathematica. But for general usage, it is just not worth the effort, unless you don't care whether the results you get are right or not.
Of course, I don't totally trust any software. But I find more bugs in using Sage in an afternoon than I find in MATLAB or Mathematica in using them for a week. Sage is just too buggy.
Karen.