On Thu, Nov 7, 2019 at 7:21 AM Abe Dillon <abedil...@gmail.com> wrote:
>> None of your objections ring true.  A simple example is had from 
>> mathematics.  The integral symbol conveys and represents a concept.  Once 
>> the practitioner is introduced to the definition of that symbol, what it 
>> means, he or she uses it.  It really is a simple as that, this is how our 
>> brains work.  That's how you recognize the letter "A" as to correspond to a 
>> sound and as part of words.  This is how, in languages such as Chinese, 
>> symbols, notation, are connected to meaning.  It is powerful and extremely 
>> effective.
>
> I don't think you understood the point about APL's arrow assignment operator 
> being counterintuitive in Python. In Python: variables are names assigned to 
> objects *not* buckets that objects are stored in. Using a notation that 
> implies that objects are assigned to variables encourages a broken 
> understanding of Python's mechanics.
>

For the record, I actually don't think that this is much of a problem.
We have notions of "assignment" and "equality" that don't always have
the exact same meanings in all contexts, and our brains cope. The
sense in which 2/3 is equal to 4/6 is not the same as the one in which
x is equal to 7, and whether or not you accept that the (infinite) sum
of all powers of two is "equal to" -1 depends on your interpretation
of equality. You might think that after an assignment, the variable is
equal to that value - but you can say "x = x + 1" and then x will not
be equal to x + 1, because assignment is temporal in nature. People
will figure this out regardless of the exact spelling of either
equality or assignment.

> As to the role of ML and AI in all of this: These are tools that will allow 
> greater abstraction. Assuming more symbols will greatly enhance programing in 
> the future is like assuming that more opcodes will greatly enhance programing 
> in the future. AI and ML, if anything, will allow us to define the problems 
> we want to solve in something much closer to natural language and let the 
> computers figure out how that translates to code. What kind of code? Python? 
> C++? APL? x86? RISC-V? Who cares?!
>

Agreed. I would suggest, though, that this isn't going to be anything
new. It's just a progression that we're already seeing - that
programming languages are becoming more abstract, more distant from
the bare metal of execution. Imagine a future in which we dictate to a
computer what we want it to do, and then it figures out (via AI) how
to do it... and now imagine what a present day C compiler does to
figure out what sequence of machine language instructions will achieve
the programmer's stated intention. Here's a great talk discussing the
nature of JavaScript in this way:

https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript

AI/ML might well be employed *already* to implement certain
optimizations. I wouldn't even know; all I know is that, when I ask
the computer to do something, it does it. That's really all that
matters!

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/PFYPVNG4NJDJITUNXOZBMCS5OK6Q2ZSP/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to