Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have my own idea for a web application, and I am not a programmer. The application will work similar to Facebook and Twitter, profiles and feeds.

I have learned some computer science theory, all the way up to OOP, but have no practical experience. Without any experience, is there a way I can evaluate the different language and platform choices available to me?

What kind of things should I be looking at? Ease of setup? How many followers it has?

How can I evaluate whether a language will have the capabilities I need?

share|improve this question

closed as off topic by Jim G., MichaelT, Glenn Nelson, Martijn Pieters, Dynamic Mar 4 '13 at 19:51

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

Any modern language/framework will do. If you are not a programmer, find one with the experience. –  Oded Dec 31 '11 at 21:55
@Oded I am not a programmer but would like to learn as I develop my own apps. –  Jonathan Musso Dec 31 '11 at 22:04
Choosing the programming language for a general project is off-topic here. However, the title of your question makes it seems like you also want to learn about the process of deciding which language is appropriate. That would be a fine question to ask here, and if you agree we can edit your question to be more about that than the specific choice you're facing (and you can then draw your own conclusions). –  Anna Lear Dec 31 '11 at 22:20
@AnnaLear That sounds like a good idea Anna, thank you. –  Jonathan Musso Dec 31 '11 at 22:22
@twinbornJoint I made an edit. Feel free to improve it further if it's not quite what you're looking for. :) –  Anna Lear Dec 31 '11 at 22:33

5 Answers 5

I recommend learning to program, by practicing, first. Preferably in a "better" language than PHP. By better, I mean a language that encourages better coding style.

My personal bias is to favor C# or maybe Python, but this is very subjective.

Once you've got some experience programming in general, writing a web application should be easier because you'll be able to learn the web specific stuff distinct from basic programming.

For a first web app, the easiest environment to start with and get something functional is probably PHP. That doesn't mean it's the easiest language to build a serious web app in. I don't like PHP as a language, but I did write my first web app in it. I now use C# (ASP.NET) for web programming and like it better, but I don't think this would have been an easy environment to start with. Still, you could start with anything and succeed.

Don't expect your first web application to be amazing! You'll be learning how http works, how to deal with statelessness, and much more as you go. Your first web code will probably be disgusting to you later on, but that's OK. Learn from it, and do better next time.

(This is all assuming you are actually serious about programming, because you aren't going to program a web app without programming. An alternative is to pay someone else.)

share|improve this answer
I have been thinking about my web app. To my understanding, it will need to utilize Object Oriented Programming. I've heard that PHP utilizes OOP in a nastier fashion than modern web languages. Is there any truth behind this matter? You say that C# and ASP.NET may not be the best option for a beginner. What are your thoughts on Ruby on Rails and Python with Django for a newcomer? Thanks! –  Jonathan Musso Dec 31 '11 at 22:03
I haven't used Ruby on Rails or Django so I can't comment on that. I did try to set up a Django site but never got it configured right -- I just didn't put much effort into it. PHP is just nasty in my opinion. It's all too subjective to say there's "truth" behind it, everyone has their own opinion. I just think PHP is painful to work in once you've used other things. –  Philip Dec 31 '11 at 22:07
to me php is only painful when someone else has had a chance to destroy it. PHP can be nice to work with but it is a pain if it isn't maintained with strict standards. –  WalterJ89 Dec 31 '11 at 22:17
Indeed it can be terrible when abused. Still I think it's harder to write clean, concise, reliable code than in some other languages, even if you're doing it right. –  Philip Dec 31 '11 at 22:28

The web work I did was in python. I really like the simple and clear syntax of python. Furthermore, it is an open source language with a large community and a great many extensions which make life easier, e.g. xml parsers.

In regard to your inexperience, I think making a good app which is of professional quality (i.e. with which you can make money) you professional quality programming skills. Especially when you go into a market with big players such as facebook, you really need something good in order to succeed. So either you need to spend a lot of time getting your programming up to speed (time in which you do not make a lot of money), or you need to hire someone to do the programming for you, maybe tutoring you to a professional programming level. I do not say this to discourage you, but making something professional requires professional skills. My 2 ct...

share|improve this answer

There are a ton of options, but the most common and practical for the web are

  • Ruby - Open Source
  • Python - Open Source
  • PHP - Open Source
  • C# - Proprietary

One of these four will get you started. They are all equally capable and all have different web development frameworks to help you develop rapidly. I prefer any of the open source options. Facebook was built with PHP and Twitter was built with Ruby, so that might influence your decision.

Keep in mind, no matter which langauge you choose, developing for the modern web also requires that you have an understanding of HTML, CSS, and JavaScript. You'll also have to learn about working with databases, there are several different database options, but realistically you should expect that you'll need to understand some dialect of SQL as well.

Be prepared for a lot of trial and error, but every time you try you learn a little bit more.

share|improve this answer
Facebook was built with PHP is not technically true. Several parts of Facebook were indeed built with PHP, and several of those were at some point converted to HipHop (not really PHP). Complex applications rarely use just the one language, and most behemoths have a fair share of custom stuff. Same for Twitter. You should never let "foo was built with bar" influence your choice of language. –  Yannis Rizos Jan 1 '12 at 18:12
@YannisRizos It is absolutely true. Facebook was built with PHP and HipHop only came into the picture when scaling became an issue (a problem Facebook would face with any tech stack). Additionally, HipHop compiles PHP code, so Facebook is still written in PHP as far as the programmer is concerned. –  leo Jan 1 '12 at 19:01
Well yes, but no. :) PHP is not essential to Facebook's success, and that's true for every language. Infrastructure, application design, marketing, original features and quite a few other factors are quite more important than the language. There isn't something in PHP that makes it a better language for a Facebook like site (or something that makes it worse). Same for Twitter and Ruby. I love PHP, I'm primarily a PHP developer, and I would love it if more people got involved, but for the right reasons. –  Yannis Rizos Jan 1 '12 at 19:23

At the end of the day, almost any language will do. I'd suggest just browsing community forums to see the kind of help you'll be able to get (i.e. you'll find a larger Python community for web development than, say, LUA) and see which language/community speaks to you the best. Some people pick up Python easily and others pick up PHP easier - it's really up to which makes more sense to you.

IRC channels can be invaluable for in-the-moment assistance rather than waiting for answers on forums or mailing lists, so look for those in community wikis and documentation.

The LAMP stack seems to be the clear winner for personal projects and startups. Do be aware that there are multiple domains that you need to touch on to get to a point where you can put a decent project together - mainly database, programming language and web server (this is just a beginner's list and is by no means exhaustive).

My suggestions for languages to look into: Python, PHP and C#. All three have great community support, a ton of documentation and are in high use in commercial application.

share|improve this answer

When you develop web app, you should think about it future. All successful websites need a mobile application in future. And in some cases it should be easy to integrate web and mobile application. Thats why you should select programming language on what you should build in future your mobile application. Here is example of Infographics that demonstrate which language uses everu app.

share|improve this answer
You should summarize what is at the URL posted instead of just leaving a link. If that link goes stale two months later, this answer would become useless. –  Glenn Nelson Mar 4 '13 at 13:20
I only want to help people(( I think it is really great when you think about future of you web app –  Yauhen Zaremba Mar 4 '13 at 13:24
@YauhenZaremba would you mind explaining about this resource in more detail - how and why does it answer the question asked? "Link-only answers" are not quite welcome at Stack Exchange –  gnat Mar 4 '13 at 14:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.