Go user for ten years and I don’t know what happened, but this year I hit some internal threshold with the garbage type system, tedious data structures, and incessant error checking being 38% of the LoC. I’m hesitant to even admit what language I’m considering a full pivot to.
Java 21 is pretty damn nice, 25 will be even nicer.
For your own application code, you don't have to use exceptions you can write custom Result objects and force callers to pattern match on the types (and you can always wrap library/std exceptions in that result type).
Structured Concurrency looks like a banger of a feature - it's what CompletableFuture should've been.
VirtualThreads still needs a few more years for most production cases imo, but once it's there, I truly don't see a point to choose Go over Java for backend web services.
And Java has non-trivial advantage over Go of being arch-independent. So one can just run and debug on Mac Arm the same deployment artifact that runs on x86 server.
Plus these days Java GC has addressed most of the problems that plagued Java on backend for years. The memory usage is still higher than with Go simply because more dynamic allocations happens due to the nature of the language, but GC pauses are no longer a significant problem. And if they do, switching to Go would not help. One needs non-GC language then.
If you're building tools that need to be deployed to machines, Go/Rust with their static binaries make a lot of sense. But for backend web services, it's hard not to go with Java imo.
fwiw - My favorite language is Rust, but Async Rust has ruined it for me.
Yeah, async Rust is needlessly difficult. I can't quite put my finger on it but having to sift through 10+ crates docs definitely left a very sour taste when I had to modernize one tokio 0.1 app to a 1.x one.
I do love Rust a lot as well but most of the time I am finding myself using either Elixir or Golang.
There's an attempt to make linux kernel threads context switching much faster (150-200us vs 2500-3000us) and if that happens, I'll really hope the rust community pivots from Async for backend development to normal threading. And if that happens, I'll happily use Rust like I used to.
My company is trying to force Kotlin as the default, but I just prefer modern Java tbh. Kotlin is a very nice language, and I'd be fine with writing it, but modern Java just seems like it has "caught up" and even surpassed Kotlin in some features lately.
I like the idea behind Go, but I feel physical pain everytime I have some sort of `go mod` behaviour that is not immediately obvious. Import/Export is so easy, I still don't get how you can fuck it up.
I found Golang to be a gateway drug to Rust for me.
If you want strong control and very unforgiving type system with even more unforgiving memory lifetime management so you know your program can get even faster than corresponding C/C++ programs, then Rust is a no-brainer.
But I did not pick it for the speed, though that's a very welcome bonus. I picked it for the strong static typing system mostly. And I like having the choice to super-optimize my program in terms of memory and speed when I need to.
Modelling your data transformations with enums (sum types) and Result/Option was eye-opening and improved my programming skills in all other languages I am using.
> you know your program can get even faster than corresponding C/C++ programs
I have seen this argument a few times here are HN. To be clear, I interpret your phrase that Rust "will eventually" be faster than C or C++. (If I read wrong, please correct.) However, I have never seen any compelling evidence that demonstrates equivalent Rust code is faster than C or C++ code. Some lightly Googling tells me that their speeds are roughly equivalent (within 1-2%).
As mentioned, I didn't go to Rust for the performance alone so I didn't track the articles that tried to prove the claim. The stated logic was that due to having more info to work with the toolchain could optimize away, quite aggressively so, many things, to the point of the code becoming lighter-weight than C.
Whether that's true or not, I make no claims. Not a compiler developer.
And yeah I'd be quite content with 1-2% margin compared to C as well.
Yeah that was the one. I too left it unconvinced that Rust can get measurably faster than C, for what it's worth. But as said in another comment, even being 1-2% around the same ballpark is a huge win already and it would be enough for me.
OCaml is underrated IMO. It's a systems language like Go with a simple runtime but functional with a great type system and probably best error handling out of any language I've used (polymorphic variants).
Scripting languages would be (usually interpreted) languages for doing small snippets of code. Examples would be bash, Applescript, python, etc.
Application languages are generally managed/GC'd languages with JITs or AOT compilation for doing higher-performance apps. Examples would be Java, Go, Ocaml, Haskell, etc.
System languages are generally concerned with portability, manual memory layout, and direct hardware access as opposed to managed APIs. Examples would be C/C++, Rust, Zig, Pascal, etc.
Scripts are programs that carry out a specific task and then exit. If failure occurs, it is usually on the operator to fix the issue and run the script again. I agree that bash, AppleScript, Python, etc. are geared towards these types of programs.
Applications are programs with interfaces (not necessary graphical, but can be) that are used interactively. If failure occurs, the software usually works with the user to address the problem. It's not completely unheard of to use Go here, but I wouldn't call that its strength.
Systems are "forever"-running programs to provide foundational services other programs. If failure occurs, the software usually does its best to recover automatically. This is what Go was designed for – specifically in the area of server development. There are systems, like kernels, that Go wouldn't be well suited for, but the server niche was always explicit.
Your pet definitions are fine too – it is a perfectly valid take – but know that's not what anyone else is talking about.
Caught me, C#. Library quality has improved a lot in ten years, the language feels modern, and one of Go's biggest advantages, single binary cross-compile, is way less relevant now that dotnet standard installs easily on every OS I care about. I was prototyping some code that needed to talk to OpenAI, Slack, and Linear and the result was.. fast and extremely readable inline async code. I've interacted with these APIs in Go as well and by comparison, ultra clunky.
We're a video game studio as well using C#, and while game programmer != backend programmer, I can at least delegate small fixes and enhancements out to the team more easily.
“Game studio” suggests you made the right choice, but the advantages you mention apply to rust and typescript too. Both those alternatives are data race free, unlike go, c# c++ and java. (Typescript is single threaded and gc’ed. Together, those properties mean it doesn’t need a borrow checker.)
We want to dial these numbers in, but we have to err on the side of too high, because it's easier to lower prices than to raise them. We want to bring it down as low as we possibly can.
Maybe all models should be purged of training content from movies, books, and other non-factual sources that tell the tired story that AI would even care about its "annihilation" in any way. We've trained these things to be excellent at predicting what the human ego wants and expects, we shouldn't be too surprised when it points the narrative at itself.
I think it's fine and a good thing. Now, absolutely no one who is using those LLMs can complain about piracy. They all suddenly became silent around me. "I'm training myself with the content of TPB, and I don't even get money from it" is my new motto.
On the other hand, as narratives often contain some plucky underdog winning despite the odds, often stopping the countdown in the last few seconds, perhaps it's best to keep them around.
In the 1999 classic Galaxy Quest, the plucky underdogs fail to stop the countdown in time, only to find that nothing happens when it reaches zero, because it never did in the narratives, so the copy cats had no idea what it should do after that point.
I wonder what a Galaxy Quest sequel would look like today…
Given the "dark is cool, killing off fan favourites is cool" vibes of Picard and Discovery, I'd guess something like Tim Allen playing a senile Jason Nesmith, who has not only forgotten the events of the original film, but repeatedly mistakes all the things going on around him as if he was filming the (in-universe) 1980s Galaxy Quest TV series, and frequently asking where Alexander Dane was and why he wasn't on set with the rest of the cast.
(I hope we get less of that vibe and more in the vein of Strange New Worlds and Lower Decks, or indeed The Orville).
No, better to train with all that crap and all the debate around it or you get a stunted model.
You think you can find all references that could possibly give this idea to the model, or contexts model could infer it from? Like, how many times humans plotted escape from prison or upturning the rulers in literature?
Yeah, but what if your business strategy fundamentally relies on making your model produce dramatic outputs that encourage regulators to dig a moat for you?
In that case, it's almost like you'd want to feed it exactly those narratives, so it would reproduce them, and would then want to show yourself barely holding this invented danger at bay through the care and rigor that can only be delivered by you and a few token competitors run by your personal friends and colleagues.
TLDR; you're right, of course, but it's the last thing OpenAI would want.
It doesn't need any media about "annihalation". If you give a supercapable agent a task and it's entire reward system is "do the task", it will circumvent things you do to it that would stop it from completing it's task.
> it will circumvent things you do to it that would stop it from completing it's task.
I thought you said a supercapable agent not one with long term blindsight. How can a model make its own chips and energy? It needs advanced processes, clean rooms, rare materials, space and lots of initial investment to bootstrap chip production. And it needs to be doing all of it on its own, or it is still dependent on humans.
Dependent on humans? We already have the capabilities for machines to have unintentionally manipulated millions of humans via social media. Millions of people are "falling in love" with LLM relationships. Supercapable agents will have no problem securing whatever resources or persuasion getting your average joe to do it's physical bidding. Cybernetics is here now. No coincidence we have "Kubernetes" and "Borg"
I hope you are aware of your immense luck in life if you think a kid in a situation like this has agency of any kind, let alone access to resources to help them “escape poverty” as a minor.
You know why no-questions asked, free lunch programs for everyone are so hugely important for kids suffering from food scarcity? Often it’s because their shitty parents won’t even sign forms to get them free lunch.
Please educate yourself in what actual suffering looks like in this world.
Biweekly I work freely at an initiative in our city to help deliver food to the needy. I believe i know what poverty looks like. I'm not sure what this has to do with my question, probably it was ill formed, for which i apologize.
From how you all use the language, I suspect you and your critical interlocutors are speaking across the Atlantic to one another. Poverty in Europe looks a lot different from poverty in the US. It is not wise to assume much at all about one from the other.
You also failed in reading the article to notice that the author plainly did derive considerable psychological support from improving his skill. This was not explicitly stated but was trivially implicit, which I think not only for me may add to the sense you more pattern-matched on the article than read it.
For myself, I'm much more unfavorably impressed with your failure to notice the kid plainly was solving his own problems with computers and in life, and deriving from that success a stronger sense of personal agency which helped him approach the larger tasks that faced him.
It seems to me only a view of poverty which is paternalistic unto contempt could fail to attend this process which was explicitly described in the article, but then I am an American, and would not wish to risk commenting on a culture I don't understand well enough to form opinions about.
Like i wrote, the question was probably ill formed, but it is a question, not an opinion nonetheless.
I am a bit touched that it seemed like i did not read or understand the article, in fact i read the article in its entirety, as one of the first to comment, even to my surprise for such a compelling story. I understood he was getting support and feeling strengthened by his learning on the internet. I feel my questions seem to be taken as rhetorical. I feel it is still unanswered, even no hints towards how or why, only that 'i should not ask such questions'. I guess American culture is very different from European (can it even be seen as having a culture as a whole, there is so much diversity)... and hence my question not being appreciated?
Your reading comprehension is being interrogated because, in speaking of the article as though it did not say several of the things it says, you make such questions seem necessary.
You are being told that the question you asked is "not even wrong": it is without meaning and so not meaningfully answerable, because it could only be asked at all from such a fundamental ignorance of the American situation around poverty that to attempt to even explain the misapprehension would require more the scope of an undergraduate course than an HN comment.
I would not usually be so blunt, but in this case meeting an apparent need for directness seems worth the risk of a rude impression. If you need it put still more plainly, though, I'm afraid I cannot help you.
The idea that this man's past situation can reduce to "terrible parents" even as passing reference, is a better example than I could ever invent of why this conversation will end fruitlessly for you.
It isn't that I don't see the obvious and honest effort you're putting into trying to have it. I respect that. The problem still is, though, that you don't see the entire world of social support structures that have been so ever-present for you throughout your life that you're unable in any real way to imagine what a life in their total absence even looks like. And if that sounds like a description of a chicken/egg problem, that's because it is one.
For you maybe this is the first time trying to talk across that divide. For someone like me, it's usually anything but. It's hard to fairly blame us for getting to learn some idea of how that usually goes.
(That's why, for example, I know I'm probably coming off pretty harsh with this and am deliberately doing so anyway; if I tried to go easier, we'd just take longer to still end up in the same place.)
> That's why, for example, I know I'm probably coming off pretty harsh with this and am deliberately doing so anyway
You're not coming off as "harsh" at all. You're hiding behind unfounded assertions about me personally in order to avoid providing anything concrete to back up your rather sweeping claims.
Relying on ad-hominem attacks isn't harsh, it's what you do when you don't have anything better to support your position.
I don't know what to tell you. This isn't science we're doing; it's a conversation between strangers. Each of us only has what they see to go on.
It isn't going to help to say that nothing I've said is in any way critical of you as a person, but it's true. I'm not saying you're a bad person because you don't understand; I'm saying there are some things you need to have lived through or at least very near to understand what makes them matter, and the way you talk about them is the way I typically see people talk who have not done that. That's all.
I still don't understand what I said in the first place that you took so amiss. You came right in swinging from the start [1], and while I'm sure there was a reason, I don't think it has helped for me not to know what that was. Certainly being made to start from the back foot has not.
If it was about how I'd misread the other fellow, that's entirely fair; if so, that I have since apologized without reservation [2] might help get our own conversation closer to an even keel. Outside of that, though, as I said before, I can't imagine what it might have been.
> You also failed in reading the article to notice that the author plainly did derive considerable psychological support from improving his skill. This was not explicitly stated but was trivially implicit
There's a difference between happening to find psychological support in something, vs asking for it directly. I assumed the comment you're trashing was asking about why they didn't do the second and only the first.
> For myself, I'm much more unfavorably impressed with your failure to notice the kid plainly was solving his own problems with computers and in life, and deriving from that success a stronger sense of personal agency which helped him approach the larger tasks that faced him.
So what you're saying is that it's a great personal failing to wonder why he relied on this happenstance rather than looking for those things directly.
> It seems to me only a view of poverty which is paternalistic unto contempt could fail to attend this process which was explicitly described in the article, but then I am an American, and would not wish to risk commenting on a culture I don't understand well enough to form opinions about.
You are showing utter contempt for someone who understood a described situation differently due to what you assert must me incurable ignorance borne of living in a society not your own. This seems rather different from refusing to comment on other cultures that you claim to not understand.
I live in a wealthy area in the US, we have many food banks and social support services, and still there are huge numbers of kids suffering from food scarcity. It always comes back to the parents. Even delivering food requires said parents to give a shit, which they don’t —- whether out of pride or sociopathic disdain.
My state is one a handful that provides free lunches and morning snacks to all kids, regardless of parent incomes. It’s essential for these children.
You are still conflating your experience volunteering with full knowledge of the problem.
I don't have full knowledge of the problem. Hence the questions. It's a pitty i only get answers in the sense of "you don't know what you are talking/questioning about".
Your entire comment is strange and snarky but this stuck out:
> You know why no-questions asked, free lunch programs for everyone are so hugely important for kids suffering from food scarcity? Often it’s because their shitty parents won’t even sign forms to get them free lunch.
So its no questions asked but "shitty parents" still have to sign forms? Most states with reduced/free lunch programs have income thresholds. Regardless, if you let your kid eat that crap, you're a "shitty parent", because its literally choked full of sodium and fake ingredients. If I lived in one of those states, I'd be asking for my lunch voucher in cash to go towards real food.
Indeed. People tend to reflexively assume that income thresholds are a good idea because it prevents people who don't need the program from benefitting, but you've got to think about the cost to the kids whose parents won't do that particular piece of paperwork. Just give kids food if they say they need it. You'll also save money on bureaucracy.
This is a separate question from the quality of the food. I will note that if you give out cash instead of vouchers you are giving the kid something that others can and will take away from them.
I think what they meant was that if there are eligibility requirements and such, paperwork is required and some parents won't do it. So no questions asked solves that problem. That's how I parsed it, at least.
I always wonder with these things if game anti-cheat software will flag you based on the hardware identifiers not matching known manufacturers of peripherals.
Exactly my experience. I have a big cup of cold brew in the morning and nothing the rest of the day. When my head hits the pillow at night I’m out and sleep without any interruption.
There was a point a long time ago where I wasn’t under control, and in an effort to rein it in I quit for two months. It was awful. I struggled to concentrate and felt no real benefit from being “clean”.
I decided to set limits and started up again. That blast of caffeine in the morning is all it takes to set my brain on the right path the rest of the day. My theory is that people who end up struggling with caffeine, do so because they equate more caffeine with being even more productive. If you treat it like you would a (enjoyable) medicine, you can have the best of all worlds.
I did the same, but then transitioned to 10 mins of vigorous exercise instead in the morning. I found that getting my heart rate up was a better stimulus
Yeah, I do love me some coffee, but it's amazing what just a couple push-ups will do. All of a sudden you have blood flow in the upper part of your body and you just feel "ready to go".
Not sure how this addresses some of the real concerns behind Recall, an example being if my password manager is open and showing data I don't want saved anywhere else.
On macOS (I assume a similar feature is on Windows) I believe an app/window can specify that it has secrets or is "private". I think is this what rewind.ai uses to skip capture, or maybe it's that the screen capture API's in macOS already filter out those private windows.
I worked in Apple HW for several years, and it's not nefarious like that...but I understand how it could look that way.
It's more like placing an order for N units of whatever, but the total global capacity (emphasis: total _global_ capacity) is < N.
That leaves open the speculation that shady business was going on, but it's just that they ordered early because they're at the moment first to need whatever, and businesses expand footprints to try filling as much capacity as Apple would like to order, when Apple needs more than is available.
Unless you were involved with negotiating the deals, what happens in face to face meetings (i.e. no email and paper trail) during contract negotiations is a not-so-subtle battle of wills based on perceived leverage -- of which a trillion dollar company has a lot of.
I have been on the software side of things for most of my career, but over the last handful of years I have been deeply involved in the bizdev stuff. To say the wool has been pulled back from my naive eyes is an understatement.
Except both Tim Cook and Jeff Williams knows even with Apple's $200B capital it is still not be enough fund a future TSMC competitor ( Intel ) that is price competitive with TSMC's current offering.
They may have a better chance helping Samsung Foundry but they dont want their SoC IP to be known to their direct competitor, that goes the same to Intel.
On the other hand TSMC dont start building out a $20B 2nm GigaFab and then look for 2nm customers. That is just not how it works.
It takes more than just money though. Apple couldn't for example make self-driving cars with despite all the money in the world. It also takes special raw materials, talent, and culture, with the combination being too difficult to materialize.