[Python-ideas] Towards harmony with JavaScript?
Alberto Berti
alberto at metapensiero.it
Fri Aug 11 13:04:42 EDT 2017
>>>>> "Jason" == Jason H <jhihn at gmx.com> writes:
Jason> While JS is strongly for web (Node.JS, Browsers) and Python has a weak
Jason> showing (Tornado, Flask), Python is very popular on everything else on
Jason> the backend where JS isn't and isn't likely to be. The I'm making
Jason> point is not to choose a 'winner', but to make the observation that:
Jason> given that the tight clustering of the two languages there will be
Jason> considerable overlap. People like me are asked to do both quite
Jason> frequently. So I'd like a little more harmony to aid in my
Jason> day-to-day. I have just as many python files as JS files open in my
Jason> editor at this moment.
I too do much work on both "sides"
Jason> There are several annoyances that if removed, would go a long way.
Jason> 1. Object literals: JS: {a:1} vs Python: {'a':1}
Jason> Making my fingers dance on ' or " is not a good use of keystrokes,
Jason> and it decreases readability. However a counter argument here is what
Jason> about when the a is a variable? JS allows o[a] as a way to assigned to
Jason> a property that is a variable. Python of course offers functions that
Jason> do this, but for simple objects, this would very much be appreciated.
Jason> The point here is this is
Jason> 2. Join: JS: [].join(s) vs Python: s.join([])
Jason> I've read the justification for putting join on a string, and it makes sense. But I think we should put it on the list too.
Jason> 3. Allow C/C++/JS style comments: JS:[ //, /* ] vs Python #
Jason> This one is pretty self-explanatory.
Other friction points to me are (just to name a few):
* when you have to check if a variable contains a string, you have to
check for both "typeof foo == 'string'" and "foo instanceof String"
* you cannot use negative indexes on Array
* when you want to know the length of a sized object you have to know
(and to remember) how to ask it: Array has .length, newer Map and Set
objects have .size
For the goal of reducing the friction (the mind switching when working
with both the languages) I have created a tool (
https://github.com/azazel75/metapensiero.pj ) which allows me to write
valid Python and translates this to nice JS while taking care of most of
these nuances. At the same time it doesn't raise any barrier between the
translated code and any other JS library around (and I use them a lot).
When I created I wasn't unsure if the goal was worthy, but after
developing some large library with it I must say than I'm quite happy
using it and that I had positive feedbacks from other developers.
I suggest you to take a look at it.
cheers,
Alberto
More information about the Python-ideas
mailing list