Web based applications become more and more popular. Not only normal Web sites but also enterprise management systems are adopting this to deliver the functionalities due to the benefit of zero installation on the user’s side.
There are a lot of Web Frameworks today, probably more than anyone can grasp. For each programming language, there is one or more Web frameworks that help you to create Web based applications. Choices are definitely good but may give you a hard time to decide which one is best for your project. More often than not, there is no single best one that suits all your need. In other words, you have to decide the best in the context of your problem.
What should be in the thought process to a decision?
- Programming language. You have to decide what programming language to use for your Web applications. With the preferred language in place, you can only use the frameworks supported by the language. This usually limits much fewer options to your list. The most popular programming languages for Web applications are PHP, Java, C#.
The choice of your programming language is not a choice sometimes. The most rational choice is to use a programming language you and your team are already familiar with. If that happens to be C, you then want to go down your list. Learning a new programming language and a new framework can be daunting. Not long ago, I tried to learn the Lift framework based on Scala language, and found it’s not that easy at all.
If it’s a team project, you have to find one language that all or most people are comfortable with and at least one person are good at. Read more »
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to RSS or Email, and follow on Twitter.
If you think Google is a superman and doesn’t need anyone, think twice. Yesterday in its Google I/O developer conference, it announced its Google App Engine for business. The notable features include centralized administration, a 99.9% uptime SLA and heightened security. It also announced the partnership with VMware on cloud portability.
Why does Google need VMware?
In short, it’s about Enterprise. As the “for business” in the name explains, the new service is targeted for enterprises which are not really Google’s strength. Read more »
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to RSS or Email, and follow on Twitter.
If you are a software engineer, you might have known Tiobe popularity index of programming languages. The index is updated on monthly basis. The following table shows the top 20 most popular languages this month.

The index caught many people’s attention this month because C regained its No.1 position. Java, used to be No. 1 for years, dropped to No. 2. Although percentage wise Java is still very close to C, the declining of Java popularity can be eye-catching.
There could be many interpretations on the result, not the least of which is that Java is now owned by Oracle due to its recent acquisition of Sun. The explanation of Tiobe is as follows,
So the main reason for C’s number 1 position is not C’s uprise, but the decline of its competitor Java. Java has a long-term downward trend. It is losing ground to other languages running on the JVM. An example of such a language is JavaFX script that is now approaching the top 20.
In the application development, Java is still clearly the dominant programming language. The JVM languages like Scala (not in top 20 yet, but very promising) definitely worths watching.
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to RSS or Email, and follow on Twitter.
Amazon released its SDK for Java last month. It’s a complete set of APIs that cover almost all the services from EC2, S3, SQS, RDS to SimpleDB. Overall Amazon has done a consistent job, but the SDK is NOT really object oriented. And that I think is critical for higher development productivity.
Structure of the SDK
Before explaining why it’s not quite there, let’s take a look at the structure of the API itself. The SDK includes many packages. For each service, you find two or three packages: basic, model, and possibly util package.
In each of the basic packages you can find the two interfaces, and two implementation classes. Let’s pick EC2 as a sample here. The AmazonEC2 and AmazonEC2Async are two interfaces and implemented by AmazonEC2Client and AmazonEC2AsyncClient respectively. More methods are defined in the synchronous than the asynchronous versions with the majority of them overlapping with similar method names.
AllocateAddressResult allocateAddress()
AllocateAddressResult allocateAddress(AllocateAddressRequest allocateAddressRequest)
Future<AllocateAddressResult> allocateAddressAsync(AllocateAddressRequest allocateAddressRequest)
The first two versions wait and get you results upon return. The third version doesn’t wait and gets the result later. Read more »
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to RSS or Email, and follow on Twitter.
Java is a static typing language, meaning you have to define a type before you can use it and the compiler checks the types for you. Some people like the static typing and others don’t. People like it would like even more into the language. Some others would prefer less typing. The rest don’t have strong opinions and are OK with both.
In the last several years, we actually see two opposite trends in Java programming: stronger typing and weaker typing. This blog analyzes in depth why these two trends happened and what do they mean for you. Read more »
Author: Steve Jin is the author of VMware VI and vSphere SDK (Prentice Hall), creator of VMware vSphere Java API. For future articles, please subscribe to RSS or Email, and follow on Twitter.