587 karma · joined August 16, 2022
For me, the only thing that can reduce loneliness is conversation with another conscious entity. Many, if not most, people are barely conscious so this is hard to find in the physical world. But I don't believe llms are conscious, so for me they are a complete dead end for reducing loneliness whatever other virtues the may have.
For example in a pseudolanguage:
data FooResult = Number | Error
def foo(n: Number): FooResult = ...
foo(42) match {
case n: Number => print(n + 1)
case e: Error => // handle error case
}
This gets you very far most of the time. If the tag overhead matters (which should largely only matter in a hot loop), then try to refactor so that the hot loop doesn't error out.Granted in many languages the above cannot be expressed succinctly and is often avoided for this reason.
I think what is often missed though is the opportunity cost of shipping bad products. Our industry lionizes fast delivery to juice short term earnings but this is very often at tremendous long term cost. When your revenue depends on shoddy products, you must devote an excess of resources to patching the holes that are slowly sinking your ship. The best people will tire of this and jump aboard the next vessel that offers better working conditions and/or higher compensation. But of course one never escapes the fundamental problems by job hopping.
To build something great, reliable and high value takes time. If it were easy, the market would be awash with cheap high quality products. It clearly isn't.
For things to improve, I believe that a small group of workers will likely need to join together and sacrifice short term earnings to build viable long term companies on a different set of ethics and values. I have personally made this sacrifice and am working on something I think is great and valuable that I could not possibly do within a typical company.
I have optimism that soon alternative approaches to building companies will emerge outside of the current VC funding model, which I believe has run its course. There are many, many software developers who are wealthy enough to sacrifice short term compensation to build more equitable companies with longer term vision and with a much higher ownership percentage that will pay off in the long run.
Being more specific, most languages, in my opinion, are far too permissive with whitespace and use too many keywords. The former leads to there being no canonical form of the program text and results in reliance on external formatting tools, when the compiler could be just automatically enforcing canonical formatting rules. The latter makes it hard to distinguish between types of words, which is why it is almost necessary to rely on syntax highlighting.
If each program has a unique canonical form, it would be very hard to beat text based diffing on that form. Lisp is quite good from the diffing perspective but weaker on human legibility (for most humans).
Like all things, we need balance. This is a good argument against guilds, but there are positive aspects of the system too. Imagine a world that was truly a free for all -- one in which there were no trusted authorities in any field. I believe such a society would quickly devolve into a dystopia and collapse.
From my perspective, the big problem is when there is no competition among guilds and the guild leaders wield disproportionate societal power. That is how you end up with oppressive oligarchy, which honestly is a reasonable description of the global order right now. My hope though is that we are better able to organize and compete against the current oligarchic order.
Whether or not this makes a semantic difference is language implementation dependent. I think that is why this kind of tool is not especially appealing to me. I would have to have almost complete knowledge of the compiler and the diff tool to truly trust that there is no semantic difference. Moreover, I would like to know why changes to the text that are being made that have no semantic effect are being mixed with those that do.
For me, text is king and that is the level at which I want to evaluate diffs 99% of the time, but I do recognize that others have different goals and preferences.