[ale] [OT] Rev Bayes and the best programming language

Leam Hall leamhall at gmail.com
Sat May 7 11:20:57 EDT 2016


I just read a chapter (1) on Bayes and decision making. Wanted to try it 
out on a conundrum I've been wrangling for some long period of time: 
"What's the best programming language for me?" Posting here for feedback 
and critique, many of you are smarter than I.

Not evaluating any language on pure technical merit, but on personal 
measures. Starting with X measures, and assigning them percentages in 
blocks of 25. So a value can be 0, 25%, 50%, 75%, or 100%, and a maximum 
total of 100% * measures with an average of total/measures. Using large 
blocks helps prevent analysis paralysis.

The current measures are:

   Is it suitable to the sort of things I want to do?
     For example, Assembler isn't as suited for interactive web pages.
     Possible, but not suited.
     Assumes I know what I want to do.

   How quickly can I produce something?
     Assumes I have put 20+ serious hours into learning it. (2)
     Produce output; web pages, computation, whatever.

   Do I enjoy that language?
     If you enjoy it you're more likely to do it, which is how
     you get better at it.
     Enjoyment also helps overall life outlook.

   Does it help me achieve my goals?
     Whatever your goals are, does this contribute to achieving them?
     Assumes I have concrete goals.


So, let's play with some options. C, Ruby, Perl, Shell.

Most of what I want to do involves text wrangling; straight text, some 
XML, and the occasional database query. Almost all of it is for human 
consumption either primarily or secondarily. Scores for this might be:

	C	 25	(A lot more effort than scripting)
	Ruby	100
	Perl	100
	Shell	 50	(Harder to do XML and SQL)

Looking at what I want to do, how quickly can I produce something? In my 
case the base test is "run a program that produces a valid character for 
the Traveller RPG".

	C	 25	(My C is weak, even after months)
	Ruby	100	(Already have base code)
	Perl	 25	(I have forgotten most of my PERL)
	Shell	 50	(There's a SQLite call I don't know)

Now a very subjective test; how much do I really enjoy coding in that 
language? To me this might even have a heavier weight than many 
measures. However, since we're only using a few, and since they are all 
pretty significant, it stays equal.

	C	 25
	Ruby	 75
	Perl	  0	(I actually got nauseous the last time I tried)
	Shell	 50	Boring.

Lastly, does it help me achieve my goal(s)? My real goal is to stay 
gainfully employed until I croak. Retirement is for people who forget 
they won't be able to do what they can do now, then. I enjoy my work and 
want to keep doing it.

	C	 75
	Ruby	 75
	Perl	 75
	Shell	100


Assuming my pen and paper calculations are correct (3), that gives a 
probably if "best" as:

	C	 37.5
	Ruby	 87.5
	Perl	 50.0
	Shell	 62.5

Other languages have their merit; Python and Go quickly come to mind. 
PHP is big as well. You would likely choose different measures and 
different languages.

Thoughts?

Leam

	
1. Duhigg, Charles "Smarter, Faster, Better" (2016). Chapter 6 "Decision 
Making"

2. Kaufman, Josh "The First 20 Hours: How to Learn Anything...Fast" (2014)

3. Added on paper and then irb to get the average.  :)


More information about the Ale mailing list