Live data from Hacker News

Python's Original Sin

andreyf.tumblr.com

1–10 of 55 posts

Re: Python's Original Sin

#2
I'm not sure I buy this argument. The author seems to be arguing that it's a fatal design flaw for a language not to be implemented in itself. But as near as I can tell not that many languages are implemented in themselves. I'm pretty sure Java and C# (as examples) are implemented in C.

Also, his argument that the compatibility issues between JPython and CPython are because python isn't implemented in itself also don't hold water. One very simple counterexample would be Ruby and JRuby. Ruby isn't implemented in itself, and like JPython and CPython, JRuby and MRI are two different code bases written in two different base languages. Despite this, JRuby has kept very close syntax compatibility with the standard Ruby 1.8.x interpreter. The secret in their case isn't self hosting, but rather a very comprehensive unit testing suite for the language. (interestingly enough, developed initially by yet a third implementation of Ruby).

Re: Python's Original Sin

#4

I'm not sure I buy this argument. The author seems to be arguing that it's a fatal design flaw for a language not to be implemented in itself. But as near as I can tell not that many languages are implemented in themselves. I'm pretty sure Java and C# (as examples) are implemented in C. Also, his argument that the compatibility issues between JPython and CPython are because python isn't implemented in itself also don…

the compatibility issues between JPython and CPython are because python isn't implemented in itself

Didn't say that. Said that self-hosting is one solution (one Perl 6 uses), not the only one.

[Ruby's secret] isn't self hosting, but rather a very comprehensive unit testing suite for the language

No, Python also has a comprehensive test suite. The difference between Jython and Ruby is that Jython isn't as well maintained as the Ruby branches. Self-hosting the syntax is an architectural solution which requires zero additional effort to implement syntax upgrades.

Re: Python's Original Sin

#6
post #5

And this affects me as a Python user how, exactly?

To down-voters: this is a valid question, and something I cut from the original post (trying to keep to meta-discussion).

I'm hitting one related issue right now at work: we want to switch to Jython to take advantage some JVM features, but need to weigh the risk that it might never move past Python 2.5 syntax [1]. That's not a deal-breaker, but I'm an enormous fan of where Python syntax has gone since then, so it pains me especially. With a self-hosting syntax interpreter, even a minimally maintained project like Jython could keep up with most changes.

Another less-practical issue is that of syntax evolution: like Apple, Python has taken the route of benevolent-overlord to make design decisions. Thanks to the good taste of Steve and GvR, I think that's worked out really well. But neither is perfect, and especially in the case of programming language design, I'd wager the end product could benefit from having a market system of minor syntax features competing in user-space, not just in Guido's head. Just as "from __future__ import print_function" changes the syntax of a file, so could "from __macros__ import anaphoric_if".

1. The Jython project lead is no longer working on it full-time: http://fwierzbicki.blogspot.com/2010/02/my-new-job-at-sauce-...

Re: Python's Original Sin

#7
I don't understand python is dead or hurting because jython isn't keeping up with the latest branches?

Edit: Only in a language group like rubyists do you see quick adoption and change and for many applications this isn't always great I'll take stable libraries over ever changing applications any day.

Re: Python's Original Sin

#8
In Smalltalk, this is a non-issue because the language is so small. A good programmer can hand-code a parser for most of Smalltalk in under a day. I know, because I've done it a couple of times. (2 hours is my fastest time.)

Re: Python's Original Sin

#10
This is interesting, but I don't know that reality matches the author's theory. After all perl 6 is hardly a shining example of how a language should be upgraded. It's been in the works for at least a decade. Say what you will about python 3, but at least it exists and has been released.
Post reply on HN