Python ROCKS! Thanks guys! [anecdote]

I work with a full-stack web development bootcamp. Most of the course focuses on JavaScript (Node.js, React, jQuery, etc), but there's a one-week period in which each student gets to pick some technology to learn, and at the end of the week, demos to the group some project s/he has mastered. Two chose to learn Python, and I've been mentoring them through this week.
The comments from each of them have been fairly glowing. Python is this incredible thing that has immense power and flexibility; significant-whitespace hasn't been a cause of confusion (not even mentioned after the first day); and
The most notable features of Python, for these two JS-only-up-until-now guys, are the simplicity of the 'for' loop (including that you don't need lots of different forms - you can iterate over a dictionary without having to learn some new type of loop), the list comprehension, and metaprogramming - mainly function decorator syntax. And both of them are starting to talk about being "converts" to Python :)
Great job, all. Not that it's particularly difficult to compete with a language that was originally designed and developed in under two weeks, but still. :D
ChrisA

On Wed, Oct 12, 2016 at 7:05 PM, Chris Angelico rosuav@gmail.com wrote:
I work with a full-stack web development bootcamp. Most of the course focuses on *JavaScript (Node.js, React, jQuery, etc),*
Poor students... ;)
but there's a one-week period in which each student gets to pick some technology to learn, and at the end of the week, demos to the group some project s/he has mastered. Two chose to learn Python, and I've been mentoring them through this week.
The comments from each of them have been fairly glowing. Python is this incredible thing that has immense power and flexibility; significant-whitespace hasn't been a cause of confusion (not even mentioned after the first day); and
The most notable features of Python, for these two JS-only-up-until-now guys, are the simplicity of the 'for' loop (including that you don't need lots of different forms - you can iterate over a dictionary without having to learn some new type of loop), the list comprehension, and metaprogramming - mainly function decorator syntax. And both of them are starting to talk about being "converts" to Python :)
Great job, all. Not that it's particularly difficult to compete with a language that was originally designed and developed in under two weeks, but still. :D
I think the craziest thing is probably that, based on how you said it, these two students haven't even begun to enter the entire Python standard library, which you'd have to download a zillion npm modules (like the glorious left-pad) in order to match. Once they realize that, they'll never be going back!
ChrisA _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ rymg19%40gmail.com

Thanks for passing this feedback along, Chris! It's always wonderful to see developers feeling empowered by the potential that open source tools offer them.
On 13 October 2016 at 11:01, Ryan Gonzalez rymg19@gmail.com wrote:
Poor students... ;)
Folks, as tempting as it may be to make jokes at the expense of other programming languages, please try to ensure that references to them on the core Python lists are formulated on the basis of "What can we learn from their experiences?", rather than as generic putdowns of entire software development ecosystems. Even as a lighthearted joke (as here), it isn't helpful to the design process to categorise programming languages as being generically "better" or "worse" than each other, rather than seeing them as embodiments of different ways of thinking about algorithmic problem solving.
In combination with the W3C HTML5 and CSS standardisation work, the JavaScript community have put together a superb set of tools for creating user interfaces that are independent of the backend API server implementation language, as well as useful tools for remote data access and data transformation pipelines. The fact that all this work is being done in the open and made freely available as open source software means that the Python community is able to benefit from these capabilities as much as anyone.
Regards, Nick.
P.S. If anyone would like more background on why the "Our language is universally better than your language" approach can be problematic (even in jest!), please take a look at Aurynn Shaw's piece on Contempt Culture in programming communities and the barriers that can create to effective collaboration: http://blog.aurynn.com/contempt-culture
There's also my own http://www.curiousefficiency.org/posts/2015/10/languages-to-improve-your-pyt... which looks at some other ways in which dismissing ecosystems out of hand can inhibit our ability to learn from both their mistakes and their successes.

On Thu, Oct 13, 2016 at 12:01 PM, Ryan Gonzalez rymg19@gmail.com wrote:
On Wed, Oct 12, 2016 at 7:05 PM, Chris Angelico rosuav@gmail.com wrote:
I work with a full-stack web development bootcamp. Most of the course focuses on JavaScript (Node.js, React, jQuery, etc),
Poor students... ;)
The bootcamp guarantees them employment upon graduation (subject to some constraints, yada yada), so it teaches those skills that are most likely to be employable. But one of those skills is learning new technologies, hence the freedom to pick anything they like.
I think the craziest thing is probably that, based on how you said it, these two students haven't even begun to enter the entire Python standard library, which you'd have to download a zillion npm modules (like the glorious left-pad) in order to match. Once they realize that, they'll never be going back!
Yes, this is true; but pip/PyPI is still an important part of web dev in Python (eg Flask, SQLAlchemy, etc). My explanation to them is that the dependency tree in Python is not as deep as the equivalent in Ruby or JavaScript, but it's no less there. But Python definitely does offer a far richer standard library. It's the little things, sometimes:
var choice = messages[Math.floor(Math.random() * messages.length)];
choice = random.choice(messages)
The debate on whether it's worth sacrificing this kind of advantage in order to use the same language on both client and server is unlikely to be resolved any time soon. In the meantime, I'm very happy to be able to introduce a few people to the joy of Pythonning.
ChrisA
participants (3)
-
Chris Angelico
-
Nick Coghlan
-
Ryan Gonzalez