

If ssh has a security issue and you permit root logins then hostiles likely have an easier time getting access to root on the machine than if they only get access to your user account—then they need multiple exploits.
Generally you also want to be root as little as possible. Hence sudo, run0, etc.
This sounds like the antithesis to parse, don’t validate. It is possible to use just maps and strings and get a “stringly typed” program, but there’ a bunch of downsides to it too:
dict[str, Any]
; most of us want the typechecker to help us write correct code.get
from a map isOptional
; you need to be constantly checking and handling that rather than being able to have methods that returnT
, or even direct field accessUltimately while Hickey has a good point in the distinction between
easy
andsimple
, his ideals don’t seem particularly aligned with the programming world at large: For one thing, Clojure remains pretty small, but even other dynamic programming languages like Javascript and Python have been moving towards typechecking through Typescript and typing in Python.Doing a
json.load
into somedict[str, Any]
is simple, but actually programming like that isn’t easy. Apparently a lot of programmers find value in doing the extra work to get some stdlib or pydantic dataclasses. Most of us get a confidence boost from using parsed data, and feel uneasy shuffling around stuff that’s just strings and maps.