Python Language Founder Steps Down (zdnet.com)
After almost 30 years of overseeing the development of the world's most popular language, Python, its founder and "Benevolent Dictator For Life" (BDFL), Guido van Rossum, has decided to remove himself entirely from the decision process. From a report: Van Rossum isn't leaving Python entirely. He said, "I'll still be there for a while as an ordinary core dev, and I'll still be available to mentor people -- possibly more available." It's clear from van Rossum's note he's sick and tired of running the organization. He wrote, "I don't ever want to have to fight so hard for a PEP (Python Enhancement Proposals) [PEP 572 Assignment Expressions] and find that so many people despise my decisions." In addition, van Rossum hints he's not been well. "I'm not getting younger... (I'll spare you the list of medical issues.)" So, "I'm basically giving myself a permanent vacation from being BDFL, and you all will be on your own." From the email: I am not going to appoint a successor. So what are you all going to do? Create a democracy? Anarchy? A dictatorship? A federation? I'm not worried about the day to day decisions in the issue tracker or on GitHub. Very rarely I get asked for an opinion, and usually it's not actually important. So this can just be dealt with as it has always been. At Slashdot, we had the privilege of interviewing Guido van Rossum, a Computer History Museum honoree, in 2013.
Comment removed based on user account deletion
I'm not sure why you're being modded down, I'm curious about this myself. Despise is a word, it's the proper spelling, it's not used incorrectly, it's in a grammatically correct position... so wtf [sic]?
"Guido van Rossum, has decided he would like to remove myself entirely from the decision process"
Definitely sounds like a dictator! Or a poor editor! Or both!
This Space Intentionally Left Blank
Please download and start using my new Python known as "Trouser Snake". It's exactly the same except
1 without all the obstinate gray beards on the board.
2 revision numbers will count down rather than up
I'm 60, and yeah, health things creep up on you. We'll lose the first generation of Free Software / Open Source folks soon.
Bruce Perens.
Meanwhile in Perl land, the founders have tried to step down multiple times, but nobody could read their resignation letters.
How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
van Rossum is Dutch, and they spell it as "verachten".
Thank you for the wonderful language. Someone who devotes such significant portions of his life to the greater good deserves respect. I also hope he has long years and a healthy life to live ahead of him and can watch his baby grown and mature even further. Python is a beautiful language, IT would be poorer without it.
We suffer more in our imagination than in reality. - Seneca
He steps down.
If I recall my childhood correctly, he could have just slid down a python instead.
"That's the way to do it" - Punch
SJW takeover in 3....2.......
A quick Google search yielded this: "adverb - used in brackets after a copied or quoted word that appears odd or erroneous to show that the word is quoted exactly as it stands in the original, as in a story must hold a child's interest and “enrich his [ sic ] life.”."
Professional Genius
Stepping down is no good, to truly be out of the loop you have to un-indent.
Nullius in verba
It must have been something you assimilated. . . .
TrouserSnake Improovmet Proposal #0001: Because of the confusion caused by the inconsistent use and display rendering of White space Tabs versus spaces, the proposed change is to use backspaces to denote block clauses. A further extension of this proposal is to center justify all lines of text. This will end the discrimination of the left justification hegemony that disenfranchises cultures the practice Left justification. Center justification is fair and "just".
Some drink at the fountain of knowledge. Others just gargle.
I've taken over Python from Guido. My first edict will be to require that only tabs be used for whitespace. This will save valuable disk space. No complaints allowed. I am also assigning APK as my vice-dictator.
Are there any computer languages that are well-designed and well-documented?
"Well-designed" is purely a matter of opinion, and I'd say there are many that are well-documented. To be fair, there's a distinction between language documentation and standard library documentation, and sometimes library documentation can be a bit lacking -- but there are still many that are excellent.
Why was there enthusiasm for Python? It seems to me that now there is less enthusiasm for Python. Is that correct?
Python is the second most popular language on GitHub and its popularity has been climbing yearly. There are many reasons why there's enthusiasm for it, and they're mostly personal opinions, but many people would tell you the reasons they like Python are the speed of development, intuitive language syntax, a comprehensive standard library, and massive numbers of open source libraries.
Why do programmers adopt new languages so enthusiastically? Is that an interesting hobby?
Yes, actually, designing and learning new languages is fun for many people.
Karma: Terrifying (mostly affected by atrocities you've committed)
I suggest that "Bolding", "italic", and blinking font should be used to distinguish static, class, and method functions.
ALL CAPS can be used for INTERFACES and VIRTUAL CLASSES.
Python is incredibly popular due mainly to flexibility and ease of use. It's taught in schools so I imagine it will only keep growing although Guido leaving is a bit of a blow.
"sic" means mis-spelling or incorrect grammar reprinted as originally transcribed.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
...is this Guido?
This is great! I thought being a founder of something was an indelible historical event, but apparently, you can step down from being a founder! I'm going to go found some evil groups right away...once I step down, I won't be a founder any more, so I will be absolved forever. Awesome!
Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
"sic" isn't used in the summary, so I assume you are referring to the use in the actual article, https://www.zdnet.com/article/...
the quote is: "I don't ever want to have to fight so hard for a PEP ... and find that so many people despise (sic) my decisions."
The word "despise" seems to be correctly spelled, so it's not clear why it should marked sic. Technically, that's just Latin meaning "thus," (implying correct as written verbatim from the original)-- but since it is correct, there's no particular reason to point that out-- it's not a misspelling.
So, I don't know why the "sic" either.
http://www.geoffreylandis.com
Wot?
The IT world would be poorer without all his work. Time for a well deserved vacation.
"I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
Hadn't heard of PEP 572, but after reading through it, I can clearly see why one would want that feature (having seen those patterns a number of times myself). Careful thought was also clearly placed in where it was applicable. Anonymous Coward's approved! (Not that he needs it; it's already been approved for 3.8.)
The only languages worth learning at this point is C/C++ (system programming) and Python (interpreted).
But we're taking turns to act as a sort of executive-officer-for-the-week--
Please do not read this sig. Thank you.
Python has a Global Interpreter Lock problem that slows down multiprocessing significantly and it hasn't been solved. https://wiki.python.org/moin/G...
What the actual fuck is this shit and why does it keep popping up on /.?
I would disagree with "well designed" but it is being taught in schools so I agree with your conclusions. Python will be with us for a long time yet.
My issue with python is the use of indentation and blank lines as a part of the syntax. That crap went out of vogue with Fortran... I learned to program in Pascal and C so I don't find Python easily readable (bring back the semicolon and curly braces please), but it's a necessary evil to get paid so I use it and slap a smile on my face and use the tools I'm given.
There's not a lot that's completely new. Maybe it's just me but it seems like most "new" languages I see bear a strong resemblance to one or another old one. So why the new ones? They aim to fix some weaknesses that existed in the older languages. Python to me seems likes a reaction to the arcane and messy world of perl scripts.
Lots of stuff is borrowed and this helps adoption rates.
And yes, I do think a lot of programmers enjoy learning new languages.
Python improved on the existing scripting languages, but it fucked up the v2 to v3 transition and lost some momentum in the process. It's still the most popular scripting language ignoring javascript, so I don't see a lack of staying power. Pascal simply lost to C, they competed in a single niche and winner takes all.
I don't think your perception of how fast the field moves is accurate.
Java tries to appear well-designed by following popular patterns for abstracting and encapsulating behaviour. It's probably the best-documented language out there. I still hate it.
"sic" can be used to indicate that the reporter disagrees with the preceding assumption. You don't see it used for that purpose very often, for good reason.
"and *whomever* reads this" is wrong.
It should be: "and *whoever* reads this."
How to tell which to use? As "he" is to "him", so "whoever" is to "whomever".
"Whoever" is a subject, an initiator of action. "Whomever" is the recipient of action. Like he/him.
Thank you, Captain Fucking Obvious.
The question was no doubt related to the fact that there isn't any misspelling or incorrect grammar in the quoted excerpt. I can only surmise that the Wired reject who wrote the article somehow thought it should be "despite", which wouldn't make any goatfrigging sense at all in that position.
Or he's one of the increasing number of imbeciles who think it means "I don't agree with the preceding". The kind who also write "per say" and "add norzium".
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
APK having a seizure?
No, it is not used that way. It means the editor is indicating the preceeding word or phrase is either spelled incorrectly or has incorrect grammar. It's usually used in a quotation that is reproduced verbatim and copies the incorrect spelling/grammar, to let the reader know it is intentional.
I am so sick of forcing editors to display tabs as something visible.
Gosh my thumb got tired scrolling past this
"sic" isn't used in the summary
It was before it go removed from the summary. I'm a bit shocked that a Slashdot editor actually... edited... anything. The end is neigh.
Goodbye, Slashdot!
I'm also wondering why they used it in normal parentheses rather than the proper square brackets too.
About "inclusion" on open source projects, I would step down too.
Wtf.. there is no problem multiprocessing in python...
ThreadProcess
A different matter is the use of multiple threads (!=process) on cpu bound operations.
take over? I am sure he would not mind helping out or?
Detractors aside, Python is a great language. Of course, like all languages it has its warts.
But flexibility wise, it is awesome.
Learning Python has been on my to do list for decades, and finally I got to it last year.
Among the things I developed with it is a small web application specific to one project (a form that users fill, and get back a configuration file). This used the Bottle framework.
I am also using Micropython on ESP8266 and ESP32 microcontrollers, and it is easy to press Ctrl-C and have a Python prompt over USB! Debugging is very easy, and the language is very easy.
Not to mention things like Home Assistant, which is written in Python, and writing custom modules for it was pretty easy, once you got to learn HA's API.
So Guido: thank you so much for decades of making things work for us. I wish I have learned it sooner, but better late than never ...
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
As there was no misspelling nor error in conversational grammar it can either be attributed to an editor attempting and failing to appear clever, or that the journalist is misusing it for an equally incorrect reason, such as the one GP opined.
So, either a dumb editor or a reporter imposing bias. How can I get into this journalism lark and get paid to write crap?
"Wait. Something's happening. It's opening up! My God, it's full of apricots!"
Step 1. Blog!
Step 2. ???
Step 3. Crap!
/. missed a trick in quoting the FA thus:
"I don't ever want to have to fight so hard for a PEP ... and find that so many people despise (sic) (sic) my decisions."
The Republic of Python, the first forcibly acknowledged language republic in history. Why forcibly? Many supercomputer users around the world would get a nervous breakdown on the event of losing Python for any reason.
Python has a Global Interpreter Lock problem that slows down multiprocessing significantly and it hasn't been solved.
Hasn't been solved....except in every implementation that isn't CPython. If your code really needs to not have the GIL, run it in IronPython or Jython or any of the others.
Also, if your code is that performance-critical, an interpreted language is not a good idea.
People are reading "The Culture of Critique"
He's a riot. We love him to death.
It seems to me that now there is less enthusiasm for Python. Is that correct?
Python has longstanding performance issues that the project governance has declined to address, giving a big boost to more sensible/responsive projects like Go. And the mandatory whitespace is just idiotic, sorry but it is. Plus scoping is crappy and if you want to do static typing, sorry you just can't.
When all you have is a hammer, every problem starts to look like a thumb.
This has always been the absolute lamest complaint about Python.
Interpreted language for performance critical system? Do you hit nails with a wood saw too?
Neigh? Horses for courses.
Benevolent Dictator discovers it sucks being Benevolent. Would prefer regular Dictator title.
I've been using Python since the mid 2000's, and the evolution of its design has been worrying. The 2-to-3 transition is an obvious, glaring example.
But there has also been a steady accretion of additional syntax and language-level features, leading me to think the project is taking a C++-like attitude of never saying "no" to any proposal, just throw the next one on top of the pile. Type annotations, decorators... and now this recent PEP, which changes the most basic syntactic distinction in the language (expressions vs. statements).
Coherence and conceptual integrity are important, and each one of these changes chips away at the essence of the language and adds complication. Some amount of change is healthy, but it has to be managed carefully by language designers who are willing to say "no" and say it often. Erlang, Lua, and Go come to mind as well-managed languages that haven't lost sight of their original design.
I don't know if Python is better off without Guido, but from a language design point of view, I don't think he's done an especially great job.
Interpreted language for performance critical system?
The lack of clue is strong in this one. Java also has an interpreter but it light years ahead of Python in performance.
When all you have is a hammer, every problem starts to look like a thumb.
Sorry to see you at zero but I ran out of mod points on the above. :/
Yeah, 100% of the python I've written was for online classes.
It is a great language for that; I would not want them to switch to one of my favorite languages, because it would increase the number of language-related questions in the student forums, when really the questions should be about the subject matter of the class.
And for similar reasons, I wouldn't want to use it in a real project.
Is to find and coachba successor.
What Guido does, deliberately it appears, is to run the ship havoc as his last action. Wich by definition drops the Leader from BDFL so it becomes just BDF - have fun
You can't have a high level language that supports threading and is also easy to use unless you have a GIL. Or at least, if we presume that you absolutely have to have a C/C++ interface for libraries, then you need a GIL to have threads. Otherwise you'd have to make it not allowed to use non-thread-safe code in libraries, and how would you even enforce that? Users won't blame the library, they'll blame the language that is trying to call the library. Rightfully, when everybody else avoids the problems by implementing a GIL.
If you use traditional *NIX fork/exec pattern instead of threads, then the GIL doesn't get in the way. The problem is mostly if you want to stuff a bunch of different processes inside of one process, Java style. Then you'll need to work harder, and that will remain true in any modern high level interpreted language.
My issue with python is the use of indentation and blank lines as a part of the syntax. That crap went out of vogue with Fortran...
Do you know much about FORTRAN?
FORTRAN was structured such that each line fit on an 80 column punched card. It's sort of a modern anomaly to code FORTRAN with a full screen editor. Historically, it was coded in handwriting on grid paper forms with 80 boxes for the characters of each line of code. You wrote the code by hand, then turned it in to a keypunch operator.
Programmers who wanted to punch their own code would stick around until office hours were over to get access to the keypunch in person. There were actual manual card punch tools to slide a punch mandrel back and forth over an individual card to 'fix' an individual line of code in the deck without having to wait for access to the cardpunch. Yes, the program's primary form of storage was a deck of cards. Don't drop your deck!
Comparing python to fortran is a bit silly.
And yes, obviously modern FORTRAN is different.
There goes the neighborhood.
Without him at the helm, things will quickly degenerate into total incompatible, incoherent chaos.
Yeah, because it's so stupid to use white space like that you have no defense other than to whine at people who notice.
You mean where he wrote "and find that so many people despise (sic) my decisions"?
It means "despise" isn't his own choice of words - it's literally the actual word used by the people he's talking about to describe how they felt about some of his decisions, and not merely his interpretation of how they felt.
The word "sic" is short for the Latin phrase "sic erat scriptum", which translates roughly to "exactly as written". It's used by writers to indicate when they are deliberately reproducing someone else's words, phrasing and spelling.
You can terminate lines with semicolons if you like. You can also add commented braces at the appropriate points if it makes it easier to read. For example:
for __ in range(2):
#{
print("Hi");
print("Ho");
#}
print("It's off to work we go.");
I'd recommend against this for published work because it will make your code more difficult to read for most people and "Readability counts" but you could write a script to add/remove this syntactic sugar.
Nah, there's a troll cut'n'pasting and claiming to be APK. They've done some 'golden shower' versions of APKs usual posts, some others that 'just' exaggerate APKs usual claims.
They seem to have turned up about the same time as the massive Creimer posts - similar format. Massive chunks of pasta with replies to self (sometimes claiming to be someone else).
It's too dull to be funny or draw much of a reaction. I'm guessing they are trying to tarnish the reputation of APK by association.
Not sure if they are paying attention. APK's a crank on only one topic. Other than that I've never seen anything from him that's racist, homophobic or similar.
I've got plenty of criticism for APKs claims and behaviour, and have said so to him. These fake posts are repugnant.
The lack of clue is strong in this one. Java also has an interpreter but it light years ahead of Python in performance.
I'm sorry, I may have missed something, but I thought what Java had was a JIT compiler, not an interpreter.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
These days it's those cunts who fuck up good things.
but I thought what Java had was a JIT compiler, not an interpreter.
The interpreter is the JIT compiler. It only compiles stuff when it measures it should be compiled. In a long running application that is obviously nearly everything.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Your partial defense of APK is misguided. That is, indeed, him making those posts. I'm almost certain of it.
When APK is impersonated, he doesn't hesitate to posy angry replies about it. He's done nothing of the sort here. The "shekelboy" posts and almost certainly the long-winded anti-semitic replies are APK's doing. Just a few hours ago, he was replying to posts about impersonation with "shekelboy" posts, including in response to actual and obvious impersonation of him.
It's unfortunate. I've made the same defense of APK at times that you have. Many people have done so, attributing his actions to mental health disorders. As far as I'm concerned, he's no longer worthy of any such defense.
Or to put it another way, Python is the 8-bit interpreted BASIC of the 21st century.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Remind me never to hire you.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I'm not APK, but I've reposted some of his posts about shekels. I was arguing with APK earlier today and he started responding to posts with rants about shekels and putting people in ovens. I found his posts awful and promised to repost some of them. I haven't edited the posts titled "Aw, poor little shekelboy, lol... apk" in any way. They're his exact words that he posted.
Why? Because I want people who would still defend him to see him for what he is. He is a racist and deserves no sympathy.
When I told him that I was reposting it, he replied with the long anti-semitic stream of consciousness that you see reposted several times in this article. I haven't reposted that at all. I assume it's actually him posting that.
I'm not trying for a reaction from him. I do want people to see that he really is a racist asshole. This isn't my usual way of doing things, but I was so taken aback by his anti-semitic posts that I wanted to expose him for who he truly is. Frankly, you're part of the audience for the reposts. You need to see him for who he truly is.
He is a racist. I'm sorry if you don't want to believe it, but it's true. He's shown hints of similar things previously, including his comments about Muslims in some of his replies to Zontar. This is just a significant escalation in being overt about it.
I haven't edited APK's words, simply reposted them in places where more people will see them. He has followed up by endorsing those words with the long replies you see. He hasn't signed those posts, but I'm convinced they are his posts.
You can't have a high level language that supports threading and is also easy to use unless you have a GIL. Or at least, if we presume that you absolutely have to have a C/C++ interface for libraries, then you need a GIL to have threads.
Rubbish. Even for extremely simplistic implementations, you don't need a GIL where a "global foreign function interface lock" would suffice.
Most C and C++ libraries are thread safe (for some definition of "thread safe") these days, and any non-toy language with a C foreign function interface can cope with this just fine. This is doubly true of declarative languages, which tend to go to a lot of trouble to ensure that you can call pure functions in C with no locking overhead.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Don't hire me. I've seen your sig.
APK is abusing AC posting because he's a racist asshole.
"The end is neigh."
Well, you are a horse's ass, after all. Did you mean "nigh", Mr Published Author who will retire on his 13 sales of his horrible eBooks, askance?
Chris' case is getting worse, he spends all day replying to himself as AC on /. and now, on YouTube in order to grab attention!
The tests we ran on Chris have shown that Chris has the intelligence of an ameba:
https://en.wikipedia.org/wiki/...
So, technically, he is able to conceive some kind of agenda but it will be silly or impossible to follow on a human scale.
For example, Chris had an agenda to post anything he felt like on Slashdot which did not work well because it was based on his false beliefs that he had an infinite number of karma points as he wrote here several times.
Several people here explained to Chris that karma maxed out at some level like 50 or so but Chris kept on insisting that his python script had confirmed that he had millions of karma points!
Oh well, as I wrote before: "It isn't Chris' fault if he is the way he is. We do the best we can do with him and he is partially integrated into society. We try to cure his abnormal need for attention but he is kind of stubborn and won't listen to anybody."
For the valuable /. users that might already have read the following, please note that there is an important update.
IMPORTANT UPDATE:
Special Education for the Santa Clara County Office of Education has invested money to buy Chris a new chair:
http://www.keynamics.com/image...
Information about Christopher Dale Reimer and autistic people:
Autistic people have obsessions about things normal people don't care. For example, one of our autistic patient went haywire when he realized that there was a penny missing in his pocket change.
To calm him down, one of our educator pretended to have found it on the floor and gave a penny to him.
The autistic patient condition went even worse because he realized it wasn't the same penny!
Chris has an obsession with budgeting every penny. He doesn't understand that most people do not budget to the penny and have a flexible amount they allow for miscellaneous items.
I am Nancy Guerrero and I am Director of Special Education for the Santa Clara County Office of Education. We use Chris' (a.k.a. creimer,cdreimer) picture in our document because he is the hardest case we have ever had to handle:
http://www.sccoe.org/depts/stu...
Our artists were inspired by the low carb diet that Christopher follows scrupulously for the small lunch box and by the picture linked below for the rest. I am sure that you will notice the similarities such as the bump on the side of his chest and more:
https://ibb.co/gVad65
Please be easy on Christopher although, I am aware that some of our staff handling Chris post joke comments here and obvoiusly, the Santa Clara County Office of Education disapprove that behavior vehemently:
http://ibb.co/mRVSaG
But it isn't Chris' fault if he is the way he is. We do the best we can do with him and he is partially integrated into society. We try to cure his abnormal need for attention but he is kind of stubborn and won't listen to anybody.
Thank You dear users,
---
Nancy Guerrero
Director
Special Education
Santa Clara County Office of Education
"The horse's nigh."
No, that doesn't make sense either.
It doesn't slow down multiprocessing at all unless you're doing heavy computation in Python in multiple threads of the same process. It's not a problem in the most common instances of using threads - I/O bound tasks, waiting for network events or calls to external libraries written in other languages, etc. It does invert a common trend in other languages and environments that have a managed event loop (that you generally don't touch) and thread pools for event handlers, where actual logic goes, but even that model is trivial and high-performance in Python with libraries like gevent and frameworks like Django, if a bit fatter in resource overhead.
And if you really, really want to do heavy computation in near-native Python with decent performance, using Cython is a good idea to avoid interpreter overhead. As an added bonus, it has a "nogil" construct so multithreaded code that won't touch Python interpreter objects can run without acquiring the lock.
Meds to cubicle one, someone has clearly lost their shit.
Are you fucking stupid? QUOTES are used for that! [sic] means that on top of that, the incorrect spelling is the original author's, not the quoter's!!!
Are you really this blindingly stupid?
You could also add a macro preprocessor. I've considered doing this for documentation purposes, but actually Doxygen is good enough. Sphinx, however, was a terrible choice, and pydoc generates eye-tearingly horrible html. (This is a pity as it's ancestor for Python 2, Epydoc, was my favorite documentation tool for Python. )
I think we've pushed this "anyone can grow up to be president" thing too far.
And the mandatory whitespace is just idiotic, sorry but it is.
Python just implements it badly. Nobody complains about mandatory whitespace in Haskell, partly because it doesn't have Python's rough edges, and partly because it isn't strictly mandatory.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Well, with a modest preprocessor you can already do so. Just pick an appropriate unicode character, say U+00B7, to use as your spacing character, and have the preprocessor change it to tab (or spaces, your choice).
I think we've pushed this "anyone can grow up to be president" thing too far.
Let's just say I've had that sig for a while.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I agree. Of all the hurdles preventing anyone from shipping production-quality code in Python, this is by far the lowest.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Thankyou for stepping down Guido. Now maybe something can seriously be done about Python's crappy performance.
Yah, whoever modded that down can consider themselves part of the luddite mafia dedicated to keeping Python crappy. Proud of yourself.
When all you have is a hammer, every problem starts to look like a thumb.
A typical Hotspot VM has something like three interpreters and a JIT compiler. Modern Java is essentially designed to waste RAM.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
I'm foing to fork it and create a new version: Python 3 !!
Anyone interested?
Sure, as people said, Python is great.
But somehow Guido gave rise to a thriving, independent, and self-regulating community that has been able to continue evolving the language to stay relevant as the use-cases change from IT to web to data analysis. Mock the controversies all you like, they typically derail a community, but not here. I would venture that no other language has successfully (and necessarily) broken as much code as they did with Python 3.
The irony of "dictator for life" is that it created a force to always move forward. Guido and Python demonstrated a bias to action 20 years before it became popular.
I think the question is still what lessons to learn from this. (Seeing Milinkovich explode eclipse.org - explode in ways good, then bad - means we still have a lot to learn.)
True enough but then you are into that whole nice thing about standards is that there are so many you can pick the ones you like.
Python improved on the existing scripting languages, but it fucked up the v2 to v3 transition and lost some momentum in the process.
It's true that the 2 to 3 transition didn't go as smoothly as hoped. I'm not sure I agree that the Python devs messed up the transition. Maybe nobody could have done a better job, and I do think the changes were worth doing.
Python 3.x was an opportunity to make "breaking" changes to Python: to make changes that would break old Python 2.x programs. Using this opportunity, the Python devs cleaned up the language.
Some method functions returned lists, others returned iterators... now in Python 3.x everything returns iterators, because it's trivial to turn an iterator into a list. So your programs are "lazy" by default, and there's less cognitive overhead. Win/win.
I'm fond of the change where 1 / 2 returns 0.5 instead of returning 0. It's a bit surprising that integer division can return a float result, but it's even more surprising to most people for nonzero numbers to produce a zero result.
I'm also fond of the way Python 3.x forces I/O to handle Unicode conversion, so a 3.x program either fails instantly the first time you test it or else runs reliably. The Python 2.x "feature" of letting you ignore Unicode, then randomly blowing up later, was enough to make me eager to make the switch.
So IMHO the changes were well thought-out and I approve of them. But they were changes. The real problem is that Python 2.x is a pretty sweet language, so staying with it was pretty attractive. There would be nonzero pain to migrate to Python 3.x, so doing nothing was an attractive choice.
But over time the various popular libraries were converted to be Python 3 compatible, and the Python devs kept adding improvements, and now basically everyone agrees that Python 3.6 and newer are the best Python versions ever.
It's free software and someone could have forked the sources for Python 2.7 and backported features from Python 3.x; but nobody loved Python 2.x that much. Grumbling and inertia yes, actual work to keep Python 2.x viable no.
Pascal simply lost to C, they competed in a single niche and winner takes all.
I agree 100%. There was nothing Pascal did that C couldn't do, and do better. In the early days C was much less type-safe but that was fixable and has been fixed.
C is the king of the third-generation languages and is unlikely to be displaced in the foreseeable future.
lf(1): it's like ls(1) but sorts filenames by extension, tersely
Python has longstanding performance issues
Fair enough. It's much slower than even Java, let alone languages like C. (But it can use libraries written in compiled languages like C and Fortran so it can be extremely fast in specific domains.)
that the project governance has declined to address
You say that as if the Python devs are refusing to do something that would be easy. The latest versions of Python are faster and more memory-efficient than earlier versions of Python. The design of the language makes it hard to really optimize so there aren't easy performance gains just waiting for someone to make them.
The fastest Python is PyPy, and that's fast because it has a JIT that compiles your code's hot spots into native code. It isn't that fast until the JIT kicks in.
And the mandatory whitespace is just idiotic, sorry but it is.
You're entitled to your opinion, but please don't give your opinion as if it were a fact. Some people, such as me, like the fact that if code looks like it's part of a block, it actually is part of a block. I don't think that's "just idiotic". You're free to hate it and I won't try to convince you.
Plus scoping is crappy
I have no idea what you are complaining about here.
if you want to do static typing, sorry you just can't.
Actually, you can. Python 3.x supports "type annotations" which let you document the types that various values should be, and there are static checkers that make sure your programs conform to the annotations.
The static checking is not built-in to Python itself, so you could say that Python "enables" static type checking without "providing" it. But to say that "you just can't" do it is a mistake.
By the way, the history of type annotations is IMHO interesting. Guido van Rossum found out that multiple large organizations (Google, Microsoft, etc.) were making their own ad-hoc static type annotations, requiring standardized comments that documented the types. He applied the principle that "there should be one, and preferably only one, obvious way to do it" and added type annotations to the language spec.
The static type checker still works in Python 2.x if you use appropriate comments.
http://mypy-lang.org/
lf(1): it's like ls(1) but sorts filenames by extension, tersely
I thought HotSpot has two compilers (client and server) and one interpreter. Code starts off being interpreted, then if a method is executed often enough, it gets compiled with the "client" compiler, and if that method is executed often enough it gets compiled with the more optimizing "server" compiler.
dom
Khazar Talmudic Jews believe this of all they call goyim/gentiles (any non-jew): Jews = biggest racists of all (for which they "jew guilt" you for no less! They're hypocrites known as thieves all thru history or were Argentines in the 1940 under Peron, Spanish inquistion, France (1306), Egypt (despoiled/robbed by jews), Arabs (pre & post 1948), England (1330 Edward longshanks), Romans under titus, Russia pogroms and Germany who got rid of them from their nations nazi german's too? No. Driven into DESERTS ages ago! Don't wonder why after all those exilings above.
Should anyone doubt any of this see Jacob Javits' crony Rosenthal spill the beans on it https://www.youtube.com/watch?v=D4zMVZ8HnFI/ where he called all Christianity fools for helping Israel and the biggest scam of all time per their beliefs below from their Talmud.
This is the province of the synagogue of Satan (Pharisees whom Jesus Christ himself kicked to the curb out of the temple & they killed him for it. Jeremiah did the same to them also + the Essenes could not stand them either breaking away from the pharisee corruption):
Mark Zuckerberg stole the Winklevoss twins' code for Fakebook (figures as he is a thieving low jew too).
Maria Abramovic satanist spirit cooker pal of Hillary Clinton the Voodoo queen is a jew https://www.google.com/search?...
Like Hillary Clinton's mentor Saul Alinsky author of rules for radicals book dedicated to Lucifer
"Most Jews do not like to admit it, but our god is Lucifer Â- so I wasnÂ't lying Â- and we are his chosen people. Lucifer is very much aliveÂ" Harold Rosenthal http://www.thetruthseeker.co.u...
Jewish rabbi openly admits to satan worship use white children's blood they kill for passover bread, infiltrating and subverting the catholic church, creating the Jesuit order https://www.youtube.com/watch?... and https://www.youtube.com/watch?...
Barbara Spectre, a jew, tells everyone it's jews orchestrating the muslim migrant problem in Europe https://www.youtube.com/watch?v=MFE0qAiofMQ/ . No migrant raping of women in Poland. Tons in Sweden. Do the math. Use common-sense. This is to get muslims and other goyim/gentiles to wipe one another out as incompatible cultures that will clash and always have.
Rabbi A. Finkelstein ADMITS their greatest enemies are ARABS and WHITES (blacks too) whom they wish to kill one another in a 'theater of war' which they find AMUSING https://www.youtube.com/watch?...
Finkelstein also admits JEWS DID 9/11 (perpetrated by the Mossad & Bebe Netanyahu of ISRAEL) https://www.youtube.com/watch?... profiting by it (and that 3,000 jews employed there did not show up for work that day knowing about it beforehand).
Finkelstein also admits JEWS are going to destroy the U.S. Dollar and dumping it for other world currencies and gold to destroy the United States.
George Soros who funds groups to create division in the USA?? A jew. One who sold his own jew people into death for the nazis.
Zucker now FIRED @ CNN is another frying publicly for lying about "russians" and John Bonifield a producer @ CNN said it is bs. Van Jones did also.
Bernie Madoff (who made off with everyone's money, especially construction union pensions) shows the thieving nature of the JUDEN!
Eric Schmidt had to step down @ JEWgle (a jew).
Adam Schiff (gosh s
Ss....ssss. Sss sssssss!
Khazar Talmudic Jews believe this of all they call goyim/gentiles (any non-jew): Jews = biggest racists of all (for which they "jew guilt" you for no less! They're hypocrites known as thieves all thru history or were Argentines in the 1940 under Peron, Spanish inquistion, France (1306), Egypt (despoiled/robbed by jews), Arabs (pre & post 1948), England (1330 Edward longshanks), Romans under titus, Russia pogroms and Germany who got rid of them from their nations nazi german's too? No. Driven into DESERTS ages ago! Don't wonder why after all those exilings above.
Should anyone doubt any of this see Jacob Javits' crony Rosenthal spill the beans on it https://www.youtube.com/watch?v=D4zMVZ8HnFI/ where he called all Christianity fools for helping Israel and the biggest scam of all time per their beliefs below from their Talmud.
This is the province of the synagogue of Satan (Pharisees whom Jesus Christ himself kicked to the curb out of the temple & they killed him for it. Jeremiah did the same to them also + the Essenes could not stand them either breaking away from the pharisee corruption):
Mark Zuckerberg stole the Winklevoss twins' code for Fakebook (figures as he is a thieving low jew too).
Maria Abramovic satanist spirit cooker pal of Hillary Clinton the Voodoo queen is a jew https://www.google.com/search?...
Like Hillary Clinton's mentor Saul Alinsky author of rules for radicals book dedicated to Lucifer
"Most Jews do not like to admit it, but our god is Lucifer Â- so I wasnÂ't lying Â- and we are his chosen people. Lucifer is very much aliveÂ" Harold Rosenthal http://www.thetruthseeker.co.u...
Jewish rabbi openly admits to satan worship use white children's blood they kill for passover bread, infiltrating and subverting the catholic church, creating the Jesuit order https://www.youtube.com/watch?... and https://www.youtube.com/watch?...
Barbara Spectre, a jew, tells everyone it's jews orchestrating the muslim migrant problem in Europe https://www.youtube.com/watch?v=MFE0qAiofMQ/ . No migrant raping of women in Poland. Tons in Sweden. Do the math. Use common-sense. This is to get muslims and other goyim/gentiles to wipe one another out as incompatible cultures that will clash and always have.
Rabbi A. Finkelstein ADMITS their greatest enemies are ARABS and WHITES (blacks too) whom they wish to kill one another in a 'theater of war' which they find AMUSING https://www.youtube.com/watch?...
Finkelstein also admits JEWS DID 9/11 (perpetrated by the Mossad & Bebe Netanyahu of ISRAEL) https://www.youtube.com/watch?... profiting by it (and that 3,000 jews employed there did not show up for work that day knowing about it beforehand).
Finkelstein also admits JEWS are going to destroy the U.S. Dollar and dumping it for other world currencies and gold to destroy the United States.
George Soros who funds groups to create division in the USA?? A jew. One who sold his own jew people into death for the nazis.
Zucker now FIRED @ CNN is another frying publicly for lying about "russians" and John Bonifield a producer @ CNN said it is bs. Van Jones did also.
Bernie Madoff (who made off with everyone's money, especially construction union pensions) shows the thieving nature of the JUDEN!
Eric Schmidt had to step down @ JEWgle (a jew).
Adam Schiff (gosh s
Then where's the error?
Itâ(TM)s the artificial proximity of the âoesocial featuresâ of the modern CVS standard that github champions that got him. It is a fact of life that only a tiny fraction of humans make a difference â"alter the present to shape de future. If/when these natural influencers/entrepreneers get bogged down arguing with the twits (yeah thatâ(TM)s a dig to the wasted Musk cycles) they eventually get drained of their stamina and they throw in the towel or just dull their edge.
run it in IronPython or Jython or any of the others.
Great Idea. Sadly CPython exposes a lot of implementation details, so a lot of libraries and applications written against it cannot be run with anything else.Worse for programs that link against native libraries since (C)Pythons native C API exposes the implementation specific structure of objects and classes fully.
Yeah, would have expected this from them:
"I don't ever want to have to fight so hard for a PEP ... and find that so many people despise ((sic) sic) my decisions."
Also, if your code is that performance-critical, an interpreted language is not a good idea.
Yup, try convincing ESR about that.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
van Rossum is Dutch, and they spell it as "verachten".
Yeah, of course, the Dutch would say "verachchchchchten", and not something more hygienic like "gardziÄ".
Perhaps working on Python wouldn't be so rancorous if the project was pulling in the same direction.
Go choke on an avocado toast
"It was before it go removed from the summary."
Really, Chris?
"I'm a bit shocked that a Slashdot editor actually... edited... anything."
I'm not shocked that you didn't bother to check your crammar...
This is incorrect. GIL has no effect on multiPROCESSing. Only multiTHREADing. Python multiPROCESSING capabilities are fine and well. In fact, it even has threading capabilities, it's just that it locks the THREADS so that only one is run in parallel.
Which is also a bit moot point. coroutines (or locking on IO wait) have frequently proved to be equally performant but with far simpler implementations.
Everyone is slamming this comment, and I myself don't fully agree with it, but I think the OP has a point. If you have a lower-level language that can scale up to a degree, *and* a higher-level language that can interface with it, then you get the best of both worlds. Where I disagree is that I don't know that C, C++, or Python are always going to be the best choices in all circumstances.
Nonaggression works!
Are there any computer languages that are well-designed...?
No. There are only well-designed languages for a particular set of purposes. There will be many people for whom any language will be too complicated, too big, insufficiently type safe (or too type safe), too inflexible (or too rigid), etc.
Python is a very good language for some things. It's powerful, flexible, has incredible library support, etc. it's also a terrible language for some things. The white-space thing, no type safety, odd conversions, and, dear god, I hate their stack traces.
Why was there enthusiasm for Python? It seems to me that now there is less enthusiasm for Python. Is that correct?
Second question first: not that I have noticed. Why the enthusiasm? For me, because of pandas, numpy, scipy, matplotlib, pytorch, theano, and, especially, jupyter. It makes it so that I can do data ingestion, manipulation, machine learning, and display, in a simple, comprehensible, and flexible way.
Why do programmers adopt new languages so enthusiastically? Is that an interesting hobby?
Why are you on this site? How did you get here? Why do you stay?
I'm really serious. How did you become a /. poster/reader with a moderately low UID while seemingly being totally unfamiliar with programmers?
Velociraptor = Distiraptor / Timeraptor
Clearly you have not seen the multiprocessing library: https://docs.python.org/3.4/library/multiprocessing.html?highlight=process . I use it regularly and it works very well.
Yeah, overall I'm not a fan of the GIL, but I think this kinda misses a some of what the GIL provides - it's a bit more than thread safety inside a function library or around an FFI call. The GIL makes it so you can't corrupt the internal state of the VM including high level data structures like dictionaries and objects.
For example you can have any number of threads concurrently reading and writing to dictionary, sets, custom objects, arrays, etc. without any sort of explicit locking and it doesn't crash, there are no memory leaks, and your data structures don't get turned into corrupted garbage. And this happens automatically with pure Python code, regardless of whether it's built in, you wrote it, or it's from some third party.
So the cost of this feature is crazy high - sometimes too high - but it's not without its benefits.
Your 2->3 experience sounds similar to mine... lots of good changes were introduced with 3.x. I stayed with 2.x for a long time because it just worked really well. And I still have a few projects that are on 2, but at some point when starting a new project I just used Python 3 for it, and by then every library I needed had already been converted.
Honestly, the biggest hurdle was muscle memory on debug prints (statement vs function call), haha.
Quote marks tell you it's someone else's words. [sic] is used to indicate that there's an error in the other person's words, you saw it, and you left it in.
Otherwise the reader might think something was edited out of the quote for brevity.
Beware: I believe all are created equal, and have the right to life, liberty, and the pursuit of happiness.
Thankyou for stepping down Guido. Now maybe something can seriously be done about Python's crappy performance.
Yah, whoever modded that down can consider themselves part of the luddite mafia dedicated to keeping Python crappy. Proud of yourself.
See, this is why Python still sucks.
When all you have is a hammer, every problem starts to look like a thumb.
For me it was the relative imports. I want to shift to Py3 but haven't. At first it seemed like a great thing but then it turns out you must distinguish between scripts and modules. You get this long list of ways imports can either work or not work depending on things.
First, I like relative imports. I move stuff around (files and directories) and I don't want to update imports more than necessary. If moving stuff is hard, I don't do it and the code suffers.
Second, I like adding small run scripts at the end of all files which run the unit tests (or manual tests or both). This way I can configure most simple text editors to just "execute the current file" to run the relevant tests. No IDE necessary. Also, it provides a direct link between the module and the module specific tests so I don't run more tests than necessary. Most IDEs and test runners can't do that with just a quick keyboard shortcut but tend to run all tests or require a lot of key pressing to "select" the right tests.
In python 3, I can't combine the two wishes above. Ten years after Py3 and I still haven't decided what to do about it. Either, accept always using absolute imports OR never execute a module. Guido said at some point that mixing executable scripts with modules was an antipattern but I do not agree. It means the language can do things you would normally need an IDE for. Batteries included.
All in all though. Python is fantastic and the proof is in the libraries from pandas to all that webstuff. Thanks Guido!
Other than that I've never seen anything from him that's racist, homophobic or similar.
See yourself in this thread.
It's not the first time he did this. It has been going on for years.
Misguided indeed.
He has followed up by endorsing those words with the long replies you see. He hasn't signed those posts, but I'm convinced they are his posts.
They are indeed his posts, it's the same pattern I've seen over the years.
Thank you for the good explanation of additional details.
Just wanted to reiterate that the cost is only high, and in fact only even exists, when using threading within a single process; using the unix style of fork/exec leaves the GIL not even having a cost at all.
Generally the language designers assume that if you care about performance, you can do it the old way painlessly, but if you don't care about performance, you shouldn't even have to worry about it. And a GIL provides for both of these situations.
Someone invent a time machine and go back and convince him that those little sideways moustache things are pretty cool. Look at the way the little ends curl round, like they're trying to contain something betwen them.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Are there any computer languages that are well-designed and well-documented?
C# might not be popular on slashdot, but it is well-designed and incredibly well-documented.
So many stupid decisions from day one that made the language less powerful than it could have been.
The problem is that the Python community is a fucking cult, totally brainwashed. They repeat Guido's excuse of his initial design of no scoping at all as 'explicit is better than implicit, when what fucking self is at any given time is explicit without the sea of pointless selfSelfSELFsELFseLF's that clutter up the source.
Yes, that is correct, he had no scope of any kind originally. That is but one of his fucked ideas that the cult members eat up.
One more quick fuckup: whitespace as a delimiter makes it impossible for the language to have proper lambda support, making the language less powerful and concise. Everyone already formats their code, why make your language less powerful by making them do what they already do? What a fuck-head.
So the language will not improve now. It will devolve into an argument between all the cult member fuckheads over who has the purest Guido vision and it will die the death it deserves.
numbnuts
"Well-designed" is purely a matter of opinion
Bullshit.
A well-designed language has a well-defined definition. Thing like regularity and orthogonality and the like.
You wouldn't know because you are a self-trained monkey, thus totally ignorant.
numbnuts
Java uses native threads, numbnuts
Shit gets produced in every language. In java or scala you'd be dealing with some pretentious douchbags insisting on doing things this way or that and failing to see the bigger picture.
That's why languages like PHP have and installbase others can only dream of. And if you think Python has bad code you don't know nothing.
I've been doing PHP for a living in the last 6 years or so and I'm probably going to stick with it because there's work to do and shit to clean up at every streetcorner.
As Strousstrub says: There are two types of languages: those that everyone complains about and those that nobody uses.
We suffer more in our imagination than in reality. - Seneca
When is the advancement of Python going to include a compiler? There is so many types of Python but no real compiler. Why is Java so popular? Because of Android and the early days of Sun Microsystems. If Python wants to get serious and be at the same level as C/C++ then Python needs a real compiler.
Yeah. I hate when these self "thougt" idiot know nothings act as if their advanced engineers. Half of them can not even give the definition of alfa reduction...
TrouserSnake needs its own package manager in order to deal with the numbering scheme. I propose to call it 'spam' (Snake Package Advanced Manager), in order to clearly mark that it can deal both with Python and TrouserSnake packages.
The first version (version exp(i*pi) if we restart at 0?), should also have
- a mail-server (that could prefix relevant mails with [SPAM]),
- a fake-news filters (it's all the rage in social networks, but for some reason very few package managers are taking the problem seriously), to rule out all the bad packages,
- Amazon-style one-day shipping for important packages,
- A better respect of the Python syntax for command-line options, notably mandating that they respect the off-side rule that made Python so successful
- Special options to deal with TrouserSnake version numbering. I think we need at least --reverse, --no-reverse, --auto-reverse, -noauto-reverse. I'm not sure that --noauto-noreverse makes much sense, except for frequent time travellers.
- An IPFS back-end for those of us planning to use TrouserSnake while on a Mars mission
- An integrated background bitcoin mining engine to take advantage of all the time you are not using the package manager.
-
"sic" can be used to indicate that the reporter disagrees with the preceding assumption.
Yes, I suppose. Roughly, it might be translated "yes, he really said exactly that", so I suppose you could infer that to include some modicum of disagreement.
http://www.geoffreylandis.com
In the real world, C is prone to all sorts of all-too-common human errors, including bugs that results from code not matching the semantics implied by indentation.
If you regularly collaborate over lossy channels that modify whitespace, set up a pre-commit hook in your version control system that checks and repairs indentation. This is possible for C, PHP, Java, C++, Pascal, or JavaScript, but not for Python.
Most likely the ZDNet editor thought "despise" was spelled incorrectly, when it was not.