Short answer:
All of the above and more. Most developers use Ajax, JavaScript, XML, CSS, and a server-side technology like PHP, ASP.NET or other, If you use FLASH you'll want to limit it to embedded videos and graphics, because FLASH elements are cumbersome to access from other technologies. Designing dynamic websites takes more than knowing a programming language - you also need a good understanding how the web technology works. The only shortcut I can think of is ASP.NET but even that is not that straightforward. Unless the purpose of building this website is for you to learn how to build rich dynamic websites, I strongly recommend not to do that yourself but have someone with more experience do it. With the help of couple of books and online tutorials you can probably stumble your way trough it but your website would be riddled with bugs and security holes - visitors hate unprofessionally looking websites.
Long Answer
"The Best" language to use will depends on a mix of different factors: How complex the website design will be? Is there a database involved? How heavy the processing will be on the server side? What is the web server platform? Who is going to design and build the website? Who is going to maintain it?
A fully-featured modern design includes 3 major parts - client-side functionality, serve-side functionality, and back-end database.
FLASH, and JavaScript are client(browser) technologies. They take care of formatting the content, presentation, and interactivity after the page is downloaded from the server.
PHP, Ruby. ASP.NET, Perl, etc are server technologies, they take care of processing the information, submitted by the web browser either by the visitor or by a client-side script, accessing the database, and generating a response to the web browser.
Ajax is a mix of client-side technologies which allows interacting with the web server without re-loading the entire page which gives a "smoother" feel to the user. It requires combined use of JavaScript and server-side technology like PHP, or Perl.
From a design perspective, based on its functionality, your website will likely fall in 1 of 3 major categories: 1.Eye Candy; 2.Web Application; 3.Online Publication/Contenet Management System. Each of these require different mix of technologies.:
1. Eye Candy websites have a very heavy client side component with a lot of sliding menus, visual effects like fading images, fancy pop-ups etc. There are 2 major technologies involved here: Javascript and FLASH (vector animation). Generally it's easier to design FLASH interactivity, because most of it is done in FLASH's special visual environment. After the design is completed then you simply embed it in the web page as a single object. The downside is that you need to know how to design FLASH graphics and you need to buy FLASH. In addition FLASH comes with it's own scripting language - ActionScript - which you need to know if you want to take full advantage of everything that FLASH has to offer.
JavaScript, combined with the the capabilities of the web browser and the operating system of the user's computer, provides a wide variety of possible sollutions. With enough knowledge and experience you can design pages just as flashy and interactive as the ones designed with FLASH. The downside is that the advanced JavaScript techniques are somewhat difficult to master. To make it even more confusing, JavaScript works differently on different web browsers and operating systems. Accross the board JavaScript is conssidered elevated security risk, and it can be turned off by each user individually, which can severely interfere with viewing your page or even make it impossible. The good news is that JavaScript is enabled by default on most browsers. Two other technologies you need to know for successfull JavaSript use are XHTML, and CSS. In addition, knowing XML will make your job easier the least.
2. Web Applications, such as web mail, online stores, online auctions, etc., usually require heavier development on the server side. This does not exclude having eye candy user interfaces, which makes the developers' job ever more challenging. It is almost mandatory that there is a database involved with each web app. All server side technologies - PHP,ASP.NET, Perl, etc - are equally appropriate for this job. The choice here is usually made based on existing systems(for businesses), and the designers' personal preferrences.
3. Online publications a.k.a. Content management systems are a type of web application. The difference is that the processing logic is very simple and involves mainly reading and writing to a database. The information, stored in the database is organized in articles and categories, and the user interface allows for reading and writing. Online publications generally use standardized clean page design but they can also be combined with heavy dynamic elements on the client side. There are pre-designed content management systems such as Joomla, WordPress, etc. which can be downloaded and customized relatively easily.
Answered By: helper - 10/9/2008 |