Link to home
Start Free TrialLog in
Avatar of Jon Scriven
Jon ScrivenFlag for United Kingdom of Great Britain and Northern Ireland

asked on

What languages / protocols / frameworks should I use to build a dynamic website?

I have a project which is a bit of a hobby and would like to design a rich media website to prototype the idea.  This would include features such as a fully functioning music player which would continue playing as well as remembering what you have already listened to as you navigate around the site and a lot of dynamic content around pre-selected user preferences.  I realise that this is a bit vague, but the detail of the site is not that relevant.

What I really want is some input into what scripting language, database, protocols and framework I should use, and why?

In my research so far, I have read about all sorts of different things:-

PHP, MySQL, XML, Javascript, Perl, Ajax, DHTML, XHTML, DOM, JSON, JQuery, .NET, Flash, ActionScript, SQL Server Express etc

My experience in the past is around pure HTML and basic scripting (some VBS, Batch Files) and I used to program as a day job, but this was a long time ago before OO had really taken off, so I am not up to speed with modern techniques, but am a fast learner and keen to get back into this area..

So my question is 'what would you recommend using'?

My criteria is this:-

1. I don't have a huge amount of money for training courses, software packages etc (although if I need to spend some money to make the best decision, then I will)
2. I have a domain name, but not web space yet, so am not tied-in to a particular way of doing things (yet!)
3. There needs to be a good online community / free online training courses so that I can learn as I go
4. I am happy to buy books etc., but they need to be relevant to the type of site that this will be

I will share points around any answers that I feel are helpful to making this decision.

So a good answer would include:-

1. What scripting language, database, development software, framework you would recommend
2. Why you would choose this over competing options
3. What helpful resources are there available
4. If you think training, books or purchasing software is necessary to go down this route, if so, what?
5. What you think my next step should be

I realise that this is quite an open and subjective question, but I really need some guidance and where better to start than with a load of experts? :D
ASKER CERTIFIED SOLUTION
Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Jon Scriven

ASKER

I need reasons, not just names of things!
I thought that was clear from the question?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks - much more helpful - there will be some points coming your way when I close the question.  Any other people with something to add?  Do you agree with PHP and jQuery?  If not, what?  If yes, what resources would you recommend?
Let the question stay open at least a day or so for more comments
Will do.  So, mplungjan would you use this with MySQL or is there some other method for storing data?
Yes. That is what I do.
It is very easy. I use GoDaddy which is not the simplest website to navigate, but databases are easy and if you are stuck their helpdesk is very accessible.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I was not only touting my personal preferences. I do not do either PHP nor .NET but I do have a strong opinion on what a beginner seemingly without plans of a career in IT should choose for server development and anything.NET is certainly not one of them. IF you are planning to get back into IT, then that is something else. Then .NET or JAVA (less now Oracle seem to mess things up) is for a future in corporate settings, php and mysql would still be my choice for personal projects and homegrown websites.
I don't mind personal preferences as long as they are backed up with well argued reason!  I do work in IT, but not currently in this field.  This is initially a personal project to prove a concept, but may grow into something commercial down the line, so whilst I am predominantly looking for ease of prototyping right now, I don't want to make a stupid technology decision and shoot myself in the foot for later, particularly as there might be components that I would want to port across.  The website will be dynamic and so will need to support content changing without reloading the whole page.  My big drivers right now are start-up costs, ease of learning the technology and suitability of technology for the project.  However, if it makes sense to go down a particular route now for commercial reasons, then that would be helpful to know too.  I wouldn't want to learn one technology and then have to learn a whole new set of skills if this works out how I plan.... Keep the comments coming!
Ok. A little background information on your current skills/experience would be useful. All of the technologies mentioned are viable options for what you have described.

What are you goals long term? Do you mind being tied in to Microsoft, would you rather go for a more platform neutral approach? There are free versions of the tools you need to get started no matter which route you go.

Having said that, once you know the fundamentals of developing web apps it is a fairly easy transition from .Net to PHP and vice versa. If you opt for the .Net route then C# would be a better choice of language as it will also make PHP and Java languages more intuitive if you choose to branch out later.
I have not done any coding for about 10 years.  Before that I did a lot of programming as a hobbyist at Uni and some for work, but we are talking old school languages, Basic, Pascal, Fortran, Modular 2(?), Assembler and for three years I worked in a job where I did Cobol, Adabas Natural and SQL coding.  After that I did a bit of web design (mainly just HTML 4.0) and a little Visual Basic and Delphi.

Any skills I did have are rusty at best, but I am sure that I will at least have a slight head start in learning a new language.  The last 10 years, I've worked in the Infrastructure / Support field and the only scripting I do these days, is MSDOS batch files, login scripts and a bit of VBS.

Long term, I don't have any strong feelings towards or against Microsoft, but I do have a friend who might be involved who knows PHP and Javascript, but I also know people who have Microsoft skills, so no compelling reason to go one way or the other from that side of things.

The idea is that I write a design document and then create a prototype site and this is the stage I am currently at, however, if the prototype goes well, then I'd be looking for something that was scalable to maybe 5000 regular users in the short-term.  I am not sure whether to pick a technology and stick with it, or to go for something which is well suited for prototyping and then change down the line.
Visual Studio will let you quickly prototype apps as you can pretty much drag and drop controls and data components to create a functional page. You would want to refine that somewhat for production but it will at least let you put together a working, data-driven prototype quickly enough.
However for learning what is what, nothing beats a hand-hacked piece of php accessing a database you created yourself with sql statements
That sounds like the loving statement of someone who has worked with PHP for a while, which is a little puzzling since you said you don't actually do PHP or .Net :)

As i'm sure you've already figured out yourself, prototyping isn't going to tie you to a specific technology if you simply need to put together a proof of concept piece for demonstration purposes. You could even mock it up as static Html and populate it with dummy data if you need to. That way you can delay the decision of which platform/technology to go for.
I can do php and have done so but I do not need server processing on a daily basis. At work I do frontend work where other people do JAVA on middle tier and backend and my own sites only use static html with a tiny bit of PHP for dynamic image gathering for coolpics
OK - so there are different options available which work for different people.  carl_tawn, you seem to be a fan of the Microsoft route.  What do you think are the main advantages and what free tools / resources should I be looking at?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
OK - thanks for all the advice both of you.