Let's go on a bit of a tangent, then, related to blocks delimiters. (Python and Makefiles use indentation and not delimiters; and Makefiles' one is even more annoying, because it does distinguish between tab and space as the first character in indentation. I avoid that mess by using four spaces per indentation level in Python, and only a single tab in Makefiles.)
It seems that those who dislike indentation, prefer braces AKA curly brackets, { and } as the block delimiters. These are used in many languages (C, C++, Java, Javascript, Awk, CSS, Tex/LaTeX/MathJax) which makes them familiar to many. Are there any better suggestions?
void junk(void)
{
for (i = 1; i <11; i++)
{
switch (i)
{
...
}
}
}
PROC junk = (VOID) VOID:
BEGIN
FOR i FROM 1 TO 10
DO
CASE i IN
...
ESAC
OD
END
So, continuing the above metaphor, some might argue that open and close braces are training wheels for learning how to logically indent. I am just joking. Either braced or brace-less works for me.
Also, I don't think anybody dislikes indentation per se, merely the reliance on indentation for semantics.
This is a flame war similar/analogous to the war between spaces and tabs. Just as futile and endless.
Does anyone really believe that Python should be less popular for using meaningful indentation?
Well, they are wrong. Python is popular, very popular, and I don't think indentation has had much to do against it. Rather, it may have been a factor in its favor.
Again the fixation on "popular". If popular is the touchstone, then the McDonalds' burger is the best food in the world both in terms of gastronomy and nutritional value, except that we know it isn't.
Again the fixation on "popular". If popular is the touchstone, then the McDonalds' burger is the best food in the world both in terms of gastronomy and nutritional value, except that we know it isn't. Why can you not get it into your head that discussing the merits and demerits of a programming language cannot be judged by popularity. Should we start to judge all-time musical talent by who currently tops the Billboard 100, no. Only dyed-in-the-wool Harry Styles fans would take a contrary position to that "no".
At this point it really is difficult to judge your position as anything other than unalloyed fanboyism, I can't think of one point that counts as a demerit in python's case that you've been prepared to concede. Even categorising what has largely been a balanced and reasonable discussion as "a flame war" lends credence to categorising your allegiance to python as wholehearted and brooking no criticism - a "fanboy" position if ever there was one. You just keep repeatedly coming back to the "popular == best" position.
I can't think of one point that counts as a demerit in python's case that you've been prepared to concede.
If you don't like the term flame war, why are you writing in a way that could be construed as flaming?
As for the equation "popular" equals "best" I agree that this is not the case on many (most) occasions.
The great advantage here is the additional information provided to both the programmer and the compiler as to what kind of block is being closed.
If you agree with that then, why, oh why, oh why, do you keep coming back to discounting whatever the last argument made was with words to the effect "but python is popular, very popular"? If you admit it to be a futile [non-]argument, why keep making it?
If you don't like the term flame war, why are you writing in a way that could be construed as flaming?
Casting mild criticism as "flaming" is characteristic of someone who (1) is very sensitive to criticism of the mildest sort, (2) has never been flamed or they'd know it for what it is. It's also a poor debating technique as it's characterising the person as being somehow "nasty" to you as a way to discount their arguments when in fact they're not.
The great advantage here is the additional information provided to both the programmer and the compiler as to what kind of block is being closed.Is it an advantage? (I am undecided either way myself.)
For HTML, dedicated end blocks are an issue with human-written markup, since they are often erroneous.
Perhaps a compiler should be more strict than a browser, but then again, many programmers disable compiler warnings because they feel there are too many false positives there.
For Bash and POSIX shells, which have a somewhat similar blocking syntax (do...done, if...then...elseif...then...else...fi, and so on), I do not see any advantage of having a specific end-of-block compared to just a closing brace; and I do use Bash/Dash a lot. (When editing dense code, I first copy it and spread it out with correct indentation, do the edits, then compact it back again, replacing the original. Perhaps others pride themselves in working directly on the dense code? To me, reducing the likelihood of me making a typo or a thinko is more important.)
Libraries
Python has a large number of libraries (>300000).
Many for Artificial Intelligence, Big Data processing, Scientific, Web development.
If you agree with that then, why, oh why, oh why, do you keep coming back to discounting whatever the last argument made was with words to the effect "but python is popular, very popular"? If you admit it to be a futile [non-]argument, why keep making it?Because I agree that the popularity of C, Python, Java, etc. stems in part from their merits as languages. But I don't want to continue with that argument, which I can see is not well received.
Libraries
Python has a large number of libraries (>300000).
Many for Artificial Intelligence, Big Data processing, Scientific, Web development.
At the same time it's also a drawback security-wise if you have to rely on several libs to be secure. This is a problem in general, not just for Python. For example, keeping a web CMS, forum or whatever framework with plenty of plugins safe is hard work as new security issues in the frameworks or plugins are detected all the time. Simply follow security related lists and you'll see how much can go wrong. A typical real world scenario is that a bad security bug is found in WordPress plugin X and someone adds that to his scanning bot to automatically seize control of WordPress instances running that specific vulnerable plugin. In a short time the bad guy controls 30k WordPress instances.
If you don't like the term flame war, why are you writing in a way that could be construed as flaming?
Casting mild criticism as "flaming" is characteristic of someone who (1) is very sensitive to criticism of the mildest sort, (2) has never been flamed or they'd know it for what it is. It's also a poor debating technique as it's characterising the person as being somehow "nasty" to you as a way to discount their arguments when in fact they're not.
I don't dismiss your arguments, I read all of them with interest.
But there are sentences that are not arguments and try to be offensive. I don't consider myself a Python fanboy, but I'm not going to change my mind no matter how much you argue if my arguments seem better to me.
I imagine this applies only to web development (Django, Flask) How is Python compared to ubiquitous PHP? It seems to me that Python code tends to be more secure, considering that neither is entirely secure.