💾 Archived View for gemini.ctrl-c.club › ~stack › gemlog › 2022-05-08.lagrange.gmi captured on 2022-06-11 at 20:59:01. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-06-03)

-=-=-=-=-=-=-

A Critique of a critique of Lagrange

As I've been dragged into the discussion somewhat out of context:

gemini://ainent.xyz/gemlog/2022-05-07-critique-of-lagrange.gmi

First of all, yes, I understand the fear of bloat and mission creep. But let us look at it carefully from the tech side.

Text

Lagrange renders beautiful text in a GUI (and now, text as well) environment. That is a difficult task, and I imagine the bulk of the code is there to support fonts, antialiasing, Unicode, layout. There are unimaginable intricacies in rendering text well and reliably - try it sometime (I have, and I am humbled).

Installer

Installing and maintaining an installation in a modern OS is no easy task. I'd be surprised if a large chunk of code and development time wasn't wasted on that. Once you get that working, you really don't want to have 5 different things to maintain (and the user does not want 5 different things to install and update either).

UI

Making a usable application is not easy, and Lagrange is really, really usable. Skyjake really cares about usability, and always listens to user complaints about missing features or usability issues.

Browsing is browsing, so whether it's Gopher, Gemini, or Spartan, it makes sense to keep a unified UI instead of different browsers with subtle differences in keymaps or bookmarks. Unified bookmarks -- enough to convert me.

Protocols.

Once you can render text, you have an engine for rendering text. Gemtext is not hard. Spartan-flavored gemtext is one little difference. Finger is trivial, and Gopher was probably a day's work.

Protocols are really not something to be too concerned about. You can serve gemtext over http, html over gemini (gah), or whatever. Obsessing over protocols is a sign of ignorance most of the time. Kind of like obsessing that all your software is written in Go or whatever. Who cares?

So, communication protocols. Gemini protocol, well, a tiny bit of a pain with certificates. Gopher, Finger, Spartan, whatever. Titan is just the upload side of Gemini, missed in the spec.

So where is the bloat we are so worried about?

Best viewed on Lagrange

Skyjake is a real stickler for correctly implementing Gemini. I know, because I've tried to get him to add something to make things like SpellBinding better - and he would not budge. The spec is the spec and he will stick to it. I can grudgingly respect that (next time someone invents a game-changing protocol, please consider what it's like to write an application, with sessions!)

Saying that something is best viewed on Lagrange is not a sign of deviation from the spec. All browsers should implement the spec. If something looks better on Lagrange, it is because others are not as good at the visuals, or don't conform to the spec.

You can't shame someone for doing a really good job - just because others can't keep up.

It's not a competition

I will stand by my story that anything Lagrange can show me, regardless of the protocol, is complementary. As a user, I care about a uniform experience and good, readable text. If a link goes to a gopher site, I am thankful that I can see it there and then, without researching or installing a bunch of stuff.

There is no financial incentive here - we write browsers because we want to do something good and have people be happy about our code.

So no, it is not a competition. I do hope others write code that works as well as Lagrange.

The case for bigger, modular browsers

If anything, I would like Lagrange to be modular. And allow user-side plug-ins. Don't be so scared - if Gemini makes sense, it will be there.

I would love to see modularity and scriptability - on the user side, not JS in the data, of course. I would love to be able to have pluggable parsers, layout engines, and protocols. I would love to have something like Lisp be the scripting language allowing me full control of what happens on my screen. With reasonable defaults that work out-of-the box.

I would love to automate some browsing tasks - offpunk-like automated caching, aggregation of tinylogs, organizers, brain-maps, wikis, whatever. Gemtext is a good-enough way to look at all kinds of things, and trying to shoehorn the world into gemlogs is short-sighted.

index

home