Remix.run Logo
Philpax 3 days ago

The mark of an advanced shell scripter is knowing not to do advanced shell scripting.

(This statement primarily applies to existing stringly-typed scripting languages, which are nightmarish to maintain and debug. PowerShell, nushell, or similar solutions have a much higher complexity ceiling.)

transpute 3 days ago | parent | next [-]

2025 update of this 2006 presentation has a better title, https://news.ycombinator.com/item?id=43714928

  Seat Belts and Airbags for bash
pragma_x 2 days ago | parent [-]

Thank you for linking this.

I really want to reach for that pun and suggest: "Seat Belts and Airbags for bash safety" as an even better title.

pottmi 2 days ago | parent [-]

Are you bashing bash?

pragma_x a day ago | parent [-]

All day, every day. And that's coming from someone that _likes_ working with it.

pottmi 12 hours ago | parent [-]

Yeah, despite having created that presentation and having given it 50 times if I were to do another IBM JCL to shell conversion I would convert to zsh.

rascul 3 days ago | parent | prev | next [-]

Aren't TCL and Perl stringly-typed scripting languages?

pjmlp 2 days ago | parent | next [-]

No for Perl, in Tcl kind of, it changed in Tcl 8, already long time ago.

http://www.ira.inaf.it/Computing/manuals/tcl/man-8.0/Changes...

Philpax 3 days ago | parent | prev | next [-]

You won't catch me defending them ;)

uh2010 2 days ago | parent | prev [-]

Yes - at least in Tcl, _everything_ is a string

pjmlp 2 days ago | parent [-]

Not everything, and this already changed a while back.

> The core of the Tcl interpreter has been replaced with an on-the-fly compiler that translates Tcl scripts to byte codes; a new interpreter then executes the byte codes. In earlier versions of Tcl, strings were used as a universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj structures ("objects") that can hold both a string value and an internal form such as a binary integer or compiled bytecodes.

http://www.ira.inaf.it/Computing/manuals/tcl/man-8.0/Changes...

jsbg 2 days ago | parent | prev [-]

> This statement primarily applies to existing stringly-typed scripting languages

IMO it applies to all languages. Fancy language features usually make for poor maintainability, e.g. metaprogramming.