Yes, this is a big question that haunts all new website owners. It is especially so for those who have no interest in programming languages or their differences. This article is targeted to help you make a decision on whether you should look at creating a dynamic site and if so which language should be used.
Websites are normally classified in two broad classifications, the static websites and the dynamic websites. The Static web site or the so called static web pages are typically created using html with styling done with either graphics or using CSS styles. The dynamic websites would be the ones created using programming languages like PHP, ASP, ASP.net, JSP etc.
Having a static website has its own advantage. You do not have to worry about managing the databases or managing the code in the pages nor would you ever see the server errors which happens due to some logic or runtime error in your code. Whenever you want to add new content to such sites you would refer to the template page, add your content and voila` your page is ready to be uploaded.
This is good for some time. When you have web sites with lots of content and a reliable source such as IGR providing you rich content, you would end up making these html pages almost every now and then. Maintaining the static pages for any small change like the style or menu, which remains common across pages, becomes very difficult. You would have to open each page in your editor, make the change and then upload the pages again to your server, unless of course you have "include" files for your menus, or styles.
Creating a dynamic website is challenging but the result you would get after hard work on understanding and coding your web pages with languages like ASP or PHP, would make you feel good about yourself.
Programming languages often help you in creating dynamic pages which would also enable you to manage the web site content dynamically or at runtime. You would access the web site through the browser and edit the content or, to some extent, even the look and feel of the website. Such web sites are normally called the content management systems. Many CMS systems are freely available in case you do not want to put your efforts in programming. There might be some conditions such as displaying the web site content based on users demographics, or tracking where the user came from, or collecting the user information and storing it so that you can send your newsletters with your affiliate programs. Such actions call for a dynamic web site.
Once you decide that you really want to have a dynamic web site, the next big question that pops up is what programming language should you use for your web site. The most commonly used ones are ASP, PHP, CGI Perl, JSP and recent addition being ASP.net. Each language has its own advantages and disadvantages. For instance PHP would have a reasonable learning curve, but you will have a wide variety of open source applications for you to use on your web site if your host server supports PHP. Many are aware of word press blogs which is coded in PHP. Again if you were to see the bonuses and applications provided by your server host, you would be surprised to see that almost all the features that you have thought for your website are available free of charge for you to use directly on your web pages. PHP is supported on both Windows as well as Linux servers. Choosing Linux environment with Apache server makes sense for PHP.
The ASP web sites would have a much smaller learning curve but then ASP sites are restricted to IIS and the windows environment. What does that mean to you? After all you will be interested in your web site and not the servers. But if you want to add a feature or application to your web site, then you would have to search really hard for some good freely available plugins. Most of the applications that are available for any Microsoft technologies like ASP, ASP.net are normally paid applications. You would have to buy the licenses to use this on your web site. For example it would be really daunting task to find freely available blog software for ASP or ASP.net website, then it would be for the PHP sites.
Although JSP is one of the languages which probably have a huge learning curve, it provides all the features of Java. There is no doubt that Java can provide you with excellent features when it comes to server side programming.
A dynamic web site would also require a database support to store the information. Normally the CMS systems use a database to store the content and other web site information like the currently selected styles and preferences set by the owner. Simply you would require a database to store the data from which your code would create the pages or part of the web pages dynamically. A classic example would be the online shopping cart you use when shopping for your Christmas gifts, the comments you post on your favorite sites. All this storage is usually done in the database.
PHP would normally be used with MySQL database while ASP, ASP.net would go well with database like MS SQL Server or MS Access, for a simple reason that ASP, ASP.net, MS SQL Server, MS Access are all Microsoft technologies.
As far as the cost for the dynamic websites is considered, you might not find a big difference since the server host would usually charge almost same charge for both Windows and Linux based hosting.
If you are serious enough to make some decent living from your web site, the final advice would be to get your self equipped with the knowledge of creating dynamic web sites.