HN user

capl

40 karma
Posts4
Comments32
View on HN

will always upvote this post when I see it

virtual threads (stackful coroutines) in Java is most of the reason why I’m defaulting to it nowadays instead of C#, Rust, etc

Ghidra by NSA 5 months ago

Binary Ninja seems way ahead in terms of UX, as a hobby reverser. It's my default as well.

That’s funny cause I feel the opposite: LLMs can automate, in a sloppy fashion, building the first trivial draft. But what remains is still thinking hard about the non trivial parts.

Nothing wrong with the "creating products that prioritize user experience over features" - or more accurately what Jobs said: create products that start with the user experience and the user’s needs first and then work your way to the tech (as far as I remember)

The opposite approach is starting with some tech and then trying to find a use for it, e.g. folding phones, second 1/2 screen on laptop, etc, instead of trying to actually create a usable, quality trackpad for instance.

The critique is still valid: Apple, for their software, seem to not have the same focus on quality as Jobs once insisted on. Their physical products are very much still top notch, and the products on the whole are still developed with this mindset as far as I’m concerned. It’s just the software quality that has taken a hit for some reason.

Same here. Once worked with a guy who was a huge Microsoft fan, calling Macs and Linux-based workstations “nothing but toys”. Naturally I couldn’t help but laugh when he couldn’t work for 20 minutes due to a forced windows update and then a blue screen after booting up again.

The Candy crush and other crappy apps/games in combination to being a full fledged spyware OS with adware on top is already enough to make me run away screaming.

The battery life on my own X220 is fantastic. I have a brand-new 9-cell that lasts for roughly 5-6 hours of daily work. Obviously these numbers don't come close to the incredible battery life of Apple's M1/M2 chip devices, but it's still quite competitive against other "newer" laptops on the market.

Oh okay, so it’s the best sub-tier laptop on the market. MacBooks still on top, got it.

Yes, I've just seen lots of people in the comments not seeing the value in the machines Apple create, which slightly annoys me. Because they are very fine computers.

And as most people with laptops, we own them due to convenience ;) -- that's why I believe they are usually better consumer grade computers than desktops.

I find the hate towards MacBooks interesting, and more so in the comments than the actual video. After having used a lot of computers, both laptops and desktops, I genuinely believe there are no better laptops than MacBooks that bring build quality and software quality, and last but not least the integration of those two to the table -- albeit for a hefty price tag.

A Windows laptop that you convert to a Linux laptop is simply a inferior machine in my eyes and my metrics: worse trackpad, way worse battery life, worse build quality in general (although Razor's laptops are quite good), worse hardware integration (biometric auth). It's a tinkerer's dream, but not the optimal productivity machine.

Linux belongs on the server, maybe desktops, but certainly not on a laptop IMHO.

I say this not to be a Apple fanboy, but rather to acknowledge that Apple's products are not the cancer that some people make it out to be.

I have a couple of issues that keeps me using Safari. First off is the insane battery usage. It’s like 2x battery usage of Safari. Then it’s all the noise like Pocket, sign in this and register that.

And then a very specific problem that has annoyed the crap out of me: extension windows close if Firefox loses focus! That means that using Bitwarden to do this: 1) open Bitwarden and find some login details 2) alt tab to the program you’re trying to sign in to 3) paste the username 4) alt tab back to Firefox/Bitwarden and there you go, the Bitwarden window was closed due to Firefox losing focus and you now have to open it again, search and find the credentials again and then paste the password 5) open Bitwarden a third time and search yet again for the OTP code… A huge pain in the ass that makes me want to use another browser just because of that.

Hey again. Tested .NET 8 and blazor again, and it wins… I mean it wins by so much that I now default to using .NET and C# for any task web related. Having components be SSR’d by default and then using SignalR later on by interactivity demand fixed by biggest criticism which was initial load overhead.

Also I’ve experimented with azure since it’s of course very well integrated with the .NET environment, and I think I’ll use that too instead of digital ocean which I’ve defaulted to before. I thought azure was too expensive, but re-evaluating now, it is actually very generous by giving free tiers which lets you launch without paying a dime.

I am a fan of Go due to the focus on simplicity in the language... but why Go for game dev? The purpose of the language was to tackle backend services previously written in C++ focusing on junior developers, not game dev.

It's not really a popular tool for the job: Python, which is a simpler language, has a much larger community of gamedev noobs. Or maybe better yet: start with Godot and GDScript

Do you think that the 20% productivity boost might be solely because you now just have one language to work with? That's what I'm thinking, and that's why I'm personally keen to learn and use Blazor instead of the usual JS frontend.

After looking around at the current popular solutions, I've yet to find something that is as ergonomic and productive as the .NET stack in regards to creating a web-based product. You have one of the most solid backend frameworks (ASP.NET) with lots of great tools like EF Core for ORM, SignalR for real-time, now Blazor for frontend, easy authentication and authorization, etc. That just makes everything so performant.

However, that is a very high level focused development path, while I feel Go is slightly lower level where you still have pointers and such. I see it as great for CLI apps and very specific server needs where you'd want great performance and CSP threading in combination with a very easy syntax for new developers, but I don't think that's a very common use case to be honest. Even though I love Go for its focus on simplicity, it just isn't the most suitable lang for high-level work, nor is it very suitable for low-level work at the same time.

Regarding your switch from C# to TS, I understand it made sense in the last couple of years. It simplified the stack via reducing language context switching, which can be a good productivity boost depending on your team and team size. However, if you would've tested Blazor today and found it would have satisfied your frontend needs, I actually think a full C# stack will be better than TypeScript to be honest, due to the better tooling and better runtime that exists for C# compared to Node.js/Bun/Deno. I still think TS is better in the frontend department than Blazor, but that's simply because JS/TS has been the only language for frontend in a long time. I hope Blazor will gain traction as a real alternative.

Good point! I want to enjoy Go, but I haven't really found the places for it... I usually come back to C# and C++ for high level and lower level problems after exploring and using modern/hyped alternatives like Go and Rust for a while. They might not be cool or idealistic, but they are very pragmatic.

Interesting take! Although, writing client sided code is not really suited at all in Python due to the horrendous performance. That can be accepted when we're waiting for IO anyways behind a server, or when a new developer is learning to program, but apart from that, it's not really optimal at all.

Well for starters, getting hold of a modern JDK seemed to be impossible the last time I tried (which was a couple of years ago on Windows). If I took the risk of downloading from the shady website that looked like it was last updated in 2005, I could get hold of Java 8 if Oracle was so generous as to let me download that for free .

And then the language itself forces class based programming (which isn't really OOP), which I heavily dislike due to it only over-complicating things in the long run. C# provides largely the same, but MS is actually way more open than Oracle as in it's easy to get documentation and the dev environment set up, and they provide newer and more modern features than Java. Which is surprising given it's Microsoft and their fetish for providing counter-intuitive and user-unfriendly products. When it comes to the JVM / .NET CLR, the only place I find it acceptable is on the server side IMO. The downgrade in performance (which means higher resource usage) side is not worth the "everything is an object" vision for me, at all. Not even close. Client side devices often run on battery power, so that has real consequences there.

So that's why I'm personally not the biggest Java fan. In fact, if anything on harmful.cat-v.org is true, it's "Java is write once, run away" for me... sorry. If only Oracle could provide the same user-friendliness that Microsoft is showing with .NET, ditch class-based programming (which means rewrite the entire language, not very realistic) then maybe it could be interesting, but most likely not better than Go or Node.js, in my experience anyways.

And by the way, what do you mean by threads that really work? It's cool that Java gives you the power of having system threads and green threads in the same environment, but when is that realistically needed? Only time I can think of is writing client-sided code where you want performance to be highly optimized and not wanting to waste time on organizing a new green-thread, but as I've mentioned I believe Java on the client side is nothing but a sin.

Good point regarding .NET! The .NET CLR / VM is clever in that way.

Regarding your experience with readability in Go, I have to agree in some way because the known (and controversial) explicit error handling, but what you may realize sooner or later is that handling both the happy path and erroneous path is actually a net positive. That's the difference between seeing `if err != nil {` as code pollution or actual logic. I've realized the latter.

Cool! I haven't heard of Turso until now but it looks great. Why choose it over Planetscale, though?

I've been looking at HTMX + Go for some time but I just don't know if it's worth it over React which I already know. Is it really more productive, or is it simply a ideology/hype thing? I'm also a Go fan because it values simplicity, which I think we should all strive for, so the HTMX + Go combo appeals to me, even though I haven't looked at HTMX as I mentioned. Having to use C# and TypeScript at work, I start to see the real appeal of simplicity more and more... I'm becoming a grug brained dev :O

that's true, the only price point an android will be more resource efficient / performant is around 200$ mark, but only since there is no iPhone at that price point. I think it's unfortunate and partly or entirely due to the fact Android is built upon Java instead of native code.