Hi!
The question is a good base for a holy war :-) I want to say that PHP has some advantages Python will never have - it's very simple in deployment, there is no fuss with library versions, nearly all needed features are already built-in including a good SAPI (!) so you don't need wsgi, psgi and etc, you don't need any virtualenvs for deploying because nobody typicaaly uses pear libraries :-) PHP is faster (if you don't take pypy and etc in account). Also I personally HATE block formatting using indentation. It's so silly idea no more language in the world has. Also for example I don't like python's strict typization ideas (for example it throws exception if you concatenate long and str using +). PHP is simple and has no such problems. And for webdev I don't like frameworks, either. I.e I don't like them at all - because I always feel they are trying to restrict me. So Django is not an argument for me, and may be not an argument for you too. And definitely you can't say django is just better than php. What php misses it's the builtin metaprogramming, but in 99% cases you should better write code instead of doing metaprogramming. So for webdev my opinion is that php is MUCH better than python.
On 28 July 2013 09:52, Виталий Филиппов vitalif@yourcmc.ru wrote:
Also for example I don't like python's strict typization ideas (for example it throws exception if you concatenate long and str using +). PHP is simple and has no such problems.
Except, you know, that is not entirely true. PHP's weak dynamic types causes numerous problems. You cannot compare strings in order to sort them, you need to convert individual characters to their ASCII/Unicode value and compare it that way (and that in itself is not always perfect, because their value may not be in the same order as humans consider an appropriate sorting[0]).
If I do `"10" == 10' in PHP, PHP will yield true. I can force it to say false (because they are not the same type) by using '===' (except - of course - PHP developers fails to understand what the === operator is for[1]). But if I do `"10" < 11' in PHP, it will yield true, because < does what == does (converts the types), but there is no way to tell PHP, I don't want that.
Particularly because int nor str doesn't exist in the language, you cannot cast things in PHP to control your types.
Furthermore, PHP has an annoying habit of doing stuff without warning you.
I recommend you reading this article: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
This is one of the main reasons I stopped contributing to MediaWiki; I simply got tired of writing in PHP. I don't like a language where I constantly have to circumvent it, because its developers are stupider than I am.
[0] Of course, no other languages solves this issue as well, so that's another thing. [1] === compares values and type… except with objects, where === is only true if both operands are actually the same object! For objects, == compares both value (of every attribute) and type, which is what === does for every other type. Wat.
On 13-07-28 06:33 AM, Svip wrote:
On 28 July 2013 09:52, Виталий Филиппов vitalif@yourcmc.ru wrote:
Also for example I don't like python's strict typization ideas (for example it throws exception if you concatenate long and str using +). PHP is simple and has no such problems.
Except, you know, that is not entirely true. PHP's weak dynamic types causes numerous problems. You cannot compare strings in order to sort them, you need to convert individual characters to their ASCII/Unicode value and compare it that way (and that in itself is not always perfect, because their value may not be in the same order as humans consider an appropriate sorting[0]).
If I do `"10" == 10' in PHP, PHP will yield true. I can force it to say false (because they are not the same type) by using '===' (except
- of course - PHP developers fails to understand what the === operator
is for[1]).
You should prefix that statement with "some" so that it reads "some PHP developers fails[sic] to understand what the === operator is for".
But if I do `"10" < 11' in PHP, it will yield true,
Because you didn't properly state what you wanted if this is not what you wanted.
because < does what == does (converts the types), but there is no way to tell PHP, I don't want that.
Indeed there is:
if( is_int( "10" ) && is_int( 11 ) && "10" < 11 )
Particularly because int nor str doesn't exist in the language, you
Yes they do.
cannot cast things in PHP to control your types.
One certainly can:
$int = (int)$string;
Furthermore, PHP has an annoying habit of doing stuff without warning you.
I recommend you reading this article: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/
The writer names 5 stances:
predictable, consistent, concise, reliable, debuggable
I can only see one failing... consistent and much of that is for historical reasons and the mirroring of C based library functions. All turing complete languages are predictable by definition. PHP is certainly concise compared to many languages. Reliability is dependent on the skill level of the developer. Debuggable is certainly possible, although perhaps more difficult than some languages. Screen prints, log prints, and xdebug generally make the process simple enough.
Cheers, Rob.
This is one of the main reasons I stopped contributing to MediaWiki; I simply got tired of writing in PHP. I don't like a language where I constantly have to circumvent it, because its developers are stupider than I am.
[0] Of course, no other languages solves this issue as well, so that's another thing. [1] === compares values and type… except with objects, where === is only true if both operands are actually the same object! For objects, == compares both value (of every attribute) and type, which is what === does for every other type. Wat.
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On 28 July 2013 17:48, Robert Cummings robert@interjinn.com wrote:
On 13-07-28 06:33 AM, Svip wrote:
Particularly because int nor str doesn't exist in the language, you
Yes they do.
No, they don't. They only exist in the context you describe below:
cannot cast things in PHP to control your types.
One certainly can:
$int = (int)$string;
Can I do var_dump(int);? Well, it turns out the only thing you can do is casting, but even casting in PHP is rather pointless.
I can only see one failing... consistent and much of that is for historical reasons and the mirroring of C based library functions. All turing complete languages are predictable by definition. PHP is certainly concise compared to many languages. Reliability is dependent on the skill level of the developer. Debuggable is certainly possible, although perhaps more difficult than some languages. Screen prints, log prints, and xdebug generally make the process simple enough.
I have been doing a lot of debugging PHP in my time, and I know how it works. That doesn't change the fact that it is rather annoying and a tedious process compared to other languages. I also like that other languages *tell* you stuff, rather than having to know all these small quirks in a language; this create language overhead, meaning a programmer needs to contain a lot of information readily available when programming.
And for what? So I can save 10 minutes when setting up, but enduring 6 months of torture? Yeah, I think I'll pass.
PHP wasn't chosen for MediaWiki because it was the language the development team (at least the current) liked the best; but because the first developer on MediaWiki chose it. And that's that.
On 13-07-28 12:22 PM, Svip wrote:
On 28 July 2013 17:48, Robert Cummings robert@interjinn.com wrote:
On 13-07-28 06:33 AM, Svip wrote:
Particularly because int nor str doesn't exist in the language, you
Yes they do.
No, they don't. They only exist in the context you describe below:
cannot cast things in PHP to control your types.
One certainly can:
$int = (int)$string;
Can I do var_dump(int);? Well, it turns out the only thing you can do is casting, but even casting in PHP is rather pointless.
I can only see one failing... consistent and much of that is for historical reasons and the mirroring of C based library functions. All turing complete languages are predictable by definition. PHP is certainly concise compared to many languages. Reliability is dependent on the skill level of the developer. Debuggable is certainly possible, although perhaps more difficult than some languages. Screen prints, log prints, and xdebug generally make the process simple enough.
I have been doing a lot of debugging PHP in my time, and I know how it works. That doesn't change the fact that it is rather annoying and a tedious process compared to other languages. I also like that other languages *tell* you stuff, rather than having to know all these small quirks in a language; this create language overhead, meaning a programmer needs to contain a lot of information readily available when programming.
And for what? So I can save 10 minutes when setting up, but enduring 6 months of torture? Yeah, I think I'll pass.
PHP wasn't chosen for MediaWiki because it was the language the development team (at least the current) liked the best; but because the first developer on MediaWiki chose it. And that's that.
I debunked your original comments and you come back with more false claims and subjective argumentation. I don't foresee a rational dialogue emerging in the future so it's probably best to leave you to your PHP loathing. As for why MediaWiki uses PHP... I guess that's what you get when you invent something-- you get to choose the design and tools.
Cheers, Rob.
On 28 July 2013 18:36, Robert Cummings robert@interjinn.com wrote:
I debunked your original comments and you come back with more false claims and subjective argumentation.
You debunked my comment that casting is impossible; I concede that I was wrong. But it is the only context where you are allowed to use 'int'. 'int' isn't a keyword in PHP, '(int)' is. And why? There is intval() after all. It's only to match C syntax. It's the same with new, protected, public, private, etc. keywords for classes, despite these not really being useful in a interpreted language. The idea is to catch these issues on compile time, which PHP doesn't have.[0]
Your is_int() solution is correct, but it isn't exactly pretty. It's another example of 'working against the language'.
As for why MediaWiki uses PHP... I guess that's what you get when you invent something-- you get to choose the design and tools.
I don't blame MediaWiki for using PHP. It makes pretty rational sense at the time it was created. And even if it was created today, it might have been PHP as well. I have often praised MediaWiki for its excellent PHP (also notice so does the article I linked to).
[0] I know there are some systems that can compile PHP, but the primary objective of PHP is not to be compiled.
I don't know you man, unfortunatelly I can't evel spell your name... but I really like you, because the way you feel about python is exactly the same way I feel about it :-) I was thinking there is no one else on this world who hate the way of python's syntatx just as I do :-)
And as I already stated once, I didn't start this discussion to start a war (not that I wouldn't like it) I just wanted to find out what's so cool on python and why in the world would people prefer it over php.
On Sun, Jul 28, 2013 at 9:52 AM, Виталий Филиппов vitalif@yourcmc.ru wrote:
Hi!
The question is a good base for a holy war :-) I want to say that PHP has some advantages Python will never have - it's very simple in deployment, there is no fuss with library versions, nearly all needed features are already built-in including a good SAPI (!) so you don't need wsgi, psgi and etc, you don't need any virtualenvs for deploying because nobody typicaaly uses pear libraries :-) PHP is faster (if you don't take pypy and etc in account). Also I personally HATE block formatting using indentation. It's so silly idea no more language in the world has. Also for example I don't like python's strict typization ideas (for example it throws exception if you concatenate long and str using +). PHP is simple and has no such problems. And for webdev I don't like frameworks, either. I.e I don't like them at all - because I always feel they are trying to restrict me. So Django is not an argument for me, and may be not an argument for you too. And definitely you can't say django is just better than php. What php misses it's the builtin metaprogramming, but in 99% cases you should better write code instead of doing metaprogramming. So for webdev my opinion is that php is MUCH better than python. _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On 28 July 2013 18:43, Petr Bena benapetr@gmail.com wrote:
And as I already stated once, I didn't start this discussion to start a war (not that I wouldn't like it) I just wanted to find out what's so cool on python and why in the world would people prefer it over php.
To give you an answer that isn't just PHP bashing (by the way, I am no big fan of Python myself); I think it has a lot to do with more corporations having skin in the game. Large companies like Google have invested in Python, but few have invested in PHP. Well, at least not prominent ones like Google.
This gives Python a sense of 'serious language' compared to PHP's 'hobby language' sentiment. And some programmers looks down on PHP's hobby language status. You can argue whether that is fair or not.
But Python is a different beast all together; its initial purpose - as I recall - was fulfil those programs that were too large for bash scripts, but too simple for C-programs. It was not created for the web, it was later applied to it; and this you can tell in the language as well as its standard library. Python feels like a script language, it has not very good threading and concurrency mechanism, which have been added to the language later.
Google even tried to improve Python, but eventually abandoned that plan and came up with Go instead.
There doesn't exist popular frameworks like Django (which I also loath) for PHP, because PHP's standard library (well bindings) fulfils much of task itself.
I don't mind Python's indentation syntax, but I don't like its underscored standard functions (like __init__) and whatnot; they look incredibly ugly. I also don't like that you have to create a __init__.py file in a directory to make it a package; that seems silly to me (and ugly).
As for why Python is cool? Because it tries some new things (look at the syntax) and it is a language more designed to the nature of being interpreted than compiled (which is a syntax PHP mimics). I remember personally being excited about Python when I first really met it back in 2007. But now that excitement has vanished.
My issue with Python isn't so much setting it up (which is a pain itself, don't get me wrong), but it's the fact that it's standard library are rather missing on functionality for the web (there are plenty of frameworks, and whatnot, but not in its standard library), so I have to ask myself; what's the purpose of writing in Python rather than PHP?
I'd rather write in neither. But hating PHP has traction, and you don't want to be the uncool guy who writes in PHP, so to some people, Python is the only option.
and how about that emacs eh, it got nothing on vim!
On Sun, Jul 28, 2013 at 6:54 PM, Svip svippy@gmail.com wrote:
On 28 July 2013 18:43, Petr Bena benapetr@gmail.com wrote:
And as I already stated once, I didn't start this discussion to start a war (not that I wouldn't like it) I just wanted to find out what's so cool on python and why in the world would people prefer it over php.
To give you an answer that isn't just PHP bashing (by the way, I am no big fan of Python myself); I think it has a lot to do with more corporations having skin in the game. Large companies like Google have invested in Python, but few have invested in PHP. Well, at least not prominent ones like Google.
This gives Python a sense of 'serious language' compared to PHP's 'hobby language' sentiment. And some programmers looks down on PHP's hobby language status. You can argue whether that is fair or not.
But Python is a different beast all together; its initial purpose - as I recall - was fulfil those programs that were too large for bash scripts, but too simple for C-programs. It was not created for the web, it was later applied to it; and this you can tell in the language as well as its standard library. Python feels like a script language, it has not very good threading and concurrency mechanism, which have been added to the language later.
Google even tried to improve Python, but eventually abandoned that plan and came up with Go instead.
There doesn't exist popular frameworks like Django (which I also loath) for PHP, because PHP's standard library (well bindings) fulfils much of task itself.
I don't mind Python's indentation syntax, but I don't like its underscored standard functions (like __init__) and whatnot; they look incredibly ugly. I also don't like that you have to create a __init__.py file in a directory to make it a package; that seems silly to me (and ugly).
As for why Python is cool? Because it tries some new things (look at the syntax) and it is a language more designed to the nature of being interpreted than compiled (which is a syntax PHP mimics). I remember personally being excited about Python when I first really met it back in 2007. But now that excitement has vanished.
My issue with Python isn't so much setting it up (which is a pain itself, don't get me wrong), but it's the fact that it's standard library are rather missing on functionality for the web (there are plenty of frameworks, and whatnot, but not in its standard library), so I have to ask myself; what's the purpose of writing in Python rather than PHP?
I'd rather write in neither. But hating PHP has traction, and you don't want to be the uncool guy who writes in PHP, so to some people, Python is the only option.
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
We all know that VIM is best editor out there :P
On Sun, Jul 28, 2013 at 6:59 PM, Martijn Hoekstra martijnhoekstra@gmail.com wrote:
and how about that emacs eh, it got nothing on vim!
On Sun, Jul 28, 2013 at 6:54 PM, Svip svippy@gmail.com wrote:
On 28 July 2013 18:43, Petr Bena benapetr@gmail.com wrote:
And as I already stated once, I didn't start this discussion to start a war (not that I wouldn't like it) I just wanted to find out what's so cool on python and why in the world would people prefer it over php.
To give you an answer that isn't just PHP bashing (by the way, I am no big fan of Python myself); I think it has a lot to do with more corporations having skin in the game. Large companies like Google have invested in Python, but few have invested in PHP. Well, at least not prominent ones like Google.
This gives Python a sense of 'serious language' compared to PHP's 'hobby language' sentiment. And some programmers looks down on PHP's hobby language status. You can argue whether that is fair or not.
But Python is a different beast all together; its initial purpose - as I recall - was fulfil those programs that were too large for bash scripts, but too simple for C-programs. It was not created for the web, it was later applied to it; and this you can tell in the language as well as its standard library. Python feels like a script language, it has not very good threading and concurrency mechanism, which have been added to the language later.
Google even tried to improve Python, but eventually abandoned that plan and came up with Go instead.
There doesn't exist popular frameworks like Django (which I also loath) for PHP, because PHP's standard library (well bindings) fulfils much of task itself.
I don't mind Python's indentation syntax, but I don't like its underscored standard functions (like __init__) and whatnot; they look incredibly ugly. I also don't like that you have to create a __init__.py file in a directory to make it a package; that seems silly to me (and ugly).
As for why Python is cool? Because it tries some new things (look at the syntax) and it is a language more designed to the nature of being interpreted than compiled (which is a syntax PHP mimics). I remember personally being excited about Python when I first really met it back in 2007. But now that excitement has vanished.
My issue with Python isn't so much setting it up (which is a pain itself, don't get me wrong), but it's the fact that it's standard library are rather missing on functionality for the web (there are plenty of frameworks, and whatnot, but not in its standard library), so I have to ask myself; what's the purpose of writing in Python rather than PHP?
I'd rather write in neither. But hating PHP has traction, and you don't want to be the uncool guy who writes in PHP, so to some people, Python is the only option.
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
On Sun, Jul 28, 2013 at 9:43 AM, Petr Bena benapetr@gmail.com wrote:
And as I already stated once, I didn't start this discussion to start a war (not that I wouldn't like it) I just wanted to find out what's so cool on python and why in the world would people prefer it over php.
Yeah well, language choice along with editor choice only ever end in holy war, no matter how good the intentions.
On Sun, Jul 28, 2013 at 10:41 AM, Petr Bena benapetr@gmail.com wrote:
We all know that VIM is best editor out there :P
And with that, this thread has run its course. Please go back to watching silly cat videos or whatever else you like to do in your spare time.
-Chad
wikitech-l@lists.wikimedia.org