> Juniper when it came end of 90's did understand this and made even better configuration system for Junos than IOS was and still is.
"even better" is an understatement ! I was working on a dual-vendor network at the time, we ran Cisco and Juniper in parallel.
Working on Cisco always just felt like going back to the 18th century, I mean the whole candidate and active config thing alone in Junos was insanely valuable:
show | compare # diff the config
commit check # lint it
commit confirmed 10 # apply it, but don't persist unless confirmed
commit # confirm
Meanwhile, back in 18th century iOS land, a fat finger on the ACL would leave you with a bad day in the office until you rebooted the box via OOB.I think that juniper learnt from Cisco's mistakes while Cisco is stuck with their config command structure as they decided to chase backward compatibility and familiarity across products.
I’ve taken entire systems offline because of unexpected command expansion.
My “favourite” was “admin”, which was used as the login user, was also short form for “administer-all-port-shutdown” (or words to that effect; it was a long time ago). So if you were distracted when logging in, you could easily soft-lock the entire device meaning you’d have to then run into the DC, find the hardware, and physically power cycle it.
Absolute madness.
Agreed completely. Junos have niceties like copying parts of config, adding config even beforeinterface cards are inserted, renaming/moving parts of config, of course quickly config parts, viewing and exporting config various ways etc. etc. Cisco improved config viewing a bit with IOS-XR too, so that it's possible to scroll like Junos had ages ago.
However there are also things Junos vs Cisco was that Cisco had made bit easier. Just to mention few
1) a simple and quick way to add aliases to config file, which made life easier with long commands that could be otherwise always in hurry hard to remember. Now later versions Junos they have made this better, before it involved twiddling with XML files OS-level etc.
2) IOS TCL scripting, that proved to be quite useful automation tool.
3) OS upgrades of course with a single flash blob made it easier than upgrading or downgrading FreeBSD based Junos.