Article on the future of Python

K

Kevin Walzer


Interesting article, but the comments of those who say "the only
language I need to know is Python" strike me as a bit limited. If this
is the case, then Python can never be moved forward, because it is
written in C.

I program in Python, C, Objective C, JavaScript, Tcl, AppleScript, and
I'm learning Perl. Python could *not* handle all the domains I target in
my projects. For instance: if I want to access Mac-native functionality
via Tkinter that isn't currently available in the library, I have to
drill down into C or Objective-C, write a wrapper that hooks in to the
primitives via Tcl's C API, then possibly write some additional Tcl code
to provide a cleaner interface, *then* write some kind of Python wrapper
that I can access in my Tkinter app.

I can understand loving the language and wanting to work just in the
language, but it's another thing entirely to call Python the One
Language to Rule Them All. (That's C, because all other languages are
implemented in it. :) )

--Kevin
 
R

Roy Smith

Kevin Walzer said:
the comments of those who say "the only
language I need to know is Python" strike me as a bit limited.

I have been convinced that "X is the only language I need to know", for
many different values of X over the years.
 
S

Steven D'Aprano

Interesting article, but the comments of those who say "the only
language I need to know is Python" strike me as a bit limited. If this
is the case, then Python can never be moved forward, because it is
written in C.

Incorrect.

IronPython in C#. Jython is written in Java. CLPython is written in Lisp.
Berp and HoPe are written in Haskell. Nuitka is written in C++. Skulpt is
written in Javascript. Vyper is written in Ocaml. PyPy is written in
RPython.

Some of those Python compilers are obsolete, unmaintained or
experimental. Others are not. But either way, it is certainly not true
that Python is written in C. One specific Python compiler happens to be
written in C, that is all.

I program in Python, C, Objective C, JavaScript, Tcl, AppleScript, and
I'm learning Perl. Python could *not* handle all the domains I target in
my projects.

Unless you are writing code that operates on the bare metal (device
drivers, operating system kernels) Python probably *could*, even if it
doesn't *yet*. PyPy now allows you to write real-time video processing
filters in pure Python:

http://morepypy.blogspot.com.au/2011/07/realtime-image-processing-in-python.html


And if performance was irrelevant, you could even write an operating
system in Python. A really slow, painful operating system, but still an
operating system.

Given a sufficiently smart compiler, and sufficiently powerful libraries,
or sufficiently low expectations, pretty much any programming language
can do anything any other language can do. Almost all of them are Turing
complete.

But of course, in practice languages differ in their power and
capabilities.

For instance: if I want to access Mac-native functionality
via Tkinter that isn't currently available in the library,

That "isn't currently available" part is precisely what I'm talking
about. Just because it's not available now doesn't mean it can't be made
available.

I can understand loving the language and wanting to work just in the
language, but it's another thing entirely to call Python the One
Language to Rule Them All. (That's C, because all other languages are
implemented in it. :) )

I see your smiley, but that is factually incorrect. Not all compilers or
interpreters are written in C. Many languages are self-hosted, that is,
they are written in themselves, using some clever bootstrapping
techniques. C is neither the most powerful, the oldest, the best, or the
most fundamental language around.
 
C

Chris Angelico

I see your smiley, but that is factually incorrect. Not all compilers or
interpreters are written in C. Many languages are self-hosted, that is,
they are written in themselves, using some clever bootstrapping
techniques. C is neither the most powerful, the oldest, the best, or the
most fundamental language around.

Many compiled languages are bootstrapped, yes, but interpreted
languages less often so. And the bulk of implementations of the bulk
of interpreted languages seem to be implemented in C. But that's
largely because the bulk of Unix software is written in either C or a
high level language.

ChrisA
 
D

Dennis Lee Bieber

I can understand loving the language and wanting to work just in the
language, but it's another thing entirely to call Python the One
Language to Rule Them All. (That's C, because all other languages are
implemented in it. :) )

Only with the demise of DEC VMS... As I recall, most of the VMS
system, including compilers and what-not, were written in BLISS
 
P

Paul Rubin

Kevin Walzer said:
language, but it's another thing entirely to call Python the One
Language to Rule Them All. (That's C, because all other languages are
implemented in it. :) )

I got into a discussion about that in another newsgroup and noticed that
C seems to have been a 20th-century language that is still used for
maintaining old programs and in the embedded niche, but that very few
languages or compilers seem to have been newly implemented in C in the
current century. The main counterexample I was able to find was LuaJIT.
 
G

Grant Edwards

I glanced over the article but it seems to me another 'I am afraid
this is not the silver bullet I wanted it to be' article

Strange. I didn't get that _at_all_ from the article.

To me it was expressing concern about what happens when the range of
"niches" where Python is a good solution falls below a certain
critical mass -- will the "Python Community" start to stagnate because
it isn't attacting new developers in the quantity or diversity that it
used to...
 
8

88888 Dihedral

Grant Edwardsæ–¼ 2012å¹´9月26日星期三UTC+8上åˆ2時25分31秒寫é“:
Strange. I didn't get that _at_all_ from the article.



To me it was expressing concern about what happens when the range of

"niches" where Python is a good solution falls below a certain

critical mass -- will the "Python Community" start to stagnate because

it isn't attacting new developers in the quantity or diversity that it

used to...



--

Grant Edwards grant.b.edwards Yow! Alright, you!!

at Imitate a WOUNDED SEAL

gmail.com pleading for a PARKING

SPACE!!
I don't think so in 201X. The uni-code support for users and clients
all over the world should not be taxed by WINTEL only in
multi-language support under the OS. I am glad to see a lot smart phones
or pads are fostering applications in various languages to help the IT
industry keeping growing and expanding to those regeions covered
by wirelees digital communications with devices priced in the range
200 to 12000 usd.
 
S

Steven D'Aprano

python

Strange. I didn't get that _at_all_ from the article.

To me it was expressing concern about what happens when the range of
"niches" where Python is a good solution falls below a certain critical
mass -- will the "Python Community" start to stagnate because it isn't
attacting new developers in the quantity or diversity that it used to...

Sounds like the same thing to me. Since Python fails to capture all the
development niches, it is not a silver bullet for programming, and
therefore it won't attract the fresh new blood it needs, because everyone
is programming for <insert list of niches here>.

I guarantee you that you could pick *any* language in existence, and find
three areas that are dominated by other languages, which *somebody* could
have convinced themselves is essential to the health of the community.

C? Once upon a time the C community was growing at a rapid rate because
of the Unix admins that picked it up from day-to-day scripting tasks
using c-shell. C became popular on the back of Unix, Unix has stagnated
and people have moved on from csh to bash and other shells. The default
shell on Linux is bash! C is in danger of no longer attracting new
developers, and if you think the Python 2 -> 3 transition was disruptive,
you should see what's happened in C: you have C, C++, Objective-C, C#,
even C-- and D.

SQL? All the exciting, innovative work in databases is happening in the
non-relational field of NoSQL languages. Without the ability to handle
Google's database needs, and with a name like NoSQL attracting all the
best and brightest database developers away from SQL, it's time to sell
your shares in Oracle.

Java? More and more development is moving to HTML5 and Javascript. With
the public's abandonment of the Java plugin for browsers, and schools
moving towards Python and PHP as a first language, Java's days are
numbered.

Cobol? Sure, eighty percent of the code in active use is written in
Cobol. Sure, there are 200 times more Cobol transactions per day than
Google searches -- about three quarters of *all* computer transactions
are done using Cobol. But Cobol only gets used for such boring stuff as
keeping your money safe in the bank. All the real innovation is in, well,
everything except Cobol. The imminent demise of Cobol is predicted for
1975^W 1980^W 1985^W 1990^W 1995^W 2005^W 2010^W 2015.
 
P

Paul Rubin

Steven D'Aprano said:
C? Once upon a time the C community was growing at a rapid rate
because of the Unix admins that picked it up from day-to-day scripting
tasks using c-shell.

Er, I think it was developers rather than admins back then... the
sysadmin languages were awk then Perl.
SQL? All the exciting, innovative work in databases is happening in the
non-relational field of NoSQL languages.

Where have you been? That was LAST week...

http://highscalability.com/blog/201...t-surprising-revelation-nosql-is-out-and.html
(shorter: http://tinyurl.com/8v3dzyr )

;-)
More and more development is moving to HTML5 and Javascript.

Yes. Python, Ruby, and Javascript are all pretty similar languages.
I'm pretty comfortable with Python so I don't feel much need to pursue
Ruby, and from the Ruby side the Python picture looks similar.
Javascript used to live mostly in browsers so it didn't come into the
question except for client-side web programmers. But, web client
programming has gotten more ubiquitous than ever, and Javascript is
metastasizing to the desktop and server through things like node.js. So
it may in fact put pressure on Python.
 
C

Chris Angelico

SQL? ... it's time to sell your shares in Oracle.

Ehh, I wouldn't be investing in Oracle, but that's more because I
think free RDBMSes like PostgreSQL outshine it. And this is even more
true of MS SQL Server - this last week I've been researching options
for moving work's services to the cloud, and SQL Server licenses cost
ridiculous amounts (per month or per hour); what do you get for that
money that you can't get from Postgres?

Yes. Python, Ruby, and Javascript are all pretty similar languages.
I'm pretty comfortable with Python so I don't feel much need to pursue
Ruby, and from the Ruby side the Python picture looks similar.
Javascript used to live mostly in browsers so it didn't come into the
question except for client-side web programmers. But, web client
programming has gotten more ubiquitous than ever, and Javascript is
metastasizing to the desktop and server through things like node.js. So
it may in fact put pressure on Python.

Well, Python, Ruby, and
JavaScript/Javascript/ECMAScript/etceterascript aren't what I'd call
"similar languages", except that they're all modern high level
languages. But they're all able to solve similar problems, which I
think is what you're saying here.

The flip side to node.js is pyjs. One lets you write your server in
Javascript... the other lets you write your client in Python. And
there are quite a few other options for writing browser scripts in
other languages. Is JS dead yet? Nope.

There's room in this world for a lot of languages.

ChrisA
 
C

Chris Angelico

After the ham-fisted, nasty way pyjamas project was hijacked this year,
I'm not entirely sure I'd want to touch it with a fifty-foot pole.

http://technogems.blogspot.com.au/2012/05/pyjamas-hijacked.html

Any pajamas users here want to comment on the fallout? Is the project
alive, dead, or walking dead?

That is true, but the concept is still around - that you can write
your code in some other language and compile to js. Personally, I'd
rather just write my js directly, and use Python to write Python code,
but I'm sufficiently multilingual to be able to do that. If you know
only 1-2 languages, there's (short-term) benefit in using them for
more tasks.

ChrisA
 
W

wxjmfauth

Le mercredi 26 septembre 2012 01:34:01 UTC+2, 88888 Dihedral a écrit :
Grant Edwardsæ–¼ 2012å¹´9月26日星期三UTC+8上åˆ2時25分31秒寫é“:


I don't think so in 201X. The uni-code support for users and clients

all over the world should not be taxed by WINTEL only in

multi-language support under the OS. I am glad to see a lot smart phones

or pads are fostering applications in various languages to help the IT

industry keeping growing and expanding to those regeions covered

by wirelees digital communications with devices priced in the range

200 to 12000 usd.

Py 3.3 succeeded to somehow kill unicode and it has
been transformed into an "American" product for
"American" users.

---

From nnn:
...schools moving towards Python...

I do not know what "schools" covers.
Interestingly (and unfortunately), it just becomes
a no-tool for those who wish to teach Unicode. Or,
in one sense, it just become one!

PS I spent my last days with XeTeX and unicode-math.

jmf
 
S

Steven D'Aprano

Py 3.3 succeeded to somehow kill unicode and it has been transformed
into an "American" product for "American" users.

For the first time in Python's history, Python on 32-bit systems handles
strings containing Supplementary Multilingual Plane characters correctly,
and it does so without doubling or quadrupling the amount of memory every
single string takes up.

Strings are ubiquitous in Python -- every module, every variable, every
function, every class is associated with at least one and often many
strings, and they are nearly all ASCII strings. The overhead of using
four bytes instead of one for every string is considerable.

Python finally has correct unicode handling for characters beyond the BMP,
and it does so with more efficient strings that potentially use as little
as one quarter of the memory that they otherwise would use, at the cost
of a small slowdown in the artificial and unrealistic case that you
repeatedly create millions of strings and then just throw them away
immediately. Most realistic cases of string handling are unchanged in
speed, either trivially faster or trivially slower. The real saving is in
memory.

According to wxjmfauth, this has "killed" unicode. Judge for yourself his
credibility. The best I can determine, he believes this because Americans
aren't made to suffer for using mostly ASCII strings.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,835
Latest member
KetoRushACVBuy

Latest Threads

Top