Thursday, January 23, 2014

Ruby: Lord of the Flies Programming

Ah, Ruby.

A friend who is learning computer programming right now asked me about my dislike of Ruby:
Can you explain (in high level language) why you dislike Ruby/Rails?  I
have no opinion one way or the other.  I'm just curious, why  so many
bootcamps teach RoR over, say, Python.  It seems to me that RoR is VERY popular right now.  Why do you think that is?

Here's my answer:

To answer your question, the reason (in my very opinionated opinion) why so many people are teaching RoR is simply all the hype.  There's no good technical reason to use Ruby for anything, but that doesn't stop people.

You get people who don't have the education to realize how badly Ruby sucks as a language (more on that below) and they think "wow, this is great, look at all the web app I can make in RoR"  and without good counter examples they develop a warped idea of the actual utility of the system.

Now, to be sure, Rails was a way better way to make (quick and dirty, simple) web apps than what people were doing up to then.  Rails was something of a revelation.

Rails was so good (compared to what went before it) that it was immediately copied in other languages (Hello Django!)   But now that we have web app frameworks in other, less insane languages there's NO reason to learn or use Ruby (unless you want to work at a place that insists on using it, or you're just curious.)

So, why does Ruby suck as a language?

The basic problem with Ruby is that is is NOT a computer language.  The folks who made Ruby were ignorant of the history and vast body of work that has gone into the study and construction of formal languages.

They were so innocent of this knowledge that Ruby DOES NOT HAVE A GRAMMAR!!  

This is an insane thing to do: creating a computer "language" without a formal grammar.  Essentially Ruby was made by children.

How bad is this?

It is very very bad.

Essentially Ruby was made by INSANE children.  "Lord of the Flies" kind of stuff.

But does that stop anyone from hyping it or using it?  Pardon me while I go shoot myself.  Bleah!

Rails is Ruby's only "killer app" and that's why anyone outside of Japan (and language geeks) have ever even heard of Ruby.

But now we have Django, Flask, etc.. so you don't have to use Ruby.

(Also, I just don't like all the little symbols.  Python (for example) went the other direction and eliminated many of the typical syntax constructions, or simplified them.  Made it much nicer.  Ruby plows head first into the Perl-ish garbage with a vengeance.)

Thursday, January 2, 2014

All the Rules are Broken

"Origin of The Effort", Part II

When you're very smart, but your parents are totally out to lunch, you kinda have to figure out a lot of stuff on your own.  When I was doing this I became concerned and even antisocial because it was very obvious that the rules people were trying to teach me (or simply trying to convince me were in effect despite whatever the truth of the matter might be) were totally bonkers.

For example: once when I was very young I got into a fight with another little boy.  I knocked him down and kicked him.  When I kicked him a teacher (who was in the process of breaking it up) said, "You don't kick a man when he's down!"

Now, of course, I understand: fighting is about winning, not destroying the other fellow.  But at the time it made no sense, I was too young and inexperienced at the time to figure out why I was "bad" for kicking the boy.  I just got confused: you are already hurting each other, why is it different to use the feet when "he's down"?

There was an incident where some kid was doing something wrong, I forget what, and, thinking that this was the thing to do, I told a teacher.  The teacher said, "no one likes a snitch".  I didn't know what a snitch was, but I was extremely confused: do we obey the rules or not?  Is it in fact okay to disregard the rules as long as you don't get caught?

No one explained.  It made no sense.  Eventually I learned both the word "hypocrite" and why no one likes a snitch.  However, the basic problem remains: either the rules are good and should be obeyed, or they are faulty and should be repaired or discarded.  In actual fact there are no rules whatsoever (although Nature does display regularities, even our mathematical equations that approximate these are tentative, contingent.)  Instead there are complex systems of feedback and neurosis that constrain and bind the human into intricate and mostly really stupid social forms. While humans are (or at least occasionally can be) sentient, these social forms and the feedback loops that maintain them are nearly idiotic.

There are two, and only two, solutions:  Form and Non-Form.

The first solution lies in mastering the world of form, becoming God-like and near-infinite.  This is ultimately a dead end.

The second solution lies in remembering what you are, becoming infinite God. This is what the world is for.

What Makes Sense?

"Origin of The Effort", Part I

Since earliest memory I have been puzzled by the world.  This life of ours makes no sense.  The Natural things are all harmonious and well, but anything to do with humans is drenched in shit and blood.

By the time of the advent of my little physical body on this planet a lot of the really severe crap had died down just a little, but still the casual horrors of the current status quo are enough to convince any observant thinker that things here are proceeding not as they should.

It had seemed for a time that the simple advances of technical knowledge might suffice to undo the effects of the madness of history, that our problems were more-or-less ones of production and distribution and, solving them, we could look forward to a Golden Age.

Sadly, this has not obtained.

Despite vast, even unthinkable, progresss (elimination of many diseases, food production requiring less than 5% of the population to feed the rest, men on the Moon, our achievements go on and on...) most people are still miserable, and many of them even have reasons.

However, the practical perfection of technological knowledge and art (nanotech and fusion) have unlocked the temporal limits on our abilities to take care of ourselves.  There is no reason to suspect that nanotechnology and fusion power do not grant "ultimate" achievement, at least on the physical, temporal, secular plane.

Quite literally we can do anything that can be done with atoms.

But all this has really done is thrown us squarely into a contest with our own baser aspects.  The elimination of physical limits as such forces us to confront our emotional and psychological limits.

Our power is such that we must become good or destroy ourselves.  There is no middle ground.  Star Trek or North Korea: choose the form of the destructor!