Hi there,
sorry, can't resist commenting on this one (having worked with .NET in
the past)... I promise this will be my only post regarding this topic
though :-)
Alex Netkachov schrieb:
1. I consider compilation and strong typization are very important in
development because they help to avoid some basic typo-mistakes.
I've always found strongly-typed languages to suffer from two basic
problems: A false sense of security (my app works because it compiles
without error), and a loss in productivity (I have to type more,
typecast everything, pre-plan everything, compile, test, change,
compile, test, change (rinse, repeat until compiler throws no more
errors) and then still have to hunt for bugs when feeding the app with
real data).
There's a much better way to ensure your application runs without error
than having it checked by a compiler: Write tests that use real-world data.
When I was developing .NET applications, the real errors where always
happening at runtime, not at compile-time. And debugging is a nuisance
because you always have to recompile your application, restart it, and
restart your debugging efforts from scratch, constantly repeating each
task you needed to perform to get to the point where the bug occurs.
That is neither fun nor productive.
2. .NET provides a lot of functionality still not implemented in PHP.
I especially interested in i18n and l10n of the applications.
Formatting, encodings, locales, etc. ZF has all these now, but not in
.NET contains such functionality just from the beginning.
That is a fundamentally bogus assessment. What you're saying is: PHP
(the language) does not have i18n built-in, while .NET (the framework,
because that's what it is), has. That's like saying: The Zend Framework
has i18n built-in, while C# (the language) hasn't.
3. One standard IDE for all developers.
...which means: All developers have to think completely alike and follow
the same processes. If you were used to a different workstyle before -
well, that's all nice and good but please unlearn everything you thought
you knew before and adhere to the one true Visual Studio way. Unity in
conformity! Bleh.
With PHP, it's possible for every developer on a team to work with the
environment he knows best, and keep the workstyle he's most productive
in. This way, everyone in the team can work at his personal peak of
productivity and at the same time maintain a sense of individuality and
freedom that he wouldn't have otherwise, increasing motivation.
And no, this does not lead to chaos. Using different development
environments does not mean you don't adhere to coding standards, a
unified project layout and a central source control. It only means that
to write new code (while keeping to the agreed standards) everyone can
use the tools he knows best.
4. More tools for code analyzing because of strong typization.
What would you like to analyze that you can't analyze when using PHP,
exactly? PHP has debuggers, profilers, source analyzers, code coverage
analysis for unit tests and more. And did you notice the plural form on
all of these things? That was intentional :-)
Ok, enough waste of bandwith from me...
CU
Markus