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]
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.
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.
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.
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.
On Objective-C, due to the way the language works, besides ClassFactoryGeneratorFactories, you would need to add all parameter names to the identifier.
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.
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.
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.
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.
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:)
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.
[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...
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.
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.
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.
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.
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.
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.
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
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.
reply