Welche Standardfunktionen fehlen in Windows, die für Programmierer erforderlich sind? [geschlossen]

13

Welche Funktionen fehlen Windows, die die Produktivität eines Programmierers verbessern können. Ich weiß, dass viele Leute einige Funktionen von Linux und OSX portieren oder auch für Windows erstellen möchten. Was fehlt dir?

Ein Beispiel wäre die Option, mehrere Arbeitsbereiche zu haben. Wenn Sie nicht die Möglichkeit haben, zwei Monitore zu verwenden, kann dies hilfreich sein.

Ygrec
quelle
Mehrere Arbeitsbereiche? Du meinst ... Unterverzeichnisse?
Shog9
10
@ Mr.CRT hast du schon mal linux benutzt?
Ygrec
7
Ich denke, mit "Arbeitsbereichen" meint er virtuelle Desktops.
Jesse Buchanan
@Ygrec: ja. Wenn Sie, wie jbinto vermutet, virtuelle Desktops meinen, dann bin ich mir nicht sicher, wie das als wesentliches Programmierwerkzeug bewertet wird. Ich finde sie sehr nützlich für Aufgaben wie die Bildbearbeitung, aber für die Programmierung ist es ausreichend, nur mehrere Konsolen gleichzeitig geöffnet zu haben - und beide Betriebssysteme unterstützen dies (wenn auch mit einem ziemlich ... traurigen Unterschied in den verfügbaren Shells).
Shog9
Sowohl gnome als auch kde bezeichnen die Funktion virtueller Desktops als Arbeitsbereiche, die mit Abstand die am weitesten verbreiteten Linux-Desktop-Umgebungen sind (Tomate / Tomate).
Quaternion

Antworten:

14

Ein Compiler und eine nützliche Shell.


Klarstellung anhand der Kommentare:

Ich war unklar, ich hätte C / C ++ - Compiler schreiben sollen. Compiler für C # oder Fortran zählen nicht, da für viele der benötigten Tools und Bibliotheken ein C- oder C ++ - Compiler erforderlich ist. Früher war es wirklich schlimm, dass man C-Erweiterungen für Python nicht mit einem anderen Compiler als Microsofts erstellen konnte, weil Python damit kompiliert wurde. Ich denke, MinGW hat das gelöst und Sie können es jetzt mit MinGW tun, aber das ist ein guter Grund warum ein Standard-C / C ++ - Compiler vor 20 Jahren aufgenommen oder kostenlos zur Verfügung gestellt werden sollte. Microsoft fängt erst in letzter Zeit an zu verstehen, wie mächtig es ist, eine Armee von Hobby-Programmierern zur Verfügung zu haben.

Ich habe keine Powershell verwendet, vielleicht ist es gut. Aber der Nutzen von Bash liegt für mich nicht in der Shell-Sprache. Die * sh Sprachfamilie sind sowieso schreckliche Biester. Ich bevorzuge sogar Batch-Dateien. ;) Es sind Dinge wie das Abrufen und Suchen des Befehlsverlaufs, die in Windows relativ einfach sind, und Pipelines und solche, von denen ich spreche (und ich sehe, dass Powershell Pipelines hat, das ist also gut).

Es gibt Dinge, die auch in Windows gut sind, aber das ist ein anderes Thema. ;)

Lennart Regebro
quelle
2
Das ist der Grund, warum Linux-Distributionen normalerweise mehrere Compiler und Interpreter bündeln, wobei im Paketmanager noch viele weitere verfügbar sind.
david4dev
1
@ Victor Hurdugaci: Sie haben da einen Punkt, aber der, der am meisten fehlt, ist natürlich ein Compiler für C / C ++.
Lennart Regebro
4
Sicher ist diese Antwort veraltet - Sie erhalten einen Compiler und eine vernünftige Shell (Powershell) in Windows 7.
FinnNk
1
@Matt: Nun, das ist nur die Bigotterie Ihrer Sprache. Es gibt viele kostenlose Compiler, die neben Microsoft-Sprachen auch für andere Sprachen zur Verfügung stehen, und ich bezweifle, dass Sie ihnen vorwerfen würden, Ihnen eine Sprache aufzuzwingen.
Robert Harvey
4
Eine nützliche Hülle für Sie. Absolut lächerlich, dass man 2010 das Eingabeaufforderungsfenster einfach nicht maximieren kann. WTF ?!
Colin Goudie
10
  • Die Möglichkeit, Programme in verschiedenen Sprachen (C, C ++, Python, Perl, Ruby ...) zu schreiben und auszuführen, ohne dass zusätzliche Software installiert werden muss.
  • Mindestens ein Texteditor mit Syntaxhervorhebung ist standardmäßig installiert.
  • Ein Paketmanager, mit dem Sie problemlos zusätzliche Bibliotheken, Versionskontrollsysteme, IDEs usw. installieren können.
  • Eine leistungsstarke Befehlszeilenschnittstelle.
  • Die Möglichkeit, die GUI für maximale Effizienz zu optimieren (Tastaturkürzel, Hot Corners usw.)
  • Hilfeseiten
  • Sie müssen den Quellcode des Betriebssystems und der Softwarepakete leicht verfügbar und lizenziert haben, damit Sie ihn wiederverwenden können.
  • Gute Leistung auf bescheidener Hardware.
david4dev
quelle
2
"Den Quellcode des Betriebssystems und der Softwarepakete leicht verfügbar zu haben und die Lizenz zu erteilen, damit Sie ihn wiederverwenden können." Was?
Ygrec
2
apt-get source package-namewann immer Sie wissen möchten, wie ein bestimmtes Softwarepaket funktioniert.
david4dev
4
Ich bin mit Ihrem ersten Punkt nicht einverstanden. Warum das Betriebssystem mit verschiedenen Editoren, Compilern und Laufzeitumgebungen aufblähen und hoffen, dass Sie alle zufriedenstellen? Es ist besser, jeden Programmierer die Dinge installieren zu lassen, die er benötigt.
Victor Hurdugaci
3
@ Victor Hurdugaci: Das wäre wahr, wenn Windows nicht schon mit scheinbar nichts aufgebläht wäre . Eine typische Linux-Installation ist um eine Größenordnung kleiner und kommt mit all diesen Dingen.
Matt Joiner
2
(1) Ich habe Ubunto gerade installiert und musste die Sprachen und das Entwicklertool separat installieren, genau wie ich es unter Windows tue. (2) Notepad ist in der Tat ein unzureichender Standardeditor. TextPad ist näher an einem Sweet Spot. (4) Windows unterstützt die Tastatur insgesamt besser als jeder Linux-Desktop, den ich verwendet habe. Ich kann den Desktop und die meisten Apps auch ohne angeschlossene Maus bedienen.
Schlamm
4

Ich könnte "erforderlich" aus dem Titel streichen, da ich mich seit fast 20 Jahren glücklich für Windows entwickelt habe. Natürlich habe ich eine ziemlich gute Werkzeugkiste mit Dienstprogrammen und Werkzeugen entwickelt. Siehe Scott Hanselmanns Liste für den Anfang. Es ist erstklassig und reicht bis ins Jahr 2003 zurück.

Übrigens enthält Windows 7 PowerShell, das bei den "anständigen Shell" -Kommentaren hilft.

Das heißt, es ist immer gut, bessere Werkzeuge zu haben. Nehmen Sie eines der Werkzeuge in Scotts Liste.

In der Realität könnte MS die Benutzeroberfläche vieler integrierter Tools wie regedit, task mgr (vgl. Process Monitor) und der Event Perf Viewer-Tools verbessern. Es wäre gut, integrierte Unterstützung für mehrere Zwischenablagen zu haben. Unter OSX möchte ich Expose ausführen und die Unterstützung für mehrere Desktops ist gut. Es wäre schön, wenn Windows das Ziehen von Text aus Textfeldern von Haus aus (oder einfacher) unterstützen würde.

XCode nervt wirklich mit IMO, also würde ich das nicht unter Windows wollen. VS ist viel besser, aber nicht integriert, so dass VS Expess möglicherweise mit einer Upgrade-Fähigkeit integriert ist. Natürlich wächst der OS-Fußabdruck damit (wie bei OSX), daher gibt es auch einen Nachteil.

Distributed Gcc ist sehr gut, daher wäre es sehr zu begrüßen, wenn ein eingebauter Rahmen für einen Compiler verwendet würde (siehe Incredibuild für eine VS-Lösung).

Es wäre schön, wenn es einfacher wäre, ein Checked Build des Betriebssystems zu erhalten und zu verwenden, um Probleme zu finden. Die Verwendung von Debug-Kabeln ist etwas extrem für die guten Informationen, die Sie aus Checked Build erhalten. VMs können dies problemlos tun - wenn ja, kommentieren Sie dies bitte mit einem Link.

jschroedl
quelle
Ja, eine einfache IDE wäre besonders schön, wenn ein mäßig guter Texteditor nicht der Anfang wäre.
FinnNk
@FinnNk, welche Anforderungen hast du an einen "mäßig OK" -Texteditor?
Etwas Unterstützung für Syntaxhervorhebung, Suchen / Ersetzen in Regex, mehrere Fenster, sichtbare Leerzeichen und Zeilennummerierung - ich habe also nicht so etwas wie Emacs im Sinn (obwohl das als Option nett wäre). Obwohl nicht wirklich ein Texteditor, verwende ich LinqPad heutzutage häufig für kleine Teile von .net-Code.
FinnNk
4

BASH, sed, grep, awk, find und ssh

DE
quelle
Ich habe die meisten davon unter Windows ausgeführt ... und kann die meisten der oben genannten Aufgaben mit Powershell ausführen.
Murph
2
ssh mit x windows support;) Bash ist mächtig, aber alles darunter ist anpassbar. Eine Shell ist nur so mächtig wie die Ressourcen, die sie manipulieren kann.
Quaternion
Seit wann braucht ein Programmierer awk und sed?
Dynamische
2
  • Kopieren / Einfügen für mehrere Objekte
  • Einfügen formatfrei (ohne Schrift- / Größenangabe)

quelle
3
+1 für formatfrei. Am Ende füge ich immer einen Textbereich auf einer Webseite oder einem Notizblock ein und schneide ihn dann aus, um Textstile zu entfernen.
Macneil
3
Windows unterstützt das Einfügen von einfachem Text, Anwendungen müssen ihn nur als Option implementieren.
GroßmeisterB
1
@GrandmasterB Dann ist es ein Wunsch, dass formatlose Zwischenablagen die Standardeinstellung sind.
pestaa
2

Die Möglichkeit, die Benutzeroberfläche auf Kenntnisse anderer Benutzer zu ändern.

Beispielsweise benötigen Sie als Entwickler / Administrator möglicherweise eine Expertenstufe für die Benutzeroberfläche.

Amir Rezaei
quelle
1

Die Unix-Dateiverarbeitungswerkzeuge (wc, sort, uniq, awk, cat, grep, find usw.), einschließlich - wie bereits erwähnt - einer guten Shell (z. B. bash).

Um unter Windows produktiv zu sein, muss ich bei der Arbeit mit Text irgendwann in die Unix-Befehlstoolbox wechseln. Glücklicherweise ist Cygwin genau für diesen Zweck eine hervorragende Ressource.

Das heißt, Sie müssen Cygwin "zähmen", um gut mit dem Windows-Dateisystem zu arbeiten. Wenn Sie einige Standardeinstellungen nicht überschreiben, können Sie Dateien mit unangenehmen Berechtigungen abrufen, die schwer zu löschen sind. Etwas zu weit über den Grundbedürfnissen und Sie sind besser dran mit einer VM oder einem Dual-Boot, aber für meine Zwecke bin ich mit Cygwin ziemlich zufrieden.

Macneil
quelle
0

Ich bin mit den anderen Beiträgen einverstanden, um hinzuzufügen:

Ich vermisse ssh mit x forwarding vs windows remote desktop. Für diejenigen, die nicht wissen, dass Sie ein Desktop-Programm über das Netzwerk ausführen können, das jedoch wie ein lokales Fenster funktioniert.

Quaternion
quelle
0

Unterstützung für längere Befehlszeilenargumente. Sie werden schnell auf Probleme stoßen, wenn Sie komplexe Java-Lösungen erstellen, die keine Microsoft Build-Systeme verwenden.

Morten
quelle
0

valgrindund gcov?

Ich benutze PowerShell beim Entwickeln unter Windows (als Hobby) und habe die GnuWin32-Tools (sed, awk, grep, etc ...) und Python installiert, um ein einfaches Skripting zu erhalten, also kein Problem.

Aber ich stoße immer dann an eine Wand, wenn ich mein Programm überprüfen möchte ... Natürlich kann ich den Debugger verwenden (ein bisschen), aber:

  • Wie erkennt man ein Speicherleck?
  • Wie erkennt man die Erinnerungsfresser?
  • wie erkennt man die hot spots?
  • Wie identifiziert man nicht verwendete / nicht getestete Teile des Codes?

Ich habe hier und da einige Tools gesehen und es gab eine gute Frage zu StackOverflow, und die Anzahl der aufgelisteten Tools ist ziemlich erschreckend ... und auch deren Einschränkungen.

Linux wurde von Entwicklern für Entwickler entwickelt, daher gibt es viel mehr entwicklerfreundliche Tools :)

Matthieu M.
quelle
0

Kopieren / Einfügen mit Verlaufsfunktion.

Zum Glück bietet ClipX eine Lösung:

ClipX

PS Ich bin nicht mit ClipX verbunden;)

Arcturus
quelle
-1

Eine anständige Shell und ein Compiler wären ein guter Anfang, wenn es um "Standard" -Funktionen geht.

NPE
quelle
csc.exe ist in .NET Framework enthalten. Sie können damit C # -Code kompilieren.
Victor Hurdugaci
@ Victor: Ist das bei Serien-Windows enthalten?
Josh K
Ja. .NET 3.0 wird mit Windows 2008 und Vista ausgeliefert, während 3.5 mit Windows 7 ausgeliefert wird.
Victor Hurdugaci
3
Ich stimme zu, wenn wir über die aktuelle Version von Windows sprechen, dann macht diese Antwort keinen Sinn - Sie bekommen sowohl einen Compiler als auch eine PowerShell.
FinnNk