←back to thread

320 points IroncladDev | 2 comments | | HN request time: 0s | source
Show context
rollcat ◴[] No.43670593[source]
I don't understand the obsession with 1980s terminals. They're even less powerful than the contemporary 8-bit home computers. It's perfectly OK to be a retro enthusiast, it's another thing to claim that this is the peak tech to power our modern CLIs, or a solid foundation for portable UIs.

From the docs:

    Stop thinking in standard CSS units like px, em, rem, %
    Start thinking in Character Cells for spacing, sizing, and positioning
A VT102 already has a character grid, but it needs a serial protocol to allow applications on the mainframe to talk to it. You can loop around this and use the raw mode to address individual cells.

The web browser has an insanely powerful typographic and layout engine. Now we're looping back into character cells. Something went wrong here, at least once.

That said, I like the aesthetic and the default color palette. It's quirky, but it has its places.

replies(13): >>43670672 #>>43670690 #>>43671003 #>>43671094 #>>43671420 #>>43671663 #>>43672234 #>>43673068 #>>43673112 #>>43674448 #>>43675035 #>>43676127 #>>43678300 #
godelski ◴[] No.43671003[source]
The obsession is because it is still the best. For all its faults, I'm still terminally terminal. The beauty of it is in the utility and how it becomes so natural. It's a language you learn that gives you so much freedom you cannot find anywhere else. I've tried many IDEs but I'll always come back to vim. It might have taken time to learn but this is true for anything else. I didn't learn a tool, I learned a language. I didn't learn to run, I learned how to move my legs. With that I could teach myself, I can walk, I can run, I can jump, I can dance, I can be anything I want to be. In VSCode I can walk, hell I might even be able to run, but there is no dance, there is no "me".

That's the beauty of the terminal. It's not a one size tool for all. There is no product that can be made for everyone. Instead it's an environment for you to craft and live in. Everyone's dotfiles are as unique as they themselves are. That's the point. Because when you can't build something for everybody you give them the means to craft their own worlds. The computer didn't become so great because the chips, it was the ability to write software and build the things you need. The smartphone didn't take off because it had a big screen, it did because the app. Because you could create. Because your phone is yours and no other phone is like it.

But I haven't found a browser that lets me be me. That let's me dance around the web and jump and be free. And I fear we lost sight of this thing as it became so natural, that the phone and computer are turning into things that be instead of a reflection of me

replies(4): >>43671051 #>>43671236 #>>43672097 #>>43672734 #
wiseowise ◴[] No.43671051[source]
GP talks about how you develop those TUIs, not TUIs themselves.

Web model is objectively better than

‘’’ Stop thinking in standard CSS units like px, em, rem, % Start thinking in Character Cells for spacing, sizing, and positioning ‘’’

replies(2): >>43671214 #>>43671322 #
rollcat ◴[] No.43671322[source]
> Web model is objectively better than [...]

Hard disagree. Modern web browsers are incredibly complex beasts that evolved by amalgamating decades of experimentation, poor non-standards, and elaborate counter-measures to fix that mess. I recommend reading <https://browser.engineering>, or even just building Chromium from source, to gain some appreciation. Most applications would benefit from something much simpler. But it's often practical to use as it is, pretty much exactly like terminal emulators.

The main difference being, terminal emulators are still several orders of magnitude less complex than web browsers, but in spite of that still require a lot of complexity to undo the side-effects of having a serial line between the CPU and the character grid. If you like monospaced fonts and character grids, you can probably render that with plain SDL, bitmap fonts with indexed sprite sheets (no Freetype), and in return get non-broken copy & paste, or even a dock icon. You know, the MVP of GUI.

Try <https://lite-xl.com>, it builds its GUI straight on top of SDL.

replies(1): >>43671434 #
1. troupo ◴[] No.43671434{4}[source]
> If you like monospaced fonts and character grids, you can probably render that with plain SDL

You don't even need SDL https://github.com/cmuratori/refterm

replies(1): >>43672311 #
2. rollcat ◴[] No.43672311[source]
Interesting project, but you still need to hook it up to a backend to create a window to draw pixels on. SDL is likely the most portable library to do that; you could substitute fbdev, DirectX, wgpu, glfw, win32, metal, and so on.

The point is, once you have a window and a putpixel (or even better, surfaces and blitting), the rest is easy to handcraft. A standardised library would of course help.