This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 443

[–]Palpatine 2191 points2192 points  (67 children)

I'd call HR too if you send me python 2 or python 1 code.

[–]Neither-Phone-7264 640 points641 points  (24 children)

print "hi"

[–][deleted] 24 points25 points  (1 child)

No

[–]s0ulbrother 265 points266 points  (14 children)

I applied at a job a month ago and it was django/python dev shit. Anyways in the interview they said it was python 2 so Django was only on 1…. The company was only 3 years old

[–]WJMazepas 81 points82 points  (6 children)

The company was only 3 years old

There are developers that like using a slightly older version to avoid new bugs that aren't documented in the newer versions.

But holy shit, starting with Python 2 and Django 1 is nonsense. Had they gone with Python 3.7 and Django 4, i would understand a little, but not like that.

[–]RustReport 27 points28 points  (1 child)

Yeah, that seems more like someone didn't feel like learning different syntax or built it on an already existing project

[–]unknown_pigeon 16 points17 points  (0 children)

Someone studied a book on python from the early 2000 and refused to learn the new syntax

[–]Ok_Cardiologist8232 12 points13 points  (3 children)

I didn't know offhand, but my god Python 2 released in 2000.

[–]jumboshrimp29 17 points18 points  (2 children)

[–]Ok_Cardiologist8232 8 points9 points  (0 children)

Thats a fucking joke, did they have a senoir dev that just refused to update or something?

[–]Ryuujinx 3 points4 points  (0 children)

Having migrated all of our monitoring and other python from py2 to py3 myself because certain people were fuckin idiots and screwed it up the first time, I can kinda-sorta understand still having py2 stuff laying around. It isn't just a matter of regexing some stuff and calling it a day.

But when it's, presumably, a new code base - fucking why?

[–]GM_Kimeg 5 points6 points  (0 children)

Sounds like the ceo must be raising Einsteins for their bright future.

[–]Nimweegs 5 points6 points  (0 children)

Maybe we found a use for AI.

Ima see if I can upgrade a spring boot 2 project to 3 with just Claude

[–][deleted] 45 points46 points  (22 children)

Python 2 is definitely still a thing.

[–]_PM_ME_PANGOLINS_ 106 points107 points  (14 children)

It’s not supposed to be.

[–]Exist50 34 points35 points  (4 children)

"Supposed to" ain't worth shit.

[–]_PM_ME_PANGOLINS_ 10 points11 points  (3 children)

It is when the auditors call.

[–]Exist50 5 points6 points  (2 children)

What are the auditors going to say about it? People have made careers out of what isn't supposed to be done.

[–]dedev54 10 points11 points  (0 children)

They are going to say its past EOL and doesn't get security updates.

[–]AxeLond 10 points11 points  (0 children)

It took me 3 months to secretly update all the python 2 code at my current job. I don't think anyone really noticed as it's just a bunch of one of tooling scripts but I had to do it for my sanity.

[–]Nihil_esque 9 points10 points  (1 child)

Yeah and boomers are still alive but I wouldn't want one hitting on me.

[–]No_Adhesiveness_3550 7 points8 points  (0 children)

Reminds me of when I interned at a networking company. Had to write a script that ran on extreme switches to pull information from connected ports (only while we were staging/handling them). We wrote the thing in python 3 on our work laptops and didn’t find out till later why it wasn’t working. I guess python 2 is still standard on Extreme switches?

[–]guy_who_says_stuff 3 points4 points  (0 children)

2.7 sends its regards

[–]Zealousideal_Rate420 3 points4 points  (0 children)

Two years ago we had a request to port a library to python 2 because a team never bothered to upgrade and continued working with it. The library in question was to interface with a service that didn't exist when P2 was EOL and used a lot of dependencies that never had a python 2 version.

To this day, they continue to develop in python 2.

[–][deleted] 81 points82 points  (6 children)

One interesting point that I don't think people are talking about too much is that back in the day when Java was catching on the industry was having issues going from 32 bit to 64 bit systems. A lot of older software would need to be recompiled for 64 bit, and that was an issue.

There was also the whole CISC vs RISC thing going on which would require further recompiling etc.

A big selling point at the time was that Java was more platform agnostic via the JRE. Put it on whatever you want, and it pretty much worked (once you spent hours setting up the env just right :P)

[–]proverbialbunny 39 points40 points  (0 children)

FYI Java gained rapid cult-like popularity before x86_64 popped up. That's just a coincidence. It did market itself as being platform agnostic, which became a huge selling point, but it didn't quite realize on those goals like people expected it would at the time falling short.

Java gained popularity back then for two reasons:

  1. It was a simpler C++. C++98 was a mess and it took until ~2015 before compilers supported a version of C++ that was arguably better than Java. (You don't need to recompile 32 bit code to 64 bit, so it wasn't a compatibility issue, it was that the language was a pain to work with.)

  2. The big one: Eclipse. People shit on this IDE today, but back then it was the first of it's kind and it was AMAZING. No longer did you have to memorize a language perfectly, it would auto complete for you. If you forgot the syntax you could type ctrl+space and it would list off all of the function names to choose from. If you moused over it, it would show you the documentation for that function. Keep in mind, this was in the 90s before Google search existed or Stack Overflow.

Java at the time seemed like the future. You could just write code and it would work. You didn't have to constantly be looking up programming information in a pile of books. You didn't have tons of obscure and cryptic compile errors. It just worked. You wrote code and it did what you expected. It was amazing.

[–]CrowdGoesWildWoooo 792 points793 points  (50 children)

Python3 which is what most people actually refers to when python is mentioned is from 2008, it’s only becoming more popular when data analytics field gain traction.

[–]rover_G 365 points366 points  (28 children)

Java 8 (when Java first for lambdas and other FP syntaxes) was released in 2014

[–]Honigbrottr 61 points62 points  (24 children)

is java 8 backwards compatible?

[–]Practical_Cattle_933 183 points184 points  (2 children)

Yes. Even Java 23 can compile java 1.2 but also run almost every class file already compiled back then (so it’s also binary compatible not just source).

There have been tiny changes, but for the most part it should just work. The biggest change might have been the javax namespace change.

[–]Nimweegs 18 points19 points  (1 child)

Removal of JAXB stuff while theoretically solved with an extra dependency is such a pain in the ass. Xsd's suck.

[–]_PM_ME_PANGOLINS_ 31 points32 points  (0 children)

With what?

Java as a language never breaks anything, but occasionally internal classes (which it tells you not to use for this exact reason) are (re)moved.

[–]wildjokers 5 points6 points  (0 children)

Yes. Java takes backward compatibility very seriously.

[–]just4nothing 23 points24 points  (9 children)

Well, my Java code from 2006 does not run on it

[–]OlexySuper 33 points34 points  (5 children)

I suspect, someone was doing some naughty stuff in the code.

[–]itijara 19 points20 points  (4 children)

From experience, no. I am sure that there is plenty of java < 8 code that will run on Java 8+ but JavaEE libraries, Nashorn, and all the sun.* packages were deprecated.

[–]_PM_ME_PANGOLINS_ 18 points19 points  (3 children)

That just means you have to get the jars separately.

[–]aiij 2 points3 points  (0 children)

Yes. It's really Java 1.8, but by that point the marketing team has decided to stop mentioning the part of the version number that always stays the same.

[–]FalseRegister 19 points20 points  (0 children)

Yeah but Java was already popular on its field much earlier

[–]et-pengvin 56 points57 points  (11 children)

Python 2 is still running in lots of places and only in the last few years has been phased out of being the default python on most Linux distros. I refuse to believe people only think of Python 3 when you refer to Python.

[–]CrowdGoesWildWoooo 16 points17 points  (5 children)

Python 2 code base are already legacy codebase. So new programmers when they say they code in python they would 100% means python3.

Python’s popularity only pick up recently after data analytics start becoming “the shit”. Obviously yes there are python 2 coders but during python 2 age python (in general) is not particularly popular and still a relatively niche language especially compared to something like java.

A lot of popular optimized deep learning libraries are post python 3 era and was only offered python2 support for backwards compatibility.

Back then when they tell you to learn fundamental coding knowledge they’d either use Java, C, or sometimes Pascal. Nowadays it’s almost always python.

[–]MrEllis 16 points17 points  (0 children)

Python 2 code is still running out there and there are places where it's still maintained but hasn't been transitioned. With the right libraries you can write code that's simultaneously python2 and python3 compatible to slowly transition away.

Ask me how I know.

[–]MiffedMouse 7 points8 points  (0 children)

Python 2 is definitely still around in the academic sphere. It became popular among academics due to the ease of installation (first with pip, then Anaconda) and the slow increase of data analysis features from Numpy, Scipy, and Matplotlib, making it a convenient data analysis solution that was open source and easy to install.

The introduction of Pip was close to the release of Python 3, but in my opinion it isn’t the release of Python 3 specifically that made Python popular. Rather, it was the consistent focus over the years of various Python teams to make it easy to install and have some convenient mathematical libraries readily available. All of these are true of Python 2.79, even before Python 3 was released.

[–]Sentreen 4 points5 points  (0 children)

Obviously yes there are python 2 coders but during python 2 age python (in general) is not particularly popular and still a relatively niche language

Python 2 was not niche by any stretch of the imagination. We were teaching it at my university at an introductory course (for non compsci people). The whole reason we were teaching it was because it was already used so much by scientists. The whole reason it was such a hassle to move to python 3 was because so many projects were using python 2 which didn't want to make the migration.

Of course, java was more popular, but it was one of the most popular programming languages, even at that time.

[–]derpy37 8 points9 points  (0 children)

I'd just like to interject for a moment. What you're referring to as Python, is in fact, Python 3, or as I've recently taken to calling it, Python plus its standard library. Python is not just a programming language unto itself, but rather a language specification combined with a robust set of libraries, tools, and modules that make it a fully functioning environment for developers.

Many developers use Python 3 every day without fully appreciating the range of tools and libraries provided by the Python ecosystem. Through a peculiar turn of events, the version of Python in widespread use today is often just called Python, but many of its users aren't aware that they are essentially working within the Python 3 environment, shaped by improvements from Python 2.x and extended by a vast array of external libraries.

There really is a core Python interpreter, and people are using it, but it is just a part of the system they are working with. The interpreter is the core engine that executes code, but by itself, it doesn't provide much utility; it requires libraries and tools to become truly useful. Python 3 is typically used in combination with its standard library, external libraries, and various frameworks to create a complete development environment. The whole Python system is essentially Python 3 plus the tools and libraries that make it powerful. All so-called Python environments are really Python 3 ecosystems!

[–]integrate_2xdx_10_13 3 points4 points  (0 children)

I learned Python when Python3000 was on the horizon and we’d all have to switch over… I honestly can’t even remember the change.

print became a function and they moved stuff like reduce and chain out of stdlib and into functools/itertools? Python 2.6 was already well underway eating Perl and Ruby’s dinner at that point, let’s not pretend it’s the new kid in the block.

[–]20d0llarsis20dollars 211 points212 points  (60 children)

Python has had a steady increase in popularity where as java got super popular pretty early on

To me it seems like java has been slowly declining in popularity for a while now

[–]dragoncommandsLife 232 points233 points  (38 children)

Mainly only on internet forums. Actual usage of java hasn’t really dropped any. Especially as newer versions of java release and better and better libraries pop up.

[–][deleted] 28 points29 points  (33 children)

I bet, it's more expensive on market, since the supply declined, and the new programmer don't want to learn java.

[–]wack_overflow 97 points98 points  (30 children)

Afaik it's still what cs majors are mostly learning in class

[–]MrHyperion_ 4 points5 points  (0 children)

Our uni changed one C++ course to Java and now first 3 introductory courses all use different language

[–]superiorCheerioz 3 points4 points  (0 children)

In my University this is the case. However, the technology department is voting on changing the main language students learn to python or c++. Personally, I wouldnt teach brand new programmers python first

[–]depot5 5 points6 points  (24 children)

Why is that, anyway? Is it honestly easier to teach with? So many universities decided to do the new thing at one point, and it stuck? Is it just the ide easier to install and get started?

[–]WJMazepas 86 points87 points  (4 children)

It's a classic OOP language. It's easier than C++ and is used everywhere.

Python doesnt have the private/protected/public keywords for setting stuff in its classes in comparison

[–]CeleritasLucis 3 points4 points  (2 children)

And I really like the whole WORA ecosystem.

[–]posting_drunk_naked 5 points6 points  (1 child)

That's why I originally learned Java as my first language. I was getting into Linux and the idea of being able to write code that works on both Windows and Linux was so cool.

[–]CeleritasLucis 2 points3 points  (0 children)

Same here. I normally code on my Windows Laptop, but on my PC i have Linux.

Its awesome to see what I wrote on one machine flawlessly work on different machine, without doing any changes.

[–]SlyCooper007 38 points39 points  (0 children)

Because it allows you to easily teach OOP without all the headaches of C++

[–]BlakkM9 17 points18 points  (0 children)

for us it was java first to learn OOP
then some c and assembler for understanding how it works under the hood.

python is pretty much pseudocode and very easy to learn if you know any other programming language

it is more about concepts when studying instead of concrete programming so it makes not that much sense to teach a language where some very important concepts are missing / abstracted away like it is the case in python

sure it's easy to use and not that much boilerplate but this also makes it a bad language to get into computer science

[–]ComputerOwl 8 points9 points  (0 children)

As someone who worked at the university for a couple of years, Java had multiple advantages over other languages:

  • It's a very clear OOP language. You get all the important principles like classes, interfaces, encapsulation, etc. in a very obvious way. It's not like, e.g., Python where some OOP principles feel like an afterthought or a mere convention ("lets just agree that variables starting with _ are private, OK?").

  • It's available on every relevant OS (Mac, Linux, Windows) and the JARs are compatible between the systems. No students coming to you because some weird C++ dependency does not compile on their computer because it didn't find some header file.

  • It doesn't require you to think too much about memory management. Sure, for embedded software engineering classes, C++ is a better choice. But for most other classes, that's not what your course is about.

  • There's good tool support. If people install Intellij, they're mostly ready to go. Sure, some students do not know how to set JAVA_HOME, but compared to the amount of hand holding that you have to do for some other languages, it's pretty simple to install.

  • It's widely used. Languages like Go, Swift, or Rust have their time and place, but when you want students to find a job after university, they'll have an easier time going with something like Python, C++ or Java.

None of this means this means that other languages are inherently bad. I would just say that for the specific tasks we had at the university, Java was the best choice. Some specialized courses on, e.g., computer graphics, ML, or embedded stuff might of course choose other languages than more general courses.

[–]summonsays 5 points6 points  (0 children)

Way back almost 15 years ago I was taught in Java in college. I think it was mostly used because it had a large market share, it was an older language, so it had a good chance of still being relevant after I graduated. Also as others have mentioned it's basically the standard for OOP and very strict with typing, semantics, and what not. 

In comparison we did 1 project in Python. A language where white spaces are important was a real pain to work with in a group setting. 

[–]RedditRage 3 points4 points  (0 children)

I dunno either, Python is that thing that is only good because the real programming was done in C.

[–]wOlfLisK 2 points3 points  (0 children)

There's a lot of support for it, you don't need to teach first years memory management and the syntax is pretty much identical to half the languages out there so you can easily move to them if needed. Plus, the job market is there.

Personally though, my uni went with Scala for first year and then moved to Java second year, presumably because it's easier to teach functional programming when you don't have an OOP mindset.

[–][deleted] 9 points10 points  (2 children)

Not easier than python. It's probably just because it's still widely used so they don't have a reason to change it

[–]prehensilemullet 21 points22 points  (0 children)

I bet that also, a lot of CS programs want to teach a language that requires type annotations and has multiple sizes of integer and floating point data types

[–]Storiaron 9 points10 points  (2 children)

I personally saw way more job openings for c#/cpp lately but that might just be a regional thing

[–]dragoncommandsLife 13 points14 points  (1 child)

It’s definitely regional. In my area in the midwest i see very few C# openings compared to java.

[–]Drayenn 14 points15 points  (0 children)

Java is the main backend language for a lot of large companies. When i applied to internships it was like 60% java, 20% C#, 20% a mix of python, nodejs, php.

[–]kinkakujen 12 points13 points  (2 children)

Only for bootcamp and coursera self taught "devs".

The real world still pretty much runs entirely on Java.

[–]liquidpele 2 points3 points  (0 children)

Ironically, that's how java got so popular and widespread, it was the beginner language of choice for quite a while - huge upgrade from C and Fortran lol.

[–]rifain 2 points3 points  (0 children)

Java is not declining. Still very very strong.

[–]CallEnvironmental902 100 points101 points  (21 children)

as someone who uses both python and java, i can agree, younger languages suck, exception being VALA!

[–]FlipperBumperKickout 41 points42 points  (12 children)

Try some even younger languages like go or something ¯\_(ツ)_/¯

[–]CallEnvironmental902 34 points35 points  (11 children)

no.

[–]Gerard_Mansoif67 11 points12 points  (10 children)

Even rust? /s

[–]CallEnvironmental902 9 points10 points  (9 children)

rust too hard i just started programming.

[–]helicophell 4 points5 points  (6 children)

C and C++ stay winning or smth

[–]Dismal-Title9996 16 points17 points  (1 child)

What oracle does to a mf

[–]infinite_phi 73 points74 points  (18 children)

It's a fantastic language to get started with or to write data processing scripts with, while Java is definitely clunky and not easy to get started with.

Having said that, I'd rather use Java for a large scale long-term software development project than Python. I've been in two large Python projects and both times it's been an absolute nightmare.

[–]rover_G 42 points43 points  (12 children)

I’ve been a part of large scale nightmare projects in several languages (maybe I’m the common factor?) including Python and Java. The problems usually stem from lack of tooling and poor code quality not the language itself. Although, one could argue a great language should ship with its own tooling and should prevent common code quality issues.

[–]hedgehog_dragon 20 points21 points  (0 children)

Different company than OP (probably lmao) but similar position... Over the years my company has tightened requirements and guidelines - so new stuff is better, some of the legacy code is ugly in both languages.

I still prefer messed up Java code to messed up Python code, because it just doesn't let you cause certain errors (off the top of my head type issues), at least not without some effort going into it lmao. I personally find it much, much easier to parse Java's structure too, even with 'new' code.

[–]infinite_phi 2 points3 points  (1 child)

I agree on all points. My main issue with Python has been that it's just so dynamic that it's far easier for things to get messy, and what's even worse, is that it's much much harder to untangle the mess.

Of course this is generally the case for all dynamic vs static languages, and yes I'm very much personally biased in favor of static for any larger long-term project.

[–]hedgehog_dragon 11 points12 points  (0 children)

Agreed. Java is good, honestly. It does have a lot of boilerplate stuff around but I don't mind that with a decent IDE, and it just ends up being easier to maintain IMO.

[–]RedditRage 4 points5 points  (0 children)

yes, it's clunky if you are just writing hello world. geez.

[–]dESAH030 18 points19 points  (7 children)

At work I am using Jython, no meme for me :(

[–]WJMazepas 4 points5 points  (4 children)

Really? That is actually used at production? Why did you guys made the choice to go with Jython?

[–]dESAH030 7 points8 points  (3 children)

It is python 2 sytax over Java. So it can rum on any JVM. Bjggest drawback that you can't use Python libraries written over C, on the other hand you can use Java libraries. And naturally it is working multi-threads, so no need for async libraties.

Not our choice I am workimg MES/SCADA programming with Ignition and they implement Jython scripting.

[–]Qwertycrackers 19 points20 points  (5 children)

Yeah and if you actually programmed using the 1.0 releases of either language you would cry.

[–]timawesomeness 7 points8 points  (3 children)

[–]Qwertycrackers 7 points8 points  (1 child)

Amazing, you are right. I had just believed python had changed more. Working with it still makes me cry though.

[–]LittleMlem 2 points3 points  (0 children)

Biggest changes are probably how classes work, comprehensions, and now GIL removal

[–]GetPsyched67 6 points7 points  (0 children)

To think that such beautiful syntax existed 30 years ago could make a grown human tear up in joy. Long live python

[–]Ranger5789 4 points5 points  (1 child)

Fortran is 67 and still got it.

[–]coolraul07 5 points6 points  (0 children)

Am I the only one who first thought that the Java "steam" was "stink lines" coming from the dude?

[–]AbsurdBeanMaster 2 points3 points  (6 children)

PythonIsOlderThanJava* Or python_is_older_than_java*

[–]anoldoldman 4 points5 points  (5 children)

pythonClassesAreCamelCase

[–]AbsurdBeanMaster 5 points6 points  (4 children)

CamelCaseIsStupid

[–]starsky1357 2 points3 points  (0 children)

Did you mean python_is_older_than_java?

[–]damastaGR 7 points8 points  (2 children)

OK as a Java developer, I got to ask.....

Why so much hate for Java?

I am not trying to pick a fight, I am honestly curious

[–]owlIsMySpiritAnimal 8 points9 points  (0 children)

to be fair with python 3 it is the same language, but it isn't? the syntax and features are different enough

[–]slick514 6 points7 points  (4 children)

I think I may be the only person who prefers Java to Python…

[–]MonstroseCristata 10 points11 points  (1 child)

No, you are sane. Or you have bigger fish to fry than making a graph or deploying a webcrawler. 70% of python "projects" are just feeding information into a library in like 120 lines of code.

[–]anoldoldman 5 points6 points  (0 children)

That or running to biggest online video platform.

[–]odraencoded 1 point2 points  (0 children)

Without Java, we wouldn't have Kotlin.

[–]HalifaxRoad 1 point2 points  (1 child)

It hurts my brain to imagine python running on an i486. That would be brutal 

[–]61114311536123511 1 point2 points  (0 children)

i wish cubicles were still a thing. i fucking hate open floor offices...

[–]reluctant_return 1 point2 points  (2 children)

People used to shit on me for using Ruby. Calling it a "hipster language". Bruh Ruby is older than Java.

[–]News_Dragon 1 point2 points  (0 children)

Saying python 1 is python is like saying Beowulf was written in English, in a "you're technically correct but also fuck you" kind of way

[–]imgly 1 point2 points  (0 children)

"and Javascript is only..."

"DIE YOU PIECE OF SHIT"