On a python developers' mailing list for the core developers, Python Committers, Benevolent Dictator for Life Guido van Rossum has announced that he is stepping down effective immediately and with out appointing a successor.
Now that PEP 572 is done, I don't ever want to have to fight so hard for a
PEP and find that so many people despise my decisions.I would like to remove myself entirely from the decision process. 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. But I'm basically
giving myself a permanent vacation from being BDFL, and you all will be on
your own.After all that's eventually going to happen regardless -- there's still
that bus lurking around the corner, and I'm not getting younger... (I'll
spare you the list of medical issues.)I am not going to appoint a successor.
[...] I'll still be here, but I'm trying to let you all figure something out for
yourselves. I'm tired, and need a very long break.
(Score: 2, Troll) by c0lo on Friday July 13 2018, @02:12PM (17 children)
I mean, it would have meant something if he'd done it while python was new and fresh ans shiny ans sparkling.
But today? Well, it's even past mainstream, started to go the way of Dodo. Today we have Rust and Swift and... and... yes, TypeScript. Even c++217 got such crazy templated ideas you have to be mad to understand them... and certainly you will get mad before you understand them. Other programming languages saw the light of the day and have been de-facto retired in between, like Ruby and Golang
Admit it, Pyhon is as exciting nowadays as Perl and Java and C#, which is to say almost as exciting as Cobol.
So, who in his right mind would crave the title of BDFL of Cobo... errr.. Python I mean?
(grin)
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 5, Insightful) by tangomargarine on Friday July 13 2018, @03:03PM (3 children)
People who care about how "exciting" the language they are using is, are obviously not using said language for a project of any importance.
"Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
(Score: 0) by Anonymous Coward on Friday July 13 2018, @03:56PM (2 children)
True. Now, put it in a sarcastic reflection of the today's explosions of programming languages and frameworks.
Actually, better don't, you'll lose karma being modded a troll and there will be others to explain to you how wrong you are.
(grin)
(Score: 2) by tangomargarine on Friday July 13 2018, @04:07PM (1 child)
Are you capable of posting a *non*-sarcastic opinion? You must be a lot of fun to have a conversation with in real life. /s
"Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
(Score: 2) by c0lo on Friday July 13 2018, @04:44PM
Given the fitness of my mindset to the evolution of this world, I would be(come) crazy if I am to post *non*-sarcastic opinions.
Fortunately, I work in a team where everybody is using sarcasm as often as possible without making a point from sarcasm.
As a result, I need to get drunk less often than before joining them - no, I'm not kidding.
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 2) by Knowledge Troll on Friday July 13 2018, @04:30PM (11 children)
I'm just starting to learn C++ and I started with C++14 then moved up to C++17 for a few extra types and some attributes. Template programming is brand new to me and I've really enjoyed it (and hopefully am learning to not abuse it, I've got people mentoring and doing code review to help with that) so I'm particularly curious about what new template technology is coming up and how head exploding it is. Would you mind elucidating?
(Score: 2) by c0lo on Friday July 13 2018, @05:03PM (7 children)
Sorry, I got my mind fried at C++11 in the parameter packs expansion/loci [youtu.be].
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 2) by Knowledge Troll on Friday July 13 2018, @11:07PM (6 children)
I'm not sure if I'm still soundly in happiness via ignorance but that video seemed to over complicate things quite a bit. I can write C and I'm used to variadic functions - one of the first things I needed to do in my C++ project was use a variadic function but then I found variadic templates. One major improvement is that variadic templates maintain the type information - I much prefer that over a variadic function.
I was able to use a variadic template in C++ with nothing more than my C knowledge and stack overflow and that was either right before or right after I even made my first class. After that I implemented a class for doing promises/futures reusing the native C++ types for them with a cleaner interface and reference counted objects. That promise class is templated and works with any type you can throw at it and maintains the type information instead of having to cast it from a void pointer.
At least for me templates turned out to be pretty easy. The biggest challenge I ran into was template abuse where I tried to use them way too much but I have a mentor to bring me back from that behavior. So far, for me, templates work well and solve real problems.
If I had to use a template after watching the referenced video I think I'd slit my wrists.
(Score: 2) by c0lo on Saturday July 14 2018, @02:18AM (5 children)
Basics, even with variadic params, is easy and many useful things can be done with the basics.
The things start to go quite horendous when you get into template metaprogramming - not everybody's piece of cake, but it's insanely powerful. And useful.
E.g. write a templated function implementing one behaviour if you detect at compile time the (class) parameter implements a method with given signature, and a different behaviour if it doesn't. Do it without relying on inheritance - because you can't always go and pad a 3rd party library with "marker interfaces" specific to your needs.
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 2) by Knowledge Troll on Saturday July 14 2018, @03:18AM (4 children)
That's awesome, thank you for sharing. I have yet to put together any template that has a branch that relates to the template variable but I've been wondering about what that might be useful for. Right now I just use templates to pass types through into the function so it can do something smart with them and the most sophisticated thing I think I've done so far is use T where the object name would go when using the name as a constructor in a templated class that provides constructors as static methods for the class that extends it. I was really pleased that it worked and it gave some nice shine to my base object interface.
How do you do introspection in something like C++ at compile time to find out if a method signature exists on an object or not with out relying on the class hierarchy? Is that with typeinfo()? I didn't see an obvious way that would work in the documentation.
Again, thanks for sharing, I truly appreciate it.
(Score: 2) by c0lo on Saturday July 14 2018, @09:35AM (3 children)
If you haven't had any template metaprogramming experience, it will take you some time to get what's happening here. If this is the case:
- SFINAE [cppreference.com]
- see <type_traits> [cppreference.com]
Can you manage from here?
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 2) by Knowledge Troll on Saturday July 14 2018, @03:55PM (2 children)
Wow thanks again! Yeah that's beautiful, I just need a pointer really. I talked a bit with a friend and he introduced me to the type traits but said he had never done specialization. Thanks again! I will now explode my head.
(Score: 0) by Anonymous Coward on Saturday July 14 2018, @05:35PM
> I just need a pointer really.
Here you go: std::unique_ptr
:D
(Score: 2) by c0lo on Saturday July 14 2018, @11:05PM
Ah, shit, there are a few place where I missed to < the <.
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 1) by Ethanol-fueled on Friday July 13 2018, @06:34PM (2 children)
Templates are slow redundant dog-shit -- a symptom of "Firefox Syndrome" pozzing C++ with its AIDS.
(Score: 2) by Knowledge Troll on Friday July 13 2018, @10:59PM (1 child)
Redundant I can understand since each template gets expanded at compile time for each specific use case.
But dog shit slow? Template functions/methods/classes are slower than non-template ones?
(Score: 0) by Anonymous Coward on Saturday July 14 2018, @07:24AM
I don't know if that's what GP meant, but *compiling* templates is slow and linking requires gobs of memory (for larger projects, gigabytes). It's a trade-off; you sacrifice compiling complexity (plus some ease of writing) to get highly-optimized binaries. It's the literal opposite of languages like Python.
(Score: 2) by darkfeline on Friday July 13 2018, @08:17PM
>Today we have Rust and Swift and... and... yes, TypeScript.
Except none of those fills the role that Python has? Python is one of the de facto Linux scripting languages now, so a shiny new alternative would have to be a useful scripting language.
Back in the ancient days, all scripts on a Linux system was shell. Then, it was Bash and Perl. Now, it's Bash, Perl, and Python, with Perl going out the door. Take a look at any of the common Linux distributions, it will have Python installed by default because the base OS ships with a lot of Python scripts.
Pretty much all of the languages you mentioned are unable to fill this role, simply by demerit of being compiled languages (languages without a common interpreter implementation). No, I'm not going to consider TypeScript seriously.
Join the SDF Public Access UNIX System today!