For discussing whether Python and Ruby are too big compared to Javascript or Haskell, I'd like to give you the following UX anaology.<p>You're a cashier at a bank and want to give the best experience for your customer, who just withdrew $248.67 from her account. The Python way would be to give this person two hundred dollar bills, two twenty dollar bills, a five dollar bill, a two dollar bill, a one dollar bill, a fifty cent piece, a dime, a nickle, and two pennies. Some one on the messge board will later tell you that the fifty cent piece has been deprecated and that you should have use two quarters. Also, the two dollar bill has performance issues and you should have just used two ones. It's pretty big and maybe not the best for your customer.<p>The Javascript way is much smaller and simpler. You'd just give the user 24,867 pennies. There's no variation in bills to memorize - just counting. You do get tired of counting after a while and your bank manager tells you a little secret. In the bank, there's premade bags in sizes of a ten thousand pennies, two thousand pennies, one thousand pennies, five hundred pennies, two hundred pennies, twenty-five pennies, ten pennies, and five pennies. So, you give the customer two ten thousand penny bags, two two-thousand penny bags, a five hundred penny bag, a two hundred penny bag, a one dollar bill, fourteen twenty five penny bags, a ten penny bag, a five penny bag, and two loose pennies.<p>You get tired of hauling all the pennies, so you decided to do things smaller and simpler. You do things the haskell way. You give the customer a two hundred forty-three dollar bill, a negative nine dollar bill, a three dollar bill, and a thirty-three cent piece. You require the customer to sign an oath stating that she won't just throw out the negative nine dollar, but will ensure that it is safely paired with a positive nine-dollar bill when it is returned to the bank for no value. For some reason, the thirty-three cent pieces are all in a drawer labelled "Monoid", and you're told it's because they're closed with the Yen under addition, as long as Japan keeps printing the zero Yen coin.<p>This isn't meant to be an attack on any of these languages. Any of them would be an excellent choice. The javascript way has a smaller number of denominations to memorize, but you wind up needing to learn a long list of premade baggies, which can make everything suddenly seem big. The Haskell way has a small, optimal set of denominations, but learning to figure out to put them together can make everything seem huge. The Python/Ruby way has more denominations than either, but some people think that they're easier to add up than the Haskell ones and more convenient to carry than the Javascript ones. So knowing which language is the smallest and easiest all depends on what you call small and easy.