Hacker News new | ask | show | jobs
by nico 1191 days ago
Sure, maybe you can use a shell script, but now the AI assistant can write it based on your verbal/text description, and then the assistant can also run it for you after you’ve checked it.

What your are saying is: “why use the washing machine, if I my clothes are even cleaner when I wash them myself - I also spend less detergent and less water”.

You are free to keep doing your laundry by hand.

But I bet most people prefer the washing machine.

2 comments

Spare me the shitty analogies. We write shell scripts because it’s cheap, fast, and the behavior is very predictable.

Like it or not, an AI’s behavior is a black box and can’t be “proven” to execute exactly the same every time for the scenarios you are targeting.

A shell script will do exactly what it has been written to do every time, unless tampered with. And if changes need to be made, it can be done quickly without need for retraining, god knows how long that would take for an AI to learn something new. God help you if you need to maintain “versions” of your AI, trained for different things.

Face it, AI are pointless and slow for certain classes of problems.

> A shell script will do exactly what it has been written to do every time, unless tampered with.

Or unless some magic environment variable changes, or one of the runtime dependencies changes, or it is run on a different operating system, or permissions aren't setup right, or one of its tasks errors out.

Shell scripts are digital duct tape, the vast majority of shell scripts do not come close to being reliable software.

> god knows how long that would take for an AI to learn something new

Did you watch OpenAI's demo yesterday? They pasted in new versions of API docs and GPT4 updated its output code. When GPT forgot a parameter, the presenter fed back the error message and GPT added the parameter to the request.

AI proponents are missing the point. Anything you write to make an AI produce something is basically code. Docs are code.

You don’t have to feed a developer code or docs, you can give them a high level idea and they’ll figure it out on their own if you want.

That code will eventually fall away.

The big thing everyone in this single thread is missing is that AI is a metaheuristic.

I wouldn't expect to use AI to run_script.py. That's easy. I'd expect it to look at the business signals and do the work of an intern. To look at metrics and adjust some parameters or notify some people. To quickly come up with and prototype novel ways to glue new things together. To solve brand new problems.

To do the work of an intern an AI must go on Jira, read a ticket, then find the appropriate repositories where code needs to be modified, write tests for its modification, submit for code review, respond to feedback in code review, deploy its changes.

It’s not there yet.

> To do the work of an intern an AI must go on Jira, read a ticket, then find the appropriate repositories where code needs to be modified,

The problem is Jira workflows are designed for reporting results to upper management.

If the cost savings / productivity benefits[1] are there, new workflows will appear.

[1] Then again there are huge productivity benefits to be gained by simplifying existing Jira workflows, yet such steps are not taken.

This feels achievable in five years.
What developer working on anything meaningful does not rely on documentation? You certainly have to make the documentation available similar to how you would have to make it "available" to an LLM. I think you might be missing the point about what the potential use-cases for these systems are.
> A shell script will do exactly what it has been written to do every time

I wish I lived in that universe.

Correct. So are humans.
I think you're fighting an uphill battle because of what you picked to defend here - shell scripts are very easy to write, and I have a hard time imagining a future where someone tells an LLM,

"Write me a shell script that runs run_control.py with the speed argument set to one hundred."

to get,

"./run_control.py --speed 100"

That's a trivial example, sure. Think of saying "make this image more red, flip it vertically, then crop the bottom 25%, and finally output it with 80% compression as a jpg". That would take 15 minutes to figure out how to write that with imagick, or just have an LLM do it for you.
I had to try, seems reasonable, haven't tested the code

As an AI language model, I do not have direct access to image editing software, but I can provide you with a shell script that could achieve the described image manipulation using ImageMagick, assuming it is installed on your system.

Here's an example shell script that you could use as a starting point:

bash Copy code #!/bin/bash

# Set the input image filename input_file="input.jpg"

# Set the output image filename output_file="output.jpg"

# Increase the redness of the image convert "$input_file" -modulate 100,150,100 -channel R -evaluate multiply 1.2 +channel temp1.jpg

# Flip the image vertically convert temp1.jpg -flip temp2.jpg

# Crop the bottom 25% of the image convert temp2.jpg -gravity South -chop 0x25% temp3.jpg

# Compress the image to 80% convert temp3.jpg -quality 80 "$output_file"

# Clean up temporary files rm temp*.jpg To use this script, save it to a file (e.g., "image_manipulation.sh"), make it executable (e.g., "chmod +x image_manipulation.sh"), and run it in the same directory as your input image. The output image will be saved in the same directory with the name "output.jpg".

Please note that this is just an example script and may need to be modified depending on your specific image manipulation needs.

This has lots of lossy encode/decode cycles that will accumulate artifacts. Good anecdote.
This is a prime example of what I mean by my remark above that the original commenter was totally undermining their own argument by using "shell script" instead of "python script".

Shell scripts can't create intermediate bitmap images in memory and operate on them with normal drawing and filtering apis like opencv, without lossily serializing and deserializing them as jpg files, or even operate on json structures directly.

It would be a much stronger argument if your example used python and opencv or any other normal library, instead of incredibly inefficient and hard to write and maintain invocations to full blown unix commands run in separate processes instead of direct library calls to manipulate in-memory images.

There's no reason "AI" code generation has to use the worst possible language and technique to generate code to solve a problem.

It's like having a food replicator from Star Trek: TNG, and asking it to make you rancid dog food instead of lobster.

Not to weigh in on any other aspect of this discussion, but when you say:

> I have a hard time imagining a future where someone tells an LLM, "Write me a shell script that runs run_control.py with the speed argument set to one hundred."

I'll point out that we already live in a world where single lines of pure function code are distributed as an NPM packages or API calls.

It’s not ‘write me a shell script to run this python code’, it’s ‘okay, the test part looks good, run the print again with the feed speed increased to 100, and make six copies. And Jarvis, throw a little hot-rod red on it.’
> shell scripts are very easy to write

I've been a developer for a long-ass time, though I don't have super frequent occasion where I find it worthwhile to write a shell script. It comes up occasionally.

In the past 2 weeks I've "written" 4 of them via ChatGPT for 1-off cases I'd have definitely found easier to just perform manually. It's been incredible how much easier it was to just get a working script from a description of the workflow I want.

Usually I'd need to double check some basic things just for the scaffolding, and then, maybe double check some sed parameters too, and in one of these cases look up a whole bunch of stuff for ImageMagick parameters.

Instead I just had a working thing almost instantly. I'm not always on the same type of system either, on my mac I asked for a zsh script but on my windows machine I asked for a powershell script (with which I'd had almost no familiarity). Actually I asked for a batch file first, which worked but I realized I might want to use the script again and I found it rather ugly to read, so I had it do it again as a powershell script which I now have saved.

Sure though, someone won't tell an LLM to write a shell script that just calls a python script. They'd have it make the python script.

I think one effect of LLMs and their limited context will be the end of DRY. I’ve already found myself getting gpt to write stuff for me that could have been part of or leveraged existing code with a little more thinking. But the barrier to just starting from scratch to do exactly what I want, right now, just got a whole lot lower.
Why, given the power and flexibility of ChatGPT, would anyone in their right mind ask it to write a shell script instead of a Python script?

Whose time and effort do they think they're saving by bringing more shell scripts into existence, anyway?

Shell scripts are objectively and vastly worse than equivalent Python scripts along all dimensions.

It's like having a food replicator from Star Trek: TNG, and asking it to make you rancid dog food instead of lobster.

I threw most of these scripts away after using them once, plus it was under a minute to get them working, so maybe I'll try a python script next time.
I've been doing similar things all the time lately.

write me a function in python that ...

I've always forgot the syntax for alot of functions/libraries etc.

Also, I haven't really written lot of python until recently.

What? There are a lot of non-coders out there, and they could absolutely use an LLM to ask it to create scripts to run. In fact I along with a few of my friends already do this, I recently asked ChatGPT to figure out how to integrate two libraries together after I copy-pasted to docs from each (now with the GPT-4 32k token limit).
Spoken word into microphone implementation:

Run run control with speed argument 100.

AI: "Scheduling you for a speech therapist session to work on your stutter"