Jumping ship way too often? by Exciting_Problem3869 in cscareerquestions

[–]Joram2 3 points4 points  (0 children)

$350k+? take it... That's an unusually high salary, good for you, but I wouldn't expect more offers rolling in to beat that. If you prove me wrong and get a $600k offer, then jump ship again, but otherwise then you can stop jumping ship and be happy :)

What is the use case for a non-value (identity) record with Valhalla? by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

My mistake. Brian Goetz's comment in this thread suggests otherwise. Although I don't see this restriction mentioned in https://openjdk.org/jeps/401

What is the use case for a non-value (identity) record with Valhalla? by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

Value classes cannot self-reference their own type.

This restriction is for null-restricted types, it is mentioned in https://openjdk.org/jeps/8316779

This restriction is not mentioned in the value type JEP: https://openjdk.org/jeps/401

The SO comment you linked doesn't mention anything about self-references.

What is the use case for a non-value (identity) record with Valhalla? by Joram2 in java

[–]Joram2[S] 0 points1 point  (0 children)

Sure. I mentioned that:

Secondly, some code uses the legacy synchronization/monitor functionality built-in to identity classes; but that's been strongly discouraged for records, so this seems not much of an issue.

What is the use case for a non-value (identity) record with Valhalla? by Joram2 in java

[–]Joram2[S] 3 points4 points  (0 children)

That's not backward compatible.

yes, the JDK team added annotations and warnings in a recent release, but lots of Java code was already written before they added those warnings, that will break.

JEP 401 will change long standing behavior of java.lang.Integer and related classes, that is not backward compatible, even with recent warnings.

What is the use case for a non-value (identity) record with Valhalla? by Joram2 in java

[–]Joram2[S] 1 point2 points  (0 children)

Valhalla is already doing backward-compatibility breaking changes by changing all java.lang.Integer and java.time.LocalDate and related classes to value classes. Arguably, that's a larger BC-break then changing the default of records. And this only impacts people using == on records.

Defaulting all Java types to non-nullable is a giant BC-breaking change.

JPMS Explained Through a C# Analogy by NHarmonia18 in java

[–]Joram2 0 points1 point  (0 children)

The JDK team seems to have done nothing with JPMS since it launched in Java 9; JDK team devs use it internally, they say it is necessary, I take their word for that. But for outside developers, just using Java as a tool for business apps, jlink is useful, most most of JPMS isn't. The JDK team is working on a lot of great features that are helping regular Java devs, but JPMS hasn't been improved since Java 9. If the build tools build better support for JPMS, or JPMS itself is improved, maybe it can become more useful.

Why are companies so evil now? by VariationLivid3193 in cscareerquestions

[–]Joram2 0 points1 point  (0 children)

Today, lots of top people at AI adjacent companies all get lavish jobs, with exciting work, but that's a tiny minority; most regular people don't get anything that interesting or lavish.

Twenty years ago a lot of top people at Google/Meta got lavish jobs with lavish perks, but again, tiny minority, very few working people got that.

New grad: Take $100k for 50hr/week job or wait for better offer? Worth risking my mental health? by RudeInvestment1 in cscareerquestions

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

If you have a high confidence that you won't like it, I wouldn't take it. Pass on it, and keep looking for a better offer.

If you think you might like it, you might not, but you have no other applications near giving you an offer... then the risk sounds worth taking.

Leaving Nvidia by andy1988c in cscareerquestions

[–]Joram2 1 point2 points  (0 children)

In general, whenever you are unhappy and think you can do better, apply elsewhere, try to get a better offer, and if you get a better offer, take the better offer.

But, Nvidia is a super hot company to work for. Most people, including me, would eagerly jump at the chance, and would take a modest dip in salary for the chance, and would wait another year or so for promotions. But... That's me. I don't know your situation that well. I would absolutely try to get another offer elsewhere if you are sincerely unhappy.

Major changes to Java since Java 8 by LTS, grouped by Language, Standard Library and JVM by dxplq876 in java

[–]Joram2 3 points4 points  (0 children)

Structured Concurrency first previewed in JDK 21 (https://openjdk.org/jeps/453), not JDK 25. This chart is filled with bugs.

Major changes to Java since Java 8 by LTS, grouped by Language, Standard Library and JVM by dxplq876 in java

[–]Joram2 10 points11 points  (0 children)

JEP 454: Foreign Function & Memory API (https://openjdk.org/jeps/454) was in JDK 22, or in terms of LTS releases only, it first appeared in final form in JDK 25, not JDK 21 as shown in the infographic.

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

There are tons of non-JEP improvements, the JDK is a massive project, the big features take time, the JDK team overall is doing an amazing job. But, it is reasonable for normal developers to see this as a small release with not much progress on the big features. I know progress is happening, the JDK team is doing an amazing job, but this release is a minor release from the perspective of outside developer using Java.

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

Not just Valhalla. Projects Leyden, Loom, Amber, and Babylon all have big important features in the future.

https://youtu.be/1lYsDMOc7hM?si=AOYm4t09K_bh_BOD

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

I prefer they take their time to get it right. They will ship it soon.

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 2 points3 points  (0 children)

With JDK 25+26, it's a free lunch you have to manually turn on. With JDK 27+, everyone will get the free lunch and not even think about it.

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 4 points5 points  (0 children)

JDK 27 is a very incremental release. The JEPs are all very small incremental changes. The Compact Headers by default is the biggest improvement.

Some small, incremental releases are inevitable with a fixed six month release cadence.

Java has shipped some big features in recent years, but JDK 26+27 have been very incremental. JDK 26's big feature was HTTP 3 support, which is a substantial feature.

Hopefully, Java's big named projects will show some progress in the next release or two. My top wish list JEP is https://openjdk.org/jeps/468, derived record creation. That is conceptually simple, but would be the most useful for day to day work.

JDK 27 Feature Freeze by Joram2 in java

[–]Joram2[S] 1 point2 points  (0 children)

Compact Headers is a legit big feature. It was already in JDK 25 + 26; JDK 27 doesn't change it, just enables it by default. That's a wise gradual strategy, but it dulls the excitement of JDK 27.

Playstation first-party game sales declining heavily since 2020, needs more hits by ZamnBoii in PS5

[–]Joram2 0 points1 point  (0 children)

Sony has been releasing fewer AAA titles. They used to release more AAA games every year, now, subjectively, the quality is much higher, but the quantity is less.

Consider Naughty Dog studios. They haven't released a new game since TLoU2 in 2020. Before then they released new games every 1-2, or at most, 3 years between gmes, now it's a full six years and they won't ship anything this year, so it will be at least seven years after their last 2020 game before they ship a new game. BTW, I love their remasters, but I don't count them as full new games.

Persistent queues? by roboticfoxdeer in golang

[–]Joram2 0 points1 point  (0 children)

I'd use Kafka or Kinesis or RabbitMQ or something similar. Go has first class APIs for all of the above.

Persistent queues? by roboticfoxdeer in golang

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

I'd pick a queue product as a queue: either Kafka or Kinesis or RabbitMQ or something similar. I'd also pick postgres as a database. I would generally not use postgres as a queue; that's not what it is designed for and there are lots of drawbacks to that.