<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, 8 Apr 2016 at 14:16 Keith Curtis <<a href="mailto:keithcu@gmail.com">keithcu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
<br>
I just discovered this alias and I thought I'd post a few ideas. I<br>
wouldn't call myself a Python master yet, but it's an amazing language<br>
and my biggest wish is that it was more widely used in the industry.<br>
<br>
Here are a few suggestions:<br>
<br>
1. Decrease the bug count. I recently noticed that there are about<br>
5,400 active bugs in <a href="http://bugs.python.org/" rel="noreferrer" target="_blank">http://bugs.python.org/</a>. That surprised me<br>
because I almost never see anyone complain about bugs in Python<br>
(compared to the number who complain about bugs in LibreOffice,<br>
graphics drivers, Gnome / KDE, etc.)<br>
<br>
There are a lot of people on this list, and if the brainpower can be<br>
applied to practical, known, existing problems, it is a great way to<br>
improve Python while also considering more exotic ideas. I can also<br>
suggest making a pretty graph of the bug count and putting it on the<br>
front page of <a href="http://python.org" rel="noreferrer" target="_blank">python.org</a> for greater visibility.<br></blockquote><div><br></div><div>That bug count is misleading because it includes  not only legitimate bugs but also enhancement proposals.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
2. Python is somewhat popular on servers, and there is a lot of<br>
potential for more. WordPress is easy to use and powerful, but lots of<br>
people don't want to program in PHP. Or Javascript, Java, Ruby, etc.<br>
<br>
Codebases like Whoosh full-text search<br>
(<a href="https://bitbucket.org/mchaput/whoosh/wiki/Home" rel="noreferrer" target="_blank">https://bitbucket.org/mchaput/whoosh/wiki/Home</a>) are important, but<br>
have minimal dev resources as most people are using Lucene /<br>
ElasticSearch. The common choice is between 1.3M lines of Java:<br>
<a href="https://www.openhub.net/p/elasticsearch" rel="noreferrer" target="_blank">https://www.openhub.net/p/elasticsearch</a>, containing 1100 todos and<br>
1000 references to "deprecated", or 41K lines of Python written mostly<br>
by one person.<br>
<br>
Hadoop is another big Java project (1.9M lines), and there is even an<br>
ecosystem around it. Python interoperates with Hadoop, but it should<br>
be possible to build a radically simpler framework that provides the<br>
same functionality using Python-native functionality and without all<br>
the baggage. Hadoop has several interesting sister projects: a<br>
distributed database, scalable machine learning, a high-level data<br>
flow language, a coordination service, etc. I'm sure you'd build<br>
something smaller, cleaner, faster in many cases, more reliable, etc.<br>
<br>
3. It was a sad mistake that Google picked Java over Python for<br>
Android. However, there is now a great program called Kivy which<br>
allows people to write apps for IOS or Android with one codebase, but<br>
it could also use more resources, as for example it doesn't fully<br>
support Python 3.x yet.<br>
<br>
There are 10s of thousands of bugs in the popular Python libraries and<br>
I would fix those before proposing more language changes.<br>
<br>
4. I enjoy reading about the Python performance improvements, but it<br>
is mostly a perception problem with all the existing workarounds.<br>
Gnome wrote version 3 of their shell in Javascript because they didn't<br>
think Python would be fast enough. Lots of people write Node because<br>
it's compiled and "fast". I suggest taking some of the effort working<br>
on performance, and spend it on evangelizing to other programmers that<br>
Python / Cython / PyPy, etc. are already good enough! There are a lot<br>
of programmers out there who would be happier if they could work in<br>
Python.<br></blockquote><div><br></div><div>Two things. One, there is actually a good amount of performance work potentially landing in Python 3.6. Two, we have been saying Python is fast enough for most things for decades at this point, so this is an old issue that's never going away.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
5. It would be great to get Python in the web browsers as an<br>
alternative to Javascript. There are a number of projects which<br>
convert Python to Javascript, but this would be more direct.<br>
LibreOffice ships with a Python interpreter, why can't Firefox and<br>
Webkit? ;-) Obviously there are interoperability issues, but it would<br>
be great to just side-step all the complexity of Javascript (Here is a<br>
server-oriented article, but it gives a flavor:<br>
<a href="http://notes.ericjiang.com/posts/751" rel="noreferrer" target="_blank">http://notes.ericjiang.com/posts/751</a>) This might sound like a crazy<br>
idea, but the engineering problems aren't that hard.<br></blockquote><div><br></div><div>Once <a href="https://github.com/WebAssembly">https://github.com/WebAssembly</a> lands in the browser then it won't be as much of an issue. There are also various transpilers of Python to JavaScript already. I also tried back in 2006 but Mozilla rejected the idea so this has been tried before. :)</div><div><br></div><div>-Brett</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
6. In a few cases, there are two many codebases providing the same<br>
functionality, and none of them are really doing the job. For example,<br>
the de-facto MySQL Python interop library<br>
(<a href="https://pypi.python.org/pypi/MySQL-python" rel="noreferrer" target="_blank">https://pypi.python.org/pypi/MySQL-python</a>) only supports Python 2.x<br>
and appears to be abandoned. There are several other libraries out<br>
there with different features, performance, compatibility, etc. and<br>
it's kind of a minefield for what should be a basic scenario. It takes<br>
leadership to jump in and figure out how to fix it and make one<br>
codebase good enough that the others can switch over.<br>
<br>
7. Focus more on evolving the libraries rather than the language. I've<br>
recently discovered Toolz, which has a more complete set of functional<br>
language methods. I think some of them should be included in the<br>
official versions. A lot of people don't think Python is good enough<br>
for functional programming and this would help. These new routines add<br>
complexity, but a newbie doesn't need to write in a functional way, so<br>
it obeys the "only pay for what you use" rule.<br>
<br>
There are a number of under-staffed libraries and frameworks. I see<br>
people complain about the YAML parsing library being unmaintained, the<br>
default HTTP functionality being difficult and limiting, poor SOAP<br>
support, etc. There are a million ways to improve the Python ecosystem<br>
without making any language changes. You don't have a big rich company<br>
who can pay for thousands of full-time developers working on<br>
libraries, but the bug reports are a great way to prioritize.<br>
<br>
8. I've yet to find a nice simple free IDE with debugging for Python.<br>
I use Atom, but it has primitive debugging. I tried PyCharm but it's<br>
very complicated (and not free, and Java). I use Jupyter sometimes<br>
also but I'd prefer a rich client app with watch windows, etc.<br>
<br>
9. It would be interesting to re-imagine the spreadsheet with a more<br>
native Python interface. Pandas and matplotlib are great, but it would<br>
be cool to have it in LibreOffice Calc that supports drag and drop,<br>
copy and paste, can read and write ODS, etc. (Also, LibreOffice Base<br>
is basically unmaintained. I think if 10 Python programmers passionate<br>
about databases and GUIs showed up, it could re-invigorate this dead<br>
codebase.)<br>
<br>
10. Being simple to learn and powerful is very hard. Fortunately, you<br>
can break compatibility every 10 years. My only suggestion is to get<br>
rid of the __self__ somehow ;-)<br>
<br>
Regards,<br>
<br>
-Keith<br>
<a href="http://keithcu.com/" rel="noreferrer" target="_blank">http://keithcu.com/</a><br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</blockquote></div></div>