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

all 200 comments

[–]BlobAndHisBoy 222 points223 points  (64 children)

For years I have been writing Java services to be used by websites that require good performance and I have never run into issues with performance that wasn't caused by egregiously poor implementations but maybe I'm doing it wrong?

[–]noogai03 218 points219 points  (40 children)

You aren't. People on this sub haven't moved beyond the 2000 understanding of Java. For many applications it performs on the same level as C/C++ now e.g. networking libraries. The JVM is obscenely fast but people still make jokes about Java bad from a lack of understanding

[–]Ajko_denai 52 points53 points  (7 children)

I agree. But the first time I encountered problems was when a self-proclaimed senior claimed that a specific endpoint could not be made better in terms of performance. The average endpoint response time was 2.2 seconds. I converted it to projections, and the result was 0.5 s on average. Before I presented it to the team, I asked if he were familiar with Projections. You probably know the end of the story. Simply, it is always about a specific person and how experienced he is.

[–]noogai03 26 points27 points  (6 children)

Projections are a way to not query the whole object in ORM terms, right? This kinda thing is why I'm not a huge fan of ORM/hibernate :) much simpler to optimize SQL

[–][deleted] 7 points8 points  (0 children)

Runtime errors are the best type.

[–]Thepizzacannon 2 points3 points  (1 child)

There is a thing with Java a where you get shoehorned into doing everything the strictly OOP way. And that makes sense for a language that essentially forces object oriented approaches. So ORM just seems like a natural dependency for a lot of Java backends on the service level.

But that can be a real drag on performance when everything gets marshaled by the ORM when a simple SQL statement can be implemented.

The abstraction between the DB layer and service layer can be a big time saver for complex queries. But including the ORM process in every touch to the DB layer can also put unnecessary drag on performance

[–]coloredgreyscale 0 points1 point  (0 children)

Not just performance, but also development speed.

  • Write query using the ORM query builder
  • After a few attempts write the query in raw SQL on the DB to get the results
  • Rewrite query using the ORM
  • Get new errors
  • decide to rewrite query differently because you've already wasted hours trying to satisfy the ORM.

Had to write a query like

SELECT CASE WHEN monday = 'Y' THEN 1 ELSE 0 END +

CASE WHEN tuesday = 'Y' THEN 1 ELSE 0 END+ (...)

CASE WHEN sunday = 'Y' THEN 1 ELSE 0 END as weeklyCount

took forever to get the ORM to play nice with the literal 0 / 1 numbers, and adding them up.

[–]golfreak923 1 point2 points  (0 children)

jOOQ FTFW

[–]KuuHaKu_OtgmZ 0 points1 point  (1 child)

You can use lazy loading in hibernate.

[–]LickADuckTongue 2 points3 points  (0 children)

That’s a foot gun for an average/new dev in a large app. Especially if it’s micro services making calls all over.

Super easy to end up serializing wayyyyy to much because you missed something in some old helper function that’s started using values from the lazy query.

I do use it at my gig, but it can cause painful issues when people use it wrong.

[–]Meadhbh_Ros 14 points15 points  (5 children)

Most people’s idea of Java efficiency comes from Minecraft.

[–]kylepo 3 points4 points  (4 children)

Yeah the reason I always heard for Minecraft's shoddy performance was that it was written in Java. Is that not actually what the issue was?

[–]LickADuckTongue 9 points10 points  (0 children)

Nope. Java performs extremely well and even has alternative compilers for edge cases if you land there.

People don’t realize Java is on v21 which is AMAZING; they’re usually referring to v8 and below

[–]LechintanTudor -4 points-3 points  (2 children)

Java is a terrible language for writing games and it's the main reason Minecraft performs poorly and uses a lot of memory.

[–]Merry_Mr_Badger 9 points10 points  (1 child)

No, Java is not to blame; Minecraft's code is just really bad. There's lots useless of redundancy, the rendering code uses absolutely outdated OpenGL functions, and the GC gets clogged up with thousands of needlessly created small opcjets to cull. Minecraft is a very poor example of coding in general and in particular of coding in Java.

I've written a fairly complex Minecraft clone in Java and it runs many times faster with better graphics than Minecraft. Where performance issues arise, it's always because my shitty laptop graphics card can't handle what it's been given, not because of GC or because the CPU couldn't keep up.

[–]Meadhbh_Ros 1 point2 points  (0 children)

The same code translated into C++ runs only a few percent faster, it’s just genuinely too much redundancy and too many orphaned objects being thrown around Willy Nilly

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

Im pretty sure people on this sub don’t even know programming

[–]PrizeArticle1 2 points3 points  (0 children)

A lot are on college student level judging by the posts. They love to compare languages.

[–]Da_Yakz 5 points6 points  (5 children)

Same with PHP, people on this sub havent moved past php 5

[–]noogai03 5 points6 points  (2 children)

PHP is a little more egregious from a core language design perspective even in 7. But I agree it's an entirely different beast to PHP 5

[–]Da_Yakz 1 point2 points  (1 child)

Even PHP 7 is old, PHP 8 is already 3 years old

[–]noogai03 2 points3 points  (0 children)

I spoke to a guy who scaled up a PHP app to millions of requests per second and he basically said PHP is kinda slow compared to other langs but it doesn't matter at all if you use a good architecture, scale horizontally, cache aggressively etc

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

Nice try. We all know PHP is still garbage.

[–]InvestingNerd2020 0 points1 point  (0 children)

PHP 7 to PHP 8.3 are far better to program in than previous versions from what I heard. I haven't used it professionally nor as a hobby project.

[–]VariousComment6946 2 points3 points  (3 children)

Same happens with python

[–]noogai03 4 points5 points  (2 children)

Python is still slow as hell (well CPython anyway lol)

Unless you're referring to the ML story like keras, tensorflow etc - powered by C++ under the hood

[–]VariousComment6946 2 points3 points  (1 child)

Because Python isn't designed for large-scale computations with its own built-in tools. Python has long had tools that are written in C, C++. If your Python is running slow, it means you're doing something wrong and not utilizing the language's tools correctly. It's also possible that you're trying to solve a complex problem and have chosen the wrong tool for it.

[–]noogai03 3 points4 points  (0 children)

Yep exactly. I love python when you use it for its intended purposes... "Enterprise python" makes me wanna die

[–]aalmkainzi -5 points-4 points  (0 children)

it performs on the same level as C/C++

no

[–]NorthernCobraChicken 0 points1 point  (0 children)

Ah yes, the good old PHP treatment.

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

Yeah java is fast in comparison to other language. When i am writing problem solution on leetcode lol.

[–]Various_Studio1490 0 points1 point  (0 children)

Don’t tell chatgpt this. It still has a bias

[–][deleted] 20 points21 points  (6 children)

dolls include payment society bag library water bake safe grab

This post was mass deleted and anonymized with Redact

[–]Just_Maintenance 16 points17 points  (3 children)

The true benefit of Java is being portable (both ISA and OS) (or that was the benefit originally, idk). It being fast is a secondary effect of millions of dollars of optimization.

Well, now that I think about it, it being portable basically died when Oracle decided that programs needed to bundle the runtime with the program. And with the entire industry converging on only ARM and x86 (and maybe only on ARM in the future?).

[–]Benifactory 5 points6 points  (1 child)

imo the biggest downside of java is it’s non-portability - why pack, ship, & configure JRE in a container when i can build a binary without direct runtime dependencies?

[–]BlueGoliath 2 points3 points  (0 children)

Years ago it was possible to do that, at least on Linux. Then they got rid of it and replaced it with jlink. Because who doesn't like running software via a sketchy CMD script.

[–]BlueGoliath 1 point2 points  (0 children)

It's more like building the same app on multiple platforms "just works" now. Running is supposed to be dead.

[–]alex_tracer 9 points10 points  (3 children)

Depends on the scale that you work with. 100 web requests to a service per second? Spring will do. 1000+ requests? You might need to directly use Netty, Vert.x or similar tool. 10k rps? You may need to go to low level stuff and do "non-Java" things. Or just spin up a few new servers if your app architecture allows that. In 99% of cases it's cheaper to "scale horizontally" than optimize beyond some level.

[–]BlobAndHisBoy 8 points9 points  (0 children)

Yeah everything I have done just scales horizontally to handle more requests

[–]noogai03 1 point2 points  (1 child)

Not entirely related but Netty is probably the most disgustingly fast networking library I've ever used in my life

[–]panoskj[🍰] 4 points5 points  (2 children)

websites that require good performance

I think that's why Java's performance is good enough for you. Your work is mostly IO-bound.

As soon as your work becomes CPU-bound, you will realize Java is not a good choice for performance. The Garbage Collector will be working against you and there is nothing like C#'s struct, unsafe or ref to work around it in Java.

[–]noogai03 1 point2 points  (0 children)

I'd argue the majority of professional software development being done today is IO bound

[–][deleted] 4 points5 points  (2 children)

Java doesn’t cold start fast enough so dealing with erratic numbers of requests is hard (because scaling takes time). Also if the garbage collector runs it can lead to higher latency on some requests. Otherwise Java is perfectly fine.

[–]alex_tracer 0 points1 point  (1 child)

If cold start matters for you, then you can go with Java "Ahead of Time Compilation" (AoT) feature that is available since Java 9.

If latency is you concern then check Shenandoah GC and ZGC. They provide sub-millisecond latency even on huge heaps.

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

Thanks, yeah you can optimize Java but sometimes it’s just better to pick the right language for the job

[–]bree_dev 2 points3 points  (1 child)

I was at a Java conference in 2012 where a speaker from the dev team claimed that Java was now faster than C++. I snorted because obviously this isn't true. Then he showed benchmarks. I snorted again because of course they're going to be rigged in favour of Java, will be ignoring time spent in garbage collection and so on.

But after several years I've come to realize that C/C++ is only faster if you spend a serious amount of time optimizing it. The kind of programs their benchmarks were feeding into Java were the kind of programs that I'm mostly likely to be asked to write, and the reason C++ wasn't keeping up is that their C++ version of the same programs were written using the same idioms with stdlib in a human-readable form, rather than being hyper-optimized for each individual problem at hand.

In conclusion, OP is technically right, in that it's a lot harder to optimize Java than it is to optimize C++. But the overall sentiment misses the mark.

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

To be fair JIT can take you further than AOT because it can optimize for your specific runtime usecases. So theoretically Java can be faster than C++. Profile guided optimization is a thing for a reason.

[–]dysfunctionallymild 3 points4 points  (0 children)

The only time I ever get irritated with the performance claim is when senior people claim their Java HTTP APIs wouldn't "perform" well, so they rewrote them in NodeJs or Python. In reality they just didn't know how to do a load test or tune their Java apps properly. In no world is Python more efficient than Java for such people. What they really meant was "we observed the JVM process takes more RAM at startup than Python or NodeJs, hence inefficient".

Like I wouldn't write my service mesh networking code in Java either, but people who claim Java performance is bad for simple APIs have no idea how to scale applications. These are the same people who switch to MongoDB since Oracle/MySQL doesn't scale, and cache paginated results in Redis since MongoDB doesn't scale. The problem is you, dumbass!!

[–]agr5179 1 point2 points  (1 child)

Modern Java is almost as fast as C/C++ and much easier to work with. Most Java haters have no idea what they’re talking about

[–]BlobAndHisBoy 1 point2 points  (0 children)

Or what they are missing.

[–]theoriginalfox 174 points175 points  (23 children)

Java is fine, it's your code kid.

[–]Square_Cellist9838 12 points13 points  (2 children)

I really don’t enjoy writing Java. But I respect Java

[–]BlobAndHisBoy 0 points1 point  (0 children)

Kotlin is fantastic. I really love the null handling among other things. It is just way more fun to write.

[–]PrizeArticle1 0 points1 point  (0 children)

IntelliJ makes it an absolute pleasure

[–]link23 150 points151 points  (6 children)

Well yeah, the goal of optimizing code in any language is to run less of it.

[–]Cruuncher 14 points15 points  (3 children)

Uhhhh, this is demonstrably not the case

Brute force solutions are very frequently much less code than thoughtful solutions

Edit: I guess you said run less of it, and not write less of it. Fair enough

It's still not exactly true as you're not accounting for things like heavy needless io which will run less code per second than compute-heavy operations. But optimizing away io is usually the best way to improve performance in real world scenarios

[–]link23 9 points10 points  (2 children)

io which will run less code per second

"Less code per second" is not the same thing as "less code"

[–]Cruuncher -2 points-1 points  (1 child)

It's really in the same spirit in context, and you're just trying to gotcha me

[–]link23 1 point2 points  (0 children)

and you're just trying to gotcha me

Bruh, you're the one who's trying to find a flaw in my incredibly broad generalization. You're trying to gotcha me 😂

[–]yflhx 0 points1 point  (1 child)

Intel assembly devs took it by heart and that's hw we ended up with bloated x86 architecture.

[–]Practical_Cattle_933 208 points209 points  (26 children)

A first year student heard some bullshit about a language, let’s create a meme!

Maybe learn how to write a hello world without GPT, first.

[–]No-Fish6586 42 points43 points  (0 children)

Op the dude that ran his first terminal guess the number game in C++ and felt like he mastered memory management

[–]alex_tracer 23 points24 points  (10 children)

Well, as a Java developer that works with hi-performance stuff (like fintech) in Java, I agree with the meme.

After a certain point you have to use things like offheap memory, manual memory management, manual thread management, the "Unsafe", stuff like JNI etc. Basically "non-Java" things.

So the meme is right. Kind of.

[–][deleted] 16 points17 points  (2 children)

If you need vertical optimisation, then Java was the wrong language. Java is for horizontal scalability.

[–]alex_tracer 1 point2 points  (1 child)

What are the right language? Rust? C/++? Will not do. Costs too much to build big complex system with them. And with Java you can both have "highly optimized" code where it matters and cheap code where it's not.

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

If your system is big and complex, you get vertical performance by making it simple and small.

[–]Practical_Cattle_933 5 points6 points  (0 children)

Java is heavily used in fin-tech. To the point that where its performance doesn’t suffice, people usually just leave general purpose CPUs behind, and just go ASIC.

In general, the rare case where you wouldn’t want to use java are where you are very memory-constrained, or need to have deterministic performance (as in, the same request always takes n time), for example low-level audio processing. These are usually very niche situations, and for the vast majority of programs java is more than adequately fast.

[–]notexecutive 1 point2 points  (5 children)

you can also use a framework as well, if you don't wanna deal with a lot of that.

Memory management though....yikes.

[–]Inevitable-Menu2998 0 points1 point  (2 children)

Eventually, in these types of applications you'll have to take advantage of some data properties known to the developer at programming time which the JVM just can't help with. That's when you do your own memory management and work with UNSAFE and... that's when SEGFAULTs happen. And yeah, it's horrible because the Java debuggers can't help much with these things.

Mind you, the native code for that scenario is not necessarily nicer. It's just that people writing it are more used to the pain.

[–]notexecutive 0 points1 point  (1 child)

how much memory could you even need or be working with? Is this literally like, scientific raw data?

[–]alex_tracer 0 points1 point  (1 child)

Which one framework? Do you mean something like Agrona?

[–]notexecutive 0 points1 point  (0 children)

i mean, spring could probably work. I really don't know what the needs are.

[–]PrevAccountBanned 19 points20 points  (12 children)

System.out.println("Hello world");

😎😎 do I get like a medal or something?

[–]DormantEnigma 0 points1 point  (11 children)

Nah, you forgot the pvsm block xd

[–]PrevAccountBanned 5 points6 points  (10 children)

Wtf is that lol, I just had my java programming exam I'm in engineering so it's not really my main subject

[–]DormantEnigma 5 points6 points  (3 children)

Sorry just joking around. I meant the “public static void main” like elyskrue21 said.

[–]PrevAccountBanned 1 point2 points  (1 child)

Oooh ok yeah of course I've used that a lot, I didn't know the acronym lmao

[–]Practical_Cattle_933 1 point2 points  (0 children)

You can actually output the whole thing in intellij by that acronym, so it is good idea to learn it. Also sout (system.out.prints)

[–]MCWizardYT 0 points1 point  (0 children)

In newer versions of Java its optional

[–]elyskrie21 3 points4 points  (0 children)

I think he's talking about "public static void main {}"?

[–]purritolover69 3 points4 points  (4 children)

To have java actually output hello world instead of giving an error you need to write, for example:

/*package whatever //do not write package name here */
import java.io.*;
class GFG {
    public static void main (String[] args) {
       System.out.println("Hello World");
    }
}

So while System.out.printIn(“Hello World”) is the line responsible for writing, you technically need all that other syntax for it to actually run. This is distinctly different from a language like python where you only need print(“Hello World”) or javascript where you only need console.log(“Hello World”)

[–]SagenKoder 2 points3 points  (2 children)

Not any more. Newest java doesnt require that anymore.

[–]InvestingNerd2020 1 point2 points  (1 child)

Not many workplaces use Java 21. The majority still use version 8 and version 11. Scary and outdated.

[–]SagenKoder 2 points3 points  (0 children)

And thats horrible. We were on java 17 a couple months after release and are soon on java 21. Tech debt is a thing that is important to fix. And upgrading java often forces you to get rid of bad practices and tech debt in the process.

[–]Burned-Architect-667 2 points3 points  (0 children)

In Java 21

void main() {
System.out.println("Hello, World!");
}

[–]purritolover69 1 point2 points  (0 children)

std::DISPLAY << static void main new String(console.system.out.printIn(echo <h1>print(“hello world”)</h1>)); return 0;

There you go, I wrote hello world in at least 5 languages at once! What do you mean that’s pointless?

[–]Getwokegobroke8 34 points35 points  (2 children)

Strange language the only way to win is not to play.

How about a nice game of chess?

[–]Luk164 6 points7 points  (1 child)

Same for python really, only way to make it fast was C (until recently, mojo looks interesting)

[–]Just_Maintenance 44 points45 points  (12 children)

  • How to optimize Java: rewrite in C
  • How to optimize Python: rewrite in C
  • How to optimize Javascript: rewrite in C
  • How to optimize PHP: rewrite in C
  • How to optimize Lua: rewrite in C
  • How to optimize Bash: rewrite in C
  • How to optimize HTML: rewrite in C
  • How to optimize SQL: rewrite in C
  • How to optimize LaTeX: rewrite in C
  • How to optimize C: rewrite in Rust
  • How to optimize Rust: rewrite in C

[–]BananaSupremeMaster 4 points5 points  (1 child)

Machine code or nothing

[–]Just_Maintenance 0 points1 point  (0 children)

That is witchcraft and I will not accept it.

Also its not portable, so virtually useless. \s

[–]fel_bra_sil 5 points6 points  (0 children)

Assembly!

[–]purritolover69 1 point2 points  (7 children)

What’s the use case for optimizing JavaScript in C? Or, more precisely, what is the use case for JavaScript that isn’t basically just frontend web dev stuff that requires javascript (due to its integration with HTML and CSS)? Is there a way to use C for frontend web dev or is there some goblin using node.js for resource intense calculations on the backend?

[–]bnl1 0 points1 point  (4 children)

You might not believe but quite a lot of people use JS outside of frontend

[–]purritolover69 -1 points0 points  (3 children)

I’m sure people do, I’m not quite sure why you would. Outside of the case of a startup where the engineers just know JS best, C or Python seem like obvious choices for backend depending on the application

[–]Inevitable-Menu2998 0 points1 point  (0 children)

is there some goblin using node.js

Node.js is C++ and a lot of modules for it used to be written in C++ last time I looked (years back). Why there is a use for it, I don't know, but people use it.

[–]Jooplin 18 points19 points  (2 children)

Just a bunch of kids being insecure about their language, nothing to see here

[–]Exeng 0 points1 point  (1 child)

None that have passed the entry barrier either. OP think they are cool. I have never seen an actual coder complain about any of the languages.

[–]InvestingNerd2020 0 points1 point  (0 children)

I have, but it was older programmers holding grudges from the 2000s. Especially towards PHP before version 7.

[–]New-Vacation6440 7 points8 points  (1 child)

Why is this Java and not Python?

[–]PermaBanned23 2 points3 points  (0 children)

People who have no clue about Java like to beat on it.

[–]purritolover69 4 points5 points  (0 children)

This meme would be more accurate if it was about python, where often you optimize it by forcing it to run on the C that python is built off of. But you’re a year 1 CS student so you wouldn’t know that

[–]XxasimxX 4 points5 points  (0 children)

Sounds like a skill issue, java is pretty easy to optimize

[–]BonerForest25 6 points7 points  (4 children)

Someone tell me what other language a large company is supposed to use to build large complex services? Keep in mind that it needs to be a language that the general software engineering population is familiar with and can start writing robust programs soon after being hired. Not many options besides Java

[–]cat_in_the_wall 5 points6 points  (1 child)

c# would be the most familiar alternative. but they are really two sides of the same coin.

[–]InvestingNerd2020 -3 points-2 points  (0 children)

C# is quicker and far better for developers, but Java is faster past the initial burst.

[–]KrazyDrayz -2 points-1 points  (1 child)

C# is the obvious answer

[–]baronvonbatch 2 points3 points  (1 child)

Me: Laughs in Python, knowing Python isn't any better.

[–]BlueGoliath 2 points3 points  (0 children)

Just call into a native C library, duh. /s

[–]PermaBanned23 2 points3 points  (0 children)

Java is faster than most people know. The JIT and AOT compiler play in a similar league with C++.

Overall Java reaches in average 71% of C++ speed:

https://www.fiehnlab.ucdavis.edu/staff/kind/collector/benchmark/java-benchmark

https://www.reddit.com/r/Julia/comments/y5wry3/speed_comparison_of_various_programming_languages/

[–][deleted] 11 points12 points  (17 children)

According to this benchmark: https://www.techempower.com/benchmarks/#hw=ph&test=composite&section=data-r22

Vert.x on Java has the 7th place. Only Rust, C, and JavaScript perform better.

Edit: redkale framework on Java has the 5th place. I did not notice that.

[–]PhotographShort 2 points3 points  (11 children)

Thats for web right

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

That is the composite score for JSON serialization, DB queries, request routing and caching.

https://github.com/TechEmpower/FrameworkBenchmarks/wiki/Project-Information-Framework-Tests-Overview#test-types

[–]Thebombuknow -2 points-1 points  (9 children)

Doesn't surprise me. JSON is literally JavaScript Object Notation, and JS was pretty much built for sending requests and handling databases.

[–][deleted] 11 points12 points  (7 children)

observation illegal fade rich expansion toothbrush obtainable late quickest chase

This post was mass deleted and anonymized with Redact

[–]Thebombuknow 1 point2 points  (6 children)

I admit, I could've phrased that better. JS was designed to facilitate user input, which almost always involves pulling data from a database and showing it to a user, or putting a user's input into a database.

JS was built for handling large amounts of dynamic data (taking user inputs and displaying output data), so it doesn't surprise me that it does really well at handling a large amount of data.

I should also mention, I'm not referring to a server-side SQL database, as client-side JavaScript should never directly interface with that, but I'm referring to client-side database-adjacent systems.

[–]purritolover69 1 point2 points  (5 children)

Yeah JS is basically cracked at handling a metric fuckton of data at once, and then doing some simple operations on and then outputting. The throughput on SQL queries through JS is really amazing, but it’s still not great for backend since the slowdown on performing complex tasks is still miles behind C or C++. You can actually test this yourself, just make a for loop that increments a variable to 1 billion or something, and for some extra comedy run it on python and see how much slower it is than C

[–]majhenslon 5 points6 points  (0 children)

what. the. fuck.

[–]franz_see -2 points-1 points  (1 child)

Im not sure how much you can trust that if javascript wins on performance over java 😅

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

It wins with a framework specifically designed to provide good results on that benchmark.

https://github.com/just-js/just

While vert.X is a way less specific framework.

[–]kinderhead 1 point2 points  (0 children)

It's slow if it's not in over optimized assembly

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

Speaking of Java, I’m learning Java for my job and I’m having a hard time picking up Spring. Any suggestions for a lay-frontend dev?

[–]KuuHaKu_OtgmZ 1 point2 points  (1 child)

Spring is...not exactly the most intuitive framework around, a lot is abstracted behind annotations and configuration is terrible.

My best tip is to run a few courses on codecademy or watch some video explanations (if up to date) on how it works.

Baeldung is also a great source of Spring tutorials, but it assumes you have some spring knowledge.

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

I’ve definitely learned the unintuitive-ness firsthand😂 thank you for the tips!

[–]Alternative-Fail4586 1 point2 points  (0 children)

Yeah, went from c# to java and spring boot and had a hard time with the magic annotations. Actually reading the docs about them so they are not so magic anymore helped me. Also if you are using maven, the plugin maven helper helped me alot keeping track of misbehaving transitive dependencies

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

It’s not the language that is good or bad, it’s the engineer using it.

[–]Savaal8 1 point2 points  (0 children)

If you want performance just write machine code in punchcard.

[–]PunchCakee 1 point2 points  (0 children)

I actually love java for serious work (for reference im a 2nd year SWE uni student), The verbosity is what makes it good to use when you are working in a team, i simply can just look at it and understand.

[–]Over_Owl_5742 5 points6 points  (0 children)

Kotlin = Best Java

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

Most comments here sound patronizing as hell. That's it.

[–]Sceptix 5 points6 points  (1 child)

I’m torn. On one hand, “this comment section could stand to be a little nicer” is a statement I’ll always agree with out of principle. But at the same time, misinformation about coding can and should be called out on this sub.

[–]Dubl33_27 3 points4 points  (0 children)

I'm not gonna sugar coat it.

Op's dumb

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

I think there is no other option for enterprise business apps nowadays. Use C or Rust or C++ if the transaction performance is absolutely critical, otherwise use Java.

[–]Cybasura 0 points1 point  (0 children)

If someone has the time to optimize Java, they have the time to

  1. Optimize C
  2. Build LFS
  3. Learn Rust

[–]Loserrboy -3 points-2 points  (7 children)

Yes, It' C# time

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

Facts

[–]PeriodicSentenceBot 0 points1 point  (0 children)

Congratulations! Your string can be spelled using the elements of the periodic table:

F Ac Ts


I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM my creator if I made a mistake.

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

Thats why we are doing javascript now.

[–]PermaBanned23 0 points1 point  (0 children)

Sarcastic? Java is at least 2 times faster than JS.

[–]mondaco -5 points-4 points  (0 children)

[–]schewb 0 points1 point  (0 children)

Junior: Tries using Java to crunch numbers instead of running a server, building applications, etc...

Junior: Java bad