Hacker News new | past | comments | ask | show | jobs | submit | internetter's comments login

How did it do?

I'd rather write rust than java, personally

If I have all the time in the world, sure. When I'm racing against a deadline, I don't want to wrestle with the borrow checker too. Sure, it's objections help with the long term quality of the code and reduce bugs but that's hard to justify to a manager/process driven by Agile and Sprints. Quite possible that an experienced Rust dev can be very productive but there aren't tons of those going around.

Java has the stigma of ClassFactoryGeneratorFactory sticking to it like a nasty smell but that's not how the language makes you write things. I write Java professionally and it is as readable as any other language. You can write clean, straightforward and easy to reason code without much friction. It's a great general purpose language.


Java is incredibly productive - it's fast and has the best tooling out there IMO.

Unfortunately it's not a good gaming language. GC pauses aren't really acceptable (which C# also suffers from) and GPU support is limited.

Miguel de Icaza probably has more experience than anyone building game engines on GC platforms and is very vocally moving toward reference counted languages [1]

[1] https://www.youtube.com/watch?v=tzt36EGKEZo


He would vouch as great as he might be, he has a bias, and Mono GC was never a great implementation.

Also here is how great his new Swift love performs in reality against modern tracing GCs,

https://github.com/ixy-languages/ixy-languages


Interesting link, but that's a nearly 7 year old version of Swift (4.2) running on Linux.

I wonder how the performance would be with Swift 6.1 which has improved support for Linux.


Probably much better, given the improvements on the Swift optimizer, but just goes to show "tracing GC" bad, "reference counting GC" good isn't as straighforward as people make it to be, even if they are renowned developers.

It's a cherry picked, out-of-date counter-example. Swift isn't designed for building drivers.

In reality, a lot of Swift apps are delegating to C code. My own app (in development) does a lot of processing, almost none of which happens in Swift, despite the fact I spend the vast majority of my time writing Swift.

Swift an excellent C glue language, which Java isn't. This is why Swift will probably become an excellent game language eventually.


It surely is, according to Apple's own documentation.

> Swift is a successor to the C, C++, and Objective-C languages. It includes low-level primitives such as types, flow control, and operators. It also provides object-oriented features such as classes, protocols, and generics.

-- https://developer.apple.com/swift/

If developers have such a big problem glueing C libraries into Java JNI, or Panama, then maybe game industry is not where they are supposed to be, when even Assembly comes to play.


> GC pauses aren't really acceptable

Java has made great progress with low-pause (~1 ms) garbage collectors like ZGC and Shenandoah since ~5 years ago.


People have 240hz monitors these days, you have a bit over 4ms to render a frame. If that 1ms can be eliminated or amortised over a few frames it's still a big deal, and that's assuming 1ms is the worst case scenario and not the best.

I don’t think you need to work in absolutes here. There are plenty of games that do not need to render at 240hz and are capable of handling pauses up to 1ms. There’s tons of games that are currently written in languages that have larger GC pauses than that.

What about the C# garbage collector? Is it much better? Because Unity is in C#, right?

Unity uses aginging Mono runtime, because of politics with Xamarin, before its acquisition by Microsoft, migration to .NET Core is still in process.

Additionally they have HPC#, which is a C# subset for high performance code, used by the DOTS subsystem.

Many people mistake their C# experience in Unity, with what the state of the art in .NET world is.

Read the great deep dive blog posts from Stephen Toub on Microsoft DevBlogs on each .NET Core release since version 5.0.


Yes and it's impressive.

For the competitive Minecraft player, I suspect starting their VM with XX:+UnlockExperimentalVMOptions is normal.

A casual gamer is however not going to enjoy that.


Are you sure that enabling ZGC or Shenandoah requires UnlockExperimentalVMOptions ?

I have found that the ClassFactoryGeneratorFactories sneak up on you. Even if you don't want to the ecosystem slowly but surely nudges you that way.

That has not been my experience. Sure, you don't have any control over the third-party stuff but I haven't seen this issue being widespread in the mainstream third-party libraries I've used e.g. logback, jackson, junit, jedis, pgJDBC etc which are very well known/widely used. The only place I've actually seen proliferation of this was by a contractor, who I suspect, was trying to ensure job security behind impenetrability.

It is ironic how Java got that stigma and other systems that are just as bad, or worse, like Objective-C, have not.

Well I have never used Objective-C so I can't comment on it.

On Objective-C, due to the way the language works, besides ClassFactoryGeneratorFactories, you would need to add all parameter names to the identifier.

Here, enjoy https://github.com/Quotation/LongestCocoa

There is even a style guide on it,

https://developer.apple.com/library/archive/documentation/Co...


I'd have said the same thing 10 years ago (or, I would have if I were comparing 10-year-old Java with modern Rust), but Java these days is actually pretty ergonomic. Rust's borrow checker balances out the ML-style niceties to bring it down to about Java's level for me, depending on the application.

I’d rather write Java than Rust, personally

Same here, and if I get bored with Java, there is also Scala, Kotlin and Clojure to chose from.

However, I would still prefer C# or F#.

Hence why I enjoy both stacks, lots of goodies to chose from, with great tooling.


I would do C#, but I don’t want to be in async/await hell.

Also it’s subjective but PascalCase really irks me.


PascalCase has been my favourite since MS-DOS days, I have been through most Borland products, and Microsoft ones, alongside many Pascal influenced languages, thus it feels like home. :)

But yeah it is subjective, also don't have much qualms with other alternatives.


Wow, way to be un-hip.

Note that I mentioned JVM languages. There is Scala, Kotlin and others. Kotlin is the default for Android, and it is really nice.

Kotlin is nice indeed. Most of the issues I had with it were in interop with Java code (those pesky platform types, that behave like non-nullable but are nullable: and you are back in the NPE swamp!)

I think you skimmed too fast. Widgets, allegedly, are eagerly evaluated when an app is opened, and the system keeps trying failed attempts:

> After restarting, as soon as SpringBoard was initialized, the extension would be woken up by the system, since it had failed to produce any widget entries before, which would then start the process all over again.


The article claims that they had to manually cause the widget to crash so that the result doesn't get cached, right? So that's at least one line to trigger the reboot, one line (likely more) to register as a widget, and one to crash it.

You would rather "Made in China" over "Made in the USA?"

Between a trade war, abuse by border services, threats of annexation, economic instability taking a dump on my retirement and cost of living. For sure. I have conferences, memories in Hawaii, family in the US and I ain’t going. I actually hope life in the US becomes more uncomfortable for the average person for a while so the ideology driving MAGA becomes persona non grata for a generation or two. I’ll vote the only way I can: my money. -a slighted Canadian.

China hasn't threatened to make Canada a Chinese province so given no friendly alternative, I'd 100% buy the Chinese model.

and a whole lot of stuff coming from the US to Canada, is just transhipped made in China products, so Canadians could do well from establishing new supply chains......aaaaand reversing that trend:)

China is the Nazi Germany of our time. USA has a long long way to go before that no matter how much you hate the orange man.

Given Tibet, Taiwan, Hong Kong, and Xinjiang, that is possibly the worst example you could have chosen.

First, it's not an example I'm replying directly to the question.

Second, as a Canadian, I'm primarily concerned with the sovereignty of my country. Given both powers are expansionist, I'll take the one that isn't personally threatening me.

As mentioned in my previous comment, given a choice to deal with a non-expansionist, free democracy, I'd much quicker patronize them.


China is operating police stations in your country [1,2], subverting your elections [3,4], and got you to pass a trade agreement tilted wildly in their favor [5,6]. If you're worried about real sovereignty, your top current threat is China, that will happily pull the strings while letting you have sovereignty in name only.

[1] Why are Chinese police operating in Canada, while our own government and security services apparently look the other way? - https://web.archive.org/web/20220926120429/https://www.thegl...

[2] Canada police probe alleged Chinese 'police stations' in Montreal - https://www.reuters.com/world/americas/canada-police-probe-a...

[3] CSIS documents reveal Chinese strategy to influence Canada’s 2021 election - https://web.archive.org/web/20230217155126/https://www.thegl...

[4] CSIS documents reveal a web of Chinese influence in Canada - https://web.archive.org/web/20230227134241/https://www.thegl...

[5] Canadian governments are locked in for a generation. If Canada finds the deal unsatisfactory, it cannot be cancelled completely for 31 years. China benefits much more than Canada, because of a clause allowing existing restrictions in each country to stay in place. Chinese companies get to play on a relatively level field in Canada, while maintaining wildly arbitrary practices and rules for Canadian companies in China. - https://www.cbc.ca/news/canada/fipa-agreement-with-china-wha...

[6] https://en.wikipedia.org/wiki/Canada-China_Promotion_and_Rec...


I'm under no illusion that the government of the People's Republic of China is a friend to Canada nor do I think any of my comments make it seem that way. I reiterate my commitment to patronize non-imperial free democracies.

I have a long history of fighting against equivocations of the US and China under previous administrations, but over the course of less than 100 days the US has declared literal economic war against all its allies and has made it clear that it is hostile to free democracies the world over.


> If you're worried about real sovereignty, your top current threat is China,

No, there's still only one foreign leader that's repeatedly threatened to annex my country. The one we share a border with, not an ocean.

And thanks so much for posting some articles I've already read. At this stage I'd rather have some BYD factories than Tesla.


a few years back, China did offer to buy EVERYTHING, that Alberta could produce....but not the actual place.....bet there are some realy hard talks happening right now The bottom line is that there is only so much stuff to go around on the planet, so all that CAN happen, is a big fucking game of musical chairs, but maybe thats, a good thing.

If you're more worried about bark than bite, then yours is a reasonable position to take.

I can't wrap my head around how your comment is relevant at all.

Any of those places a place in Canada?

Nor has the US. One particular person in the US has talked about that. I don't particularly see how it's justified to take it out on a country of 300 million people when the vast majority of them aren't responsible for what you object to.

The leader represents the country because the votes of the citizens put him in power. Nobody else in the US government with a similar amount of power has rejected or denied the 51st state rhetoric. This is what worries Canadians: nobody is stopping the American president. There are no checks and balances.

It's not just one guy it's THE one guy that really matters. And a majority of voters picked that guy.

I guess I’ll be the “technically” guy and point out that’s not true. Trump has more votes than any other candidate, but the majority of voters were for Harris or 3rd party.

Huh, you're right[1]. Trump only got 49.80% of the popular vote.

Of course, Kennedy (who is in Trump's cabinet, and seems broadly aligned with the MAGA agenda) got another 0.49%... and Oliver (the MAGA-adjacent Libertarian candidate) got another 0.42%. Hardly the ringing endorsement of "American's didn't really pick the guy" that Canadians want to hear.

[1] https://www.fec.gov/resources/cms-content/documents/2024pres...


It's only the president of the United States vaguely threatening war against another country. It's not like his opinion matters or anything.

Well, I mean, China isn't currently threatening to invade Canada, so there's that.

I’m a dual citizen. Either we will never have elections again because America is a theocratic dictatorship, or diplomatic and economic relations will be restored. It is only through gerrymandering and propaganda that the current clownshow is in power. Oh, and racism, that contributed too.

Don't forget to add wide-spectrum dissatisfaction with the economy and incompetence of the incumbent party's campaign team to your list.

Harris ran a very left-of-center campaign in the 2020 primary election, and soundbites from that were played on repeat in 2024 (some of which didn't age well and some of which were always unpopular in certain circles). That that would happen was an easily foreseeable consequence of making her the candidate. The incumbent party could have chosen a different candidate if they had made an earlier decision to not try to re-elect the president.

You can't cure the disease if you get the diagnosis wrong.


We all know that the powers that be ($$) will not allow allow for any meaningful change, and that the right is simply obstructionist when they don't have the White House, so it shouldn't matter who the Democrats ran.

The fact that even after the first Trump presidency (a disaster for anyone that isn't extremely wealthy) enough people voted for a criminal idiot surrounded by incompetent sycophants is still absolutely incredible to me. I'm still in shock even to this day.


Trump should have been an automatic loss for the republicans,. regardless of if the Democrats were led by a literal clown who promised free balloon animals for all. He was openly fascist-leaning and repeatedly demonstrated his lack of care for the truth.

At this point, that is a pretty popular sentiment in Canada.

Not only in Canada but in the whole Western world.

Travel to the US, Tesla (which is very closely associated to Trump, via Musk) are already collapsing at an unprecedented speed. The only comparable period would be Covid lockdowns. The difference is that in 2020 this was expected to be somewhat temporary, even if the duration was unknown at the time, while this time is much more sentimental - it will take decades to unwind it. It's like trust - it takes a long time to build, but you can destroy it all in a second. And Trump did just that.


Yes, 100% absolutely.

Absolutely.

Yes.

Also the creator of Gill Sans—Eric Gill—sexually abused his children and dog. Licensing aside I wouldn’t touch this font with a 12 foot pole

Proper routing is also an expensive computation. Yes you could just run A* or something on the roads but that would assume no closures, no one way roads, wouldn’t account for elevation change, ect. Using a proper routing API is almost certainly cost prohibitive

Could you parallelize intelligently based on these heuristics? Like, say, whitelist GitHub and S3 for parallelizing

When I asked a few years ago, the brew maintainer said "parallelizing at this scale would hurt github, source: I work for github"

Definitely sounds like one of those "I don't want to do it because it's work, but I don't want to admit that so here's a spurious technical reason" excuses to me.

If spikes at midnight etc are an issue just automatically disabled parallel downloads around midnight. Or only use them when running in a terminal. I really doubt it is an issue for GitHub though.


Can you think of any more charitable reason than this? I think it beggars belief that Homebrew isn’t interested in improving performance; it’s something we talk about constantly and is one of our largest and most consistent user asks.

(It’s not just midnight, or terminals, as mentioned, not that either of these is really a “just”. And it’s not just GitHub, as mentioned.)


To be clear I think "it's a lot of work and we don't want to deal with the complexity" is a totally valid reason. I have that reason for not doing a ton of things.

I just don't think "it shouldn't be done" is really the true reason. It's very tempting to say that though because it sounds like a stronger defense than "I don't want to". I think some people that do it don't even realise.


(In this subthread it is just github because we were discussing enabling parallelism for github only. The terminal proposal meant "keep it single thread for CI")

Okay. The problem is still present in the GH case, although to a lesser extent.

These kinds of complications on a "same experience for everyone" flow are also nontrivial: single-threading on CI is hard to explain to users who see very fast local installs and slow CI installs - the latter costs them extra money! - and complicates the story with mirrors, download groups that include non-GH origins, etc.

That's not to say it's impossible; as linked in another thread, it's something that's being actively worked on. But I think it should be understandable why "just parallelize it and you're wrong/stupid/lazy because you haven't already" is neither a contextualized or charitable response.


I agree that the brew devs are not stupid or lazy (as can be seen by the great popularity of the tool they developed among the complaining demographic).

I suspect they are wrong in this specific care based on the "every other package manager solved this" heuristic, but I have no doubt this is not a straightforward issue.

Personally, I dropped the case after offering to send a PR and getting back a "we won't accept this, it's not because we didn't think of it, from where we're standing it's a bad idea". They may or may not be wrong, but X am definitely wrong here, knowing almost nothing about it.


> but that quickly turns into ridiculous competition.

Except the platform providers hold the trump card. Fuck around, if they figure it out you'll be finding out.


I imagine not great. Almost certainly heavy bias to popular songs instead of "niche but relevant"

Google does not return the best content.

It usually returns good enough content for me

Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: