Why would I choose PHP over its competitors?

There are many competitors to PHP: Python, ASP.NET, Ruby on Rails, etc.

Why would I choose PHP over those when I plan to build publish social web application?

What do you think?

Cheers.

PHP is newbie-friendly, its convenient to use now that pretty much every webhost provides PHP/Apache server. There are lots of existing libraries and third party scripts for you to integrate without reinventing the wheel. Also the vast number of PHP programmers and journals/articles available on the internet means that you’d never walk alone with PHP.

Python is much less popular, Google App used to only support Python but then decided to add PHP support, you know what this implies.

ASP.NET is a very good alternative actually, while it only works on Windows platform(though its possible to get it work on Linux, its a bit tricky). Since it is static-typed, I’d say that a lot more people would rather go with dynamically typed languages when it comes down to web development.

Ruby is a very difficult programming language to learn and to get used to, you need to learn at least 1-2 programming languages to go easy on it. Even if you are a great programmer yourself it may be necessary to consider whether your co-workers/teammates are up for the task of writing a good ruby program.

So, is PHP the best choice if I’m just starting? and is it good to develop big social websites in it?

.
It depends on what your goals are.

and is it good to develop big social websites in it?

Sure, it’ll do the job. But–have you considered looking at CMS software or a social network platform like ning.com and socialgo.com?

Other social networking platforms: http://www.tripwiremagazine.com/2010/07/25-best-social-networking-platforms-to-start-your-own-service.html

If you are just starting, PHP has insurmountable advantage over other programming languages for the webs, for reasons I already stated above. For a real big social website, the difference may not be that significant, and in fact PHP does lack certain OOP features to be called a complete OO language. In this case, you will have to decide for yourself.