Subj : Re: Windows vs Linux To : tenser From : boraxman Date : Sat Apr 23 2022 12:32:57 te> bo> The shell is a tool, the interface is a tool. I use the shell to sol te> bo> problems, work things out. Using a Mac at work, I used the shell to te> bo> manage data, run queries and provide formatted output and validation te> bo> from CSV data. te> te> And how is that relevant to the ability to customize your .zshrc te> file or whatever? Do you really think you couldn't do the same te> thing with powershell or wsl or whatever? The ability to customize te> your shell experience is only tangentially related to the ability te> to script a shell to do something useful with the Unix filter model. te> Indeed, if you want to write scripts to do useful things, in many te> ways it's best NOT to rely on customizations, so that those scripts te> are portable -- not just to other machines and environments, but te> even to other users. te> WSL is a relatively new addition, and it is Linux under Windows. Powershell seems powerful, designed more around system administration. Could I transfer my workflow to windows? Perhaps a notable portion, but Windows wasn't designed with the same philosophy. It was designed as a "consumer OS", a platform for applications, and it is only relatively recently that Microsoft are accommodating this other usage. Windows is changing, but Powershell and WSL are recognitions of the advantages that we already enjoy. te> I've never argued against the utility of the Unix shell. This is te> a strawman in the context of this discussion, which is about customizing te> one's environment. te> te> That said, it's important to recognize the limitations of the te> shell. As anyone who has to work with a variety of structured te> data formats knows, it can break down pretty quickly; VM/CMS te> pipes and PowerShell both do rather better in this domain than te> most Unix shells. te> te> Since you mentioned CSV, it's interesting to look back at, "The te> Practice of Programming" by Kernighan and Pike, which discusses te> the difficulty of parsing CSV files in the shell. This is coming te> from the same Kernighan and Pike who wrote, "The Unix Programming te> Environment" and who worked in the same lab as Dennis Ritchie and te> Ken Thompson. te> te> Unix tools are useful. But it does no one any service not to te> recognize their limitations. te> CSV is not as good a format as delimited text files. Eric Raymond mentions this in the Art of Unix Programming, how the /etc/passwd format is superior. I agree, but at work I'm dealing with excel spreadsheets, and exporting to CSV fits in better. Windows is designed around computing being something to consume. Their goal was selling software, and the desktop world was based on shrink-wrapped applications packages. You bought a blank platform (that for the most part didn't by default let you write your own programs), and then bought "solutions". Want to write a resume, buy a word processor or resume writing program. Each application was its own world, managing its own data, and having all the functionality the author thought you needed in its own world. Unix was designed around a different idea, separation of data and processing. The tools process text, and can pass from tool to tool. Not the most ideal model, but that is what it is. It was more amenable to storing data in a way that is application agnostic, and doing whatever transformation you want. Emacs is another unique approach, quite different to Unix in that it doesn't rely on composability of commands, but ability to run different functions over the same instance of data. There is overlap between these systems, you can do the latter on Windows, and Unix/Linux sure has its fair share of big-package apps. I think we in general are too stuck in the first model, where each application is supposed to do everything itself. (firefox manages it bookmarks, Edge its own, instead of both leveraging a simple bookmark storage and retrieval program which you could easily in your own constructions). This is the difference, Windows was designed around software being sold to the consumer with its own telos, whereas Unix was designed moreso around the user constructing their own ends. It isn't possible for a developer to anticipate, or know what the user will want to do. Now Linux and Windows are meeting somewhere in between. By and large, most systems I use are too segmented, and data is siloed, and workflows are based on the developers end goal, not us, the users. --- Mystic BBS v1.12 A47 2021/12/24 (Linux/64) * Origin: Agency BBS | Dunedin, New Zealand | agency.bbs.nz (21:1/101) .