|
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
|
# ? Sep 14, 2014 17:29 |
|
|
# ? Jun 11, 2024 05:12 |
|
Cybernetic Vermin posted:a short summary for those not reading all the above, tef has the rather strikingly convincing arguments: 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
|
# ? Sep 14, 2014 17:36 |
|
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.
|
# ? Sep 14, 2014 17:37 |
|
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)
|
# ? Sep 14, 2014 17:38 |
|
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. 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 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
|
# ? Sep 14, 2014 17:43 |
|
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?
|
# ? Sep 14, 2014 17:44 |
|
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
|
# ? Sep 14, 2014 17:45 |
|
tef posted:i wonder if this is a hangup from that core and true american belief "the customer is always right". 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.
|
# ? Sep 14, 2014 17:50 |
|
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
|
# ? Sep 14, 2014 17:55 |
|
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.
|
# ? Sep 14, 2014 17:58 |
|
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.
|
# ? Sep 14, 2014 18:01 |
|
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.
|
# ? Sep 14, 2014 18:01 |
|
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.
|
# ? Sep 14, 2014 18:03 |
|
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.
|
# ? Sep 14, 2014 18:29 |
|
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.
|
# ? Sep 14, 2014 18:43 |
|
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. http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html
|
# ? Sep 14, 2014 18:45 |
|
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.
|
# ? Sep 14, 2014 18:51 |
|
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
|
# ? Sep 14, 2014 18:52 |
|
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
|
# ? Sep 14, 2014 19:27 |
|
Suspicious Dish posted:I primarily work on C and JavaScript codebases now. Some other people use Rust tell us more imo
|
# ? Sep 14, 2014 19:28 |
|
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.
|
# ? Sep 14, 2014 19:38 |
|
com.shaggar.interfaces.IPostFactory com.shaggar.impl.ShitPostFactory
|
# ? Sep 14, 2014 19:43 |
|
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.
|
# ? Sep 14, 2014 19:46 |
|
*conviently forgets the massive amount of cs "young professionals" only knowing java*
|
# ? Sep 14, 2014 20:24 |
|
I wish young grads only knew java. it would mean way less to have to unteach them
|
# ? Sep 14, 2014 20:27 |
|
not that academic java isn't bad, its just way less worse than planging
|
# ? Sep 14, 2014 20:28 |
|
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)
|
# ? Sep 14, 2014 20:34 |
|
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
|
# ? Sep 14, 2014 20:41 |
|
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.
|
# ? Sep 14, 2014 20:44 |
|
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
|
# ? Sep 14, 2014 20:51 |
|
oracle has some ways to bully the jcp and the executive committee:
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
|
# ? Sep 14, 2014 20:54 |
|
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
|
# ? Sep 14, 2014 21:01 |
|
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
|
# ? Sep 14, 2014 21:02 |
|
Notorious b.s.d. posted:oracle has some ways to bully the jcp and the executive committee: are the 0-days part of that process
|
# ? Sep 14, 2014 21:05 |
|
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 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"
|
# ? Sep 14, 2014 21:09 |
|
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?
|
# ? Sep 14, 2014 21:09 |
|
fleshweasel posted:java 8 and onward is getting nice new things, not that android devs will ever get them. 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.
|
# ? Sep 14, 2014 21:12 |
|
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!!!!"
|
# ? Sep 14, 2014 21:17 |
|
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
|
# ? Sep 14, 2014 21:18 |
|
|
# ? Jun 11, 2024 05:12 |
|
|
# ? Sep 14, 2014 21:19 |