scythmic_waves

Joined 6 years ago

Karma
511
Submissions
152
Member since
Mar 20
View on Hacker News

Recent submissions

Comment · 13 days ago
Comment · 14 days ago
This project lacks a compelling sales pitch. It mentions that LF is better than actors but I also don't see no reason to believe that.

It does offer a deep dive into what reactors are but why would I bother to learn? If OP reads my comment, that's what I would add to this landing page. Show me why the alternatives mentioned are inferior.

Comment · 21 days ago
Great advice, will do. I don't engage with HN a ton and I didn't realize this was the state of discourse on LLM prose.
Comment · 21 days ago
At what point did I "invalidate facts"?
Comment · 21 days ago
Comment · 1 month ago
Comment · 1 month ago
1. I hardly made an argument, merely stated a position.

2. "of sufficient complexity" is doing a lot of work here. Read Ted Chiang's article. I agree with him: there's nothing that prevents software from being conscious in principle. But there is also no reason to suspect that LLMs in particular are conscious based on very reasonable assumptions about what that would look like.

Comment · 1 month ago
Did you even open TFA?

> Slop UI is the UI that AI cooks up that looks off, where it’s not supposed to be, doesn’t serve a purpose or when a UI is too generic.

> This is seen in vibe-coded UI without a vision. Vibe-coded UI can look great when done right, but most don’t. And it makes the apps look cheap and unappealing to use.

Those are paragraphs 3 and 4.

Comment · 1 month ago
Comment · 2 months ago
What's a good example that comes to mind for you of it done right? I don't do much frontend so I think I just uncritically accept whatever design is put in front of me.
Comment · 2 months ago
I agree that an LLM could also generate the code for a new query language. But my point is that fewer people will attempt to author a new query language in the first place because an LLM will be writing the queries either way. So the effort would be less impactful.
Comment · 2 months ago
Some overlap here with some of my favorite essays on why SQL is lacking:

https://www.scattered-thoughts.net/writing/against-sql

That particular post ends with a wish-list of items so it's the most similar to the OP. But there are others on the site that I quite enjoy (click on the home icon and search "SQL" on the page).

My personal take is that SQL will continue to reign for a long time because of the how monumental the task of replacing it is due to the inherent complexity of databases. LLMs make this worse because they're really good at translating prose to SQL. Now that it matters less how annoying SQL is to programmers, SQL will become more like assembly over time: something mostly computers write because it's complicated for humans to deal with directly. This is deeply ironic given that SQL was ostensibly designed to read like prose, i.e. to be easy for humans.

Comment · 2 months ago
> The power set lattice (P(N)) of all sets of natural numbers, not to scale, some sets omitted...
Comment · 4 months ago
Anecdotally, it is very much different in Elixir land. I occasionally see bugs related to something being unexpectedly `nil` but it's pretty rare IME.

I'd love to evidence what I'm saying with specific numbers since this kind of discussion would benefit from being as objective as possible. Sadly I don't have them. But I still believe what I'm saying and I have a few guesses about some of the causes:

1. Immutable data - so, so many bugs are caused by data mutating out from under you in subtle ways. If you write `x = 1` in your Elixir function, nothing can change the value of `x` except an explicit rebinding. You can then write e.g. `y = f(x)` and know `x` remains unchanged after. Note: this is also true even if the variable is a composite type. `my_struct = blah()` will remain the same in it's entirety no matter what you do with `my_struct`. This is different than in JS where e.g. you can change the contents of an object even if it's declared `const`.

2. Assertive style - the Elixir community favors writing things in an "assertive" fashion [1]. Briefly, this a way of writing code that will fail the moment an assumption is broken rather than letting the issue propagate.

3. Pattern matching (somewhat like destructuring in JS) - Elixir code actually ends up feeling "typed" with pattern matching. E.g. `%Time{} = today = Date.utc_today()` will attempt to bind `today` to the result of `Date.utc_today()` and will raise a `MatchError` when the result, a `%Date{}` struct, fails to be a `%Time{}` struct. Or `[a, b] = [1, 2, 3]` will raise a `MatchError` because `[1, 2, 3]` isn't a list of length exactly 2. You can use pattern matching to write very assertive code quite tersely.

These reasons are all local properties of code. But when all its parts are written in this way, a program as a whole gains a level of correctness that's hard to achieve in a dynamically typed language without them.

Also these reasons aren't exhaustive, but they're top of mind when thinking about this topic.

[1]: https://dashbit.co/blog/writing-assertive-code-with-elixir

Comment · 6 months ago
I read this years ago and I think it's the best one I've read. Thanks for writing it!

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton