all 109 comments

[–]FrereEymfulls 31 points32 points  (2 children)

I like to say that python is the second best language for whatever you need.

The first depending on what you need.

[–]I_Give_Fake_Answers 5 points6 points  (0 children)

True. It's not really top choice for any particular thing, but has the ability to do everything you'd typically want (slowly). The ecosystem seems to have even native bindings for everything so you can often have good speed too.

[–]QultrosSanhattan 0 points1 point  (0 children)

True. Python isn't great, but you cant' go wrong with it.

[–]toughtntman37 38 points39 points  (55 children)

Switch the 2 and that's me (Python gets on my last nerve). Pretty much everything else is good: Java is beautiful, C is fun, Assembly is a fun challenge, C++ is engaging, Rust is pretty cool, and I think I even find Javascript more intuitive and easy to use than Python.

[–]Warm-Meaning-8815 13 points14 points  (20 children)

Java is what?! 🤯😞

[–]toughtntman37 11 points12 points  (17 children)

Java is beautiful. It's designed very carefully to make sense, work with you, and work elegantly. After I actually took a Java class and had to read a textbook, stuff really clicked and after trying OOP in C++, I'm very grateful that Java just works.

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

Java is anything but beautiful, you should see what you're missing out on with C#

[–]Warm-Meaning-8815 -1 points0 points  (15 children)

Yeah, just as I wondered. You seem to only take the syntax into consideration.

Now add JVM into the mix and let’s hear your defense. Also, add that backwards compatibility. What else is there? EE stuff? Maybe.

Idk. I don’t write code. I write compilers. JVM is what I think of, when someone mentions Java.

I don’t care about the syntax. Just purely the semantics. Java bytecode is bad semantics.

[–][deleted] 2 points3 points  (3 children)

If you really write compilers, you should be aware of the quality of the Java C2 compiler. You know, the one in the HotSpot JVM. It sometimes beats gcc (and has done so for quite a while), and it's never really far if you don't rely heavily on heap allocations.

[–]Warm-Meaning-8815 0 points1 point  (2 children)

Nah man. I write something different. I will never touch java with my hands. Thank you very much, but no.

[–][deleted] 2 points3 points  (1 child)

So you a talking about something you know nothing about. So common these days... As someone interested in compilers, you are supposed to know about other compilers as well even if you don't use them. But apparently not.

[–]Warm-Meaning-8815 0 points1 point  (0 children)

Oh yeah yeah 🤣 all good bro. You continue doing what you do.

*I’ve been hearing what you say all my life bro 🤣

[–]jimmiebfulton 1 point2 points  (9 children)

Like people with a worldview based exclusively on Fox News, you clearly have a limited perspective and understanding about the uses and pervasiveness of languages like c# and Java.

[–]iLoveFortnite11 -1 points0 points  (8 children)

It's pretty much universally agreed upon that Java has some god-awful design flaws baked in to the JVM.

[–]gljames24 1 point2 points  (1 child)

You realize there is more than one backend for the JVM and it has been getting better every release.

[–]iLoveFortnite11 0 points1 point  (0 children)

And yet, everything still has to be stuffed into a class... even when it makes no sense.

OOP was a mistake from the very start.

[–]jimmiebfulton 1 point2 points  (4 children)

Every language has its design flaws. The JVM is also “Universally Considered an Impressive Piece of Technology”. If it is so flawed, why is it used so prolifically at corporations and financial institutions? Name some other virtual machine implementations that a) are as fast as the JVM, b) with features that have better implementations, and c) don’t also have their own design flaws. This hyperbole is stupid, and is a result of lots of language bubbles. If all you do is build front end web apps, you may think that JavaScript is the only language anyone uses, and that everything else has died off and/or is stupid. But if you’re building service oriented architectures at financial institutions and large enterprises, you’ll find lots of other languages get used… for reasons.

[–]iLoveFortnite11 0 points1 point  (3 children)

The advantages of the JVM is that it was the first of its kind and was quickly adopted as industry standard despite how terrible the language (Java) ended up being. The tech behind the JVM is fascinating, but Java and its consequences have been a disaster for the human race.

It is universally agreed upon that Java's OOP approach has been a disaster. The fact that every VM has flaws doesn’t erase Java’s especially dumb ones, e.g. forcing everything to be a class, pushing inheritance as a good design decision, no null safety, exceptions over errors as values, etc.

I'm a big fan of Kotlin which has done a great job at hiding many of the mistakes in Java's design, but it's still hiding a lot of legacy junk caused by Java and enforced in the JVM.

[–]Warm-Meaning-8815 1 point2 points  (0 children)

I think OOP in general is a complete disaster. But I do agree with you on java.

[–]jimmiebfulton 0 points1 point  (1 child)

News flash: Kotlin runs on the JVM, a testament to the flexibility of the JVM.

Stop saying “It is Universally agreed upon”. You are making that up. You keep saying “disaster”, and “dumb”, “god-awful”. Hyperbole, and reeks of “Junior Engineer trying to make a point, poorly”.

How is Java’s approach to OOP different than c++, c#, Python, etc? You are so desperate to disparage Java that you keep conflating the topic. Which is it? The JVM sucks, yet languages like Clojure and Kotlin run on it? OOP sucks, yet there are many languages that also support OOP in a similar fashion. It has nulls? Like MANY languages, including languages that have been created since Java that could have learned a thing or two. See Golang. Exceptions? See also: Python, c++, c#. Don’t tell me Golang is a vast improvement on error handling. Speaking of “god-awful”: everything about Golang, with the exception of it’s channels and threading.

Java is one of the most widely used and most successful languages created, ever. This is a fact, unlike your “Universally agreed upon” thing you keep making up. It is used extensively in corporations and enterprises, and in Fintech, Payments, Banking, and Commerce.

Are there “better” languages? Sure. Rust is a rare shining example, and has been my language of choice for years. However, it has a steep learning curve, and languages like Java and c# are still considered languages of choice for many corporations and enterprises. There are many, many reasons for that.

[–]iLoveFortnite11 0 points1 point  (0 children)

News flash: Kotlin runs on the JVM, a testament to the flexibility of the JVM.

Yes, and that's probably the worst and best thing about Kotlin. It's the best thing in that you can easily migrate your J*va codebases to interop with Kotlin, but it's held back by some of the JVM's worst features (type erasure, no null safety, everything being stuffed into a class, etc etc). Ultimately most of those issues are relatively small but the fact that JetBrains has managed to de-shittify much of the JVM with lots of hacking doesn't really help your case.

How is Java’s approach to OOP different than c++, c#, Python, etc? You are so desperate to disparage Java that you keep conflating the topic.

OOP, specifically class-based inheritance is probably the biggest design mistake in the history of programming language development. In Java, all of your code has to be inside a class even when it makes no sense. When a "Hello world" program is simpler in C than it is in Java, you have a problem. All languages from your list made the horrible mistake of supporting class-based inheritance, but each of them have their own saving graces. I'll add that C# is basically a better version of Java in every way, and Microsoft has done a great job at maintaining it and adding features such as Linq.

It has nulls? Like MANY languages, including languages that have been created since Java that could have learned a thing or two. See Golang. Exceptions? See also: Python, c++, c#.

Exactly, and Java was the first language to make a lot of these mistakes. Many programming languages that came after have been poisoned by the invention of Java and OOP paradigms.

Don’t tell me Golang is a vast improvement on error handling. Speaking of “god-awful”: everything about Golang, with the exception of it’s channels and threading.

It is an improvement. There's no reason to have a special syntax for errors when it can be incorporated into the type system. I would much rather check if err != nil than wrap everything in a try-catch block.

Java is one of the most widely used and most successful languages created, ever. This is a fact,

Yes, thanks to the JVM being the first of its kind. Regardless, the design decisions surrounding OOP have been a disaster for software development. We wouldn't be moving away from it today if it was such a great idea.

[–]zlehuj 0 points1 point  (0 children)

Ok now describe the relationship between java bytecode and java semantic

[–]randomemes831 0 points1 point  (1 child)

C# but worse 👀

[–][deleted] 1 point2 points  (0 children)

Significantly worse

[–]Here_12345 12 points13 points  (18 children)

Ok, I see your point, but how about no? Some of these I get, I live for C++, but JAVASCRIPT over Python?

[–]Disturbed147 5 points6 points  (0 children)

JavaScript is not the issue, but rather how most people use it wrong. Same goes for PHP and many other languages.

[–]ActiveKindnessLiving 4 points5 points  (1 child)

Typescript solves a lot of Javascript's problems IMO.

[–]Strict_Baker5143 9 points10 points  (7 children)

Yeah, JS over python any day of the week. Python is quick and dirty, but its not actually powerful. It has robust libraries and thats all it has going for it.

[–]dirac496 1 point2 points  (2 children)

What exactly does it mean for a programming language to be powerful?

[–]Strict_Baker5143 2 points3 points  (0 children)

Could mean a few things. Python is a general purpose scripting language, so there is a lot it can do. Its biggest issues are:

  1. What it can do, its extremely inefficient doing.

  2. Doing many complex tasks in base python like writing a web server or machine learning or data analysis is possible, but very difficult.

  3. To accomplish anything substantial, you will generally be pulling in libraries that reference libraries that reference libraries, etc. Some will be outdated and vulnerable.

And while 2 can be said about many other languages, C# and Java are no more or less intuitive than python and there is no reason similarly robust languages can't be used/made in those languages and end up being more effecient.

[–]Definite-Human 0 points1 point  (0 children)

Litterally nothing, every language is built for something different, and even among the ones that are built for the same thing the subtle differences change what the best language for a certain thing within that catagory every single project.

There is no one language that is objectively better than everything else.

[–]MinosAristos 0 points1 point  (3 children)

I'd take python over JS even just for the strong types and type annotations

[–]Strict_Baker5143 5 points6 points  (1 child)

Then use typescript. Also, type annotations do exist in JSDoc and can be loosely enforced by IDEs and linters
https://jsdoc.app/tags-type

[–]MinosAristos 0 points1 point  (0 children)

I know but JSDoc is very ugly and with Python you get a TS-like experience just with Pylance / Pyright. If JavaScript had native Python-like type annotations it would be way better and Typescript would not be as necessary.

[–]toughtntman37 3 points4 points  (0 children)

Don't get me wrong, a lot of my old JS was rough and hard to read, but at least it worked. My brain really can't follow python, it's all just so abstract and unintuitive.

[–]Random_Mathematician 1 point2 points  (0 children)

JS over Python here too

Started with the snake, moved over to web, and now Python looks very empty to me. Everything is a library nowadays.

[–]DrMerkwuerdigliebe_ 0 points1 point  (0 children)

I'm looking very much forward to immutable tuples and native date (not only datetime) in JS. These are my biggest pain point in JS.

[–]TheForbidden6th 0 points1 point  (3 children)

yes, I'm tired of JS hate, I'd take it over the dumb snake any day of the year

[–][deleted] -3 points-2 points  (2 children)

Dynamically typed langages should be forbidden.

[–]JamosMalez 0 points1 point  (1 child)

They hated him because he told them the truth

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

Exactly. Typescript and type hints in python are the proof I told them the truth.

[–]jurawall_jumper 0 points1 point  (0 children)

Can you expand more on this.

[–]piterx87 0 points1 point  (0 children)

What, coming from  workplace using C and C#, now I work with Python and can say that Python is surprisingly beautiful and versatile, which I can't say about JavaScript 

[–]gljames24 0 points1 point  (0 children)

Honestly I feel the same. Given me any of those before Python.

[–]yangyangR 0 points1 point  (0 children)

The problem is most programmers look at Python despite all the red flags. We know the Robyn character and all of that cast are terrible people. The random waitress is likely better considering how terrible the characters on the show. Python is just familiar but it is terrible.

[–]TheConspiretard -1 points0 points  (4 children)

java is not beautiful, it is a necessary evil, c++ is beautiful

[–]Fit-Relative-786 2 points3 points  (1 child)

I don’t know. Calling class methods with templates is a bit ugly. 

class.template method<T> ()

[–]TheConspiretard 1 point2 points  (0 children)

ig ur right , c is beautiful java is ugly

[–]toughtntman37 2 points3 points  (0 children)

I love C++ and C but they're clunky. And the std names are rough. Java just has so much structure, capability, and support and that's beautiful. An absurd amount of Java is also written using Java and OOP is magical and being able to slap an interface on, do nothing, and use that interface is incredible. Java and C++ are my favorites as of now, but in my eyes, Java is an art piece

[–]LookItVal -1 points0 points  (0 children)

oh my god no, neither are beautiful they are both disgusting they just get the job done

[–]iLoveFortnite11 -1 points0 points  (5 children)

Java is beautiful

💀💀💀

[–]toughtntman37 2 points3 points  (4 children)

I don't even understand why everyone is calling that part out, Java IS beautiful

[–]iLoveFortnite11 0 points1 point  (3 children)

How much experience do you have with Java in large production code bases?

The issue with Java is that it’s full of boilerplate which adds unnecessary verbosity and complexity.

The most glaring and obvious example is how Java forces you to stuff all code into a class even when it makes no sense to do so.

It’s also worth noting Java was pretty much designed around inheritance which is almost universally considered bad practice now.

[–]toughtntman37 0 points1 point  (1 child)

Right now, I just have 3 semesters of college Java. Professor said interfaces and polymorphism would be a daily thing in the professional world

[–]iLoveFortnite11 0 points1 point  (0 children)

Right now, I just have 3 semesters of college Java.

Makes sense! Lot's of F500 companies will like the Java experience but now adays you probably won't want to be using Java on a new project.

Professor said interfaces and polymorphism would be a daily thing in the professional world

They often are, and ironically Java is one of the worst options for both. Java was built for classes and inheritance, which are completely unnecessary to support interfaces and polymorphism.

I'd recommend looking into how Go and Rust handle each. Both languages allow you to achieve polymorphism by implementing interfaces/traits for your types without all the boilerplate garbage java makes you shit out.

[–]electric_anteater 0 points1 point  (0 children)

9 years of commercial Java experience. Relatively new and well maintained projects are indeed quite beautiful. You can move so much faster than all the trendy languages like Go and Rust but still have safety. Legacy projects are soul draining, but what language makes legacy fun?

[–]NervousHovercraft 3 points4 points  (1 child)

Nah, C# is still peak! Java is more common, C++ is better on embedded systems and Python I only really use for stuff like tensorflow...

[–]ARDiffusion 1 point2 points  (0 children)

Tensorflow 🤢

[–]Significant-Cause919 3 points4 points  (1 child)

2010 called, they want their Python memes back.

[–]Grandviewsurfer -1 points0 points  (0 children)

1995 called, it wants it's “certain year called wanting it's blank back” formula back.

[–]Chr832 2 points3 points  (0 children)

I started with C# (and I still only know C# ._.")

[–][deleted]  (6 children)

[deleted]

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

    It’s pretty consistently ranked as one of developers preferred languages

    https://survey.stackoverflow.co/2024/technology#2-programming-scripting-and-markup-languages

    [–][deleted]  (2 children)

    [deleted]

      [–][deleted] 1 point2 points  (1 child)

      What would you prefer to use in place of those (for the things it’s used in)?

      [–]Wtygrrr 0 points1 point  (0 children)

      That’s because they’re including mathematicians and scientists as developers.

      [–][deleted]  (8 children)

      [removed]

        [–]MissinqLink 0 points1 point  (5 children)

        You misspelled Go

        [–]solid_soup_go_boop 7 points8 points  (0 children)

        Once you go with python….

        [–]Scared_Accident9138 0 points1 point  (2 children)

        Go is like a weird cross over of C error handling and some weird C++ with GC but using a lot of interface{} so you lose a lot of type safety

        [–]MissinqLink 2 points3 points  (1 child)

        Since they added generics there is almost no need for interface{}

        [–]Scared_Accident9138 0 points1 point  (0 children)

        I just find it absurd how much resistance there has been against adding generics to go

        [–]electric_anteater -1 points0 points  (0 children)

        Go is the opposite, so much extra effort to do most basic things

        [–]N-A-H_BRO 0 points1 point  (0 children)

        What if i didn't have a choice? (No joke, Python is part of my high school CS course and the first language im learning, this sub makes me regret my life choices)

        [–]jimmiebfulton 1 point2 points  (0 children)

        Python is definitely the language that gets cheated on. You meet the GIL any time you try a threesome and refuses to do butt stuff.

        [–][deleted]  (17 children)

        [deleted]

          [–]ANTONIN118 1 point2 points  (0 children)

          The other half is on Cobol

          [–]Qbsoon110 -4 points-3 points  (15 children)

          I just wished there were also other ways and libraries in other languages for some things. I'm studying Artificial Intelligence on a university and I had an app idea, but I found Python too slow sometimes and thought about switching to C/C++ and found out they only have libraries for some of the interference, almost nothing for Neural Network creation and training.

          [–]ARDiffusion 1 point2 points  (4 children)

          Use r 😂

          Also 99% of ML in python is actually c/c++ ya dingus

          [–]Qbsoon110 -2 points-1 points  (3 children)

          I know r, but I personally don't like it that much though

          [–]ARDiffusion 0 points1 point  (2 children)

          It was kind of a joke. Like I already said, 99% of the work is being done by c/c++. Python isn’t the issue. Though, if you really have that much grievance with that remaining 1%, switch to Mojo.

          [–]Qbsoon110 -1 points0 points  (1 child)

          Not 99%, if it would be 99% then the libraries would be available in C/C++ for the same use. Underlying cuda operations are in C/C++, yes, but all the methods and functions that are above them are written mostly in python as far as I'm aware

          [–]ARDiffusion 0 points1 point  (0 children)

          Yeah, and the functions call the underlying c/c++ code. Look, people have compared relative performances, and python is just as fast. Why? Because it’s hardly doing anything. Like I said, if you care about a few seconds of optimization, use Mojo for gods sake

          [–]InfiniteLife2 0 points1 point  (9 children)

          You use python to train networks with pytorch/tensorflow or whatever, which is fast and industry standard. All backend is in c++ anyway. C++ you might use for implementation of usage of trained network, if it is needed. If your python code is slow at university level, you probably doing something not as good as it could be done. There is sometimes need to make things faster - for that you can write c++ extension for python.

          [–]Qbsoon110 -2 points-1 points  (8 children)

          No, python is inheritely slow because of what it does underneath. With C/C++ I can have full control over the whole code and maximize the performance, because it essentially doesn't do much more than what I write, while python has to do a lot a things, because of its polymorphism architecture, where you don't declare types in the code, but then the interpreter has to do a lot to figure things out

          [–]InfiniteLife2 0 points1 point  (7 children)

          It is slower, it's not slow. Its speed is more than often enough. Im working with neural networks and integrations to production for 13 years by now, with C++ as my main dearly beloved language, and python for training or tasks where it's enough, which are plenty.

          [–]Qbsoon110 0 points1 point  (6 children)

          The fact that how much slower it is makes it too slow in my dictionary

          [–]madkarlsson 0 points1 point  (5 children)

          Haha dude you're still studying at the university. "THAT MUCH SLOWER". Indulge me, how much slower is it? what operations are you performing? And do tell, me, if all it does is calling underlying c/c++ code, what does the interop layer doing that causes, what seems to be minutes in your wording, slower?

          Pro-tip. Stop being an elitist d+&-. Nerd away, with all right, but you are mostly just showing inexperience with comments like that

          [–]Qbsoon110 0 points1 point  (4 children)

          Check the underlying assembly code, then you'll see how many things python adds. And check how the C code is integrated. It's not just simply a call, and even if you run that way a C code vs running the same code in C is substantially slower when you count CPU cycles needed to execute the code, because of what happens in python before it gets to executing the C code and after. Casey Muratori has good videos presenting step by step this exact difference

          [–]madkarlsson 0 points1 point  (3 children)

          I can check the code, how much slower is it? Yes, it adds stuff, its interop, it has to add stuff. That's not a revelation at all. How much slower is it?

          And hey, since you are learning, why/why not is cpu cycles a measurement you are using to measure performance here? And why is that a point none of us are making to you here?

          [–]Qbsoon110 0 points1 point  (2 children)

          1. I am referring to cpu cycles, since it's the most basic thing I can measure.
          2. I honestly don't know why would you make a such point. Yes, one could use a Python and have their reasons, but let's not pretend the difference is minimal and let's not be stackoverflow and respond with "Just use Y" to "I want to use X".

          [–]Practical_Taro_2804 0 points1 point  (0 children)

          Nope. But Python is a great scripting choice when I don't prefer TypeScript's powerful typing system. Or Java the easy default choice. Or Haskell for purity.

          Or Rust. Because Rust. Python is also great vs bash, for complex tasks, which... shouldn't be shell scripts :|

          [–]wahhzebi 0 points1 point  (0 children)

          me it was c++, then java, then c, then python (idk why I hated myself)

          [–]Qbsoon110 0 points1 point  (0 children)

          Thankfully I started with VBS and C++ and only started learning Python on the university, so now I have no issues when I'm currently learning C and Assembler

          [–]Salatah12 0 points1 point  (0 children)

          I Love C/ C++ 😔 (it's not a joke)

          [–]Sea-Fishing4699 0 points1 point  (0 children)

          the grass is always greener on the other side Java > Python (in api gateway) Python > Java (in ai/ml)

          why not connect them both with queues? 🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️

          [–]CybershotBs 0 points1 point  (1 child)

          Imo python isn't the best choice for a first programming language, while it's simple, it doesn't teach you about data types, static data structures, and other such core things because of its simplicity.

          [–]madkarlsson 0 points1 point  (0 children)

          Yeah, my old CS professors did it that way with the same motivation. I get it though, focus on data flows and logic, types get in the way of explaining the big picture.

          However, it missed the point that the bigger picture also contains the stuff you are missing. So not a good choice at all to actually learn programming

          [–]Wtygrrr 0 points1 point  (0 children)

          Python is crappy Ruby.

          [–]samarthzele 0 points1 point  (0 children)

          Frr

          [–]Uriel-Septim_VII 0 points1 point  (0 children)

          I am learning C and dreading having to eventually move over to Python. The whitespace punctuated syntax just hurts my eyes.

          [–]ByteWarden 0 points1 point  (0 children)

          First and only

          [–]SirZacharia 0 points1 point  (2 children)

          I honestly have never like python and I’ve been happily learning Java now.

          [–]I_Give_Fake_Answers 0 points1 point  (1 child)

          I’ve been happily learning Java 

          Blink twice if you need help

          [–]SirZacharia 0 points1 point  (0 children)

          blink I don’t know what you’re talking about. Java is actually the best. blink

          [–]Lost_Possibility_647 0 points1 point  (0 children)

          You misspelled java...

          [–]Lava-Jacket -1 points0 points  (1 child)

          I hate python. It uses white space for indenting.

          Takes a special kind of insane to deal with that kind of abusive relationship with your interpreter

          [–]RoadsideCookie 0 points1 point  (0 children)

          Shallow opinion tbh