14
$\begingroup$

As an 'user'-level in Mathematica, I mainly use built-in Mathematica function and benefit Mathematica as a mathematical tool-box for my specific scientific problem. My level is not yet programmer-level.

The magic of Mathematica is that there are endless level of skill to improve. It is hardly to evaluate a C-programmer by viewing his code. But for Mathematica, be viewing the code, the level could be evaluated. Normally, when skilled level increases, the length of code decreases. Based on the idea of Leonid Shifrin and the level in online game, I myself auto evaluate my skill.

  • Level 0 - Level 20: Beginner-Users who uses mainly built-in functions.

  • Level 20 - Level 40: Intermediate, mix some long procedural programming and functional style

  • Level 40 - Level 60: Expert, low-level system understanding

Although I have "Mathematica Advanced Foundation Level" certification, I think my level is Beginner - Pre-Intermediate about level 18- to level 22. I can not understand the Expert level, for example One-Line Code Competition. As we can see here, Expert level codes program in just 'one line'. :)

My question is, could you please introduce the use of Mathematica as a real-life application? It is not a question of technique, but a question of idea, imagination. Your applications could open my eye of the use of Mathematica in your real-life. I also see "User Stories" on Wolfram site, but almost of them are scientific, industrial applications.

In my case, as an researcher-lecturer at University, I intend to use Mathematica in my teaching. Correct the copies take me a lot of time. So my project is:

  • Use Mathematica to auto generate MCQ (Multiple Choice Question) question based on my question data base.

  • Scan students answers as an image file.

  • Use Mathematica to generate the note by image manipulating on these scanned copies. (The optical reader in my university is really expensive, and not available for everyone). So coding my own Mathematica code is optimal way.

Ideas, projects of the use of Mathematica in real life are welcome !

$\endgroup$
8
  • 2
    $\begingroup$ projects of the use of Mathematica in real life are welcome one example is wolframalpha.com $\endgroup$
    – Nasser
    Commented Dec 22, 2013 at 1:39
  • 3
    $\begingroup$ @Nasser O my! Now I understand $\endgroup$ Commented Dec 22, 2013 at 2:35
  • 2
    $\begingroup$ Personally, I think this is a good question, especially as it's more likely to arise in the future from newcomers to the "Wolfram Language". However, be warned that questions without any objectively correct answer are generally frowned upon in the StackExchange format. $\endgroup$ Commented Dec 22, 2013 at 2:37
  • 2
    $\begingroup$ So you're looking for non-scientific examples of the use of Mathematica in people's "daily life"? There are plenty of examples on this and other sites. But I don't see where your "expert levels" and code brevity concerns come in to the question...? $\endgroup$
    – cormullion
    Commented Dec 22, 2013 at 8:12
  • 6
    $\begingroup$ Also: @Mr.Wizard and Leonid should give out silly certificates that you can print out and show to your relatives :P. $\endgroup$ Commented Dec 22, 2013 at 23:29

2 Answers 2

28
$\begingroup$

This answer is entirely opinion, but given the question, what else could it be?

I reject the OP's linear skill rating proposal. Mathematica is too large and to amorphous for the skill of its diverse user community to be categorized in such a tidy way.

I also disagree with the OP's view that code will inevitably get more concise as one's Mathematica skills increase. One does get better at playing code golf, but for serious projects -- say writing a Mathematica package intended to be used by many people over many years -- the need to support argument validation, manage options, supply meaningful error and usage messages, support unit and functional-level testing, etc., all conspire to bloat the code far above the conciseness that can be achieved when one doesn't need to worry about such things, such as when answering questions of this site. That is, for many "real-life applications", the need to do software engineering overrides the aesthetics of concise coding.

$\endgroup$
6
  • 8
    $\begingroup$ I would vote for this twice if I could. All too often here on SE we put an unduly (IMO) strong emphasis on concise code, and I have to say that for real-life (or, just larger) Mathematica projects, at least in my experience, more often than not the main difficulty is elsewhere - the right design, managing code infrastructure, splitting it up into right modules, maintaining testability, etc - basically all things you have described. $\endgroup$ Commented Dec 22, 2013 at 15:27
  • $\begingroup$ One thing that I would add to this is that one direction to reduce the code bloating which seems to be currently severely underused is meta-programming, which is capable of separating the concerns (e.g. error-checking and main code logic), etc. One reason for this seems to be that, in order to be used effectively by many users, this has to be packaged in some kind of a framework. And frameworks are hard to get right and even harder to win a widespread adoption, if they are not the end products but some middleware software tools. $\endgroup$ Commented Dec 22, 2013 at 20:24
  • $\begingroup$ @Leonid meta-programming has been your baby for some time now; perhaps you could move toward official framework support in v10/11/+? $\endgroup$
    – Mr.Wizard
    Commented Dec 22, 2013 at 20:25
  • $\begingroup$ @Mr.Wizard I am not the only one in the company to use it, by far. Besides, for this particular topic (and some others as well), I would prefer an open-source development. So yes, I'd like to do this. The problem is to find the time, as always. I do have some plan for this, so let's see. $\endgroup$ Commented Dec 22, 2013 at 20:28
  • $\begingroup$ @Leonid You laid out a wonderful summary of the topic and I appreciate that. Have you now observed methods that are different from or extend beyond the concepts presented there? $\endgroup$
    – Mr.Wizard
    Commented Dec 22, 2013 at 20:31
11
$\begingroup$

A real life application... Decision Maker is one of the most useful Mathematica programs I have ever written. It came about because it was a cold and rainy day: I didn't feel like riding my bike home from work, taking the bus would take a long time, and it would be humiliating to ask for a ride. What to do? I couldn't decide, but Decision Maker could:

RandomChoice[{"ride bike", "take bus", "find ride"}]

I have often found myself using different versions of this program when I need help with decisions. I think this makes me (about) a level -5 user.

$\endgroup$
3
  • 1
    $\begingroup$ Funny answer ! I never used MM like this yet ! $\endgroup$
    – faysou
    Commented Jan 8, 2015 at 15:12
  • $\begingroup$ Wished I would have seen this sooner, really helps in my day to day decisions +1. $\endgroup$
    – bobbym
    Commented Jan 3, 2016 at 16:53
  • $\begingroup$ Which reminds me of Dice Man by Luke Rhinehart. :) $\endgroup$
    – gwr
    Commented Apr 20, 2017 at 12:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.