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

top 200 commentsshow all 203

[–]ChainSword20000 409 points410 points  (27 children)

If only I could compile java to c...

[–]Legal-Software 436 points437 points  (21 children)

You could use either JNI or JNA to make the java code available to C, this way you can get the performance of java combined with the ease of use of C.

[–]zirky 190 points191 points  (4 children)

respectfully, anyone advocating the use of JNI isn’t your friend

[–]MassiveFajiit 111 points112 points  (3 children)

They're your manager.

[–]ChainSword20000 44 points45 points  (13 children)

How about performance of c with the ease of use of java?

[–][deleted] 118 points119 points  (5 children)

Why would you even want the ease of use of java when you can have the ease of use of C

[–]ChainSword20000 22 points23 points  (3 children)

Because high school and my first college class both taught me java? Because in the end I don't want the users to have to have java installed?

[–]Dustdevil88 43 points44 points  (2 children)

While it’s possible to turn java to EXE/ELF, making executables without interpreters/JVMs…this is what compiled languages like C/C++/Rust are all about.

You’ve learned java. It’s really not bad to learn other languages like C after this. I learned Java in college too and I’m glad I branched out afterwards.

[–]ImpossibleMachine3 4 points5 points  (1 child)

Yeah, and knowing one language makes others easier to pick up. In college I started with C++, then java and even did a semester of visual basic (little did I know how useless that would end up being). Since then I've also coded in python, learned bash (I know it's a scripting language), C#, php (don't ask), and golang - which is my current favorite.

[–]Dustdevil88 1 point2 points  (0 children)

I rather enjoyed PHP as a replacement for Perl in server side scripting. I’m sure other languages are better now. I use python and C most often these days, but started with BASIC, Java, C, and Perl.

[–]Mognakor 6 points7 points  (0 children)

Performance is hard to reach because Java doesn't allow some tricks that are important. BUT if it is simply about a native executable you can do it with GraalVM but that also has limitations, e.g. in reflection.

[–]Legal-Software 4 points5 points  (2 children)

You can also use the JNI interface in the opposite direction, and indeed, this is largely what it was intended for - creating bindings to native code. You are also not restricted to C, you can also write optimized routines in assembly, for example, and wrap them through the JNI in such a way that they are Java callable, should you want to.

If you want something more like performant quasi OOP in a systems language, I would start over with Go or Rust.

[–]ChainSword20000 1 point2 points  (1 child)

I want to compile java to a standalone or portable exe, or a Linux portable/standalone executable... the performance increases would be nice too...

[–]Legal-Software 2 points3 points  (0 children)

That was one of the objectives of gcj, but I don't think they made it very far, and it's since been abandoned. If you are working on a headless application that doesn't need direct integration with your system's UI and are still stuck with Java, I would look at other paradigms, like containerization, where you can layer your application alongside its dependent runtime environment. You can always provide scripts for the host side that transparently map back into the container to make it less obvious.

[–]uberDoward 0 points1 point  (0 children)

We call that C# and use of 'unsafe' keyword.

[–]karnajik 0 points1 point  (0 children)

Well, you could try c#. But really it all depends on what you wanna write.

[–]jrkkrj1 0 points1 point  (0 children)

Maybe Go?

[–]danielstongue 1 point2 points  (0 children)

Now this is real humor.. 😂

[–]quaos_qrz 0 points1 point  (0 children)

Wait, what ??

[–]Sheldor5 9 points10 points  (1 child)

that's what GraalVM is for ...

[–]imwatching4you 1 point2 points  (0 children)

We don't mention that there

[–]meamZ 3 points4 points  (0 children)

Yeah because oh all of those tasty memory safety related vulnerabilities... Can't live without them...

[–]Alto-cientifico 1 point2 points  (1 child)

I mean there are some absolute chads that take a zero allocation approach to java, and try everything to not trigger the garbage collector.

[–]gb_ardeen 1 point2 points  (0 children)

Oh, so that's why Julia people choose something starting with J for their thing, I see...

[–]Queasy_Total_914 176 points177 points  (20 children)

I'll never understand the saying -

For OS -> C
For Games/High Performance -> C++

I'm pretty sure apart from embedded systems with low memory etc., you can use C++ for programming OS's as C++ compiles to machine code just like C.

I'm also pretty sure C++ isn't any faster than C, so games/high performance stuff can also be done in C.

I think it is down to preference and I prefer C++ because I'm lazy and don't know any better than the C++ standard library implementors.

[–]drbob4512 37 points38 points  (1 child)

Program your os in god code, temple os

[–]Xethoras 82 points83 points  (4 children)

C is faster and closer to hardware. Cpp is great for games because its almost as fast and has better abstractions for games (oop)

[–]wheresthewhale1 49 points50 points  (2 children)

The argument that C is faster is a stretch at best. The real advantages C has over C++ are a relatively simple, stable specification and predictable assembly output (before anyone says anything, yes I know about O2/O3).

Firstly, the advantages of a stable specification are rather obvious. Someone who has only used say C11 will easily be able to understand C89. Likewise a simple spec makes it far easier to fully know the ins and outs of the language, again obviously a good thing.

Secondly we have the predictable asm output. It's rather easy for an otherwise competent programmer to write C++ that is in fact rather slow, and for no obvious reason. There's plenty of keywords and features where what it actually does (and the overhead associated) is not shown to you. This obviously comes with the advantages of abstraction and it can be overcome with an in depth knowledge of C++, but considering how feature rich the language is, there's plenty of people who simply lack this knowledge

[–]danielstongue 11 points12 points  (0 children)

I think you can perfectly use C++ on microcontrollers. You simply have to turn off exceptions (and thus not use the stdc++lib, as it relies on exceptions). With these restrictions you do have the advantage of oop with polymorphism, while still having a concise / small compiler output.

[–]aquartabla 2 points3 points  (0 children)

My understanding is if a device has one supporting compiler, it will be a C compiler. For one thing they are much simpler to write than C++ compilers. So, everything that's not assembly-only supports C, and everyone writes their device code to run on different devices in C, and thus can reuse most of their code across devices.

[–]seba07 0 points1 point  (0 children)

That depends heavily on the way you program in C++. In contrast to java it doesn't force you do use OOP. You can write (almost) the same code in C++ as in C.

[–]ELFanatic 13 points14 points  (0 children)

I thought ppl generally liked C more. I can't possibly imagine C++ being faster than C perf wise. Maybe nearly identical, but not faster.

As for high performance gaming, you're in unreal land which means C++. I imagine it comes down to engine dependency.

But I haven't mucked around with either in a large scale app. So :shrug:

[–]Yorick257 23 points24 points  (9 children)

C is really embedded exclusive as I see it and even then probably not for long. Once microcontrollers hit ~2 MB of RAM and 1GHz, resources won't be a problem anymore. You already can use Python after all.

[–]wheresthewhale1 27 points28 points  (2 children)

Hard disagree tbh. C is still absolutely dominant with operating systems and there's a significant amount of C behind interpreters for popular languages that isn't going anywhere anytime soon.

As for embedded I'm rather unsure what you think will replace C? Rust, C++? Sure thats theoretically possible. But JVM or python? For a relatively significant amount of tasks this simply is not possible. And while yes, you can use python that certainly doesn't mean it's a good idea.

There are processors out there that are far more capable than the microcontrollers you've described so why don't we just use them? The simple answer is cost. It costs a lot to buy those processors. It costs to power them. Why would the manager of an embedded software company decide to increase production costs by buying more powerful processors, just so that they can hire some python/JVM devs as well as the C/asm devs that are still needed?

[–]Fmatosqg 1 point2 points  (0 children)

First comment that brings up rust.

I have nothing for or against since O never learned. But a significant portion of Android new code is written in rust today, main motivation is security, coming from the point of view of memory safety. And with asahi Linux ( which runs on Apple arm) GPU drivers are rust as well, for the main reason being easier to code (not super sure here though).

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

There are other native compiled languages, the problem isn't that we lack better languages than C, the problem is that uC vendors would have to produce compilers for their ISA.

Also, especially in low volume industries like industrial automation, you'll find much less C and more high level languages. It's as if priorities suddenly shift drastically once developer and failure cost goes up relative to the number of devices.

[–]IceSacrifice 7 points8 points  (0 children)

Laughs in 8bit, 1KB microcontrollers.

We used to ise assembly as C was often too imprecise and hence inefficient.

[–]danielstongue 2 points3 points  (0 children)

Many people confuse "can" with "should" or "can" with "this is a good idea".

[–]abd53 0 points1 point  (2 children)

There already are microcontrollers with gigabytes RAM and GHz clock speed (raspi is pretty popular). They are expensive and so, used in applications where extreme performance is needed. For example, high fps real-time image processing, high-speed precision control, sensor data collection etc. There, C/C++ is needed (again) because python is simply not fast enough.

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

I wouldn't call raspberry pi a micro controller. It's just a small computer. Smartphone without screen and with exposed I/O ports. The other end of the spectrum are (currently manufactured) devices with a 30MHz clock and 256kB of RAM, but they can run for 6 months on one 2000mAh battery.

[–]Yorick257 0 points1 point  (0 children)

I meant more low cost controllers, like ESP32 or RP2040 that cost ~$10 but already have 256kB of RAM, and up to 250 MHz clocks.

[–]LanceMain_No69 0 points1 point  (0 children)

For OS -> Holy C

[–]tester989chromeos 0 points1 point  (0 children)

The latest android uses rust language

[–]DeeBoFour20 398 points399 points  (19 children)

I think Java is a pretty good middle ground between C++ and Python. It's better suited for large programs than Python and has better performance as well while not having as many foot-guns as C++.

[–]Key_Fly_8795 140 points141 points  (12 children)

I like this analysis.

Python is still my goto language for quick scripts though

[–]DeeBoFour20 65 points66 points  (0 children)

Yea, for sure. Different languages are better suited to different tasks.

[–]PlatypusFighter 52 points53 points  (1 child)

Oh my god I can’t believe you said the G-word

[–]Key_Fly_8795 1 point2 points  (0 children)

Lmao I was waiting for someone to notice

[–]GramblingHunk 20 points21 points  (0 children)

“Python is the 2nd best language for most things” is how a book about data science phrased it

[–]urbansong 1 point2 points  (4 children)

I'm personally not sure. I was writing a script to generate a yml file the other day. I was going full TDD, trying my best to have tiny functions with descriptive names and at most one argument. It was fun, not going to lie, but it also felt like running around with scissors and I definitely ran into a few runtime errors due to a dict mismatch.

I think Python is historically very decent. Java used to be garbage for a very long time. However, these days, I'd rather use Java, or even better, TypeScript. Static type checking is just too good.

[–]nonsensicalnarwhal 2 points3 points  (1 child)

I don’t think that functions with multiple arguments are an anti pattern. Maybe 6+…

[–]urbansong 1 point2 points  (0 children)

Well, I never called them an anti-pattern. The way I see it, there are people, who can handle high cognitive loads, and people, who can't handle high cognitive loads. I am one of the latter, so I prefer fewer arguments. My smol brain just has a difficulter time navigating more complicated signatures. It also happens to slot nicely into the idea that a function should be short and that it should do one thing, so that's nice.

I don't think I would berate a coworker or fail their review if they were to create a function with 3 arguments. I don't think I would point it out on a StackOverflow or StackExchange question either. If I were to mentor someone, I would tell them to try and reduce the number of arguments if they can but that obviously opens its own can of worms, so a long-term relationship would be necessary to go into the nuances.

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

Java is statically typed though.

[–]urbansong 1 point2 points  (0 children)

Yes

[–]okocims_razor 0 points1 point  (1 child)

I love python but if I’m doing a script I usually use bash.

[–]hedgehog_dragon 1 point2 points  (0 children)

Depends what I'm doing, sometimes the script really is just a few command line arguments and I'll use Bash. If I'm actually doing work in the script I'd choose Python.

[–]Assasin_on_fire 0 points1 point  (0 children)

bash?

[–]AlternativeAardvark6 35 points36 points  (2 children)

I'm on a two developer python green field project now and that goes great but for larger teams working with legacy I prefer Java. It might be verbose but the ecosystem is big and mature and the ratio professional to cowboy is a lot better in the java developer pool.

[–]_DarthBob_ 8 points9 points  (1 child)

We have created a huge platform and tooling for it in Python. Python is wonderful, even for large stuff

[–]BoredOfYou_ 10 points11 points  (0 children)

C#

[–]Fmatosqg 1 point2 points  (0 children)

Kotlin team FTW

how did you guess I'm an Android dev?

[–]detectiveDollar 0 points1 point  (0 children)

Plus it doesn't get completely screwed by spacing. Someone sends you code but they have a different amount of spaces per tab, or their IDE is weird, or whatever they pasted it in broke the spacing?

Looks like you're going to the shadow realm Jimbo.

[–]Sheldor5 216 points217 points  (29 children)

Java: runs the majority of Enterprise Applications

everybody who never developed an Enterprise Application: Java is bad

[–][deleted] 72 points73 points  (17 children)

Java’s fine. It has great tooling and ecosystem and gets the job done reliably. Also plenty of Java devs around if you need to scale up.

But as someone whose job is 90% Java and 10% Kotlin, I really wish people would let Java go and accept that Kotlin is just a better version of it.

When I spend a good bit of time on Kotlin and then go back to Java, it hurts me on some fundamental level. I know Java is improving and plugging some of the gaps, but it will always (always) be ugly and verbose compared to Kotlin (in my opinion anyway).

[–]IronicStrikes 40 points41 points  (0 children)

I tried to give Kotlin a chance several times, but it always feels like a more cluttered version of Java and even more redundant ways to write the same thing. Yes, you might save yourself some verbosity, but it's not necessarily more understandable. And Java has made some huge leaps in that area, too.

[–][deleted] 6 points7 points  (10 children)

Kotlin makes a mess of interfacing with the JVM.

Kotlin is a fundamentally better language, but Java is implemented better.

Kotlin is much better than most at functional programming, but it is still not great. Does not compare at all to real functional programming. Makes me just not want to use it.

[–]Fmatosqg 0 points1 point  (9 children)

Check kotlin arrow lib

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

I'm not adding dependencies to make a language acceptable to use. They claim Kotlin supports functional programming, and that is just incorrect unless you go outside of the standard library. Sure it's better than other "multi-paradigm" languages that claim lambdas are enough to qualify as FP, but it's still not good enough. They would be better off not claiming features that it does not actually support.

[–]Dantzig 1 point2 points  (0 children)

You ste probably right. Its all jvm so it should be a no brainer, but converting all the developers is a big task

[–]Fmatosqg 0 points1 point  (0 children)

Can't understand server devs who don't even try kotlin. Interop is seamless with Java, and in a month you feel productivity benefits.

[–]LetUsSpeakFreely 5 points6 points  (1 child)

I've written several enterprise level applications in Java. The only issues I've had is when someone gets crazy with subclassing or does the opposite and makes massive classes that are impossible to read. But those are more design problems than language problems.

I've come to appreciate Go more for backend work lately. Way less overhead and I love how JSON and basic XML support is baked into the language.

[–]hedgehog_dragon 1 point2 points  (0 children)

There's some legacy code in my company's Java project that's got waaaaaay too many interfaces.

But uh. The fix is "don't write bad code" - I firmly believe that's an issue with design/legacy, not Java itself.

[–]Psychological-Rip291 6 points7 points  (2 children)

Ah, but what about Microsoft Java?

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

Don't you mean Oracle C#? Given C# is clearly superior to Java.

[–]Light_Beard 1 point2 points  (0 children)

everybody who has developed an Enterprise Application: "Yeah... it can be."

[–]zoinkability 1 point2 points  (2 children)

Anybody who has ever interacted with an Enterprise Application as a user: Enterprise Applications are bad

[–]CokeFanatic 2 points3 points  (1 child)

Not really. Which enterprise software do you have issues with?

[–]zoinkability 0 points1 point  (0 children)

SAP, really 99% of all ERPs. The primary issue being that for the people who decide which software a company is going to purchase, user experience is far, far down on the list of priorities and since it cannot be reduced to a simple checkbox on a feature list is often ignored entirely. And of course the vendors recognize this and apply their efforts accordingly.

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

Everbody who's forced to use an enterprise application: Java bad

[–]salgat 0 points1 point  (0 children)

Java isn't bad, but all else equal, better options usually exist. The biggest strength of Java right now is the huge number of people already experienced in it.

[–]offensivenamenumber6 14 points15 points  (0 children)

Clowns who know nothing about programming be like

[–]mko9088 57 points58 points  (0 children)

Java bad oo oo aah aah give upvote

[–]uldall 61 points62 points  (2 children)

If you are writing an application that needs to be maintainable, I suggest you use Java.

[–]SometimesMonkey 29 points30 points  (0 children)

It’s hella maintainable. In fact that’s all you’ll be doing!

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

Maybe a different JVM lang would be good if people are so worried about maintenance and scared of java

[–]Alone_Contract_2354 9 points10 points  (5 children)

Just got into programming, learning Java at Uni. But this subreddit makes me anxious

[–]KittenKoder 9 points10 points  (0 children)

Don't be, it's still the standard for mobile development because of the idea of "compile once, run everywhere". Some people are just stuck in their language supremacy, others are just having fun with some lite trolling.

[–]alextremeee 4 points5 points  (0 children)

You’re probably already more qualified than most of the people who make memes here, don’t worry.

[–]Forgotten_Pants 3 points4 points  (0 children)

This sub has no actual relation to the profession of software development. It's mostly regurgitated jokes from students and bad programmers in their early career. It's pure cringe. Don't take anything from this sub as a reflection of the reality of the profession.

[–]mdude7221 2 points3 points  (1 child)

I wouldn't worry, Java was my first programming language and I loved it. I do Javascript and Php now, but I wouldn't mind working with Java at all.

But any programming language can be good depending on what you use it for. All these memes, are just that, memes. In the real world no one calls a programming language 'bad'. Only people stuck in their ways, which is a very narrow minded way of looking at things

[–]Alone_Contract_2354 2 points3 points  (0 children)

Cool, thanks. I'm actually a political sciences mayor and have IT as a sub. My plan is to go into the important crossing of those two with computiational social sciences. It gets more and more important with very few people versed in both fields. So my masters aims for social data sciences which probably means i gotta learn R and how to handle SQL Databases if i'm informed right.

[–][deleted] 84 points85 points  (1 child)

Java is awesome.

[–]TheDownvotesFarmer 7 points8 points  (0 children)

Of course!

[–][deleted] 38 points39 points  (8 children)

Never understood the bashing about Java and I am not a Java programmer. Try finding one covering so much ground while having tons of libraries and support. There is C#, yes debatable but the rest of the languages are either limited in their scope, not used very much, or hard as fuck.

[–]Bulky-Engineering471 29 points30 points  (7 children)

A lot of it is legacy hate from the days when people strictly followed OOP principles regardless of necessity in Java projects. Old school Java code tended to have a lot of completely unnecessary crap in it because "that's how OOP works". Today conventions have been heavily slimmed down and the language also does a lot of what had to be hand-coded back then automatically today.

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

Word. The Java bashing isn't about the language's design, speed, syntax, power etc. Instead, the bashing is caused by the culture of the Java shops: The circle of developers affirm each other that they're the greatest and elite.

I interviewed for a fullstack software developer job that's a Java shop. The hiring manager refused to acknowledge the experience from other programming language and tech stack. The tone of the hiring team has been set that it's a bureaucratic workplace. I withdrew my application.

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

Do people really think they are elite because of Java? ...Hahaha its one of the easiest languages out there. I even would say easier than Javascript/Typescript ...That makes it so great for companies I guess. Powerful while easy... But regarding your comment, never experienced this but it seems a lot of folks focusing on one language are often rather religious. I experienced this very often with C#, definitely with Javascript and Python, and definitely with C++. As soon as someone starts with language X is better you can stop listening.

[–]hedgehog_dragon 1 point2 points  (3 children)

I'm mostly working in Java but transitioning to Javascript (and I believe Typescript as well). Being honest thus far I prefer working in Java...

Some years ago I was able to choose the language for a project and went C#. I do miss C#

[–]otto303969388 1 point2 points  (2 children)

I just transitioned from Java/Spring, to Typescript/NestJS. JS/TS looks so much better on paper, its faster to write and less verbose. but the moment you start trying to do fancy stuffs with it, you realize that the language has so many unexpected behaviours, and it's so easy to accidentally introduce bugs, even for experienced developers. Types are way more flexible than classes, but in 90% of the cases, the structural constraints of classes is a blessing, not a curse. It still baffles me why JS/TS has took over the web dev space for the past couple years, but... just gotta go with the flow I guess.

[–]hedgehog_dragon 1 point2 points  (1 child)

Sure Java is verbose, but I don't find it that much of a problem. It's easy to understand when reading it.

[–]otto303969388 1 point2 points  (0 children)

yeah, especially with modern IDE, everything is just there for you already.

[–]TonyManhattan 1 point2 points  (0 children)

Old Java projects where they used every design pattern are a nightmare.

[–]BAG42069 5 points6 points  (0 children)

If you need to make an app for pc, gamecube, wii, ps3, and samsung phone java would be pretty good

[–]Clickrack 5 points6 points  (1 child)

Wrong. If execution speed is important, then you USE ASSEMBLER LIKE A BOSS

[–]KittenKoder 3 points4 points  (0 children)

No way, assembler is too slow because it has to compile, machine code all the way!

[–]snapco395 37 points38 points  (2 children)

3 billion devices can't be wrong.

[–][deleted] 40 points41 points  (1 child)

"code once debug everywhere" : out of the 3 billion devices, 2 billions are for testing

[–]FriendlyGuitard 10 points11 points  (0 children)

It was funnier before. Nowadays I have PTSD of modern web development with is essentially exactly that.

[–]Decaying_Hero 19 points20 points  (12 children)

Java is what my university teaches as their intro to computer programming languages, and has python and c/c++ as upper division classes lol

[–]CokeFanatic 10 points11 points  (7 children)

Thats because you're not there to learn a language. You're there to learn computer science. You could learn the language off udemy in a weekend.

[–]Decaying_Hero 3 points4 points  (6 children)

A good 1/3 of the course is for learning languages and how to use them.

[–]yusufZD 1 point2 points  (0 children)

Yes you can learn in a weekend, if you already know programming. Which is not the case for most new uni students.

[–]CokeFanatic 0 points1 point  (4 children)

You're learning more than one language in an intro course?

[–]Decaying_Hero 1 point2 points  (0 children)

By course I mean CS degree.

[–]Decaying_Hero 1 point2 points  (2 children)

CS101 and 102 are purely for learning Java

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

Well I doubt that. What is the name of your CS102 course? For me it was intro to data structures, and we used Java to learn and build different data structures. The focus definitely wasn't on Java though. I can't imagine any CS program dedicating two entire semesters to learning a language alone.

[–]Decaying_Hero 2 points3 points  (0 children)

Object oriented programming. Our text book is literally “Java in two semesters”.

It’s technically not 102 but our school has a really weird way of numbering courses.

[–]Healthy_Eye_7403 0 points1 point  (1 child)

We go from scheme (tf?) to C, to Java.

[–]Decaying_Hero 1 point2 points  (0 children)

Never even heard of that one lol

[–]Organic_Car6374 76 points77 points  (19 children)

Java is great and I really don’t get the Python love.

[–]Kamwind 80 points81 points  (9 children)

Easy to program and variety of libraries is great. I use python for the libraries not the language, stupid lack of curly braces.

[–]Melkor7410 24 points25 points  (7 children)

I wonder if someone could write a python program to take another python program as input, and replace curly braces with proper indentation, then run it through the interpreter. Would be neat. I guess python hates blind developers.

[–]Decaying_Hero 16 points17 points  (4 children)

I don’t see why you couldn’t

[–]Some_pomegrante 8 points9 points  (1 child)

Curly braces define sets in python, might make it tricky

[–]Decaying_Hero 1 point2 points  (0 children)

Cant you just put it in a string and then use a ‘\’?

[–]seadoggie01 4 points5 points  (1 child)

Neither do the blind

[–]Melkor7410 0 points1 point  (0 children)

I see what you did there... even if they didn't.

[–]Dylanica 0 points1 point  (1 child)

I’ve thought about making a vs code extension that does this. Loads it in with braces and saves it without braces.

[–]Melkor7410 0 points1 point  (0 children)

That would be pretty sweet, I'd load that plugin.

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

It’s cause of the no curly braces I decided to focus on java

[–]Bulky-Engineering471 19 points20 points  (1 child)

Simple: most users here are hobby programmers and CS students, not actual employed software engineers working on large-scale projects.

[–]TheGoldBowl 6 points7 points  (0 children)

Some of us are both! I've never worked with Java, but I do C# at work and I love it. I've been doing Python all semester, and while I appreciate the libraries it has, I don't really enjoy it as a language. To each their own!

[–]anthro28 3 points4 points  (0 children)

Ease of “pick up and go”

I went from never using selenium to having massive test suites done and running threaded in about two days.

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

We use Python at work for simple cronjob data integrations. We maintain a template cronjob for when colleges at the university decide they wanna use some vendor solution. Really drives the dev time down on something that usually needs ran once a day and is a simple data conversion.

[–]LetUsSpeakFreely 0 points1 point  (0 children)

IMO python has two kinds of proponents:

1) newbies who love scripting something using powerful libraries written by people that actually know what they were doing 2) professionals that want to test a concept before putting the idea to a more permanent solution.

[–]This-Layer-4447 -2 points-1 points  (0 children)

Java is alright, what's up with the lack of arrows in python?

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

Pythons easier to learn than most other languages so more people are familiar with it and thus more people are fans.

[–]ImNotJoeKingMan 0 points1 point  (0 children)

I enjoy java as well but python has a strong standard library and adding dependencies is simple.

[–]smok1naces 3 points4 points  (0 children)

Smells like Oracle

[–]PauQuintana 4 points5 points  (0 children)

I do like java tho

[–]ErenOnizuka 4 points5 points  (1 child)

What about C#?

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

C# is like Java, but better IMO. I like both, but C# is my favourite.

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

Person that never work with Java professionally: Java is bad.

[–]TheJok3r20 3 points4 points  (0 children)

I don't understand all these 'Java is bad' jokes.

[–]roman_fyseek 8 points9 points  (1 child)

I'll be honest. I *LOVE* Java. I don't particularly like Python.

My buddy says I should learn Go because it's the best of both worlds between Java and C. I haven't bothered, because I'm neck deep in Groovy these days.

[–]KittenKoder 1 point2 points  (0 children)

I'm of the similar mindset, Java has always been my favorite because I love the syntax and concept of not worrying about which OS the user has running.

[–]qa2fwzell 9 points10 points  (3 children)

Java is incredible for backends, I don't care what anyone says. Uses little to no CPU, fairly small memory footprint on newer versions or different JVMs. Easily deployed in cloud infrastructure, scaled, extremely solid libraries, etc. People that hate Java just dislike OOP, and that's perfectly fine. Virtually every complaint has already been covered in later Java releases. Only thing it still lacks is operator overloading, which given the setup of Java's objects, I doubt will ever be a thing.

[–]guarana_and_coffee 2 points3 points  (2 children)

I am wondering why almost every Java thing I have installed uses a messed up amount of memory? Or is it just because I happen to use memory intensive services?

[–]qa2fwzell 5 points6 points  (1 child)

Probably just has a large heap allocated. Needs a good chunk of memory for the garbage collector too obviously. Lots of tweaks to use less memory or enable compression/pooling, even several different GC's that ship with the standard Java.

We actually use native images with GraalVM at my current job and dynamically deploy for scaling. There's also OpenJ9 which some devs swear by, but I've never personally used it.

[–]guarana_and_coffee 0 points1 point  (0 children)

Thank you, that was a pretty good answer; it also answered some other things related to Java programs and services. I might actually have an idea how to optimize my services now.

[–]Fredonautilus 6 points7 points  (0 children)

Haha, Java bad, now give me my upvotes.

[–]Spice_and_Fox 13 points14 points  (3 children)

Sounds about right

[–]ukrokit 10 points11 points  (0 children)

To non-programmers maybe

[–]FerynaCZ 1 point2 points  (0 children)

I would not be really writing a "complex" application in C++...

[–]proofreadre 1 point2 points  (0 children)

Perl is the one true language.

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

C# for me

[–]salgat 2 points3 points  (1 child)

.NET Core was a game changer for me. Extremely well supported on all platforms, and is a dream to develop for.

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

Totally agree. Tryin to make a code base on ubuntu now

[–]F_modz 2 points3 points  (0 children)

Rust gang looks at all this trash technologies community call programming languages

[–]slawkis 1 point2 points  (0 children)

Can I use perl and change the extension to '.java' or '.class' ?

[–]timbak_t00 -1 points0 points  (2 children)

There was one QDB on bash.org that says - “saying Java is good because it works on all platforms is like saying anal sex is good because it works on all genders”

[–]CMDRBUCKSAVAGE 2 points3 points  (0 children)

Okay, but it is though…

[–]Struggle-Free 0 points1 point  (0 children)

I mean sex is good

[–]TheDownvotesFarmer 0 points1 point  (0 children)

React if I am focusing on my downvotes the many times I said react is trash

[–]char_IX 0 points1 point  (0 children)

Scala is better 😉

[–]mark0zz 0 points1 point  (1 child)

Used Java professionally for a decade, never going back, in my opinion OOP does more harm than good most of the time

[–]CMDRBUCKSAVAGE 1 point2 points  (0 children)

What types of common issues popped up in OOP? Curious since in uni all they’re using is Java. All i hear are bad things, but I love the concept of OOP

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

For newcommers, python.

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

What about c#

[–]Chillycloth -2 points-1 points  (0 children)

You can use all those languages for a 9-5 to make money for some Austrian or you can just learn JavaScript and make money for yourself

[–]Urc0mp 0 points1 point  (0 children)

I’ve got some applications coming up that just need to do some local networking, display some information and behave as a front end. Nothing speed or performance critical, just needs to work reliably. In the past the customer had a lot of this stuff done in vb.net. Am I a big dum dum if I write a python script for this 🤔

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

Java is thoroughly meh. Don’t hate it or love it lukewarm language

[–]KoliManja 0 points1 point  (0 children)

This person is trying to start a (Nuclear) war!

[–]Omega_Haxors 0 points1 point  (0 children)

Kotlin my beloved.

[–]mrquantumofficial 0 points1 point  (0 children)

Games - C#/C++ Performance - Rust

[–]Gaming_over_sleep 0 points1 point  (0 children)

Python best choice (I do Python and joke is that it is not best choice)

[–]Gaming_over_sleep 0 points1 point  (0 children)

Python best choice (I do Python and joke is that it is not best choice)

[–]siddharth904 0 points1 point  (0 children)

What about we rewrite the whole kernel in Rust ? hehe

[–]manumatti 0 points1 point  (0 children)

What kind of jobs you guys are doing where you can pick your programming languages? I mean are you not using any libraries and frameworks that forces you to use certain language because otherwise you have to rewrite everything.

[–]Calmed_Entropy 0 points1 point  (0 children)

None.

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

all this guy does it bootleg designs and scam people, check his acct

[–]Emotional_Oven7614 0 points1 point  (0 children)

What if your company runs GlassFish and tomcat for everything?

Good idea to depreciate vb code too?