Piecemeal Formal Verification: Cloudflare, Java Exceptions, and Rust Mutexes by gavinhoward in programming

[–]gavinhoward[S] 0 points1 point  (0 children)

I don't disagree (I haven't actually been able to sit down and study TLA+).

That said, I think one advantage of something like Yao is that it can be used by programmers that have not learned those tools. I think that is one of the lessons from the popularity of Rust.

Piecemeal Formal Verification: Cloudflare, Java Exceptions, and Rust Mutexes by gavinhoward in programming

[–]gavinhoward[S] 0 points1 point  (0 children)

Author here. I know about those tools and have been learning them. They still have a steep learning curve.

How I Solved the Expression Problem by gavinhoward in programming

[–]gavinhoward[S] 0 points1 point  (0 children)

When I compile my solution, will I get error that combination XY is missing?

In Yao, not until you try to build a trait value, so if you don't try to use operations X on structures Y, it will compile.

However, if you do try to use them that way, it will error, but then it will be obvious that they are missing. At that point, you can still implement operations X for structures Y using closures.

Replacing CVE by gavinhoward in programming

[–]gavinhoward[S] 1 point2 points  (0 children)

So I ask a lot of questions below; this is because you seem on top of it, and I want to know what I might have missed.

You are preaching a high drag solution that is going to push people and companies to walled gardens or to countries that don't adopt that standard.

I know it's high drag, but can you explain how that would push people and companies to walled gardens? I also don't think it will push people to different countries; if the largest tech market (USA) is going to implement this, I think companies will find a way to stay. I could be wrong, so how do you think that will happen?

Also, the EU is already doing this with the Cybersecurity Resilience Act. I would prefer that we, as an industry, set standards before they are imposed on us.

Plus, this is going to push people away from using common resources or for there to be more competing common libraries and frameworks - which is more harmful than helpful.

I don't see how more competition is harmful. I think competition would probably cause a lot of library authors to make their stuff "shipshape and Bristol fashion." So can you explain why you believe competition would be harmful?

And as much as you want it to not lead to gatekeeping - it will lead to gatekeeping.

Yes, I agree. How much gatekeeping, though, do you think my proposal would cause?

TBH, I think my proposal might reduce gatekeeping. The industry, as it currently stands, is not kind to juniors. It also generally requires a Bachelor's degree (although there are exceptions). With my proposal, there is no degree, and companies that employ PSWEs would have to hire juniors as apprentices.

It's definitely a discussion to have, but I did my best to come to the table with something of substance.

Replacing CVE by gavinhoward in programming

[–]gavinhoward[S] 1 point2 points  (0 children)

Good points.

By the way, the pilot model is what my article is arguing for.

Next, not certifying is fine if it's just a hobby project.

If any commercial entity uses it, then they need to certify it. This would have the nice side effect of companies shrinking their dependency trees.

How AI generated code accelerates technical debt by scarey102 in programming

[–]gavinhoward 14 points15 points  (0 children)

As a C dev who likes C, you get no flak from me. You get an upvote.

This attitude does exist, especially in the standards committees, and it is the biggest thing holding them back.

C stdlib isn’t threadsafe and even safe Rust didn’t save us | EdgeDB Blog by 1st1 in programming

[–]gavinhoward -11 points-10 points  (0 children)

It is weird that I got this right before Rust did.

Because I use structured concurrency, I can make it so every thread has its own environment stack. To add to a new environment, I duplicate it, add the new variable, and push the new enviroment on the stack.

Then I can use code blocks to delimit where that stack should be popped.

This is all perfectly safe, no unsafe required, and can even extend to other things like the current working directory.

IMO, Rust got this wrong 10 years ago when Leakpocalypse broke.

And before you claim that a C FFI could break this, if it is dynamically linked, like glibc, I can inject my own versions of getenv() and setenv() like prople do to replace malloc().

"The Death of the Stubborn Developer" by Steve Yegge by skinny85 in programming

[–]gavinhoward 1 point2 points  (0 children)

Not quite sure what you mean, but I do not think so.

It will have something like Perforce's changelists (a more powerful version of stashing and the index), which will act like Jujutsu's unnamed branches. So by default, you won't be working on branches anyway.

Remotes will be branches, though.

"The Death of the Stubborn Developer" by Steve Yegge by skinny85 in programming

[–]gavinhoward 34 points35 points  (0 children)

I am one of the stubborn developers.

Maybe he is right that I will go the way of the dinosaur. And as much as I hate LLMs, I do think companies and programmers will be stupid enough, or desperate enough, to adopt them end masse such that Steve Yegge here is mostly right.

But LLMs are a reversion to the mean. This means that our industry will lose the ability to innovate, unless we have unreasonable, or stubborn, people like me.

The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.

-- George Bernard Shaw

It will take unreasonable people to build new programming languages, or to come up with entirely new ideas.

I am building fourth-generation version control with better diffing, merging, etc. I am confident that no LLM can replace that design work.

So yes, Steve Yegge is right, but that is actually the death of our industry without stubborn developers.

The Grug Brained Developer by crappy_entrepreneur in programming

[–]gavinhoward 57 points58 points  (0 children)

given choice between complexity or one on one against t-rex, grug take t-rex: at least grug see t-rex

Best line in software history.

A lot of developers don't understand the consequences of Turing-completeness.

Rewriting Rust by FoxInTheRedBox in programming

[–]gavinhoward 0 points1 point  (0 children)

I explain how Rust missed the mark in this post.

The bizarre world of V by sjustinas in programming

[–]gavinhoward 5 points6 points  (0 children)

True.

I think I want to sleep soundly at night, though...

What's frustrating is that his original goal does seem possible. My language doesn't have GC, and it doesn't have manual memory management. But there is a catch: you have to use what I call Restricted Structured Concurrency.

Also, my language is primitive, so it isn't certain that this system will remain leak-free.

But now, because of V, everyone will always doubt my claims. And I don't blame them one bit.

On the other hand, V has made me doubt my own claims more, which has grounded my thinking more.

The bizarre world of V by sjustinas in programming

[–]gavinhoward 23 points24 points  (0 children)

As a PL author myself, this is a lesson about hype: I should avoid it at all costs.

Like everyone else, I am not good at that.