On Sat, Aug 12, 2017 at 12:57 AM, Jason H <jh...@gmx.com> wrote:
> Before I done my firesuit, I'd like to say that I much prefer python and I 
> rail on JS whenever I can. However these days it is quite common to be doing 
> work in both Python and Javascript. Harmonizing the two would help JS 
> developers pick up the language as well as people like me that are stuck 
> working in JS as well.
>
> TIOBE has Python at 5 and JS at 8 https://www.tiobe.com/tiobe-index/
> Redmonk: 1 and 1, respectively 
> http://redmonk.com/sogrady/2017/06/08/language-rankings-6-17/
> PYPL: 2 and 5 respectively http://pypl.github.io/PYPL.html
>
> While JS is strongly for web (Node.JS, Browsers) and Python has a weak 
> showing (Tornado, Flask), Python is very popular on everything else on the 
> backend where JS isn't and isn't likely to be.  The I'm making point is not 
> to choose a 'winner', but to make the observation that: given that the tight 
> clustering of the two languages there will be considerable overlap. People 
> like me are asked to do both quite frequently. So I'd like a little more 
> harmony to aid in my day-to-day. I have just as many python files as JS files 
> open in my editor at this moment.
>

Python has a number of strong web frameworks - Django is probably the
best known.

> There are several annoyances that if removed, would go a long way.
> 1. Object literals: JS: {a:1} vs Python: {'a':1}
>    Making my fingers dance on ' or " is not a good use of keystrokes, and it 
> decreases readability. However a counter argument here is what about when the 
> a is a variable? JS allows o[a] as a way to assigned to a property that is a 
> variable. Python of course offers functions that do this, but for simple 
> objects, this would very much be appreciated.
>    The point here is this is
>

Disagreed. Python is both more consistent and more flexible than JS
here. More flexible in that dict keys can be any hashable type, where
JS object properties are always strings; and more consistent in that a
value is always represented the same way. Consider literals and
variables as dict keys in Python:

# Literal
d = {'a': 1}
print(d['a'])
d['a'] = 2
# Variable
key = 'a'
d = {key: 1}
print(d[key])
d[key] = 2

Contrast JS:

// Literal
d = {a: 1}
console.log(d.a)
d.a = 2
// Variable
key = 'a'
d = {[key]: 1}
console.log(d[key])
d[key] = 2

In Python, a literal string is always in quotes, and an unquoted
symbol is always a name lookup. In JS, you can use the shorthand of
dot notation for literals that are valid symbols, but to use a
variable, you need to switch syntax. (To be fair, this is simply
adding a shorthand that Python doesn't have; you could use square
brackets and string literals in JS too. But people don't do that, so a
programmer has to know to read it using dot notation primarily.)

Coupled with the increased flexibility in what you can have in a dict
key, Python's requirement to quote keys is a small price to pay for
consistency.

> 2. Join: JS: [].join(s) vs Python: s.join([])
>    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.

This might be safe to add; but it needs to be well worth adding, since
it's just a different spelling for the exact same thing. -0.

> 3. Allow C/C++/JS style comments: JS:[ //, /* ] vs Python #
>    This one is pretty self-explanatory.

If you'd asked for this a few years ago, maybe, but since // is a
division operator, that part of it won't fly. Possibly /* comments */
could be added though.

That's about all that I'd support adding, though.

ChrisA
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to