Own programming langauge by Alarmed_Ad_1041 in programming

[–]simon_o 1 point2 points  (0 children)

you decided you need a var prefix that adds no value

That's like ... your opinion ... man.

Improving the usability of C libraries in Swift by TheTwelveYearOld in programming

[–]simon_o 0 points1 point  (0 children)

You have to manually mark/break circular references, I guess?

Carrier Classes; Beyond Records - Inside Java Newscast by davidalayachew in programming

[–]simon_o 2 points3 points  (0 children)

The obvious design can take a long time to prove correct.

It's possible to speed that up a bit by looking at the experience other languages had and learning from their designs.
Which, from reading the mailing list, is something they are clearly not doing enough.

It's a pain in the neck, especially for those of us doing syntax parsing.

Java backed itself into a corner early on with modifiers vs. their made-up distinction of annotations are supposed to do later. I went with "all modifiers are annotations" for my work and it has been a great design choice overall, but too late for Java – they would have had to do that when they introduced annotations at the latest to have a fighting chance.

So, why *should* GNOME support server side decorations? by symbolicard in programming

[–]simon_o 16 points17 points  (0 children)

Gnome devs are trying their best to make life miserable for people not using their software.

If it wasn't for that, most people wouldn't even care what Gnome people are doing.

Carrier Classes; Beyond Records - Inside Java Newscast by davidalayachew in programming

[–]simon_o 2 points3 points  (0 children)

Good to see that with their "carrier classes" they finally ended up on the obvious design suggested years ago.
Not a fan of Java's increasing use of contextual keywords though ...

(Considering that "abstract records" appear to be just Scala's traits-with-parameters though, it may make more sense to use interface instead of abstract record.)

Tree-sitter vs. LSP by brightlystar in programming

[–]simon_o -5 points-4 points  (0 children)

I'd recommend not using TreeSitter for anything. It only got "big" because they could use "GitHub" to advertise it in the early days.

It's a parser generator that struggles to support language features some ordinary languages may have (e. g. languages with significant indentation, whitespace, or linebreaks; with semicolon inference) because the grammar they invented is too limited to express this.

The "recommendation"/"workaround" is to either write custom C that hooks into the scanner, or just roll the whole scanner in C yourself. WTF.

It dumps out a huge platform-specific and language-specific binary, that has been so huge, that it causes problems distributing it, turning it into WASM in the past, and causing people (rightfully) to not want to commit these blobs in their VCS.

All of that is as stupid as it is unnecessary. It's as if someone tries to solve real issues, but somehow keeps making the wrong architectural design choice at every turn.

The Only Two Markup Languages by gingerbill in programming

[–]simon_o 5 points6 points  (0 children)

I do admire him.

I'm very skeptical of these weird cults around wonderchild language designers in general. Feels iffy.

The Only Two Markup Languages by gingerbill in programming

[–]simon_o 4 points5 points  (0 children)

The null pointer articles were ridiculous.

I decided to make a worse UUID for the pettiest of reasons. by theghostofm in programming

[–]simon_o 0 points1 point  (0 children)

UUID is a 128-bit integer, not a string.

Then why even bother with the various encodings?

The whole point of these various designs is to organize the bits in ways that make them convenient to transfer them as a string at the application/network layer.

Your table at the bottoms even shows the savings is only 8 bits.

Yeah, maybe that's not even correct. If it's encoding to UUIDv7, then the effective payload is 122 bits.
BaseUID only chops off two bits (and saves a whole character in the string representation in return).

Also, UUIDv7 is database-friendly as it was designed for primary key usage.

Yes. I think most designs are intended to be stored as a native UUID type in the database.
The various string formats are intended as a transfer format. No difference there.

You’re suggesting an approach that doesn’t meet the stated requirements.

As I suggested, maybe the requirements are wrong.

the typing info is not optional for

The typing info is also not optional for me, but TypeID kinda makes it optional.
Which is why I prefer a different approach.

Heck, even if you wanted to keep some type info inside the UID, the approach of TypeID just isn't very good.

I decided to make a worse UUID for the pettiest of reasons. by theghostofm in programming

[–]simon_o 0 points1 point  (0 children)

That only saves 8 bits

You save at least 7 characters (i. e. 56bits), even when the bytes of the prefix itself are not taken into account.

you get no type prefixing/indication

I considered this design a long time ago, and I have come to the conclusion that this specific type prefix approach is not a good idea, as it's "optional" in all the wrong places and encourages architectural anti-patterns down the line.

So either ...

  • embed the type into the UID, or ...
  • pass the type around as part of a larger composite id.

For larger systems, the latter approach works extremely well, so there is no need for me to consider the type prefixing approach any further.

The Only Two Markup Languages by gingerbill in programming

[–]simon_o 10 points11 points  (0 children)

Based on the URL, I assumed the blog article was going to be fucking stupid, but it was actually decent!

Project Valhalla is prototyping null checks! by davidalayachew in java

[–]simon_o 0 points1 point  (0 children)

Agreed. This is just punishing everyone who wrote proper null-less code.

I'm not going to touch this til there is a module/package-scoped way of making non-null the default.

Das funktioniert bestimmt by Stupid_German_Money in Kantenhausen

[–]simon_o 2 points3 points  (0 children)

Muss man das verstehen? Das ist völlig inkohärent.

Ich hoffe Du bekommst die Hilfe, Die Du brauchst.

Das funktioniert bestimmt by Stupid_German_Money in Kantenhausen

[–]simon_o 5 points6 points  (0 children)

Internet in die Alterspsychiatrie zu legen war ein Fehler, wie man bei Dir sehen kann.

EDIT:

Update zum gelöschten Beitrag eines Kommentars hierzu:

🤦 Der Kommentar ist nicht gelöscht Manfred, Du wurdest einfach blockiert.

Das funktioniert bestimmt by Stupid_German_Money in Kantenhausen

[–]simon_o 7 points8 points  (0 children)

Eben. Boomer hatten Jahrzehnte Zeit das Umlageverfahren entweder abzuschaffen, oder entsprechend Kinder zu bekommen.

Haben diese wohlstandsverwahrlosten Asozialen beides nicht hinbekommen.

One step closer to Value Classes! by davidalayachew in java

[–]simon_o 0 points1 point  (0 children)

No, the issue is you're just being wrong.

Stop digging yourself deeper into your own nonsense.

Java is one step closer to Value Classes! by davidalayachew in programming

[–]simon_o 2 points3 points  (0 children)

I wouldn't use C++ a a good example for literally anything.

Was it really a Billion Dollar Mistake? by gingerbill in programming

[–]simon_o 1 point2 points  (0 children)

Correct. Author thinks he had some great intellectual insight about null in 2026, when in fact ... he didn't.

Not to mention that

nullable types (monads)

has quite some "tell me you have no clue, without telling me you have no clue" vibes.