[PL] Plusy i minusy Powershella


Parę wpisów niżej przekazałem wam efekt swojej prawie 2 godzinnej pracy poznawczej nad Powershellem. W zasadzie i mój komentarz w wpisie i komentarze czytelników pokazują sedno sprawy. Przedyskutowałem ponownie sprawę Powershella i muszę przyznać, że wciaż widzę oczywiście pewne minusy, ale i plusy środowiska.

Najpierw minusy. Fakt, jeżeli chodzi o doświadczenia z pracą w terminalu trudno porównywać różnorodność środowisk Unixowych i Windowsa. Składnie mogą się różnić, ale nic nie dorówna niezliczonym ilościom gotowych małych commandline'owych poleceń.
Prostych programików jak wspomniane 'du'. Tutaj skrypt wrzaska w sh pokazuje gdzie jest potencjalny problem. Nawet Tomek przyznał się, że używa portu tego polecenia pod Windows. To pokazuje ustandaryzowane przyzwyczajenia adminów w terminalu tekstowym. Brak wielu tego typu poleceń to ewidentna słabość Powershella.

Słabość ta jednak pokazuje też trochę odmienne podejście i lekcje odrobione poprzez różne języki skryptowe w środowiskach, których terminal tekstowy od dawna jest mocną domeną. Powershell raczej cały czas składniowo i możliwościami widze blisko Perla, choć mam nadzieję, że nikt o Powershellu kiedyś nie powie "co programista to definicja składni języka" :>

Brak tych poleceń i uniwersalny fundament platformy skryptowej z abstrakcyjną definicją napędu, czy to jest fizyczny dysk, czy rejestr Windows, czy zmienne środowiskowe, czy też własna rozszerzona definicja powodują, że Powershell nie może z założenia (moim zdaniem), mieć tych wszystkich poleceń wbudowanych i od razu bez problemu łapiących odpowiedni kontekst.

Prosty przykład 'dir' czy 'ls' to tak naprawdę alias od cmdletu, który realizuje analogiczne abstrakcyjne polecenie we wszystkich kontekstach różnych napędów. Akurat na dysku działa tak, jak jesteśmy przyzwyczajeni od więcej niż jednej dekady. To już jednak inna para kaloszy.
Przykład 'du' czyli disk usage już trudniej mi sobie wyobrazić aby tak łatwo działało kontekstowo. Na dysku super, w rejestrze - od biedy jestem w stanie sobie wyobrazić badanie wielkości po typach elementów w gałęziach badanego drzewa rejestru.
Na co by mi była taka informacja - średnio jestem w stanie sobie wyobrazić. Uruchomienie polecenia du w napędzie env: to już dla mnie zupełny kosmos :>

Może z takich powodów nie ma takiego polecenia, w sumie bardzo niedoskonały prototyp od biedy w poprzednim wpisie o Powershellu sam napisałem i chyba tutaj jest ukryta cała kwinstesencja. Skrypty Powershell'a mają swoją ukrytą potęgę i jest to swoista nowość w środowisku Windows. Kontra w postaci przyzwyczajeń adminów i poweruserów znających polecenia z terminala unixowego jest do wyprostowania w postaci ustandaryzowanej biblioteki cmdletów, aliasów, skryptów realizujących z jednej strony stare przyzwyczajenia na napędzie dyskowym, z drugiej strony mogące rozszerzać standardową funkcjonalność znanych poleceń o kontekst Powershella. To przecież też nie powinno być tak abstrakcyjne. W końcu idea, aby urządzenia, zmienne środowiskowe i inne elementy systemu odzwierciedlić w wirtualnym systemie plikowym to też żadna nowość w informatyce.

Taki ruch moim zdaniem powinien wyjść jednak od społeczności i proszę: chwila poszukiwań i mam projekt na Codeplex z rozszerzeniami do Powershella. Jeśli brakuje wam poleceń to może warto podpiąć się do projektu i poinspirować autorów albo aktywnie partycypować.

Plus silny to właśnie ta abstrakcja. Co brakuje to oczywiście zawsze można dopisać. Dla twórców aplikacji jest w końcu solidna platforma aby administracyjne elementy systemów wypuszczać do linii poleceń, która w końcu reprezentuje sobą solidną wartość. A potem już integracja z Powergadgets i można sobie z commandline'a stworzyć dynamicznie wykres ilości faktur przerabianych przez użytkownika. Admin w firmie z wdrożonym ERP dostaje narzędzie, aby się przypodobać dyrektorom handlowym i/lub finansowym lub biednej, powolnej fakturzystce zaciemniając jej obraz dodając w prostym skrypcie $invoices+=10 :>

To oczywiście słodki żart, który można odebrać jako mój optymizm wobec Powershella.
Lada moment wyjdzie kolejna wersja z możliwością zdalnego wykonywania poleceń, co przyznam, chętnie bym sam potestował 🙂


Skip to main content