SM is now over 20 years old and continues to be actively used in the astronomy community even among the younger generation. As of this writing there are much better options.
Or why SM was a fleeting phase:
DEFINE v 12 # string "12"
SET x = 10 # 1-element vector 10 20
SET y = $v + x*12 # Add strings and vectors (well... PERL does this too)
DEFINE y $v+x*12 # Syntax error, why?
DEFINE y <$v+x*12> # String "10+x*12"
DEFINE y ($v+x*12) # String "130"
PRINT x # FAIL
PRINT {x} # prints x vector
PRINT {x[0]} # FAIL
WRITE STANDARD $(x[0]) # OK
Python:
v = "12" # v is a string
x = 10
y = v + x * 12 # FAIL: Python refuses to add a string and a number
v = 12 # Make v a number
y = v + x * 12 # OK
y = str(v) + "+x*12" # Two strings can be added (concatenated)
y = str(v+x*12) # Make a string from the number
print x, y, v # print x, y and v.
Switching away from IDL is more difficult case to make and there are long lists of pros and cons in this case. The starting point for this discussion is the comprehensive comparison in Appendix B of Using Python for Interactive Data Analysis. Some of the points have been updated since that 2007 document and are available in the IDL vs. Python wiki.
Here we present an abridged version of the comparison, showing points where there is a significant distinction for the average astronomer.