News for hackers. Stuff that matters.
Re:The -a to -z of Command-Line Options (2003) by chongli on Monday December 10, 2018 @05:35AM (#18646788)
Yes, classic Mac OS truly did not have a command line interface of any kind. As a consequence, everything your application did must have had a GUI command or preference corresponding to it.

Command line interfaces are powerful, yes, but they're also a crutch. It's very easy to hide certain features by exposing them only through command line flags or what have you. On classic Mac OS you could not do this; you needed to attach every feature to a GUI control of some kind.

As a consequence, people came up with all kinds of GUI tools for pro/expert users. Linux, comparison, treats GUI users as second class citizens and tends to relegate them to only the most basic functionality.

Re:The -a to -z of Command-Line Options (2003) by jandrese on Monday December 10, 2018 @02:53PM (#18650671)
Eh, lots of stuff would be just stuffed into an appropriate resource and if you wanted to hack it you would use ResEdit.

I miss ResEdit. Pretty much every Mac app in the day used the standard system for managing their resources, so you could pick apart anything with ease using ResEdit. I don't know of any modern equivalent for Unix/Windows/Mac programs.

Re:The -a to -z of Command-Line Options (2003) by derefr on Friday December 14, 2018 @03:40PM (#18684502)
I would think that the modern macOS equivalent to the "resource fork" is simply an app bundle's Resources folder.

Also, regarding "burned-in configuration" resources—those are now found in the app bundle's Info.plist :)

Re:The -a to -z of Command-Line Options (2003) by ktpsns on Monday December 10, 2018 @08:00AM (#18647540)
Well, I was too young to really explore classic Mac OS at that time. But from my feeling, the unixoidity of Mac OS X was really a blessing for the hacking community. So there definetly was a need.
Re:The -a to -z of Command-Line Options (2003) by chongli on Monday December 10, 2018 @08:19AM (#18647662)
Oh don't get me wrong, I live in the terminal these days. It's immensely satisfying to whip up a quick bash or Perl script to solve a problem. That being said, I believe the reliance Unix command line tools has made this computing power inaccessible to ordinary users.

In some sense, I think it has deepened the digital divide.

Re:The -a to -z of Command-Line Options (2003) by ergothus on Monday December 10, 2018 @01:59PM (#18650267)
I like your viewpoint, but my experience with GUIs was largely that THEY hid power...from me. Any setting that could only be managed from within a GUI meant automation was pretty much off the table (and by "automation" I mean any basic connection of two tasks, things joe average user would want, not necessarily heavy industrial automation). Remember when Windows NT had only a binary event log, and their graphical client was the only way to view it?

I think the issue is not so much "command line hides power and treats GUI like a second-class citizen", though that is true, but rather that preferring one over the other creates problems.

This issue is again rearing its head in website design - many "web applications" have states that are not reachable via linking.

Re:The -a to -z of Command-Line Options (2003) by derefr on Friday December 14, 2018 @03:54PM (#18684653)
Back before the Unix-ization of macOS, there was a large focus on programs providing accessibility/automation APIs. The GUI parts of macOS were actually far more scriptable back in the OS7-9 days (and early OSX days) than they are today. It used to be that any effect you wanted to trigger in the OS, you could do by sending an https://en.wikipedia.org/wiki/Apple_event through the OSA scripting component to the relevant system service.

Nowadays on macOS, with the availability of the CLI, Apple engineers have decided to expose those same effects through CLI utilities that call directly into private system APIs (which are themselves usually client libraries for private Mach client-server ABIs.) If there's a switch exposed in the GUI but not the CLI, it's unlikely there's an event to reach it any more.

(Though, in macOS or Windows or Linux, it's always a possibility to write a script that has GUI effects directly in terms of "click the first button on the right"-style accessibility directions. But that's extremely brittle to system version updates, and precisely the thing that exposing an automation API is meant to avoid.)

Re:The -a to -z of Command-Line Options (2003) by pseudalopex on Monday December 10, 2018 @03:51PM (#18651075)
Most applications focus on either the GUI or the CLI because building two complete interfaces takes a lot of work.

You're right that a lot of GUIs aren't designed for automation, but CLIs aren't the only answer. Classic MacOS had a powerful scripting architecture. (It still exists, but it's been neglected.)

Re:The -a to -z of Command-Line Options (2003) by laumars on Monday December 10, 2018 @10:29AM (#18648538)
You could still do scripting akin to Bash scripts on OS 7 and above via AppleScript[1]; which worked a little bit like WSH did on Windows.

[1] https://en.wikipedia.org/wiki/AppleScript

Re:The -a to -z of Command-Line Options (2003) by chongli on Monday December 10, 2018 @12:34PM (#18649555)
Yes, and I'm an old fan of AppleScript as well. The difference, as far as I know, is that you couldn't hide core application functionality behind that API, could you?

If you could, I think most developers didn't, since AppleScript isn't a default means of using the computer the way Unix shells are.