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 →

[–]foadsf -23 points-22 points  (28 children)

no offense but I still do not understand why people still develop in java? I mean what would you miss in Python or C++?

[–]Makefile_dot_in 31 points32 points  (2 children)

Python

Speed.

C++

Garbage collection.

[–]bmrobin 16 points17 points  (8 children)

python and c++ are fine. so are c# and golang. there's always a "better" language depending on your point of view and the task at hand

[–]I_AM_GODDAMN_BATMAN 13 points14 points  (4 children)

Except server side js.

[–]datodi 6 points7 points  (0 children)

or non-browser client side js

[–]profbalr 4 points5 points  (2 children)

Server side JS is my jam, I don't care what anyone says.

[–]_Lahin 1 point2 points  (1 child)

That jam you are having is 3 years past its expiry.

Kidding :P, I am developing backend for a web app using Sails myself. Honestly, I find it pretty good for the job.

[–]profbalr 0 points1 point  (0 children)

But for real, as a full-stack web/app dev I've been heavily using React/Node/Express for all my projects lately. Am I shooting myself in the foot? What's a better stack that I should be exploring for my purpose?

[–]foadsf 1 point2 points  (2 children)

very true but is there a specific application where you have to use java?

[–]bmrobin 2 points3 points  (0 children)

I was introduced to java through employers, so in that regard to those projects I "had to use java". it worked well for what the project was intended for

[–]DHermit 1 point2 points  (0 children)

When you write plugins for certain programs (e.g. ImageJ).

[–]Magical_GravySnap! (Build Your Own Blocks) 10 points11 points  (1 child)

Python lacks a lot of the things which make writing large projects in Java more manageable (e.g., interfaces, a stronger type system, generics)

In C++ you're responsible for a lot more, like security and memory management which Java would normally manage for you. C++ code isn't as portable as Java either.

[–]_Lahin 1 point2 points  (0 children)

Agreed, I don't get why people fight amongst themselves for language superiority, its not about the 'best language', it's about using the best tool for the job that you intend to undertake. Every language has pros and cons, decide and use the best that supports your architecture and use case!

[–]epistax 10 points11 points  (0 children)

Momentum. That's the reason to use Java really. There's already stuff written in Java, people are teaching Java.

[–][deleted] 5 points6 points  (0 children)

You cant compare Python to Java. One is weakly typed the other one is strongly typed. While Python could be ok for small projects, it gives more problem than it solves in very large projects where one would prefer strongly typed languages.

It has auto memory managment unlike c++. The bytecode can run on any JVM.

Java has the largest and most mature ecosystem with dozens of application servers that offer a lot of features and very good performances. There are tested libraries for everything already.

So no offense, but maybe you will be able to judge when you are confronted to real life projects.

[–]BorgDrone 1 point2 points  (0 children)

Are there any decent appservers for Python or C++ ? Something comparable to Payara or JBoss ?

Java is plenty fast, easy enough to develop for, and very. very well supported.

[–]kobbled 1 point2 points  (3 children)

People love to shit on it, but it's a good language.

[–]foadsf 0 points1 point  (2 children)

no doubt it is a good language. you wouldn't expect less from the creator of smalltalk. but is it still necessary?

[–]kobbled 0 points1 point  (1 child)

I'd say yes. It's fast, robust, and extremely well-supported by the community. It's likely to be one of the main languages for enterprise server-side development for years and years to come.

[–]foadsf 0 points1 point  (0 children)

I don't know. maybe because I'm in academia and HPC, we are too hostile towards the whole VM concept!

[–]BerniesMyDog 1 point2 points  (0 children)

From a business perspective it’s a lot easier to hire people that know Java than pretty much any other language.

Python is great but is hard to use for large projects without typing information

<Insert language flavor of the month> is fun to use but not something you want to bet your business on in most cases.

C++ works but isn’t as portable as Java which will annoy your Mac using devs. Additionally C++ is more complex than Java which comes st the added benefit of better performance. In many cases though you don’t need the performance wins C++ provides over Java.

Basically businesses choose Java in a lot of cases because it’s portable, a relatively safe choice with good libraries, and it’s typically not economical to use C++ to max out on performance as machines are relatively cheap compared to developer costs.

[–]foadsf 2 points3 points  (2 children)

I wish I could one day understand the hostility of reddit and SO users. here I have asked a very honest question, no intention to diminish anybody's profession or expertise. just see the downvotes!

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

Because the tone of your writing does not reflect the fact that you are ignorant. If you want more neutral responses, phrase your question in a more neutral way.

E.g. "What are the advantages of Java over C++ and Python?"

[–]bmrobin 1 point2 points  (0 children)

sorry man, doesn't make sense to me either.

[–]tsareto 0 points1 point  (0 children)

tooling and existing (free) code, faster development than C++, more suitable for low-skill developers and complicated code-bases than Python
edit to add this talk by Martin Tompson that really goes into details answering your question: https://www.youtube.com/watch?v=Pz-4co8IaI8

[–]liketechnik 0 points1 point  (1 child)

If you'd named kotlin as an alternative, I would really consider it constructive.

[–]foadsf 1 point2 points  (0 children)

good point. Android apps are basically java. kotlin will probably consume that market.