Bei Powershell bleiben oder was anderes lernen?

pizza4ever

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.707
Hallo zusammen,

ich bin ein bekennender Powershell Liebhaber. Ich finde Powershell großartig und habe damit tolle Sachen gebaut. Auch bei größeren Projekte hatte ich nie das Gefühl, dass der Code irgendwann unwartbar wurde weil man Funktionen, Module und Klassen hatte und wenn es Performanceprobleme gab, konnte man oft auf c# ausweichen oder - da meine Probleme es zugelassen haben - einfach mit einer längeren Laufzeit leben. Und die Verfügbarkeit vom .net Framework ist einfach einfach super, weil man damit für seeehr viele Themen was fertiges hat. Auf der Arbeit war es immer so, dass man ein Projekt für ein Problem anfangen konnte (schnelles Prototyping) und dann das ganze bei Bedarf ausbauen konnte.

Es gibt aber auch Dinge die mich stören an Powershell

1.) Gefühlt wenig Weiterentwicklung
2.) Es gibt immer mal wieder Probleme, wo man beim Blick über über den Tellerrand sieht, dass z.B. Python am Ende schlicth bessere Module vorhanden sind. z.B. die Excel Integration ist OK bei Powershell, aber es gibt genau ein Modul und das ist teilweise unsäglich langsam. Python ist sogar um etliche Male schneller wenn man die Daten erst in ein JSON rausschreibt und dann wieder einliest. Es gibt zwar externe Libarys z.B. IronXl aber die sind dann ggf. kostenpflichtig. Weiteres Beispiel ist das SQLITE Modul, welches seit 5 Jahren kein Update erfahren hat. Man kann zwar über System Data SQLITE auch direkt das ganze anbinden, aber dann erzeugt man schon viel (teilweise unschönen) code in Powershell + Dokus findet man dann auch fast nur noch wenn man nach c# googlet (und den code dann portiert).
3.) Kleine Community v.a. bei komplexeren Themen. Ich höre immer wieder von Leuten die damit kleinere Aufgaben automatisieren, aber wenig davon dass damit wirklich größere Themen betrieben werden.

Sachen die mich reizen würden wäre Python oder Golang, was ja inzwischen auch riesig geworden sein soll. Ich habe vor Jahren mal mit Python rumexperimentiert, bin aber nie wirklich warm damit geworden.

Was sind eure Meinungen?
 
was baust du denn darin?
geht es dir um Entwicklung, Automatisierung oder Bedienung deines Computers?

Im Vergleich mit anderen shells, finde ich Powershell unnötig kompliziert, inkonsistent und altbacken.

Mein Stack zur täglichen Arbeit ist gerade ZSH mit ein paar Plugins in Ghostty. Sehr angenehm und es nimmt einem sehr viel tippen ab.

Zur Entwicklung / Automatisierung von Aufgaben:
Was auch immer gerade die akut sinnvolle Sprache ist.. Aktuell viel Python, C++, Typescript und Ocaml.

pizza4ever schrieb:
Was sind eure Meinungen?
the right tool for the job
 
Zuletzt bearbeitet:
madmax2010 schrieb:
was baust du denn darin?
geht es dir um Entwicklung, Automatisierung oder Bedienung deines Computers?
Das ist die richtige Frage, jedes Ding für einen Gewissen Zweck. Du mußt erst mal wissen oder definieren, was Du überhaupt genau machen willst.
madmax2010 schrieb:
Im Vergleich mit anderen shells, finde ich Powershell unnötig kompliziert, inkonsistent und altbacken.
Geht mir auch so.

Powershell ist an sich keine richtige Programmiersprache, sondern eine Verwaltungs bzw. Batchsprache, um das OS verwalten zu können.
 
killall chrome
vs
Get-Process chrome | ForEach-Object { $_.Kill() }


grep -r "hello" .
vs
Select-String -Path .\* -Pattern "hello" -Recurse


sed -i 's/foo/bar/g' *.txt
vs
Get-ChildItem *.txt | ForEach-Object {
(Get-Content $[I]) -replace 'foo', 'bar' | Set-Content $[/I]
}


du -sh .
vs
"{0:N2} MB" -f ((Get-ChildItem -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB)


wc -l file.txt
vs
(Get-Content file.txt).Count


Ich habe respekt vor jedem, der mit Powershell arbeitet.
 
  • Gefällt mir
Reaktionen: floq0r und nutrix
nutrix schrieb:
Powershell ist an sich keine richtige Programmiersprache, sondern eine Verwaltungs bzw. Batchsprache, um das OS verwalten zu können.
Die Powershell ist ja auch keine Programmiersprache, sondern ein Terminal, in dem Du mit jeder von Windows nativ unterstützten Sprache direkt zeilenweise oder als Script Code schreiben kannst und kannst direkt die entsprechenden Dialoge auch verwenden. Die steht einer Bash in nix nach!

Powershell gabs ursprünglich sogar mal als eine eigene OS Implementierung namens Singuralitiy
 
madmax2010 schrieb:
Ich habe respekt vor jedem, der mit Powershell arbeitet.
Ist das nicht ein bisschen Äpfel und Birnen?
Du vergleichst ja Programme mit einer Scriptsprache statt zwei Scriptsprachen



JennyCB schrieb:
Sei nicht so Windows fixiert.
PS ist auch für Linux verfügbar fwiw.
Ergänzung ()

areiland schrieb:
Die Powershell ist ja auch keine Programmiersprache,
Doch ist es, denn Powershell bezeichnet mehrere Dinge, sh. https://learn.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.5
 
  • Gefällt mir
Reaktionen: piepenkorn
KitKat::new() schrieb:
Du vergleichst ja Programme mit einer Scriptsprache statt zwei Scriptsprachen
Einerseits hast du irgendwie recht, anderseits ist es 2025 und beides sind keine tollen Skriptsprachen. Man (in meinem Umfeld), nutzt sie als Werkzeug um seinen PC zu bedienen.
areiland schrieb:
Powershell gabs ursprünglich sogar mal als eine eigene OS Implementierung namens Singuralitiy
Singularity war ein experimentelles, primär in C# (und 1-2 dialekten davon) geschriebenes Microkernel OS. Powershell war darunter nicht verfügbar.
Tbh habe ich das als teenager mal installiert und damit gespielt, als ich mich noch nicht an Linux getraut habe..

KitKat::new() schrieb:
TIL :D
wer macht denn so etwas..
Ergänzung ()

areiland schrieb:
Die Powershell ist ja auch keine Programmiersprache, sondern ein Terminal, i
Ein Terminal-Emulator ist das Programm, das dir ein Textfenster öffnet, in dem du mit einer Shell arbeiten kannst (bspw Windows Terminal, iTerm, ghostty).
Eine Shell ist ein Programm, das deine Texteingaben liest, interpretiert und die passenden Programme aufruft (e.g. powershell, bash, zsh).
Wobei Bash und PS halt auch wieder Sprachen sind.

Aka: manche sind nur eins davon, andere sind viele
 
Zurück
Oben