gaulon ma chi ha mai detto che dos e la shell di unix ecc.. sono la stessa cosa ?
Non lo so chi lo ha detto 🤨. Ed io di certo non ho detto che lo hai affermato tu.
Quello che ho detto io è che tutti i sistemi operativi, prima che arrivassero le GUI a metà degli anno '80, erano tutti gestiti con una shell testuale e che questa quindi non è una esclusiva dei sistemi Unix.
Certo che ci si può svegliare di decidere di creare una nuova shell testuale ed un nuovo linguaggio di scripting per l'automazione delle operazioni amministrative (senza che questa sia una copia di qualche altra implementazione che fa la stessa cosa).
Ti sei spiegato, ma rimane che non è così, non può essere così. Neanche si può affermare che "[i] cantanti si copiano tra loro per le canzoni". Qualcuno capita che copi ma non tutti lo fanno. Ma non è che solo perché tutti i cantanti scrivono canzoni allora tutte le canzoni siano una copia. Alcune possono esserlo.
Mi verrebbe da pensa che non sei mai stato coinvolto in un processo creativo e forse non hai ben chiaro come funzioni e cosa voglia dire prendere ispirazione.
Non è stato fatto nulla che non sia fatto sempre in ogni ambito (e soprattutto in informatica, nei quali uno dei fondamentali principi è il DRY "Don't Reapet Yourself"), c'è un problema da risolvere, la prima cosa che si fa è guardare le implementazioni esistenti per vedere se e come altri hanno affrontato il problema e stabilire se è il caso di adottare uno strumento già presente sul mercato o crearne uno nuovo.
Siccome Powershell non solo è estremamente diversa dalla shell Unix ma i concetti sui quali si basa sono praticamente gli l'opposti della shell di Unix, evidentemente alla persona che ha voluto fare Powershell non piaceva la shell di Unix... Se, come ti ho suggerito, leggessi il Monad Manifesto (scritto dal creatore di Powershell e che racchiude i principi sui quali è stata costruita Powershell) emerge che l'intento era fare qualcosa che fosse appunto diversa. L'ispirazione che hanno dato le shell di Unix è stata qualcosa del tipo: "Questa cosa su Unix viene fatta così, fatta in questo modo ci sono questi difetti, allora noi facciamola cosà".
Ad esempio nel manifesto viene detto: "The traditional model for administrative automation is powerful and successful.
[...]
This model’s philosophy is that every executable should do a narrow set of functions and complex functions should be composed by pipelining or sequencing executables together. This model has been extremely successful despite serious drawbacks. Upon inspection, what is widely considered a UNIX stronghold is in fact a flawed implementation of this model. " Per fortuna che gli doveva piacere la shell Unix... 🙄
Quello di cui avevano bisogno in Microsoft era degli "administrator-oriented composable tools to type commands and automate management" questi strumenti non sono stati inventati in Unix e non sono una esclusiva Unix. Te lo ripeto ancora una volta, le shell testuali ed i linguaggi di scripting sono strumenti estremamente diffusi nel settore dell'informatica, praticamente tutti i sistemi operativi (derivanti da Unix o meno) ne sono dotati.
E ti dirò di più, Windows possiede un sistema di automazione precedente a Powershell (WSH), il problema è che questo sistema utilizza dei linguaggi che non sono specificatamente pensati per questo scopo e sebbene questo rende questo sistema estremamente potente, per gli amministratori non è semplice da usare.
Quello di cui avevano bisogno era, come citavo prima, un linguaggio di scripting più adatto ad essere usato dagli amministratori.
Ti svelo un altra cosa: gli strumenti per la gestione di Windows sia client che server, (come SCCM, o Windows Admin Center e parzialmente il vecchio Server Manager) sono basati su Powershell, sotto il cofano questi strumenti non fanno altro che inviare dei comandi Powershell (prima utilizzavano altri strumenti come WMI, COM, WSH e VBScript).
Ecco perché hanno creato Powershell, perché volevano avere un unico strumento che permettesse di gestire ed automatizzare i sistemi via command-line, via scripting e via GUI e che esponesse della API utilizzabili anche dai programmatori.
Alfoele
Adesso Powershell è diventata potente? Fino a qualche commento fa era una versione downgrade della shell di Unix.
Vi sarete capiti con @gaulon ma ripeto che è una cosa completamente sbagliata. Probabilmente non siete stati capaci di esprimere correttamente i vostri pensieri perché dai vostri commenti non emergeva assolutamente questo. Anzi viene fatto passare che Powershell sarebbe una copia meno potente di una shell Unix.
Sicuramente si può discutere del perché e del percome in un primo momento in Microsoft pensavano che potessero fare certe cose in un certo modo e poi hanno pensato che fosse meglio farle in un altro modo.
Ma questo non ha nulla a che fare con la copia di niente e non ha a che fare con Unix perché, ripeto, le shell testuali ed i linguaggi di scripting per l'automazione non sono esclusiva di Unix. La shell Unix é una implementazione di un modello, Powershell è un'altra implementazione dello stesso modello (che ripeto anche non è esclusiva di Unix).
Solo perché Mercedes e Ferrari fanno auto, non vuol dire che una sia la copia dell'altra...
Alfoele EDIT poi già che c'erano ci hanno messo anche WSL, così non ci facciamo mancare niente 😂
WSL è uno strumento pensato non per l'amministrazione, ma per gli sviluppatori. L'obiettovo era quello di permettere a quegli sviluppatori che utilizzano strumenti Linux di poterlo fare direttamente da Windows.
In qualunque ambito (in alcuni è più evidente che in altri) di solito vi è una distinzione fra il concetto di base e la sua implementazione e non vanno confusi.
Ad esempio i computer moderni sono delle implementazioni di quella che si chiama macchina di Von Neuman, una macchina descritta teoricamente da John von Neumann negli anni '40.
I PC IBM compatibili sono solo una delle possibili implementazioni della macchina di Von Neumann
Oppure il modello di automobile è costituito (principalmente) da un telaio, un sistema di propulsione, un sistema di arresto, un sistema di trasmissione. Ora possiamo avere un telaio a scossa portante, il sistema di propulsione può essere un motore endotermico, la trasmissione può essere meccanica ed a 6 marce ed il sistema frenante può essere un sistema di freni a tamburo.
Ma questa è solo una implementazione del modello di automobile, ma potremmo avere un telaio monoscocca, 4 motori elettrici montati sulle 4 ruote ed un sistema frenante con 4 freni a disco, questa sarebbe un'altra implementazione dello stesso concetto di automobile.
Addirittura ognuno di questi sistemi può avere diverse implementazioni che li rendono l'uno diverso dall'altro.
Questo però non rende una Tesla una copia di una Ferrari (ma neanche una Mercedes una copia di una Ferrari).
Ma addirittura con questa idea, paradossalmente anche una centrale nucleare sarebbe una copia di una centrale a carbone, tutte e due condivido esattamente la stessa filosofia: per tutte e due lo scopo è quello di scaldare acqua per ottenere vapore da utilizzare per far girare delle turbine collegate ad un alternatore per produrre energia elettrica.