which language to choose?

I want to have a web-based office type program developed.  It would include basic word processing, calendar, to-do, database, etc.  I would like to have someone who can tell me what language would be best for my project.  Yes, I know the project can be done in any language but I want the one that is best suited for my purposes.  Seems like everyone has their preference and try to push that on me.  Simply put I want a consultant that is well versed in several languages (at least more than one) and can give me the pros and cons of each language in relation to my project.  I want to decide not have my choice made for me.  Is that to much to hope for?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

It depends on the clients needs, available resources, and budget.

PHP is great because it is multi platform and has great support for MySQL. MySQL is free and quite capable of doing the job.

ASP and SQL Server (or MSDE) is another option if your client has a primarily MicroSoft environnment. Furthermore, you would have the ability to manipulate MS Office, Exchange, and other MS products directly from ASP.

If you can tell us more about the client, resources, and budget, it will be easier to answer the question.

To develop a web-based office type application, you need something that will be much more intractive than a standard web-page (HTML) based application. There are several ways this can be done, but the most popular at this point in time is AJAX.

AJAX is a combination of JavaScript and XML (AJAX = Asynchronous JavaScript and XML). An example of this type of application can be found at http://www.ajaxwrite.com/

My problem with AJAX is that it is sort of a kludge and it's difficult to develop in. My personal choice would be to do the application in Java using applets to provide the interactivity needed.

SSLCAuthor Commented:
The above comments are missing the point.  I am not asking which language to use.  I am asking if I am expecting to much to want a consultant that can and will evaluate my project with an open mind as to which language to use.  So far it seems that a person's choice of language depends on whether they prefer .net or PHP, not whether it is the best choice for my project.
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

IMHO, consultants are just like the rest of us with expertise in a few, but not all, applications and languages.  You're likely to get a recommendation for whatever the consultant knows best.
For any given project there are probably a dozens of choices of language, toolset, platform, etc.

The "best" choice for your project depends on many factors.:
For example
1)  How much do you want to spend on software and hardware?
     This will have an impact on what the platform and software development choices are.

2) Where do you see your application in a year or two?
   This will have an impact on how much time should be spend on design for reuse. If it's a one-time throw away project then you probably don't care about reuse. However, if your project is the seed of a much larger overall project, you should probably spend more time thinking about how the software can be expanded down the road.

3) Do you want to do the work yourself or do you want a turnkey application delivered? If you want to do the work yourself then you will need to learn the language/tools. Depending on how much experience you have is a huge factor in what language/platform you choose. For example, if you've never programmed before, forget C++.

>>You're likely to get a recommendation for whatever the consultant knows best.
If you know what you want, you can narrow this down and find consultants that can work within the constraints you place on them. I've been in consulting for better than 25 years and I rarely get to choose the platform or language. I just try to be competent in all the current technologies so I can remain marketable. If you want to pay me to write VB code it's cool with me. If you want me to do it in assembler thats ok too. However, if you tell me you want me to choose the best language/tools, of course that's exactly what I'll do - give you my preference. There is a reason why a certain language/tool would be my preference - because IMO it would be the best.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
There are too many languages out there and tons of different approaches to Web programming. But it seems one approach is taken in every "successfull" approach.

The MVC pattern.

Exception to this rule are PHP based solutions. There the things often are
put together with not clear separation of concern.

This is due to a  few facts.
- PHP was supposed to be added to HTML pages there for the temptation is large to
let slip in Model or controlelr logic onto pages

- JSP pages suffer often under similiar lacking separation of concerns. I suggest you check out 'bitter java' to get an idea about this problem.

However there do exist quite  few frameworks which encourage the MVC pattern.
Here a non exhaustive list:

- Seaside (Smalltalk) http://swik.net/Seaside
- Wdialog (Ocaml) http://wdialog.sourceforge.net/
- UCW (Common Lisp) http://common-lisp.net/project/ucw/
   also TBNL, KPAX, BKNR, Webactions
- Webobjects (java, Objective-C) http://www.apple.com/webobjects/
- Scheme (check out the DrScheme pages)
- Ruby on Rails http://www.rubyonrails.org/
- Openacs (is a complete tool-chain of things) http://www.openacs.org/
- Struts (Java)

I have a dislike for either JSP, ASP solutions, there  the tools generate tons of boiler-plate code, and you must see how to integrate your code into it.

One thing they forgot is simplicity. It's easy to pile up one code line after the other, but is it understandable? Is it needed to send 100 KB of XML code to display one
"Hello World"?

I'd argue that OpenACS comes close to what you like to have. So why not giving it a try?


If it were me I would go with the LAMP (Linux, Apache, MySql, PHP) stack implementaion for these reasons:

1. Cost benifet.
--- This whole stack is free and typically cheaper to host than lets say an asp/asp.net SQLserver implementaion (which I might add is not free like mysql)

2. Support and Documentation
--- Reference for php through php.net is absolutly the best and easiest to use documentaion for any language (web or not) that I have used.
--- all you need is
www.tldp.org (the linux documentaion project) which also has great info on apache

3. Language strength
--- Especially with the new releases of PHP5 and MySql5, there are more built in functions shipped wtih the release, than asp or other web development languages I have worked with..(VBscript, .net, PERl, ColdFusion  etc...) Also with these new releases PHP makes available things like interfaces and abstract classes (not available in asp) and MYSQL5 makes available triggers, stored procedures and some other new good stuff

LAMP stack.. thats my vote
Oh also ....

By including PEAR extentions (PHP Extension and Application Repository) in your PHP code you can manipulate and create all kinds of Office documents (excel, word... ).


It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Languages and Standards

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.