I have always been an avid student of languages. (Some might say, "a fan," and if this be so, then I do
not apologize.)
When someone (and I am among their number ...) sets out to "create a language," then he or she has a particular class of problems in mind, and seeks in some way to create a powerful and generally-useful solution for them. You will quickly find that the scope of "a particular class of problems" is endless ... and that the scope of "languages that have been implemented to solve them" is endlessly imaginative.
In the very(!) earliest days of computing, when digital computers were not powerful enough even to get out of their own way, two "think outside the box" programming languages nevertheless appeared: (((LISP))) and ˚∑π (APL). These languages captivated my attention in those days because they were both
solution focused, not
implentation or
hardware focused.
Fast-forward a couple of decades, and the Prolog language enabled me to be first-to-find on a very difficult Geocaching-style puzzle that involved
both a large Soduku puzzle
and an 11-step "logic problem," both of which took almost a minute of computer time for my anemic laptop to solve
but which solved them, nonetheless.
All four of the languages reviewed in this most-interesting and well-written article take a similar approach ... and all of them are available right now, free of charge, on your Linux machine. "Check 'em out! ... and wear your nerd-glasses and pocket protector with pride."
Fact is ... the true world of "computer science" is
endlessly challenging. The "dumb machine" is, and remains, the universal drum against we can bounce any sort of stick we can dream of. After an entire day of smashing your head against the limitations of JavaScript and Java and <<fill in the blank>> ... and, by the way, presumably
getting paid for it ... you can, without restriction, consider what
else this same "dumb machine" can do, if it is approached by the same person
(you...) using entirely different
(why not?) tools. All on your Linux machine.
(Fair warning: it's happily addictive!!)
Case in point:
Quote:
Originally Posted by the article ...
The example of type classes that got me excited was bounded lattices. A bounded lattice is a mathematical structure that has a least element (bot), a greatest element (top), a partially ordered less than relation, a join operation (join) and a meet operation (meet).
|
If such a thing gets
you "excited," too ... heck, if you even
understand it (as do I) ... then you have definitely picked the right profession!
Quote:
Originally Posted by the article ...
Scala is a rugged, expressive, strictly superior replacement for Java.
|
If such a statement prompts you, as a Java programmer (or someone at-least cursorily interested in it) to
want to "dive in, just to see what all the fuss is about," and perhaps to start advocating for a course-change at your present place of business ... then, once again, you have definitely picked the right profession.
Some people use lightsabers and thermonuclear devices. Others prefer pocket protectors. Same difference.
You say you haven't heard about "map-reduce problems and their application to massive parallelism?" Sounds a bit too "computery sciencey" for your taste? Uh huh. Okay then, have you ever heard of "Google?"
N3RDZ RUL3Z ...