We have been trying to replace coders with some technology since at least COBOL.

https://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/

#Code #Coding

@Natasha_Jay
Same problem with „smart contracts“:
if we were able to write proper conventional contracts, we wouldn‘t need any lawyers.

@vampirdaddy @Natasha_Jay

I think with smart contracts it's both faster and cheaper to have it evaluated for some inputs compared to have it evaluated by several rounds of judges. By a lot.

@hweimer @vampirdaddy @Natasha_Jay And then a judge comes in and orders a change in the code used by the participants of the blockchain ...

@tessarakt @hweimer @vampirdaddy @Natasha_Jay

One thing that "smart contracts" have taught us is that we, as humans, are not as good as we think at evaluating all the possible consequences of a precisely worded specification. We're easily fooled. And easily scammed. And so it turns out that we still need conventional contracts, laws, and enforcement, should we hope to achieve actual "fairness" and "justice."

@JeffGrigg

There's a saying among programmers. If it can go wrong, it *will* go wrong.

It's a caution to remind you to check all the edge cases. I guess the same principle applies to law.

@tessarakt @hweimer @vampirdaddy @Natasha_Jay

@hosford42 @JeffGrigg @tessarakt @hweimer @vampirdaddy @Natasha_Jay

Smart contracts & human law serve different purposes. Some smart contracts are simple If-This-Then-That, unambiguous logic, without human intervention.

Human law on the other hand, is flexible and discretionary by design, simply because all human activity, now and in the future, cannot be anticipated, regulated, and unambiguously codified. There's always a human element to take into account. Judge do misuse this discretion.

@purrperl @hosford42 @JeffGrigg @tessarakt @hweimer @Natasha_Jay
That’s the theory.
For classic legal contracts, too.

As soon as you pay the money, the stuff is yours.

Perfect plain if-then.
Works the same in cyber as IRL.

Unless hickups. Money transfer hangs, double spending on one of the sides…
API or shipping misalignments.
Malice.
Typo.

The details may differ, the basic problems ate the same.

@vampirdaddy @hosford42 @JeffGrigg @tessarakt @hweimer @Natasha_Jay

Those with malice get their comeuppance. There is Divine Justice.

There is God, and then there are humans pretending to be god. Those are the ones who really find out what's real IRL.

@hweimer @vampirdaddy @Natasha_Jay Sure, it's a lot faster and a lot cheaper!

It'll also get you a wrong answer. Because it turns out that "exact rules of operation" is not how legal systems actually work.

@vampirdaddy @Natasha_Jay or even just projects. If people "could simply write a clear project plan with the functional and non-functional requirements, and include a nice listing of the success criteria" then it would be a breeze. Funny, that's something we still haven't mastered.

@ktneely
Major projects that are "on time on budget" are when the PM has a project owner wise enough they can agree to a significant (hidden) contingency in the budget to allow for scope variation and chucking in resources if time frames are truly fixed

@vampirdaddy

@Natasha_Jay
Well,
at the end there won't be unemployed coding experts, as long we will still need them to order an ordinary coffee at a counter from Starbucks etc.
@Natasha_Jay
I did guffaw at a comprehensive and precise spec.

@Natasha_Jay I love this, but I also fear that some 'vibecoders' might use this as an excuse to say the prompts they're writing is code

which, as much as I also use AI tooling from time to time, I don't think compares to writing actual deterministic code that always generates the same output. You're never going to get 'reproducible builds' from a prompt I don't think 🤔

@anthropy @Natasha_Jay I'm not sure they're wrong. Before "AI", being a "good coder" often meant knowing the right terms to find what you needed from Google!

I think some now believe we've successully outsourced the need for good search terms and actually reading/understanding the results.

But we demonstrably have not.

@dtwx @anthropy @Natasha_Jay yeah instead we've made good search terms no longer work, because you get kinda nonsense, and the AI that costs 30x more energy to run also doesnt work either .. and you just cant get the answer

@Li @anthropy @Natasha_Jay I've had to do a lot of "google-fu" recently because I "went back to Linux" and I swear the search results are getting worse and worse.

The relevance is getting very questionable. I assume the lack of click throughs is killing the page rankings of "the good stuff (tm)".

NB I mostly use DDG but I fall back to Google when I can't find what I need.

@anthropy @Natasha_Jay technically, this is only because the output is randomized weights on it, added in somewhat because ai bros want to make it look more "alive" and "organic"

writing code is generally speaking, easy once you get the hang of it, its everything else thats the issue this is what vibecoders miss,

you can say somewhat that it is a sort of "english to c transpiler" (ulbeit a very shit one that makes shit up and generates invalid codehalf the time (even if you dont have rng) ..

@Natasha_Jay indeed. If we could write a fool-proof specification it follows that we could write fool-proof code. But, apparently, we can't, so we can't and so neither can "AI".
@Natasha_Jay Yup! I've never seen a spec that was more than a dressed up wishlist...
@pa27
You've never seen my specs. But then, early on, I was a programmer. The techies used to love me and walk-through I'd do on a spec plus opportunity to let them ask questions.
@Natasha_Jay You are clearly one in a million! 😀
@Natasha_Jay I’m still waiting for « Code as code »
@Natasha_Jay hmmm, I don't agree with that cartoon, a spec states how the code is expected to behave, not how it achieves it. A test suite is a specification that describes how a program should behave.

@Natasha_Jay In fact, way before COBOL (or FORTRAN). Autocoder (IBM), Easycoder (Honeywell) and similar, systems later commonly known as Assemblers, were developed so "every user" could write whatever program is needed without having to ask a programmer to do the job. Cobol, 4GL and so on were further reiterations...

https://en.wikipedia.org/wiki/Autocoder#/media/File:IBM_1401_AUTOCODER_programm_select_and_print.jpg

Autocoder - Wikipedia

@Natasha_Jay Ever since Edsgar Dijkstra dismissed COBOL as irrelevant and unusable, the industry has followed his lead into ever more obfuscation and elitism. He set the stage for Computational Scientism. Any competent experienced programmer can read and modify COBOL with a few days of effort. It's Just Work™

@camelion @Natasha_Jay

Obfuscation and elitism? Please tell me more! I am genuinely curious.

https://rant.li/ashwin/perl-versus-java

Perl versus Java

This article is an opinionated comparison between the Perl and Java programming languages. Full disclosure: I am biased towards Perl as...

The Moving Finger
@Natasha_Jay My father was a COBOL programmer. I learned early on COBOL was supposed to be easy for accountants to use. Wrong. I blame a certain Admiral (also involved very slightly with ADA btw)

@Natasha_Jay

Or worse yet you end up with something like the wayland-scanner. Wayland protocol extensions are created by writing the specification in XML; the wayland-scanner tool then converts this into a C module and headers.

But who in their right mind thought writing in XML was better than C?!

EDIT: Answer: the same kind of people who thought "vibe coding" would be easier than just writing the f***ing code.

@Natasha_Jay @soop you know .. you do kinda write the spec and the program "writes itself" .. thats like what every compiler does
@Natasha_Jay and still plenty of companies who are willing to pay big money for folks who know COBOL.

@Natasha_Jay Programming languages are the solution to the problem of "how do we let people talk to machines effectively"

And we've always been dealing with people who don't want to communicate with the *necessary* precision trying to tell us ways to "do it better"

@RandomDamage @Natasha_Jay Not even necessarily with machines. They're also the solution to communicating with other humans to describe processes in sufficient precision.
@dalias @RandomDamage @Natasha_Jay To extend the metaphor, PLs are also depended upon to execute the same (convey the same message) on every platform, using any compiler. That in itself is a struggle, which leads to "verification", "portability". One way of describing how people can increase the efficiency of their own communications, across cultures and native human-languages.
compilingEntropy (@[email protected])

Guy: If only there was just a better way to communicate to the AI what I code want it to generate! It’s hard to describe what I want in English sometimes. Me: So you want something declarative or at least structured. Guy: Yes! And it would be able to generate a more consistent result too. Me: We already have a tool like that. It’s called a compiler.

Infosec Exchange
@Natasha_Jay I've been making this point for a long time now, assuming AI actually ever works out what they are calling "prompt engineering" will simply be a higher level coding language. Which will require professionals who fully understand it. The "AI" simply becomes an interpreter into a lower level language. Which is silly, because compilers already exist...
@Natasha_Jay I remember in the 80s my boss getting a copy of a program called TLO - the last one as it was claimed that you’d never need to buy another program as you could instruct this program in “plain English” to fo whatever you wanted. That didn’t last long! 😁
@pheedbackPhil @Natasha_Jay I came here to mention this cos I recall it too. Never heard of it since.

@Natasha_Jay

A lot of this stuff has an odour of "what if we didn't have to have these people around at all".

@Natasha_Jay My personal favourite (came out when I was an undergraduate):

https://en.wikipedia.org/wiki/The_Last_One_(software)

The Last One (software) - Wikipedia

@Natasha_Jay Back in the 90s everyone was talking about "software blueprints". The idea was to have a software architect specify all the components of the program in enough detail to make the task of "constructing" it just a matter of typing. Same problem.
@Natasha_Jay every time someone proposes UML next generation or something, I am like "oh dear how I gonna explain this to someone clearly unexperienced with actual programming".
It is not we are not already using tons of automated tools. We do.
They are just not enough.
Hands up everyone who knows the definition of a program as the thing in memory which is executed by the cpu, not the source code and not the binary or the byte code