Live data from Hacker News

Bubble Tea: fun, functional and stateful way to build terminal apps

github.com

51–60 of 116 posts

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#51
post #44

Earlier quoted context omitted.

I'm only really interested in learning a language if it excites me, or if I'm getting paid to do it. I don't hate Go, and would be fine to learn it on company time for company projects, but there is no spark that would lead me to learn the language on my own. I've written some basic Go, but if I'm using it in personal projects, I'd would have to invest time to understand the ecosystem, runtime, standard lib, best pra…

It's not exciting but it is pleasing. The ecosystem is refining well (e.g., $GOPATH deprecated and workspaces just added). Now with generics there's even less to complain about.

It's not really very pleasant if you are used to modern type systems. It feels antiquated in a limiting way, for no good reason.

With C at least it's clear to me that it's literally (very literally) a 50 years old language, and I've gotten used to it after decades. It's far from ideal, but at least there's some deep familiarity, and that coupled with the fact that it's everywhere makes me feel more tolerant of it.

But learning a new language which is, in some ways, stuck in the same past as that established 50 years old language is not very pleasing.

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#52

I spent a good chunk of time last week looking for a solid cross-platform GUI toolkit. I came to the conclusion that the terminal is the most portable GUI platform available. You can create an app that has windows, buttons, mouse support, etc, statically compile it for Windows, Linux, and Mac, and run it over SSH. The closest you can get to that with real graphics is using a toolkit built on OpenGL, and you'll be for…

Did you consider Web Browsers + Javascript?

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#53

I spent a good chunk of time last week looking for a solid cross-platform GUI toolkit. I came to the conclusion that the terminal is the most portable GUI platform available. You can create an app that has windows, buttons, mouse support, etc, statically compile it for Windows, Linux, and Mac, and run it over SSH. The closest you can get to that with real graphics is using a toolkit built on OpenGL, and you'll be for…

Lately I'm all in on LÖVE ( https://love2d.org ). No dynamic linking required, cross-platform, less bloat than mainstream toolkits. Anything it can't do I just accept as a constraint I can't change.

Game engines (at least the lightweight ones) seem good for cross-platform graphical apps in general but the idea of redrawing a static GUI at 30 FPS just sounds too inefficient to me.

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#54
post #31

I've seen the charm suite on HN before, and everytime I see them I wish they had bindings to other languages. I'm just not interested in Go, but I'm really interested in learning to create ssh applications. Its an application runtime with a lot of potential for the dev space, but almost no quick-start frameworks!

Why not? There's a lot to hate about every language, but one advantage about Go is that it's fairly easy to context switch in/out of, which makes it great for side projects, because it's cognitive load while using it is really low. Unlike say, Rust. I do love Rust though.

What exactly is hard to switch in/out of Rust, context-wise...?

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#55

Earlier quoted context omitted.

Lately I'm all in on LÖVE ( https://love2d.org ). No dynamic linking required, cross-platform, less bloat than mainstream toolkits. Anything it can't do I just accept as a constraint I can't change.

Game engines (at least the lightweight ones) seem good for cross-platform graphical apps in general but the idea of redrawing a static GUI at 30 FPS just sounds too inefficient to me.

You're absolutely right. So I do without 30 FPS.

We're all up this tree where we want all the features we're used to and we're willing to put up with software bloat and insecure software and sprawling supply chains to get it. I'm not. So I start with something minimalist and do what I can within it.

One of my inspirations is http://akkartik.name/illich.pdf

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#56
post #51
post #44

Earlier quoted context omitted.

It's not exciting but it is pleasing. The ecosystem is refining well (e.g., $GOPATH deprecated and workspaces just added). Now with generics there's even less to complain about.

It's not really very pleasant if you are used to modern type systems. It feels antiquated in a limiting way, for no good reason. With C at least it's clear to me that it's literally (very literally) a 50 years old language, and I've gotten used to it after decades. It's far from ideal, but at least there's some deep familiarity, and that coupled with the fact that it's everywhere makes me feel more tolerant of it. Bu…

> for no good reason

When a language has some property that surprises you, consider whether it might have been designed that way on purpose, not simply because the creators were ignorant/lazy/negligent/drunk/lost a bet/etc.

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#57

I spent a good chunk of time last week looking for a solid cross-platform GUI toolkit. I came to the conclusion that the terminal is the most portable GUI platform available. You can create an app that has windows, buttons, mouse support, etc, statically compile it for Windows, Linux, and Mac, and run it over SSH. The closest you can get to that with real graphics is using a toolkit built on OpenGL, and you'll be for…

Did you consider Web Browsers + Javascript?

Requires installing a web browser and having access to the computer’s renderer on some level

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#58

I spent a good chunk of time last week looking for a solid cross-platform GUI toolkit. I came to the conclusion that the terminal is the most portable GUI platform available. You can create an app that has windows, buttons, mouse support, etc, statically compile it for Windows, Linux, and Mac, and run it over SSH. The closest you can get to that with real graphics is using a toolkit built on OpenGL, and you'll be for…

Are you sure? https://hpjansson.org/chafa/

Just why? At that point just get a plain old framebuffer and plot individual pixels to it in serial code. How is it better to hack a use-case terminals were not meant to handle? They will have all the other complexities of GUIs still to solve, you just now has a hacky render path to worry about as well.

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#59
post #51

Earlier quoted context omitted.

It's not really very pleasant if you are used to modern type systems. It feels antiquated in a limiting way, for no good reason. With C at least it's clear to me that it's literally (very literally) a 50 years old language, and I've gotten used to it after decades. It's far from ideal, but at least there's some deep familiarity, and that coupled with the fact that it's everywhere makes me feel more tolerant of it. Bu…

> for no good reason When a language has some property that surprises you, consider whether it might have been designed that way on purpose, not simply because the creators were ignorant/lazy/negligent/drunk/lost a bet/etc.

> creators were ignorant/lazy/negligent/drunk/lost a bet/etc.

This is not a well-intended comment, but then why didn't they add generics at the start? It's not like it was a surprise to anyone even remotely familiar with PLs that they will have to retrofit it sooner or later. Also, function-scoped defers instead of surrounding braces-based one? Come on...

Re: Bubble Tea: fun, functional and stateful way to build terminal apps

#60
post #51

Earlier quoted context omitted.

It's not really very pleasant if you are used to modern type systems. It feels antiquated in a limiting way, for no good reason. With C at least it's clear to me that it's literally (very literally) a 50 years old language, and I've gotten used to it after decades. It's far from ideal, but at least there's some deep familiarity, and that coupled with the fact that it's everywhere makes me feel more tolerant of it. Bu…

> for no good reason When a language has some property that surprises you, consider whether it might have been designed that way on purpose, not simply because the creators were ignorant/lazy/negligent/drunk/lost a bet/etc.

I did. Rob Pike said that Go was purposefully made similar to C (and by extension other languages similar to C), in order to be familiar and get new engineers who are already familiar with C or C-like languages to become productive without having to learn too much.

And while I can totally understand how that makes sense in the intended setting, I don't consider that pleasing at all. "Pleasing" for me implies that I like a thing because I like the thing itself, not because external constraints impose (perceived) limitations on other choices. Especially in this context, where we were talking about learning and using a programming language by choice, instead of assembling a team of programmers from an already common pool.

Post reply on HN