@halirutan What I read quite often in the reviews is that many developers are on their own in their projects and that projects can be thrown away when SW develops an interest in a new shiny fad.
Lack of seemingly most trivial unit tests for simple features seems odd. I understand that there are things that are hard to test well, but some recent evidence would point to the direction WRI has no automatic testing whatsoever for some features, and no manual testing coverage to solve that issue.
I just now need to add a controller to my little 3 links robot
@kirma unit testing with full coverage of functionality is very complicated and time consuming. Not many companies do it actually. It takes lots of time.
@Nasser I'm well aware of that. Simple testing of "does this ever work" should still be in place. Apparently there isn't any for some new functions in v10.1.
It is even harder for languages with no static typing such as M and Matlab and Python, etc... since one does not have the help of a compiler to detect many error at compile time. so this makes it double hard. One has to force the code to go through code path to find the error.
I do think for unit testing, Mathematica kernel should be pretty nice unit testing environment. Usually it's entirely self-contained environment.
It is not like a bug I once hunted: it demanded running a TCP stream with odd segmentation at 10 gigabit speed through a NIC, and recording the condition under which hardware offload engine - probably as a result of timing issue in hardware design - added extra bytes to segments seen by the OS. This happened only every couple hundred million Ethernet frames.
Other thing for which writing unit tests is nearly impossible are systems where both OS kernel and userland code, plus peripherals, manipulate same memory region from dozens of CPUs at the same time. Yet, tests can be implemented. Problems seen in Mathematica are several orders of magnitude closer to trivial.
When observing some snafus on Mathematica from this perspective, it's not hard to see that they could have quite an quality assurance issue.
Like, "if there are any working automatic tests, this can't have gone through the process without noticing."
I wish M has a debugger that is easy to use. I spend more time to find where a problem is with M that I ever spend with any other system. May be this also causes the developers inside WRI same issues. I have no idea how they debug Mathematica commands with just print statements.
@kirma when there is deadline, testing is the first task that gets tossed out :)
@Nasser There's also possibility for time-boxed releases. Releases occur on time, but content gets there only when it fulfills all requirements, including testing.
In a way I really like Mma, but I'm quite concerned of the company producing it. It's hard to think of another product and company that I think the same way.
@kirma in the CAS market, there is really only Maple out there close to M, but M is much better polished and better UI. I do not think sage and maxima and other free CAS have anything close to what M has. Have you seen the new Maple Manipulate like site?
@Nasser I must say I haven't played with other CAS software. I have been trying to learn to be fluent with Mathematica (on and off) since '95, and I don't really think I have time and energy as a hobbyist to do the same on other products.
@Nasser Yep... well, I'll spend my time on that once it becomes professional issue. This far my actual work has been quite strongly on the low-level C writing regime.
@Nasser With nasty oneliners - length of a screenful or so. Some day I'd hope to have a nice framework for such spherical designs...
Occassionally a feeling of Mma being useful for work comes to my mind, but this would be something like couple days a year. Not really worth the effort of wrestling with whatever department at work (probably on other continent) manages software licenses.
There is a huge problem is using second argument of dynamics with shared Manipulate variables. I am not able to synchronize the action in second argument of dynamics with the main Manipulate update. If I set a variable in the second argument of dynamics to say 0, while Manipulate is updating, the updating can over write it this value. There is no way to make a critical section. This is huge problem. FinishDynamics[] does not help.
Aha! I found the solution. Need to use SynchronousUpdating -> True Now, with FinishDynamics[], this forces the Manipulate to finish updating before second argument of dynamics runs. Now all is ok.
But this makes the simulation a little jerky at times, and not as smooth as before, but at least more deterministic now.
Some questions apply to functionality present only in (or after) certain versions. Others are for legacy versions such as 5.2.
By what criteria should tags be applied?
What tag format(s) should be used?
version-8
mathematica-7
v5.2
v8.0+
legacy-pre-v6
etc., etc.
Given the huge volume of questions we get here, it's likely that some newer version of MMA may greatly simplify some answers to questions about improving/refining/avoiding some built-in MMA functionality. One thing in particular that comes to mind is the whole legending issue (legending), where e...
Using What to do with [bugs] questions now that version 9 is released? as a guideline Questions about bugs that have been fixed should have individual tags for each affected version. However this is impossible for longstanding bugs where there are many affected versions as a Question may only ha...
@SjoerdC.deVries I had missed the 2nd one. My thoughts at the moment are more along the lines of WRI deciding to add a noticeable amount of functionality with only a point-change in the version number, which might confuse people. "Why isn't WikipediaData? working for me, I have version 10!" and the likes may come up more frequently if WRI plans to roll out additional features in frequent point updates.
@bobthechemist all of the functions we are now routinely using were introduced in a certain version. Nevertheless, in most cases with questions concerning a specific function we do not label the question with the version that introduced this function. Why, then, would we do that for a new version that eventually will be an old version?
@SjoerdC.deVries My (one) datapoint is this question which I would see a user trying to implement (since it is tagged v10) yet they don't have 10.1 installed.
@SjoerdC.deVries No, my typing was slow and I was responding to your previous chat line. I'm thinking that something in the Version-10 tag about how there are a number of changes in the functions between (at the moment) 10.0 and 10.1 would address the concern I have.
Let's say you have a list l of length 5 and an access pattern like this {5,2,1,3,4}.
The access should be understood as follows: the 1st element of l goes into the 5th place, the 2nd element of l goes into the 2nd place, the 3rd element of l goes into 1st place, and so on
It's a bit like Transpose works but for list access. Do we have a very fast (built-in) way for this?
Hey, Mathematica beginner here. I have a general question that I don't think would be appropriate for the site, so I thought I'd ask it here. While using the notebook interface (Mathematica 10 on Linux), sometimes my kernel will just restart: all the symbols I've typed so far turn purple and can't be used, and new evaluations will appear starting from In[1] again. I don't think this is due to inactivity; sometimes it happens just a minute or so after starting Mathematica. Any ideas why?
@WChargin Are you sure it's after a certain time and not because of something you are evaluating? Either way it shouldn't happen, but the latter I know from experience can happen.
@WChargin The support and I, we could never find out the specific reason and honestly, I just gave up to talk to the support because they suggested it was my network printer.