I think one major difference of CodeForces.com from other ACM and programming contest is the support of python, ruby, php, haskell and etc. It makes things more interesting. But from my observation, few people used these new languages. Part of the reasons is people in the community are not familiar with these languages and some of the languages are hard to debug. And another reason, I believe, is CodeForces.com measures the submission with same criteria, same memory limits, same time limits. But the performance of the language are very different. It makes it impossible practically. Probably codeforces.com could consider to give different criteria for different language, based on some kind of language performance benchmark. This could encourage people to use different language and be more fair.
[Why can't I edit my post some minutes after i made it?!]
In my opiniton the languages such as php, ruby, python etc. should not be allowed... Because it very hard to challenge the solutions wich are being written in these languages for those who don't know them (languages). For example, I can write code in C++ and Pascal. Also I usually able to understand Java code. But I understand nothing in PHP, Ruby etc., because they strongly differ from usual languages (I mean C/C++, Java and maybe Pascal). And it caused a problem for me in CF Alpha Round 20. Surely, the same problem had some of the other competitors.
Moreover, almost all the participants who use these languages also can write code in one (or more) of usual languages. So I think it's not necessary to accept the languages such as PHP, Ruby etc in such type of contests (with challenging).
It's only MY opinion, though. I can discuss this problem with those who don't agree with me.
By the same logic Pascal definitely should be forbidden, because
1) It's syntax is completely different from C++-style languages and tough for understanding
2) It's used (and, I believe, known) by much fewer number of programmers over the world than Python
Even if I know 10 languages, it doesn't mean that I can effectively solve problems on all of them.
If you don't want to improve your skills by learning at least basics of those languages, it is definitely your problem, and, moreover, it is bad for you in first place. Let me explain why.
First of all, lets exclude PHP from this discussion, as it is C++-like language, and if you understand C++, you should understand PHP code as well.
If you don't know Haskell (or any functional language at all), then you don't understand functional paradigm, and without understanding it I don't think you will succeed in new era of programming languages, when list comprehensive and lambda functions are becoming available in more and more languages (even new version of C++ contains lambda functions).
If you don't know Python/Perl/Ruby/ some other scripting language, then basically you know, how are you going to solve some practical problems when you need to let's say to download 20 pages from web and extract some data, or to do some stuff with files on your machine.
In other words, I don't say that every person must know all the languages and feel comfortable coding in all of them. But understanding of basics of functional programming, as well as knowing at least one scripting language, is reasonable, and it makes your concern meaningless
Firstly, it's a suggestion, not a requirement. Secondly, I think I'm not the only one who "I don't know Python".
> By the same logic Pascal definitely should be forbidden
Yes, maybe that's right. I didn't say Pascal must be allowed.
> If you don't want to improve your skills by learning at least basics of those languages, it is definitely your problem, and, moreover, it is bad for you in first place.
Agree. But while competing in CF first of all I want to improve my algorithm skills. CF is algorithm contest (or not?). Anyway, CF problems require algorithmic knowledge but not knowledge of different languages. And the fact that people use the languages such as Python sometimes prevents to improve algorithm skills.
> But understanding of basics of functional programming, as well as knowing at least one scripting language, is reasonable, and it makes your concern meaningless
I agree that it is reasonable. But it's not the aim of CF, is it?
To sum it up, I want to say that first of all CodeForces is an algorithm competition. And it has challenging wich is the main advantage. For this reason, diversity of accepted languages is a disadvantage, imho.
Anyway, I don't mind if you prove that I'm wrong.
Let me draw an analogy. Suppose you aren't aware of some feature in a language you already know. (Variadic parameter list in Java or something.) If you see it in some solution, what will you do? I suppose, you'll learn about it and later, perhaps, will use it when it's convenient. The same thing with multiple languages.
Code obfuscating, on the other hand, would be much more common, it can even be automated :)
Well, pehraps you are right, although I don't agree with you. This conversation may be endless. You say that CF is not only algorithm contest while I say that it is. Seems most of people don't agree with me, so I won't continue this meaningless discussion. I don't want my contribution to be under -100 :)
Anyway, I don't think my suggestion was so stupid that nobody agreed.
Предположу, что раунд (Codeforces format) стал 20-м, т.к. это новинка и нужно было дать ему круглую цифру... соответсвенно потом провели 19-й, т.к. этого номера не хватало....
Но вот почему следующий будет 22-м, а не 21-м? 8)))
Вопрос, конечно, не по теме.... но любопытства ради..