reset password
Author Message
cysun
Posts: 2935
Posted 15:32 Apr 14, 2009 |

Q: Is there any study that shows which web development technology (e.g. Java, ASP.NET, or PHP) is the best?

A: There is no definitive study on which web technology is the best. If such study exists, everybody would be using the same technology instead of the gazillion languages and frameworks that we are using today.

The fundamental reason why such studies do not exist is because there does not exist a single "best" technology. It can always be argued that some technology is better suited for certain applications/platforms/companies/developers, but there is no technology that is better than others in all cases.

It should also be noted that web technologies are still evolving at a rapid pace. New functionalities, frameworks, libraries, techniques, specifications, and so on, are released on a monthly basis. By the time a comparative study is done, the conclusions are likely already out-dated.

Q: So we don't know which technology is the best, then how do we choose which one to use?

A: The good news is that all the web technologies (at least the major ones like Java, ASP.NET, and PHP) are all proven to be good enough to do pretty much anything you want, so you cannot go wrong with any of them.

Or we can put it in another way: Google uses Java-based technologies, Yahoo uses PHP (for external sites) and Java (for internal sites), and MSN of course uses ASP. If a technology is good enough for Google, Yahoo, or Microsoft, it's likely to be good enough for you.

Q: So they are all good, but really, which one should I use?

A: The answer lies not in the technology itself, but in you. Have you already taken several Java courses in college? If so, use Java. Do you work for a company that develop exclusively on MS platforms (e.g. Windows, SQL Server, Visual Studio ...), then use ASP.NET. Is your development team already proficient in PHP? Is so, stick with PHP because re-training them in Java or ASP is expensive and pointless. There are many other questions you can ask. For example, do you prefer Open Source solutions? Do you like the development tools? Where do you plan to get your support? Are there more job opportunities in Java or ASP or PHP? ... and so on. Which technology is best for you depends your answers to these questions rather than the technology itself.

Q: So if all the web technologies are good, why did we choose Java for our web classes?

A: Important curriculum decisions must to be made by considering the curriculum as a whole, not just individual courses. For example, our students won't be very happy if we decide to teach OO programming using Java, data structures using C++, algorithms using C, and web programming using PHP. After careful consideration, the department chose Java as the "main" programming language for the curriculum, and that's why we chose Java-based technologies in CS320 and CS520.

Q: But if the classes teaches only Java, how do I learn ASP.NET, PHP etc.?

The short answer is: learn it on your own.Smile

A common misconception about college education is that it should teach exactly what you need to know for the job that you are going to take after you graduate, no more and no less. This misconception is often enforced by some companies complaining in the media that the colleges are not teaching the students the right skills for them to get into industry. Sometimes such complaints are valid, but often it's just some companies having unrealistic expectations and/or trying to offload their new employee training costs to colleges.

It's important to understand that college will not teach you everything you need to know because it's simply impossible. We (and most likely you) do not know what type of job you are going to get after you graduate. Are you going to be a software developer, or a financial analyst, or an actor? Are you going to develop device drivers or web applications? ...

... And if you end up working for Microsoft, is it a waste of time to learn Java in your classes??

The answer is of course not, because although college education does not teach your everything, it does teach you how to learn everything quickly. In other words, college teaches you the fundamentals that can be applied in different areas. Take the following as an simple example, where we set a string value "cysun" to a session variable "username":

In Java: session.setAttribute("username", "cysun");
In ASP: Session("username") = "cysun"
In PHP: $_SESSION["username"] = "cysun";

As you can see, if you are good with one of these languages, and in particular, understand the concept of session, it's quite easy to learn the others.

Of course, all this does not mean to take the responsibilities off the teachers. Although for practical reasons we have to choose one language/technology, it is my responsibility as a teacher to teach not just this technology itself, but also the ideas, concepts, techniques, and methodology behind it that are common to all technologies. And for you, the responsibility is to understand not just "how", but also "why", and that will help you learn new things quickly and easily.

 

 

Last edited by cysun at 07:41 Apr 15, 2009.
vishalmohite
Posts: 5
Posted 16:04 Apr 14, 2009 |

Thanks professor... that was really helpful to clear some doubts

trivedidr
Posts: 54
Posted 18:58 Apr 14, 2009 |

Thank you Professor.

Because of these I can clear my few doubts and also gain few new things.Smile