Visual Basic Programmer - should I use Python, Java, PHP or GO

88 views
Skip to first unread message

Chris Ketchell

unread,
Nov 15, 2015, 11:33:17 AM11/15/15
to Google App Engine

Im very familiar with Visual Basic so Im wondering which would be the best pplatform for me to use



Alex Martelli

unread,
Nov 15, 2015, 12:49:13 PM11/15/15
to google-a...@googlegroups.com
A highly debatable (and hotly debated!) subject, is the choice of programming language -- me, I'm a Python fan (my vanity license plate is P-heart-THON -- the heart sign looks a bit like a Y and, of course, stands for "love":-) so my take will no doubt be biased towards Python -- just as that of a Java fan will be biased towards Java, and so on.

So, it's important to also check out many such comparisons on the web, such as https://www.quora.com/Could-you-give-a-quick-comparison-of-Java-PHP-Python-Ruby-Javascript-for-non-programmer -- each will come from a different viewpoint, so, by integrating over all of them, you should be able to balance out the various biases.

One aspect not really covered in such comparisons is the App Engine specific one, so let me focus on that. All four languages are of course supported in GAE, but they have different histories and may present different pluses and minuses.

Generic comparisons will often say that Java is the fastest of the four, but, while that may apply to ongoing computations, on App Engine (by what I've measured and benchmarked myself -- I don't believe there's any official set of numbers), it doesn't apply to starting up a new instance. Depending on the dynamics of user accesses to your web app, this may be a rare occurrence, or a very frequent one (for example: you may choose, at a cost, to keep many idle instances around to serve surges of traffic without paying the starting up price -- or, to reduce costs, you may go the other way, but then starting up time is meaningful).

For starting up, by my own measurements on App Engine, Java's actually the slowest of the three languages I've benchmarked -- considering that the JVM running your Java program is a functionality-rich, "heavy" environment, that's not surprising.

At the other extreme, Go is the only one of the four languages that gets compiled to machine code to run on App Engine (each of the other three uses an underlying bytecode interpreter, or virtual machine as Java traditionally chooses to call its own bytecode interpreter) and, perhaps as a result, in my benchmarks it showed the fastest starting-up behavior.

Python's in the middle (I have not benchmarked PHP).

Another consideration is the different history and thus functional richness of the various runtime environments on App Engine. The Python runtime has been around longest, and for years it enjoyed the advantage of Guido van Rossum, Python's creator, working at Google in the App Engine team to update and improve it -- many Python runtime features, such as the ndb package for access to the datastore, are Guido's handiwork, and of course nobody could be better placed than him to optimize for the architectural strengths of both Python and App Engine. Java came next, and Go was third -- PHP is the most recent addition to the group.

Last, but not least, you can get a subjective impression of how easy or hard, how natural or otherwise, each language and its interface to App Engine services comes to you PERSONALLY, based on your existing experience, skill, even personality. Just walk through each of the "getting started" tutorials, one per language -- Python's is at https://cloud.google.com/appengine/docs/python/gettingstartedpython27/introduction , and it immediately links to the other three.

Happy experimenting, and happy App Engining!-)


Alex


--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/c718ad39-4bfc-45c2-92e9-8092b61a3a3d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Chris Ketchell

unread,
Nov 15, 2015, 2:46:17 PM11/15/15
to Google App Engine
Thanks very much I'll probably work through the introductions for each

Would you say any are similar to .Net?

Alex Martelli

unread,
Nov 15, 2015, 4:40:22 PM11/15/15
to google-a...@googlegroups.com
On Sun, Nov 15, 2015 at 11:46 AM, Chris Ketchell <chris.ke...@gmail.com> wrote:
Thanks very much I'll probably work through the introductions for each

Would you say any are similar to .Net?

No, I don't think any of the App Engine runtimes are particularly "similar to .Net". In terms of *languages*, there are .Net *implementations* of at least some of the four languages (e.g, IronPython is a .Net implementation of Python), but that's not the App Engine runtime.


Alex

 

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.

timh

unread,
Nov 16, 2015, 6:15:32 AM11/16/15
to Google App Engine
Comparison with .Net is probably off the mark as .Net is more an ecosystem and can be programmed in a few different languages. It provides are library framwork, runtime, clr, bindings etc..
You can write .Net in python for instance.


One thing to note re: appengine, if you want to use the Datastore with PHP you are using the Cloud Datastore over http as the there is no native Datastore API for PHP on app engine

Alistair Burrowes

unread,
Nov 16, 2015, 4:08:54 PM11/16/15
to Google App Engine
Java is the most similar to vb.net . c# and java are quite similar and vb is basically an alternative syntax to c#.

Didin Jamaludin

unread,
Nov 17, 2015, 12:59:35 AM11/17/15
to google-a...@googlegroups.com
Python more human readable that closely to VB.


Thanks,
Didin

2015-11-17 4:08 GMT+07:00 Alistair Burrowes <alistair...@gmail.com>:
Java is the most similar to vb.net . c# and java are quite similar and vb is basically an alternative syntax to c#.
--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengi...@googlegroups.com.
To post to this group, send email to google-a...@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.

Josh Moore

unread,
Nov 17, 2015, 3:40:47 AM11/17/15
to google-a...@googlegroups.com
For what it's worth, you can also run ASP .NET vNext on App Engine Managed VMs, which may be the closest to VB.NET.  It's worth a thought, if you're in the prototype stage.


For more options, visit https://groups.google.com/d/optout.



--

Josh Moore | Cloud Solutions Engineer | josh...@google.com | 

Alistair Burrowes

unread,
Nov 17, 2015, 4:10:01 PM11/17/15
to Google App Engine
Python and VB syntax may look similar but the languages are quite different. VB is strongly typed and python is dynamic. I would say Go is closed to VB than python.

timh

unread,
Nov 19, 2015, 6:06:45 AM11/19/15
to Google App Engine
python is strongly typed and dynamically typed.

timh

unread,
Nov 19, 2015, 6:08:26 AM11/19/15
to Google App Engine
and if Option Strict Off 

then vb.net i weakly typed.
Reply all
Reply to author
Forward
0 new messages