Monday, April 28, 2008

The future plan of XOOPS Cube (3)

What you've experienced is more important than what programming language you can use. I wrote that in the previous entry. I can master C/C++ and write a part of game and application, but I can not write device drivers. I am not almighty, even if C/C++ is almighty. That is the actual skill of most programers.

In this entry, I'm going to write the reason why I expressed a programming language as an environment in this series.

I think that difference between different languages is very small than difference between different hardware, in especially the web world. Major languages that we can use for web application development are C#, Java, Perl, PHP, Python, Ruby and VB. But, these languages don't have big difference, because web application runs on web browsers. Even if we choose any languages, what a web browser can not do is what we can not do.

If PHP can not run AJAX and Ruby can not connect to MySQL, my thought is different from this. But, in fact, all languages are equality for the spec that web application provides.

See Xbox 360. There are two different languages that are C++ and C#. C++ is the best language to use 100% of Xbox hardware spec. C# is excellent language, but Microsoft professed that C# is impossible to pass TCR (Technical Cerification Requirement), because C# is bad performance and unable to use hardware feature of Xbox 360. Here is a clear difference that becomes the criterion to choose a programming language. That is a difference between languages that I think.

The important thing is a platform as runtime environment. Web application development doesn't have such a difference on programming language. Therefore, the reason why package software XOOPS Cube chooses programing language is that users can use the environment in servers to run our programs. That is the same reason why SquareEnix chooses the target console of DragonQuest. Even if PlayStation 3 is greater than DS, SquareEnix doesn't have motivation to release DragonQuest on PlayStation 3. In addition, the web application development doesn't have different spec like difference between PlayStation3 and DS.

Because we don't need to stick to the language, we are sticking to PHP environment now. And, because we don't need to stick to the language, we will not stick to PHP environment in the future.

I repeat. What web browsers can do is what we can do. If Ruby can run the programable shader on the browser, I move to Ruby soon. But, what web browsers can not do is what we can not do. Our program just sends text to the browser. That's all. So we choose the popular environment.

We may find an evidence from discussion about languages of web application development in Japan. Because there is not big difference, the discussion starts from "the final phase of programing language discussion" and discuss a character of programers who use each language. For example,

  • PHP programers don't like learning, so PHP is not good language.
  • Ruby programers talk big, so Ruby is not good language.
  • Java programers are mass-produced programers who don't know true skills.

Oh, it seems a flame. Is this a discussion on programing languages really? This may be evidence that major languages don't have big difference for web application (that send text to the browser) development. Of course, that is important discussion for IT professional programers, but citizen's project XOOPS Cube would remain on the sidelines.

I don't want to force my thought to you. But, please bear in mind that your experience will be never lost, even if we change the environment. And, we are the position that can choose an environment. In addition, porting is far future story. ;)

No comments: