Skip to main content

The Future of PHP, Ruby, and Esperanto

A few weekends ago I traveled down to Richmond, Virginia, for Urba Semajnfino 2. It was my first Esperanto gathering, and it was a great opportunity both for a vacation and a chance to use Esperanto as a real language as opposed to just a study hobby. Afterwards, In the midst of the post-vacation blues that followed my return, I found myself thinking about the future of Esperanto, PHP, and Ruby.

I've said before that Java is the new COBOL -- a lot of legacy code has been written in Java and still needs to be maintained, but "fresher" languages are increasingly considered when it comes time for new development. We've witnessed the increasing acceptance of PHP in enterprise environments which were predominantly steeped in Java in only a few years ago. And now that PHP is a mature, "grown up" programming language, I admit it's a little less fun to program with as it used to be. PHP is the new Java, and in 10-years time it may be the new new COBOL.

A need or a different perspective bring about a new programming language, the language gains a following if it's fun to use (or if there's an obscene marketing budget behind it), it's accepted by the enterprise community which saps all the fun out of it with bloated frameworks, unit test requirements, etc., and then it dies a slow, languishing death. Perhaps this is the natural life-cycle of programming languages.

If PHP is the old language on the block, then who's the new kid? I'd have to say Ruby. Perl's hayday has come and gone, and Python isn't hipster enough. And if I'm right, then my 2-cents worth of advice to Ruby is this: Don't worry about being enterprise worthy; measure your success by the fun you have as opposed by some enterprise-market penetration statistic.

I think the best thing that could happen to Ruby is that it stays a tool that inspires creative coding and a vibrant community of users. COBOL was popular in enterprise, and now it's dead. Java was popular, and now it's dying. PHP is popular, and now it's visibly ailing. Forget about what the industry thinks and just enjoy yourself!

I think the same applies to Esperanto, too. Right now it has a wonderful community of enthusiastic speakers around the world, but it would be impossible to maintain that atmosphere after Fina Venko. I worry that becoming an "enterprise worthy" every-day international language would strip Esperanto of one of its most special traits, its passion.

I had a discussion during that weekend with a fellow Esperantist about various words we didn't like. I don't like datumbazo, the Esperanto word for database, because it's too literal (datumo - data, bazo - base). A more Esperantic, and thus more "appropriate" word in my opinion, would be datumujo (literally meaning a container of data). The word would be in good company; monujo is wallet, fiŝujo is a fish tank, and Anglujo is England (a "container of Englishmen")! My new-found friend was irked by the word futbalo, the word for American football. If you tried to break the word into parts you'd get futo - foot/12-inches, and balo - ball/dance... a 12-inch festive dance event? Usona piedpilko would be more appropriate, he felt.

Such a discussion probably strikes you as odd, but then again you're probably not an enthusiastic Esperanto-speaker, are you? Such discussions are the norm in Esperantujo. When something becomes commonplace, there will non-enthusiastic people and those who care at such a deep level will be seen as the minority; many people would use Esperanto but have no vested interest in it.

The bottom line is this: It's hard to get people excited about a programming language when all they are using it for is to push bits, add/subtract bank account figures, etc., just as it's hard to get people excited about new words when all they're going to do is use it order a hamburger. PHP is more successful than Ruby in terms of enterprise-market penetration, but what about programmer satisfaction? English is more successful than Esperanto in terms of speaking-population, but what about a passion for friendship, respect, and the exchange of ideas? Which of those metrics really define success?


  1. You do realize - I hope - that Ruby is older than PHP? According to Wikipedia, Ruby was conceived of in 1993 with a first release in last 1995. PHP's first release was in 1995.

  2. With the phrase "new kid on the block" I didn't mean to imply Ruby is younger than PHP in a chronological sense, rather I was thinking about its potential for mass-adoption. It's the same intent as if I had said Smalltalk could be the new kid on the block; Smalltalk would be an older 'kid' for sure, but the idea is that its fresher in the public zeitgeist. I'm sorry for that confusion.

    Though perhaps more to your point, I would argue PHP and Ruby are roughly the same age with first appearances in 1995. I've given thought to creating my own programming language over the past few years as there are many design ideas I'd like to explore. If/when it's ever written, that's the point in time from which I'd measure its existence (release)... I couldn't say it was 5 years older because that's when I started thinking about it (conception).

  3. Anstataŭ "datumbazo" mi uzas "informbanko".
    "Datumo" tute ne rilatas al dato,
    kaj bazo neniel rilatas al la afero.
    Foje oni uzas la vorton "dateno" sed la vorto "informo" sufiĉas por traduki la anglan "data".

    Alia vorto, kiu ĝenas min, estas "dosiero" por traduki "file". Mi uzas "dokumento".
    Dokumento povas esti paĝo, videâjo, ktp. Dosiero estas dokumentujo.


  4. Awesome suggestions Tim! What do you think about the popularizations of Erlang and Node?

  5. That's a good question degz but unfortunately one I haven't thought much about. Off the cuff, I know Node in particular has been growing in popularity and you can do some pretty cool things with it, but I've seen server-side JS tried several times and it never really seems to catch on. It just sort of hovers half-on/half-off the radar; people are aware of it, but no one seems to want to make the "first move" in a corporate setting that's needed to propel it mainstream. So, are people using it to do cool and fun things? Yes... a success. As a corporate mule? I don't think it's really been given the chance yet.

    Erlang might be the opposite. It's a language I haven't had much experience with beyond reading and light dabbling, but from my understanding it's already enjoyed a fair bit of corporate success given it's niche/target. For it to really reach critical mass though we'll probably need to see more need for concurrency in the hobby-arenas. Right now it "looks strange" because of its Prolog heritage and C, Python, and even Ruby are "good enough".

    What do *YOU* think?

  6. Ruby developers are the scientologists in the web-development world.

  7. Am at my favorite water hole, having a nut brown or two and reviewing what I have on Instapaper. I am primarily a mainframe programmer (15 years of Cobol (the language that God used when he created the world (it was so totally not assembler), and 15 years of RPG). I am getting into some other languages now but I was impressed by the difference in the way mainframe programmers and web programmers (like yourself) think. You said Cobol was dead, but no language can be dead when there are literally millions of lines of code still in production. It might not be cool, but, like the heart of Rock and Roll, it is still beating. and as far as PHP becoming the next Cobol - they can only wish.

    What changes is the design paradigm, and a languages worth is based primarily on how effectively it meets that paradigm. There will never be an entry method more effective than the green screen used by Cobol and RPG. It was fast and efficient without all the stop keying to click crap that windows (the true anti-christ) introduced. And you could key ahead. If you knew what you were doing you could enter everything before the page was done displaying. But people are rarely objective. They like pretty colors. And being told they are doing the cool thing.

    True application effectiveness is not even closely related to the language. It is based on how many keystrokes (and how many times I have to switch from keying to clicking) are required to do what my boss pays me to do (curse their black hearts).

    Does this make any sense. it's not the language, it's the design. It's the keystrokes, not the format.

  8. Vi kunvinkis min: "datumujo" ŝajnas pli ĝusta ol "datumbazo". De nun mi uzos tiun vorton :P


Post a Comment

Popular posts from this blog

Composing Music with PHP

I’m not an expert on probability theory, artificial intelligence, and machine learning. And even my Music 201 class from years ago has been long forgotten. But if you’ll indulge me for the next 10 minutes, I think you’ll find that even just a little knowledge can yield impressive results if creatively woven together. I’d like to share with you how to teach PHP to compose music. Here’s an example: You’re looking at a melody generated by PHP. It’s not the most memorable, but it’s not unpleasant either. And surprisingly, the code to generate such sequences is rather brief. So what’s going on? The script calculates a probability map of melodic intervals and applies a Markov process to generate a new sequence. In friendlier terms, musical data is analyzed by a script to learn which intervals make up pleasing melodies. It then creates a new composition by selecting pitches based on the possibilities it’s observed. . Standing on ShouldersComposition doesn’t happen in a vacuum. Bach was f…

Creepy JavaScript Tracking

I recently began allergy shots so my new Monday morning routine includes me sitting in a doctor's office for 30 minutes (I must wait after receiving the shots and be checked by a nurse to make sure there was no reaction). With nothing else better to do while I waited last week, I started playing around with some JavaScript. This is what I came up with:
<html> <head> <title>Test</title> <script type="text/javascript"> window.onload = function () { var mX = 0,  mY = 0, sX = 0,  sY = 0, queue = [], interval = 200, recIntv = null, playIntv = null, b = document.body, de = document.documentElement, cursor = document.getElementById("cursor"), record = document.getElementById("record"), play = document.getElementById("play"); window.onmousemove = function (e) { e = e || window.event; if (e.pageX || e.pageY) { …

Geolocation Search

Services that allow users to identify nearby points of interest continue to grow in popularity. I'm sure we're all familiar with social websites that let you search for the profiles of people near a postal code, or mobile applications that use geolocation to identify Thai restaurants within walking distance. It's surprisingly simple to implement such functionality, and in this post I will discuss how to do so.

The first step is to obtain the latitude and longitude coordinates of any locations you want to make searchable. In the restaurant scenario, you'd want the latitude and longitude of each eatery. In the social website scenario, you'd want to obtain a list of postal codes with their centroid latitude and longitude.

In general, postal code-based geolocation is a bad idea; their boundaries rarely form simple polygons, the area they cover vary in size, and are subject to change based on the whims of the postal service. But many times we find ourselves stuck on a c…