Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
dragon enthusiast
Jan 1, 2010

Vanadium posted:

I guess if 10 years sounds like a long-enough timeframe to phase out your product to you, you shouldn't be in the programming languages business??

still use basic at work cause the underlying code base was originally written in the late 80s

Adbot
ADBOT LOVES YOU

tef
May 30, 2004

-> some l-system crap ->

Cybernetic Vermin posted:

a short summary for those not reading all the above, tef has the rather strikingly convincing arguments:

1. you shouldn't complain, it's done for free!
2. the source is out there, why don't the complainers fix a migration path themselves?

i for one am changing my tune right quick


1. comparing the work done with python to java and c# is a bit unfair given the budgets involved
2. there has been plenty of opportunity in five years for people to help out and few have
3. five years. you are a whiny babby

tef
May 30, 2004

-> some l-system crap ->

Malcolm XML posted:

the Python 2 whiners should put their money where their mouths are tho that I agree, but they are perfectly within their rights to demand a transition done right

because? this is as almost as entitled as video game players, except from a freeware author.

tef
May 30, 2004

-> some l-system crap ->

Suspicious Dish posted:

So yes, people did step up to maintain a 2.x, because we wanted to keep the 2.x language which we loved alive, and we were told "no", and so we stopped. It's not a lack of trying on our part. The whining is only amplified by that.

well, less no, but gonna have to change the name. dunno how many 2.x programs implicitly assume python is name of intepreter instead of using sys.executable, but that's the least of their problems. (yes hashbangs, etc)

tef
May 30, 2004

-> some l-system crap ->
i wonder if this is a hangup from that core and true american belief "the customer is always right".

i don't understand how people can be in their rights to demand anything from voluntary labour, maybe if people had support contracts for python it might be different.


Suspicious Dish posted:

The thing is that the people who maintain Python have said that there will never be a 2.8. 2.x is EOL. Meanwhile 1% of PyPI downloads are 3.x and 99% are 2.x. Back in 2009, a bunch of Python 2 fanatics (including me) actually started forking 2.x to release a 2.9 (we thought if there was no 2.8 ever, why not a 2.9?), and we were told by GvR himself that it would never be supported, and that we couldn't make it an official Python release. The name would have to change.

So we stopped working on Python 2.9, and then all moved to other languages.

this is poo poo, but eh, if the price is changing the name it's a smaller price to pay, but i can understand giving up :v:

i mean, i'm likely to use other languages that aren't python 3, but then again maybe python 3 wasn't made for me

FamDav
Mar 29, 2008

tef posted:

because? this is as almost as entitled as video game players, except from a freeware author.

if you want to build and maintain a community, even when you aren't being paid for it, you might have to take their opinions and needs into consideration from time to time. it's a bit easier to rationalize when somebody is paying you for it, which wasn't google doing so for guido in the early 00s?

tef
May 30, 2004

-> some l-system crap ->
demand? no

whine about it? yep

acting like an entitled little video game child ? no

stepping up to help ? yep (and unfortunately being knocked back)

ah well

FamDav
Mar 29, 2008

tef posted:

i wonder if this is a hangup from that core and true american belief "the customer is always right".

i don't understand how people can be in their rights to demand anything from voluntary labour.

people can demand and maintainers can say no, but if your goal is to get your project used by others then they are your customers and you have to convince them you are right.

Hed
Mar 31, 2004

Fun Shoe

Suspicious Dish posted:

So we stopped working on Python 2.9, and then all moved to other languages.

What did you guys move on to

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
The issue with changing the name isn't just the name of the interpreter. It's effectively forking the community. We need a new website, new installer, new documentation, new mailing lists, new IRC channels. Python has a lot of people who know about it, and telling them "yeah, you really want to be using Python 2.x because that's where the existing stuff is, but Python 2.x isn't called Python 2.x anymore, it's called Cobra" is a big issue. What happens when they block off us from using PyPI, or aren't open to making changes? Does numpy work on our fork, or do they decide that they aren't going to support an unofficial Python 2.x fork?

And all of us are people who like the Python community. Forking the interpreter with half the manpower was already a monumental task, and being told "nope, not ever gonna happen" is basically killing the project from the outset. Nobody from our team wants to form a rift in the Python community -- we want to help bring it back.

We'd love to continue on, but it's a small team, and the cost of doing this is too much, and the drama and psychological battles that would happen we just don't wanna deal with. I hope you at least recognize that.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Hed posted:

What did you guys move on to

I primarily work on C and JavaScript codebases now. Some other people use Rust / Go / Dart / Obj-C / Swift / C#. Some use C++11. Some went back to Scheme/Racket. Some kept going with Python 2.x and some use Python 3.x (and they rant about it). It was a large community (built mainly from people from the #python IRC channel) with differing opinions on language design and what they'd like to see in Python.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

tef posted:

because? this is as almost as entitled as video game players, except from a freeware author.

nah sorry users are entitled to complain and criticize and guido is entitled to not listen

just as users have to deal with guido not listening, so does guido have to deal with the fact that python3 is moribund and was a terrible decision that burnt most of his goodwill


everyone who could and wanted to move to py3 has done so.

everyone else moved on to better languages and communities. py3k was a terrible engineering & business decision for python.

MononcQc
May 29, 2007

I'm not sure how I feel about it all, but one thing I ended up appreciating with Erlang was that it has a well-established deprecation and backwards-incompatibility cycle.

- Every quarterly release is backwards compatible in every way and only contains bugfixes and some new features (well, new features aren't backwards compatible, but some libs should be seen as forward-compatible)
- Every yearly release is going to include some new deprecation warnings, but keep being compatible for the time being.
- Every yearly release is going to break backwards compatibility with the two-years-old version before it, if need be.
- The bytecode and network protocols are subject to this (although the bytecode is only forward compatible) so distributed systems can be hybrid while rolling out upgrades.

Of course there have been slippage here and there, especially in some libraries that required changes in API to fix bugs, but yeah.

Using this for work, this makes me feel that my teammates and I know what to expect (yearly breakage if we keep on bleeding edge and do not take time through the year to fix deprecation warnings), with a clear and frequent path to upgrades.

What would hurt, it feels, is to have these breaking change on an irregular and unpredictable schedule, or in large amounts. The changes are then harder to plan for, allocate resources for, and may end up more frustrating to deal with.

I was using python at the time 3 came out at first, but only as a hobbyist. I used PHP professionally, and debacles such as PHP6 exploding and whatnot makes me wonder if the problem isn't that breaking changes take place, but rather the frequency at which they do so, and their magnitude.

Then again, nobody uses Erlang, so maybe it's selection bias on that thing and it's a terrible scheme in the long run.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
My issue with Python 3 isn't that it broke backwards compatibility. It's that its the new Unicode model is unrealistic and has some significant drawbacks over Python 2 which make it frustrating to write code in and in some cases impossible. And meanwhile new exciting features are not in Python 2, but in Python 3, which I can't use.

So I feel like I'm excluded from the Python community, and my voice isn't heard, and everything sexy and exciting is stuff I can't use, and that's very frustrating.

If all it was was print to print() and cleaning up and PEP8-ifying the stdlib, then I wouldn't have minded so much.

Ericadia
Oct 31, 2007

Not A Unicorn

Suspicious Dish posted:

My issue with Python 3 isn't that it broke backwards compatibility. It's that its the new Unicode model is unrealistic and has some significant drawbacks over Python 2 which make it frustrating to write code in and in some cases impossible.
I'm inexperienced with python but I'm genuinely curious if you could expand on this. I'm just trying to understand the significance of this change.

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Ericadia posted:

I'm inexperienced with python but I'm genuinely curious if you could expand on this. I'm just trying to understand the significance of this change.
there have been about a million words written on this, and most of them are right here

http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
It assumes that all human text can be transformed legally into Unicode somehow, and that bytestrings are basically efficient giant arrays of numbers. Useful string functions like "split", "replace", and basically everything you're used to is not in a bytestring.

Additionally, the two should never ever be combined ever.

This breaks down if I want to make, oh, an HTTP server that serves binary data. Because now I have human text (headers) that would be really convenient to modify with all the string functions, and at the end I slap on binary data.

In 3.0, they were so strong as to say that you couldn't concatenate one bytestring to another. This means that you would have to 1. decode the binary data with some lossless decoding (iso-latin-1 is the usual pick), even if it's not actually that data, 2. build the headers as a Unicode string, 3. combine the two together, 4. encode as latin-1.

This is even worse if you want to combine binary data and UTF-8. In that case you encode the Unicode data as UTF-8, decode as latin-1, and then combine with your binary data, decoded as latin-1, and then concat and encode the entire thing as latin-1.

I think they allowed concatenation of bytestrings after I opened an angry bug report about that.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
I also highly recommend you read through the Python Core developers trying to make their lovely Unicode-only model work and fail at it in this bug report: http://bugs.python.org/issue3982

qntm
Jun 17, 2009

Suspicious Dish posted:

Useful string functions like "split", "replace", and basically everything you're used to is not in a bytestring.

in what version of python 3 were these methods absent? all the documentation I can find has them there

Vanadium
Jan 8, 2005

Suspicious Dish posted:

I primarily work on C and JavaScript codebases now. Some other people use Rust

tell us more imo

Shaggar
Apr 26, 2006
The reason java community projects are so much better than other languages is that they're written by real programmers who actually program for a living. The contract is "hey, we're all in this industry together so lets make the tools not poo poo together". This is how you get real companies to contribute. redhate and ibm publish their internal tools. you also have smaller companies who build consulting businesses for their free products that everyone uses (ex: sonatype). Professionals use the tools and then contribute patches and components back to the professionals that manage the tools.


whereas in a plang its "hey, I did this library for a homework assignment so maybe it will be useful to you" and then people use it and get frustrated by the lack of features in this homework assignment library. the original dev doesn't care about fixes cause hes done w/ it. most plangers are other students so they aren't gonna contribute even if they understood how to do it. so they rewrite their own version and also publish that and the cycle continues. to make matters worse, bad version "control" systems like git encourage this fragmentation

Then someone complains cause their library that contains 10 years of collected homework assignments isn't gonna be supported by the next version of plang.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
com.shaggar.interfaces.IPostFactory
com.shaggar.impl.ShitPostFactory

Shaggar
Apr 26, 2006
and then the planger gets out of school and tries to reuse the plang irl and it doesn't work or they get told to use a real language and they try to reimplement their bad plang development practices there.

karms
Jan 22, 2006

by Nyc_Tattoo
Yam Slacker
*conviently forgets the massive amount of cs "young professionals" only knowing java*

Shaggar
Apr 26, 2006
I wish young grads only knew java. it would mean way less to have to unteach them

Shaggar
Apr 26, 2006
not that academic java isn't bad, its just way less worse than planging

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

tef posted:

1. comparing the work done with python to java and c# is a bit unfair given the budgets involved

who cares? it's not like my customers are going to say "oh, it's ok that it took longer, people didn't fund your language very well".

but if I gave you $1M to improve python backwards compat, what would you spend it on? I haven't heard anyone from the python camp saying "we can't afford to make 3 compatible", but rather "we don't want to make 3 compatible, and we don't want anyone to maintain 2.x". it's not an operational issue, but rather a philosophical one.

(if people aren't allowed to complain about something they get for free, some people owe me apologies)

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

1. comparing the work done with python to java and c# is a bit unfair given the budgets involved

python has a benevolent dictator for life who works for google and rejects ideas by fiat

java is managed by a community-based bureaucracy that evaluates ideas based on every metric you can imagine and prefers open source reference implementations

gee i wonder why one has huge budgets and participation from major computer vendors and the other is a toy language for academics and literal children

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
Isn't the Java board controlled almost entirely by Oracle now? And that means that they can finally implement new features like lambdas without bikeshedding over it for five years? Java the language stagnated when it got the board.

Notorious b.s.d.
Jan 25, 2003

by Reene

Suspicious Dish posted:

Isn't the Java board controlled almost entirely by Oracle now?

nope

orcl has two exec committee members just like any other vendor

Suspicious Dish posted:

And that means that they can finally implement new features like lambdas without bikeshedding over it for five years? Java the language stagnated when it got the board.

no

bikeshedding over it for a few years was the right choice

Notorious b.s.d.
Jan 25, 2003

by Reene
oracle has some ways to bully the jcp and the executive committee:
  • they own the Java trademarks outright
  • the tck, the golden master to define what is Java TM, is still restrictively licensed

but they don't. it's not in oracle's best interest to bully their partners. it's way the gently caress better to have ibm and red hat inside the tent pissing out

the process is genuinely open. small vendors, even individuals, have managed to put together JEPs/JSRs. every enhancement to java, even oracle-originated changes, passes through the JCP

if you have an idea and it's not loving stupid and you can convince some other representatives, you can get it into mainline java SE. the only "catch" is that you have to do the work up front and you can still get ignored later down the line

Brain Candy
May 18, 2006

oic, instead of making strings into (encoding,bytes) like everyone else who isn't a moron, python3 took the dumb assumption that everything ASCII and replaced it with dumb assumption that everything is UTF-8

:eng99:

brap
Aug 23, 2004

Grimey Drawer
java 8 and onward is getting nice new things, not that android devs will ever get them.

the best teaching languages are not the best real world languages. I wouldn't develop real poo poo for clients in Racket but it's one of the best for teaching students how to design programs, to develop intuition for dividing up a task into testable functions and good testing habits and poo poo. it keeps you focused on things you understand and have control over instead of "public static void main(String[] args)" and writing getters and setters for your loving Dog class

MononcQc
May 29, 2007

Notorious b.s.d. posted:

oracle has some ways to bully the jcp and the executive committee:
  • they own the Java trademarks outright
  • the tck, the golden master to define what is Java TM, is still restrictively licensed

but they don't. it's not in oracle's best interest to bully their partners. it's way the gently caress better to have ibm and red hat inside the tent pissing out

the process is genuinely open. small vendors, even individuals, have managed to put together JEPs/JSRs. every enhancement to java, even oracle-originated changes, passes through the JCP

if you have an idea and it's not loving stupid and you can convince some other representatives, you can get it into mainline java SE. the only "catch" is that you have to do the work up front and you can still get ignored later down the line

are the 0-days part of that process

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Brain Candy posted:

oic, instead of making strings into (encoding,bytes) like everyone else who isn't a moron, python3 took the dumb assumption that everything ASCII and replaced it with dumb assumption that everything is UTF-8

:eng99:

Well, "everything is Unicode". It's stored as UCS-4 internally, but you're never supposed to know that.

I actually much prefer Go's "everything is UTF-8, go crazy" to Python's "TEXT AND BINARY SHALL NEVER TOUCH OR THE WORLD SHALL IMPLODE"

Hed
Mar 31, 2004

Fun Shoe
I only tangentially interacted with the CS courses because I was EE/CompE, but every course I was in used C or Java. Are there really CS majors graduating who only learn python?

Shaggar
Apr 26, 2006

fleshweasel posted:

java 8 and onward is getting nice new things, not that android devs will ever get them.

the best teaching languages are not the best real world languages. I wouldn't develop real poo poo for clients in Racket but it's one of the best for teaching students how to design programs, to develop intuition for dividing up a task into testable functions and good testing habits and poo poo. it keeps you focused on things you understand and have control over instead of "public static void main(String[] args)" and writing getters and setters for your loving Dog class

python is a bad teaching language because it teaches you nothing that's useful in the real world. atleast with java you get exposed to real features + tools by proximity.


Hed posted:

I only tangentially interacted with the CS courses because I was EE/CompE, but every course I was in used C or Java. Are there really CS majors graduating who only learn python?

yeah and their garbage.

Notorious b.s.d.
Jan 25, 2003

by Reene

Shaggar posted:

atleast with java you get exposed to real features + tools by proximity.

if only this were true

afaict most cs grads hate java because they were using eclipse 1.0 to complete "labs" and then never touched again

six months later, they discover ruby. "look what i can do with method_missing!!!!"

Notorious b.s.d.
Jan 25, 2003

by Reene

fleshweasel posted:

java 8 and onward is getting nice new things, not that android devs will ever get them.

google were the assholes who forked the language to save a few bucks but avoid the cddl

this is exactly the same situation as the msjvm

Adbot
ADBOT LOVES YOU

MononcQc
May 29, 2007

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply