This statement indicates your ignorance and lack of experience with those languages. Each of those languages you just listed has different syntax, styles, idioms, and cultural influences.
Lisp's s-expressions are the best representation you can have for a language-as-data and data-as-language programming language (if you don't know how powerful that paradigm is, then go learn it because I won't waste my time trying to explain it).
Python's whitespace significant syntax makes readable consistency of source code a language feature. If you don't know how cool that is, then you haven't spent enough time digging through other people's PHP/Perl code (which is typically a complete mess).
Ruby's syntax is influenced by Python's and Perl's. It takes the readability of Python's syntax (minus the whitespace significance) and joins that with Perl's symbols - symbols are used a lot in Ruby to make statements very terse and short. I'm not personally a fan of this style of syntax, but it does have its merits.
Perl's syntax is great for what the language is great for: text processing. PCRE came from Perl, that in itself should speak to the power of Perl. But is perl great for readability and large maintainable projects with multiple people working/reading the source? Not really, IMHO.
PHP's syntax is interesting. I find some of it to be friendly, some of it to be offensive, and some of it to be downright stupid. Why the schizophrenic nature of the syntax and API? (functions names aren't consistent, order of arguments are wtf) Because PHP has been cobbled together by a large mix of professional programmers, amateur programmers, and people that never knew what they were doing.
Erlang's syntax, people think is very ugly. But after you get used to the language you realize how absolutely perfect for the language it is! It is extremely simple, powerful, and side-effect free. The syntax is amenable to writing large, fault-tolerant, and concurrent programs. I actually think Erlang's syntax shouldn't be changed - it's so well suited for what facilities the language itself offers I don't really think it could be offerred up in any better way (although people are trying with different front-ends to the Erlang VM)
----
Here's my subjective opinion on each language with respect to web application programming. I will begin with PHP because that's the language I first learned how to program in:
PHP is great for precisely what it was built for. This isn't it's acronym but Personal Home Page sums it up well - PHP is really well suited for small projects. Projects that need to get thrown up quick. Say you want little website for your daughters soccer team with a guest list form - I wouldn't pick anything else but PHP to do such a small task in. Getting everything setup in Python or Ruby would not be a trivial task; in PHP it is trivial. PHP absolutely sucks for really big projects (again, just my HO) most PHP frameworks end up spending 40% of their "feature set" development on compensating for PHP's own shortcomings as a language and most PHP programmers learn methodology and processes that are PHP specific because most of it is "getting around" the warts in the language that are simply common sense and intuitive in other languages.
Oh, Python/Ruby don't lose because they "wrap" the web request as an "after thought" - even PHP has to "wrap" the web request. It just does it behind the scenes for you. With Python and Ruby, you're exposed to most of that so you actually have far more control than that which PHP gives you. PHP's strength is, ultimately, its weakness.
Python is wonderful for web applications - Python + Pyramid (framework) is probably the cleanest, logical, and innovative combination I have seen for web application programming yet. Python is easily readable by other people. Python has more high quality and easy to use standard and 3rd party libraries than just about any language in existence (remember, I said "easy to use"). Python also has a wonderful mix of functional features (list comprehensions, anonymous functions, etc...) and imperative features as well as a really powerful set of standard data structures.
Want to test to see if the letter "h" is in the string "hello"? Well, in PHP you would do this:
if(stristr('hello', 'h') !== FALSE {echo "found!"}
in Python: if 'h' in 'hello': print('found!')
Python has had a lot of thought put into its design and it is evolving every single day to become an even clearer and better language. Still, Python is not a silver bullet for everything (although it is definitely used as glue in just about everything). Python does not support concurrency well at all (you have to goto stackless, but even then, it doesn't compare to Erlang).Erlang is like LSD - it's so wonderful is such a strange way. Concurrency, fault-tolerance, hot code loading, and it's a functional language - Erlang uses pattern matching exclusively (if you haven't used pattern matching, you don't know what you are missing), tail recursion is something I love to use, and I love the naturalness of this:
dolist([H|T]) ->
do_something_to_the_first_list_element(H),
dolist(T);
dolist([]) ->
io:format("List has been processed!").
Whereas in Python that would have looked like this (no recursion): def dolist(lst):
if not lst:
print("List has been processed!")
for i in lst:
do_something_to_the_first_list_element(i)
print("List has been processed!")
Scheme? Oh man. Scheme is my favorite language - data-as-language, functional. That is all I will say.I'm babbling on now - what I will say is this: if you're closed minded, this whole thing was wasted on you - but from one PHP programmer to another: broaden your horizons. Every language has pros and cons. Every. Even PHP. PHP's strengths are its wide adoption and low barrier to entry it's the perfect html templating language (honestly). But you won't become a better programmer because of PHP. You won't learn the beauties that I've seen in all of the languages I've described. There's more too - more languages that can stretch your mind in ways you probably can't even appreciate right now.
Get out of your pidgeon hole and learn something. Appreciate the fact that every tool has its application and that there is no "one size fits all" language.
So if you look at it from that angle, it makes sense to code in a language that tends to have pretty code, rather than one that doesn't.