3 ms·
The mark of an advanced shell scripter is knowing not to do advanced shell scripting. (This statement primarily applies to existing stringly-typed scripting la
by Philpax 2y 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 2y ago2025 update of this 2006 presentation has a better title, https://news.ycombinator.com/item?id=43714928 https://news.ycombinator.com/item?id=43714928 Seat Belts and Airbags for bash
- pragma_x 2y agoThank 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.
- rascul 2y agoAren't TCL and Perl stringly-typed scripting languages?
- Philpax 2y agoYou won't catch me defending them ;)
- uh2010 2y agoYes - at least in Tcl, _everything_ is a string
- pjmlp 2y agoNot 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/Changes8.0.html http://www.ira.inaf.it/Computing/manuals/tcl/man-8.0/Changes...
- pjmlp 2y agoNo 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/Changes8.0.html http://www.ira.inaf.it/Computing/manuals/tcl/man-8.0/Changes...
- jsbg 2y ago> 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.