HNHacker News
TopNewBestAskShowJobs

JaggerJo

592 karma · joined July 9, 2017

hn@jaggerjo.com
submissionscomments
JaggerJo··on You used to be able to just create a Native GUI App in 10 seconds
You can still do this!

The only difference is that a lot of apps prioritize cross platform UIs over good, fast native UIs.

WinForms and WPF are still well supported.

JaggerJo··on Unofficial Microsoft Teams client for Linux
Nice! A screenshot in the readme would be a great addition. I was looking for a native macOS Teams client a while ago - but to my knowledge this is the first 3rd party Teams client.

The Microsoft Teams client frustrates me daily.

JaggerJo··on .NET 10
The code snippet is in F#. And F# has so called "computation expressions".
JaggerJo··on Valdi – A cross-platform UI framework that delivers native performance
To me it's crazy how many people work on these seemingly simple applications.

How many people do you need to build JUST the native Android and iOS app for snapchat?

Is the "single" codebase really worth all the added complexity and additional risk?

I'd always go the native route if the user experience is business critical.

JaggerJo··on Valdi – A cross-platform UI framework that delivers native performance
Excellent Points, this is where the answer is "it depends".

> What do you put in the common core? Android does HTTP requests one way. iOS does them another way. You go for the lowest common denominator an implement a third way, using libcurl or something?

If it's really functionality that cannot reasonable be shared don't share it.

It's probably more work to maintain bindings to a single API client in the core and fiddle with all the details of not using the native HTTP client implementations that it is to implement the API client twice.

Writing the API client twice is boring, but that's a good thing.

> Or do you just put business logic in the common core? Is there really that much business logic that doesn't issue requests or access a database?

The shared core is optional. You might have the need for it, then it's a good solution.

For an app like snapchat you'd probably share the video effects and have that in your core library.

JaggerJo··on Valdi – A cross-platform UI framework that delivers native performance
Agreed.

One extra clarification: If the quality of your app is business critical you should really use the native UI toolkit to offer the best platform integration and user experience.

If your app is not business critical (you just have to offer it - example: dishwasher app, ..) you might get away with using a cross platform toolkit like flutter or react native. But even then this adds a 3rd party dependency as you mentioned which adds risk.

Writing an App in Swift on iOS is boring. The same thing is true for writing an Android app using Kotlin/Java. This is a good thing. Now your developers can concentrate on shipping great features.

JaggerJo··on Valdi – A cross-platform UI framework that delivers native performance
Just write 2 native UIs in the 2 platform native languages and share a common core written in any language that offers a C like FFI.

How hard could it be?

JaggerJo··on Movycat – A terminal movie player written in Zig
How does it render pixel data to the terminal?

I've stumbled over sixels [1], but movy seems to use something else that also enables color output and a higher resolution?

[1]: https://en.wikipedia.org/wiki/Sixel

EDIT:

> It renders frames as ANSI half block characters..

Seems like the resolution looks better than it actually is in the screenshots. It effectively seems to be 2 vertical Pixels per character.

JaggerJo··on Chipotle stock craters: young people without jobs cannot afford their food
great writing style
JaggerJo··on An Unexpected Benefit from Quitting Coffee – 10 Months In
I don't have any sleep issues as long as I stick to a simple rule: No caffeine after 15:00.
JaggerJo··on What .NET 10 GC changes mean for developers
Interesting!
JaggerJo··on Ask HN: What are you working on? (September 2025)
Cool project!
JaggerJo··on Porting a library to a different language with a sentence
Yes, that would be even better - but also way harder for unit tests as you’d need to interop between the langauges.
JaggerJo··on Porting a library to a different language with a sentence
> .. excluding all tests and examples, ..

How would you verify that the ported code actually works if you don't port the tests and examples?

I see tremendous use in a tool that could be used to port "any" library to any language. I'm very skeptical if this works if the library itself depends on other language specific libraries, ... but we'll see.

If you'd seriously want to use that port in production it only makes sense to port the tests and examples. How would you verify the ported code works otherwise? This also means that if the original library has bad test coverage.. you have too.

JaggerJo··on I'm too dumb for Zig's new IO interface
Zig would be my go to language for low level stuff.

I think fact that Zig can be used as a C/C++ cross compiler is brilliant.

JaggerJo··on Sequoia backs Zed
What on earth do they need this kind of money for?
JaggerJo··on Show HN: A Minimal Hacker News Reader for Apple Watch Built with SwiftUI
Nice!

Had to look twice at the author name. Thanks for all the Avalonia related work you are doing!

JaggerJo··on Microsoft keeps adding stuff into Windows we don't need
I agree. Most things that got added are good.

I don’t like that there are 3+ ways of checking if a value is null tho.

JaggerJo··on OCaml as my primary language
Yeah - I worked on an F# project that was ~300K LoC and tooling speed really becomes an issue at that point.
JaggerJo··on OCaml as my primary language
OCaml does not have what you'd call I fully featured GUI framework to my knowledge (besides rendering webpages).

F# has FuncUI - based on Avalonia. All just possible because of the ecosystem.

https://github.com/fsprojects/Avalonia.FuncUI

JaggerJo··on OCaml as my primary language
Did you try F# in JetBrains Rider? It's the best F# tooling you can buy IMO.
JaggerJo··on OCaml as my primary language
DarkLang which was initially written in OCaml eventually switched to F#. From what I remember the main reasons were the library ecosystem and concurrency.

I'm know .NET in and out, so I might be biased. Most of the boring parts have multiple good solutions that I can pick from. I don't have to spend time on things that are not essential to the problem I actually want to solve.

I've used F# professionally for multiple years and maintain a quite popular UI library written in it. But even with .NET there still are gaps because of the smaller F# language ecosystem. Not everything "just works" between CLR languages - sometimes it's a bit more complicated.

The main point I'm trying to make is that going off the beaten path (C#) for example also comes with a cost. That cost might or might not be offset by the more expressive language. It's important to know this so you are not surprised by it.

With OCaml it's similar I'd say. You get a really powerful language, but you're off the beaten path. Sure, there are a few companies using it in production - but their use case might be different than yours. On Jane Streets Threads and Signals podcast they often talk about their really specific use cases.

1: https://blog.darklang.com/new-backend-fsharp/

JaggerJo··on Pebble Time 2 Design Reveal [video]
Yea, I’d pair it with a contrasting band. Or maybe with one that adds another accent.

True. It might be just me but I think the color makes it look cheap.

JaggerJo··on Pebble Time 2 Design Reveal [video]
I really like the silver.

Red and Blue are IMO not needed as you can always add an accent using the band. Probably just makes everything more complicated.

JaggerJo··on PHP 8.5 adds pipe operator
Thanks F#!
JaggerJo··on .NET 10 Preview 6 brings JIT improvements, one-shot tool execution
Just buy a Rider license. Never looked back.
JaggerJo··on Experimental surgery performed by AI-driven surgical robot
Because a LLM architecture seems way too fuzzy and unpredictable for something that should be reproducible.
JaggerJo··on Experimental surgery performed by AI-driven surgical robot
Yes, this is scary.
JaggerJo··on Ask HN: How are you productively using Claude code?
Same, tried Claud code over the past month. Let it do different tasks.

It’s useful as an built-in quick docs / search that can spit out small code fragments.

Every time I gave it more space results were disappointing.

JaggerJo··on Most RESTful APIs aren't really RESTful
REST almost never is worth it. It’s a nice idea, but in practice things often are more complicated.

API quality is often not relevant to the business after it passes the “mostly works” bar.

I’ll just use plain http or RPC when it’s not important and spend more time on things that make a difference.

← PreviousPage 2 of 9Next →