OK I"ll focus on the programming language. The mathematica programming language is a functional programming language which is semi-stateless . It feels similar to OCaml or Haskell.
This is of course not true. Mathematica is a mish-mash language, you can pick and stick to a functional subset but that would be very inefficient compared to doing the same thing in LISP, for instance. OCaml and Haskel are serious pure functional languages, so no monads in Mathematica, no types either, just expressions. "Everything is expressions in Mathematica is Wolfram's mantra", and this is analogous, in fact isomoprhic, to the claim that everything is a list in LISP.
As far as the procedural programming goes, Mathematica has also For, While, etc. just like in C Then it also automatically vectorizes a+b like in APL or J.
But if you know a bit of C, LISP, Haskel or J, only then you see how poor Mathematica as a programming language really is: It could be functional; but slow and without many neat features; it vectorizes, but only trivial stuff; it can be procedural like C but infinitely slower; everything is expression like in LISP, but GC sucks and there are no macros, no closures, no MOP, and so on and on and on...
So Wolfram decides to break backward compatibility of Mathematica and tie you with 6.0.0 because of something as trivial as this rotation matrix. And you gulped it right away.
If you only typed:
These things are expensive because it's not like any random programmer can build this kind of software. Especially with Mathematica, these are heavily-researched algorithms that are nontrivial to implement.
This is not entirely true, of course. Mathematica implements tons of well-known many-times implemented classic algorithms that have been and will be implemented, more or less efficiently. Then, it uses LAPACK and ARPACK, etc, etc. There are some original portions of Mathematica I'm sure, but which ones and how original remains buried under the copyright.
Are you saying it is not useful ? My string theorist friend (last time we talked working on something about supersymmetry & orbifolds but I "forgot" - i.e. didn't understand - the details), assures me it is very valuable in her field. Are you saying everybody already knows it is useful? I never said otherwise.
Is it what not useful? Mathematica? String theory? Supersymmetry? Orbifolds? Theory of relativity?
I am happy that she assured you about the value of it in her field. Is it about use or about value?
To simplify a bit, let's just use the expert's opinion at the face value: Take any famous string theory paper and see how much its author owns to Mathematica. That's the value of Mathematica to string theory.
As for Einstein, it is well known that he would discuss with great mathematicians to learn about math concepts/tools that might prove useful.
Uh oh, ok. What is "concept/tool"? Is it a concept or a tool? Was he looking for both? What would be a useful concept?
To simplify a bit, let's just use again the expert's opinion at the face value: Did Witten consult Wolfram to make him the tool?
You doubt that [Einstein] would have found Mathematica to be a great tool?
Are you so certain that Einstein would have found Mathematica a great tool or are you just questioning me?
To simplify a bit, let's just use, again and again, the expert's opinion at the face value: I taught twice Mathematica to physicists. They'd really thought they'd needed it, that is those who had visited these lectures, and all I'd tried to teach them was bits of various programming paradigms, using poor Mathematica.
[...]I guess what impressed me about Mathematica 7 was the wealth of added features to make it directly useable to all sorts of scientists whose fields are heavy on advanced math, by including not just the functions they use most, but the data as well. It may not have much relevance to a software developer, but I'm sure the electrical engineers who build the micro-hardware could find one or two uses for it.
Well, we call this calculator, not computer. Since you're also talking about abstract mathematics, I'm sure I don't have to explain the difference between the two.
I am sure Einstein would have "killed" for Mathematica.
Yeah, I mean he might have had discovered not only relativity but also string theory! And string theorists, if they only knew all the power concentrated in this package,... I think you should inform them!
and is the only software out there where I'm consistently excited about no versions, and/always/ find ways to incorporate at least a few of the new features in my existing notebooks.
You must be really excited considering that every new version of Mathematica programming language is slightly but ever more and more incompatible with the Mathematica language of the previous versions. They don't only add functions and functionalities or whatever, they also change the language.
You could object it also by noticing that the argument "One might argue that the brain is merely a biological computer not fully understood." implies also the argument "But what guarantees us that, when we better understand the brain, it will still remain to be considered a biological computer?".
[...] Hofstadter said that it is possible to successively approximate something intelligent, and we can learn a LOT about ourselves in the attempts, and that in itself is worth it.
Very cool. I didn't know how to mark a range like that before.
And, while we're having fun with search and replace, ^ will match the beginning of a line, so if you mark as above, and then change the command to::'a,'bs/^/#/
you will have commented out a section of your code without having to insert a comment character independently on each line.
Reverse it with::'a,'bs/^#//
to remove the comments.
That's cool / That's fun / Now let's see how it's in vi done.
1. We go to the beginning line of the block. You have to go to the beginning line of your block to put the mark. But instead of putting it, thus wasting both mark and strokes, just do the change. Just do it: I#<esc>
2. Instead of moving aimlessly around in order to reach the ending line of the block and put mark b there, we change the code by repeating: <Ret>.<Ret>. as many times as there are lines to be changed.
3. When you reach the last line that you need to change, you're done.
4. Then figure out faster ways of doing it depending on the part of the code you're changing,
Also, you can do use "ma" to mark the beginning line, "mb" to mark the ending line, and then:
:'a,'bs/FROM/TO/g
In reality, this is fine only if you marked by a and b a piece of code that you frequently comment/uncomment, although I never use it that way. Basically, if you're using marks you don't want to or can't waste them on marking beginning and ending of a block of code. If you don't use them, then this use of them might seem cool to n00bs, but it is still quite keystroke expensive.
You've pasted a link... link! There is a discussion on slashdot going on about differences between a link and a quote. Link is not quote, so what do you want me to answer? That I didn't write that, or would you rather that I read your mind, MindlessAutomata, and tell you that I wrote it?
I don't know what revisions they asked him to make,...
which is kind of a problem here, that you speak about things you don't know. It's not that hard, articles are available on the net. Instead of informing yourself, you go quoting wikipedia quoting the Sokal's text. You didn't even quote the text you're talking about. Next thing you'll tell me is that you haven't read the text, reactions, newspaper articles, and so on and on.
Please, next response you make to me be sure to be properly verbose and wordy and to namedrop at the very least Derrida:)
You do understand by now the difference between your quoting wikipedia quoting Sokal and quoting the Sokal's text itself, don't you?
It's true Social Text wasn't a peer-reviewed journal, but that doesn't change the fact that it got through the editors--and, well, it surely says something about the necessity of peer review, doesn't it?
The fact is that they did ask him to revise the manuscript, and he refused.
Sokal's paper wasn't just made-up garbage, it was full of outright nonsense and meaningless statements.
It is really refreshing and lots of fun to see that somebody, calling himself MindlessAutomata at that, can distinguish between "made-up garbage" and "outright nonsense and meaningless statements".
I hope I haven't stepped on any of your toes, planx.const ant.
A bit of argument from authority here (but fully justified): You do know who Theodore Gray is, right?
And which authority fully justified a bit of argument from authority?
OK I"ll focus on the programming language. The mathematica programming language is a functional programming language which is semi-stateless . It feels similar to OCaml or Haskell.
This is of course not true. Mathematica is a mish-mash language, you can pick and stick to a functional subset but that would be very inefficient compared to doing the same thing in LISP, for instance. OCaml and Haskel are serious pure functional languages, so no monads in Mathematica, no types either, just expressions. "Everything is expressions in Mathematica is Wolfram's mantra", and this is analogous, in fact isomoprhic, to the claim that everything is a list in LISP.
As far as the procedural programming goes, Mathematica has also For, While, etc. just like in C Then it also automatically vectorizes a+b like in APL or J.
But if you know a bit of C, LISP, Haskel or J, only then you see how poor Mathematica as a programming language really is: It could be functional; but slow and without many neat features; it vectorizes, but only trivial stuff; it can be procedural like C but infinitely slower; everything is expression like in LISP, but GC sucks and there are no macros, no closures, no MOP, and so on and on and on...
For what it's worth,[...]
for your code is worthless to those who want to run it on versions prior to 6.0.0, and it does not have to be that way.
This is because you use the latest discover of Wolfram Research Inc: RotationMatrix. What is this magical new function RotationMatrix[t, {0, 0, 1}]?
In[1]:= RotationMatrix[t, {0, 0, 1}]
Out[1]:= {{Cos[t], -Sin[t], 0}, {Sin[t], Cos[t], 0}, {0, 0, 1}}
So Wolfram decides to break backward compatibility of Mathematica and tie you with 6.0.0 because of something as trivial as this rotation matrix. And you gulped it right away. If you only typed:
q = {{Cos[t], -Sin[t], 0}, {Sin[t], Cos[t], 0}, {0, 0, 1}}
your code would have been more portable, it would work also in Mathematica 5.2. And beyond.
And it doesn't crash.
And it even works now.
These things are expensive because it's not like any random programmer can build this kind of software. Especially with Mathematica, these are heavily-researched algorithms that are nontrivial to implement.
This is not entirely true, of course. Mathematica implements tons of well-known many-times implemented classic algorithms that have been and will be implemented, more or less efficiently. Then, it uses LAPACK and ARPACK, etc, etc. There are some original portions of Mathematica I'm sure, but which ones and how original remains buried under the copyright.
I am not getting your point.
What point? I haven't mentioned any point.
Are you saying it is not useful ? My string theorist friend (last time we talked working on something about supersymmetry & orbifolds but I "forgot" - i.e. didn't understand - the details), assures me it is very valuable in her field. Are you saying everybody already knows it is useful? I never said otherwise.
Is it what not useful? Mathematica? String theory? Supersymmetry? Orbifolds? Theory of relativity? I am happy that she assured you about the value of it in her field. Is it about use or about value?
To simplify a bit, let's just use the expert's opinion at the face value: Take any famous string theory paper and see how much its author owns to Mathematica. That's the value of Mathematica to string theory.
As for Einstein, it is well known that he would discuss with great mathematicians to learn about math concepts/tools that might prove useful.
Uh oh, ok. What is "concept/tool"? Is it a concept or a tool? Was he looking for both? What would be a useful concept?
To simplify a bit, let's just use again the expert's opinion at the face value: Did Witten consult Wolfram to make him the tool?
You doubt that [Einstein] would have found Mathematica to be a great tool?
Are you so certain that Einstein would have found Mathematica a great tool or are you just questioning me?
To simplify a bit, let's just use, again and again, the expert's opinion at the face value: I taught twice Mathematica to physicists. They'd really thought they'd needed it, that is those who had visited these lectures, and all I'd tried to teach them was bits of various programming paradigms, using poor Mathematica.
click here first.
no, no numpy, thanks.
[...]I guess what impressed me about Mathematica 7 was the wealth of added features to make it directly useable to all sorts of scientists whose fields are heavy on advanced math, by including not just the functions they use most, but the data as well. It may not have much relevance to a software developer, but I'm sure the electrical engineers who build the micro-hardware could find one or two uses for it.
Well, we call this calculator, not computer. Since you're also talking about abstract mathematics, I'm sure I don't have to explain the difference between the two.
I am sure Einstein would have "killed" for Mathematica.
Yeah, I mean he might have had discovered not only relativity but also string theory! And string theorists, if they only knew all the power concentrated in this package,... I think you should inform them!
If you're a student, you can get a copy that expires after a year for $150.
Great! So what are students supposed to do with their code after the thing expires?
and is the only software out there where I'm consistently excited about no versions, and /always/ find ways to incorporate at least a few of the new features in my existing notebooks.
You must be really excited considering that every new version of Mathematica programming language is slightly but ever more and more incompatible with the Mathematica language of the previous versions. They don't only add functions and functionalities or whatever, they also change the language.
You could object it also by noticing that the argument "One might argue that the brain is merely a biological computer not fully understood." implies also the argument "But what guarantees us that, when we better understand the brain, it will still remain to be considered a biological computer?".
[...] Hofstadter said that it is possible to successively approximate something intelligent, and we can learn a LOT about ourselves in the attempts, and that in itself is worth it.
You mean: there is a Cartesian God?
Ooops, html escaped my <F5>... map <F5> s/^/#/^M
If really necessary to bind this to anything, I'd use: qcI#<esc><Ret>q. It's less typing overall and I haven't bound any F-key to such a trivial task.
Very cool. I didn't know how to mark a range like that before.
:'a,'bs/^/#/
:'a,'bs/^#//
And, while we're having fun with search and replace, ^ will match the beginning of a line, so if you mark as above, and then change the command to:
you will have commented out a section of your code without having to insert a comment character independently on each line.
Reverse it with:
to remove the comments.
That's cool / That's fun / Now let's see how it's in vi done.
1. We go to the beginning line of the block. You have to go to the beginning line of your block to put the mark. But instead of putting it, thus wasting both mark and strokes, just do the change. Just do it: I#<esc>
2. Instead of moving aimlessly around in order to reach the ending line of the block and put mark b there, we change the code by repeating: <Ret>.<Ret>. as many times as there are lines to be changed.
3. When you reach the last line that you need to change, you're done.
4. Then figure out faster ways of doing it depending on the part of the code you're changing,
Also, you can do use "ma" to mark the beginning line, "mb" to mark the ending line, and then:
:'a,'bs/FROM/TO/g
In reality, this is fine only if you marked by a and b a piece of code that you frequently comment/uncomment, although I never use it that way. Basically, if you're using marks you don't want to or can't waste them on marking beginning and ending of a block of code. If you don't use them, then this use of them might seem cool to n00bs, but it is still quite keystroke expensive.
Anonymous Coward has made a correct point, no matter how crudely has he put it to the hex dude.
Indeed. He wrote the story as if it were a great mystery to compare timings of programs he ran before and after the change in setup.
Oh! YOU were the one that posted this:
http://slashdot.org/comments.pl?sid=1003069&cid=25458011
How enlightening this all is!
You've pasted a link... link! There is a discussion on slashdot going on about differences between a link and a quote. Link is not quote, so what do you want me to answer? That I didn't write that, or would you rather that I read your mind, MindlessAutomata, and tell you that I wrote it?
I don't know what revisions they asked him to make,...
which is kind of a problem here, that you speak about things you don't know. It's not that hard, articles are available on the net. Instead of informing yourself, you go quoting wikipedia quoting the Sokal's text. You didn't even quote the text you're talking about. Next thing you'll tell me is that you haven't read the text, reactions, newspaper articles, and so on and on.
Please, next response you make to me be sure to be properly verbose and wordy and to namedrop at the very least Derrida :)
You do understand by now the difference between your quoting wikipedia quoting Sokal and quoting the Sokal's text itself, don't you?
It's true Social Text wasn't a peer-reviewed journal, but that doesn't change the fact that it got through the editors--and, well, it surely says something about the necessity of peer review, doesn't it?
The fact is that they did ask him to revise the manuscript, and he refused.
Sokal's paper wasn't just made-up garbage, it was full of outright nonsense and meaningless statements.
It is really refreshing and lots of fun to see that somebody, calling himself MindlessAutomata at that, can distinguish between "made-up garbage" and "outright nonsense and meaningless statements".
Do we have a postmodernist on Slashdot?
I am just as worried as you are, especially after seeing only 30 posts on slashdot about Perimeter Institute launching modern physics resources.
Total of 30 posts, incl. 2 of mine... not exactly a hot topic is this PI launch, is it?
Well, some of these hoaxes, like the hilarious Sokal hoax, weren't really scientific hoaxes moreso than exposing the idiocy of certain groups.
Yes, that's a good one! Poor Sokal...