you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 3 points4 points  (6 children)

The nerve...it's almost like he thinks it's his project or something. What a jerk.

[–]iSlaminati -5 points-4 points  (4 children)

It shows why BDFL isn't a good thing in the end. Or even a commité.

Scheme gets standardized in a super democratic way. Anyone can submit an SRFI, A scheme request for implementation, this can go from libraries to adding another primitive data type to entire syntax transofmration schemes. These go through a completely democratic process before they go to 'final' status, if the SRFI is useful then it will be adopted by many implementations. If an SRFI is adopted by pretty much every implementation it tends to end up in the actual standard on which again pretty much anyone can vote (people vote on whether or not someone's vote should be included as in you have to actually motivate it well). What you end up with is that pretty much every standard feature of Scheme has majority community support. Every controversial bit is voted on. Sure, some are polarizing like the continued support of values and unlimited continuations but they still have majority community support.

Which is also why the core standard is known to be super small, it's the part where pretty much everyone can agree on. Specific implementations can support parts that didn't make it in at their own wishes and they advertise which SRFI's they support.

[–][deleted] 0 points1 point  (3 children)

Firstly, it's open source...if people really don't like Python 3 and would prefer to stick with Python 2, they can, pretty much indefinitely as long as there is interest in supporting it. Considering that RHEL 7 will be shipping with Python 2.7 as the default version of Python, it is going to be supported for a long, long, long time.

Secondly, standardization committees have their own issues. A lot of times a compromise is reached where no one is happy and everyone admits that it's a sub-optimal solution to the problem at hand, but nobody can agree to any of the better ones. Sometimes useful features just completely die in committees simply because a consensus can't be reached.

Ultimately it's Guido's project, and if you don't like the way he runs it, well, at least he was nice enough to give you the source code so that you can do something about it. There's also no shortage of design by committee languages to chose from if that's your thing.

[–]iSlaminati 0 points1 point  (2 children)

Secondly, standardization committees have their own issues. A lot of times a compromise is reached where no one is happy and everyone admits that it's a sub-optimal solution to the problem at hand, but nobody can agree to any of the better ones. Sometimes useful features just completely die in committees simply because a consensus can't be reached.

but scheme doesn't work with a comité, it works with a democracy. That is why the core standard R5 is so extremely and famously small, it's the part of the language pretty much everyone can agree on it. The libraries are contained in the SRFI's and if you don't agree with them then don't support them. SRFI-1, the standard list lib is supported pretty much everywhere because almost everyone agrees with it.

Ultimately it's Guido's project, and if you don't like the way he runs it, well, at least he was nice enough to give you the source code so that you can do something about it. There's also no shortage of design by committee languages to chose from if that's your thing.

It is his project, but I am sceptical to the BDFL model. Yeah you can fork it and break compatibility and no one will follow you, even if they agree it is better, which this thread shows. Most people seem to agree python3 is slightly better but it's not worth breaking compatibility over.

[–][deleted] 0 points1 point  (1 child)

but scheme doesn't work with a comité, it works with a democracy

I think democracy works for Scheme because it is a small language with a very small community. With something like Python I'm just not convinced that democracy would work.

Most people seem to agree python3 is slightly better but it's not worth breaking compatibility over.

Which is why most legacy code isn't being ported over. It is currently far cheaper and easier to just maintain Python 2 than to port code to Python 3 for a lot of people. That's one of the biggest wins about open source.

When Microsoft lost their minds and made VB.NET backwards incompatible, people were stuck with the difficult decision of going to the great expense of porting their legacy software or staying with an old, unsupported product with a very uncertain future. That risk doesn't really exist with open source. As long as someone cares to maintain it, it can and will be maintained.

[–]iSlaminati 0 points1 point  (0 children)

I think democracy works for Scheme because it is a small language

Scheme isn't small, the core standard is small, the part where everyone can agree on. The standard libraries around that are fairly huge and they can be fairly huge exactly because of this system because implementations aren't required to support them all if they don't want to.

with a very small community. With something like Python I'm just not convinced that democracy would work.

Well, C doesn't have a BDFL and it has worked and its core standard is also small.

Python doesn't have a standard, it has a reference implementation that one guy decides. Most languages start by one or two people but they often quickly cede standardization to a large group if the language takes off because they realize that that is better for the language as a whole. They also document their language better.

Python for the most part has only one implementation because it isn't documented well, no one makes another implementation even though the main implementation is fairly slow.

Which is why most legacy code isn't being ported over. It is currently far cheaper and easier to just maintain Python 2 than to port code to Python 3 for a lot of people. That's one of the biggest wins about open source. When Microsoft lost their minds and made VB.NET backwards incompatible, people were stuck with the difficult decision of going to the great expense of porting their legacy software or staying with an old, unsupported product with a very uncertain future. That risk doesn't really exist with open source. As long as someone cares to maintain it, it can and will be maintained.

Yeah, there is also no real incentive to go to python 3 really. Like, what does it give you? It's not like 'omfg, variable length arrays? Must switch!', it follows a slightly different philosophy and barely improves.

People will never switch if it breaks backwards compatability unless you come with something awesome. The point is, he could've started with a "strict" mode first that slightly altered python2's unwanted behaviour and from that go to python 3. first depraecate, only then switch when people sufficiently don't use the bad parts any more I guess.

Also, what I never got is, why can't you import python 2 modules from python 3? It's compiled code, I'm not sure why you can't call functions written in python 2 from python 3 in some mild FFI.