Friday, June 27, 2008

I wish I could remove stars from certain feature requests.

The top four feature requests in Google App Engine’s issue tracker:

  1. please add java or groovy support
  2. PHP support is a must
  3. Please add ruby support
  4. Add Perl support

While it’s a matter of taste to prefer one language over another, these are real head-scratchers for me. I can’t understand why the folks who have starred these issues don’t simply learn Python and start creating internet-scale apps. What are they waiting for? What are they afraid of?

The problem with those feature requests is that to implement them would take development, documentation, and QA time away from improving the existing stuff.

I know that the GAE developers pay attention to “star power” in their issue tracker, but I hope that this class of requests will be dismissed with prejudice.

7 comments:

elliottcable said...

I have to say I disagree. I could learn Python, but I could never write something in a language I just learned as well as I could in the language I know best. I'm not going to say which language, because then it becomes my language versus the rest - 'anonymously', it makes it 'any language' against Python.

With App Engine being specific to a single language, that removes this interesting tool from my options, as it places me in the "EITHER deal with the tools that exist for pushing an app with the web, and use my most productive language, OR use a tool that increases my pushing-to-the-web productivity, but use my least productive language" position. I don't know about you, but I just don't think App Engine - no matter how wonderful - can come close to adding enough productivity boost to counter the lost productivity accrued through using Python instead of my primary language of choice.

To put it bluntly, App Engine is very cool for those who either A) don't program at all, or B) program primarily in Pythong. It's nothing more than a toy for the rest of us.

Jonathan Feinberg said...

You had at least a viable argument going until your "blunt" summary, which is incorrect by existence proof. In particular, Wordle is written by someone who A) programs at all and B) programs primarily in Java, not Python. App Engine is "very cool" for me, Q.E.D.

But since you're willing to discuss the matter without name-calling (*cough* rude people who have been moderated out of existence), maybe you can explain your perspective about why it's unpleasant or burdensome to simply learn a new language. I can't imagine a better reason to learn a new language than App Engine. Maybe you'll become very productive very quickly. Why does it hurt to try?

These are not rhetorical questions; I'm really trying to understand. I've always loved learning new languages.

Anonymous said...

What about people who have already invested time and money in Java/PHP/Ruby code? Or maybe there's simply a nice library in Java that doesn't exist in Python. (hey, it could happen.) Porting to Python might be nontrivial when you're dealing with a lot of legacy code.

Jonathan Feinberg said...

Well, the thing about legacy code is that it's not clear to me that it would be effective or desirable to port it to App Engine, since you have to do things differently to be App Engine-friendly (scalable, whatever you want to call it). You really have to design for scaling wide.

But of course you're right. There exist excellent libraries in other languages, and there exist bodies of code in other languages.

therightstack said...

In my experience, the language itself is generally not that hard to pick up. Rather, it's the frameworks and libraries that take time (sometimes lots of time) to pick up. When people talk about "an investment in a language", they're referring to the many hours spent delving into and master a specific application environment. The language itself is a small part of that effort.

Were App Engine interfaces ported to say, Java, even master guru Java developers would have a non-trivial learning curve in using GAE's various APIs.

(In the case of Java, I dare say that it might even be faster for them to absorb the Python language as a part of learning GAE than to work with a Java-based version.)

vitaliy pronkin said...

I agree it's not a problem to learn Python (actually I never used it before and now develop my app without any problems). But as stated above there's problem with porting old code (yes, in any case it must be redesigned but some libs, helpers, logic, utility classes may be used as is). And maybe bigger problem with porting code out of gae. If I'm not satisfied with gae (with its limitations it's not hard) I'll have troubles because Python hostings aren't so common as PHP/Perl ones.

Anonymous said...

lisp...

I'd like to see them add support for lisp. Before anything else, in fact.

and... in fact, I think there are some languages, that if google are going to attempt to support, should sit at the back of the bus. My back of the bus sitters include:

php
perl
?some other language that needs to die and only continues to hang on because there is an extensive body of code that is vaguely useful?

...and by "back of the bus" I mean you would need to call a well known library from python or any of the supported languages (new code would not be allowed unless it was submitted in library format).