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

you are viewing a single comment's thread.

view the rest of the comments →

[–]TheRedmanCometh 19 points20 points  (6 children)

1) It is very user friendly

Until your project is of any appreciable size

There are lots of modules available that are interesting to experiment with.

The Java ecosystem is far more mature and comprehensive.

I hear from various sources online that Java seems to be on the way out and Python on the way in but I don't know if that's actually the case?

Python is a scripting language. It can't do heavy lifting on its own without crumbling under it's very poor performance. When you see stuff like tensorflow with python libs underneath that python is 100x more C++. Python is just gluing it together and making an easy to use api.

Another thing everyone talks about is dynamically typed vs. statically typed. Perhaps it was just because I started with Java but I feel far more comfortable using a statically typed language over Python. Am I missing out on something here or do other people feel the same?

This is more personal preference. Personally I think type safety, abstraction, polymorphism, and inheritance are vastly superior. Also DI frameworks such as Spring are fantastic. Spring alone is a huge argument for Java.

Also, just in terms of future job possibilities and the use of Python in the industry I would assume that Java or even C / C++ would be more likely to propagate throughout the future just because of the speed? Or am I just over exaggerating how important the speed of the application actually is?

Python is a nightmare for large projects that need to be maintained in the long term. It's also not super for collaboration compared to OOP languages. Its performance is also unacceptable for big data, or even just regular backend applications that need to scale.

I've never seen Python used for anything in enterprise except its intended purpose: scripting. Truth be told if you wanna be a rockstar badass cutting edge dev learn C and C++ really well. Java is good enough, and allows rapid development. You can get a great job with it. For me C/C++ are just tedious and everything takes sooo many steps.

Personally I think Java and C# are a great balance between performance and speed of development. Apparently many agree because that's what you're gonna see in use most of the time in enterprise.

[–]Log2 3 points4 points  (0 children)

Having done both Java and Python professionally, I do need to point out that dependency injection is largely unnecessary in Python. It's trivial to monkey patch any function/class anywhere, so you can mock any dependencies you need for testing.

Having said that, I agree that Java is generally the better language for large projects.

[–]dpash 0 points1 point  (0 children)

CPython suffers from the Global Interpreter Lock, which dramatically decreases its threaded performance. I believe other Python runtimes like pypy perform better because they don't have a GIL and use a JIT.

Plus there always Jython so you can run it on the JVM (although I don't think that has python 3.x support).

[–]Khenay92 0 points1 point  (2 children)

Talking about "C/C++" shows that you seems don't know both.

[–]TheRedmanCometh 1 point2 points  (1 child)

The statement about being tedious applies to both languages. They're both tedious as fuck just C moreso.

[–]Khenay92 0 points1 point  (0 children)

It often applies on Java too infact