Bei Powershell bleiben oder was anderes lernen?

nutrix schrieb:
Ich meinte das eher in die Richtung Gewöhnung bgzl. Bedienung und Verwendung
Verstehe. Ja, vermutlich kann man sich auch an Bash gewöhnen, auch wenn es ohne Frage zugänglichere Sprachen gibt.
vim finde ich an sich ganz nett, da lernt man ja Bausteine, aus denen man sich dann die Befehle baut. Bin mir nicht sicher, ob ich bei dem Vergleich so ganz / komplett mitgehen will, aber ich denke das würde hier jetzt zu weit führen.
 
So danke für die vielen Antworten. Die Woche war bei mir ziemlich busy, so dass ich nicht zum Antworten kam.

Während ich die ganze Woche über mit Powershell tolle Sachen umsetzen durfte war gestern wieder das Thema, dass der Export in Excel grauenhaft war und das Powershell Modul ImportExcel https://www.powershellgallery.com/packages/ImportExcel/7.8.4 die Funktionen nicht richtig übernommen hat.

Ggf nur ein Fehler meinerseits, aber ich hab ad-hoc keine Lösung gefunden und kam wieder zum gleichen Schluss wie vor x Jahren

1.) Die Powershell Module sind überschaubar gut
2.) Die .net Librarys wie EPPlus sind kostenpflichtig
3.) Python hat in diesem Fall die besseren Module

Ganz konkret baue ich gerade eine Automatisierung von Daten-Aufbereitungen d.h. unser Unternehmen hat viele Daten aus X Jahren zusammengemischt, einen Teil nun abgetrennt und ich muss die nun die Daten trennen.

Was garnicht so einfach ist weil man Parent -> Child Daten hat, keine Konsistenten Daten und sehr viel gemischt ist.

Ich finde Powershell großartig (vll weil ich es kann), aber viel liegt auch in SQLite und manchmal frage ich mich, ob Python nicht doch das bessere Tool wäre...
 
madmax2010 schrieb:
Ich habe respekt vor jedem, der mit Powershell arbeitet.
Geht mir bei bash aber genauso, und das obwohl ich seit SunOS den 80ern Unix/Linux regelmäßig nutze. Allerdings sind Powershell und bash konzeptionell kaum vergleichbar. Bash nutzt die unzähligen Unix Kommandos als Basis und ist dadurch stark textbasiert, mit all den Vor- und Nachteilen. Powershell ist ein Scripting Layer für .NET, und manipuliert dementsprechend überwiegend Objekte. Gleichzeitig ist Powershell sehr „verbose“. Die Syntax finde ich teilweise sehr gewöhnungsbedürftig, wie etwa -eq anstatt ==
Ich mag Powershell zwar nicht besonders, aber man muss anerkennen, dass es im Vergleich zu bash das moderne und oft bessere Konzept ist.
Pummeluff schrieb:
Ich saß damals mit Powershell geschlagene 3 Wochen dran. Mit Bash hatte ich das problemlos in weniger als 1 Woche geschafft.
Heute mache ich sowas dank ChatGPT oder GitHub Copilot an einem Tag, obwohl ich beide Sprachen nicht besonders gut kann. Die Zeiten wo man damit glänzen konnte, dass man ein super Experte in einer Programmiersprache war, neigen sich dem Ende zu. Heute muss man Generalist sein, das richtige Tool für den richtigen Zweck nutzen und die Fähigkeit haben, AI Assistenten kompetent einzusetzen, dazu gehört auch, zu erkennen wenn sie Quatsch machen.
pizza4ever schrieb:
Ich finde Powershell großartig (vll weil ich es kann)
Man findet immer das was man kann, und womit man sich auskennt großartig. Das ist auch ok und sogar in der Regel gut. Man muss nur die Grenzen kennen, bzw. in der Lage sein, einen distanzierten Blick auf das eigene Tun zu haben.

In der Microsoft/Windows Welt (z.b auch Azure) ist Powershell oft das richtige Tool. Aber außerhalb eher nicht.
 
  • Gefällt mir
Reaktionen: Pummeluff und BeBur
TomH22 schrieb:
Die Syntax finde ich teilweise sehr gewöhnungsbedürftig, wie etwa -eq anstatt ==
Ja.
Bei klassischen Shellskripten ist das ja deshalb so, weil es quasi ein "Schalter" für das Programm test(1) ist. Und die werden nun mal per Konvention mit Bindestich gefolgt von einem oder mehrere Buchstaben umgesetzt.
Vermutlich hat man das einfach übernommen, möglicherweise auch, damit sich ein paar UNIX-Shellskriptler etwas heimischer fühlen. :-)

TomH22 schrieb:
Ich mag Powershell zwar nicht besonders, aber man muss anerkennen, dass es im Vergleich zu bash das moderne und oft bessere Konzept ist.
Weiß gar nicht, ob man das so vergleichen kann. Die bash ist halt darauf ausgelegt, das man so ein bisschen glue bekommt um (textbasierte)-Kommandozeilentools zusammen zu bringen. In dem Kontext funktioniert das hinreichend gut und durch die Kürze sogar besser als die Powershell.

Ein Akkuschrauber ist auch moderner als ein klassischer Schraubenzieher. Aber in bestimmten Situationen, z.B.: an schwer zugänglichen Stellen oder auch da wo es auf Gefühl ankommt, ist der Schraubenzieher dann doch besser.

Insofern finde ich jetzt "modern" nicht unbedingt ein passende Kategorie. Es sollte doch darauf ankommen, ob ein Werkzeug für die jeweilige Aufgabe geeignet ist oder nicht oder es bessere Alternativen gibt.
 
pizza4ever schrieb:
Ich finde Powershell großartig (vll weil ich es kann), aber viel liegt auch in SQLite und manchmal frage ich mich, ob Python nicht doch das bessere Tool wäre...
Du kennst also schon die (kostenlose) Lib in Python, die Dir Deine Excels (warum auch immer mit Formeln, sollen die in Python dann weiter ausgewertet werden?) korrekt und vollständig (in der von euch genutzten Spracheinstellung der Excel-Files) importiert?

CSVs zu importieren in PowerShell ist um welten einfacher wie sich für eine vollständige Progrmamiersprache erst einmal selber etwas zu basteln oder die Library zu suchen, die das hoffentlich vollständig und korrekt macht.

Ob ich in PowerShell die SQLite DLL mit sowas lade wie:
Code:
[Reflection.Assembly]::LoadFile("$PSScriptRoot\System.Data.SQLite.dll") | Out-Null
und diese danach nutze oder unter Python ein "import sqlite3" mache und dann exakt die selben SQLite Funktionen nutze, macht für mich keinen Unterschied. Bei Python muss ich mit Pech sogar das Modul vorher noch installieren, bei PowerShell reicht dafür garantiert ein Copy/Paste, was selbst auf einem Server ohne Internetverbindung funktioniert, wenn die IT nicht alles abgeklemmt hat außer der reinen Texteingabe.

Aber selbstverständlich gilt wie immer bei Projekten, die nur ein Entwicker erstellt/betreut: man nutzt das, was man entweder kennt oder für das geeignete Tool hält und in der gegebenen Zeit ausreichend gut erlernen und später auch betreuen kann.

Nachtrag:
Falls Du Dir nicht eine andere SQLite-Lib/Anbindung in Python suchen solltest wie sqlite3 (was gemäß python.org wohl der Standard dafür ist), dann viel Spaß bei der Nutzung von Datum/Zeitstempel. Die (angeblich offizielle) Lib ist unfähig mit Python datetime umzugehen. Da musst Du Dir entweder einen eigenen Konverter schreiben oder das ganze altmodisch in einen von SQLite interpretierbaren Textstring umwandeln. Unnötig zu erwähnen, dass die oben genannte SQLite-DLL in PowerShell selbstverständlich einen .NET DataTime Datentyp als SQL-Parameter (korrekt) akzeptiert.

Aber u.U. nutzen Deine SQLIte-Danebanken ja alle Sternenzeit/Unix-Zeitstempel (wie es Firefox macht). Dann musst Du halt diese in einen nutzbaren Zeitstempel umwandeln.
 
Zuletzt bearbeitet:
Erst mal Respekt, dass du so gut Powershell kannst und kennst. Und als erstes das Tool verwenden, das man gut kennt, ist oft eine gute Idee. Aber es kann an seine Grenzen stoßen.

Du hast beschrieben, dass es einige Bibliotheken für Powershell gibt, die nicht so gut sind wie du gerne hättest. Was ich an deiner Stelle machen würde, wäre eine Recherche über Bibliotheken in anderen Programmiersprachen, und wie gut diese funktionieren. Dann würde ich, eventuell mit Hilfe von ChatGPT oder ähnlichem, ein funktionierendes aber langsames Powershellprogramm ist in ein Programm der "neuen" Sprache übersetzen und testen. Und auf dem Wege Erfahrung sammeln und schauen, ob mir das taugt.

Die "echten", eigenen Probleme findet man meist erst im Einsatz. Und wenn du schon gut in einer Programmiersprache bist, kannst du auch eine weitere lernen und das richtige Tool für den richtigen Job verwenden. Das sich auch über die Bibliotheken definieren kann.
 
andy_m4 schrieb:
... aber emacs ist besser!
Neh, never. 🙃
andy_m4 schrieb:
Jetzt ist die Language-Battle nicht mehr so alleine, sondern hat den Editor-War als Gesellschaft. :-)
😄
Heute nimmt doch eh jeder eine IDE oder sowas wie Notepad++ oder VS Code. Ich hatte letztens erst wieder eine Diskussion, ob VS Code eine IDE oder ein Editor ist. Für mich ist es ein Editor, welcher mit Extensions als IDE-ähnlich aufgepimpt werden kann.
schasi schrieb:
Die "echten", eigenen Probleme findet man meist erst im Einsatz.
Richtig. Im Spiel- bzw. Trainingsmodus denkt man sich eh nicht so kreativ das aus, was dann so tatsächlich auf einen zukommt. Deshalb mache ich es nun seit vielen Jahren umgekehrt, erst damit arbeiten und anwenden, und erst dann mache ich dazu weiter einen Kurz, Fortbildung, Training etc. Dann kann ich auch mit praxisrelevanten Fragen den Trainer löchern.
 
Zurück
Oben