2009-07-05 10 views
1

Ich habe als geschlossen „Not Programmierung related“ (zB https://stackoverflow.com/questions/397854/what-process-accesses-my-hdd)Windows API vs. UNIX Shell (equiv?) - Oder - Wann ist eine Programmiersprache eine Sprache und kein Skript?

Ich verstehe, dass sie die mehrere alternative Website (Stackoverflow) Themen-Foren eine Reihe von Frage ist zu sehen und auch einige können auf ein Minimum Frage halte Website versuchen, argumentieren, dass dies zu subjektiv ist, na ja, ich wurde wütend für meine erste Antwort, also hier ist meine erste Frage, ich werde versuchen, es in einer pseudo-kontextuellen Basis (jepordy Stil) zu gestalten, um einige Regulierer in Schach zu halten. ..

Ist es nicht fair # die Level-Diskussion von UNIX-Systemen im selben Bereich wie das Programmieren einzubeziehen? Eine der nützlichsten UNIX-Tools, die ich je benutzt habe, strace/trus/par, basiert auf Systemaufrufinformationen und -berichten, andere Tools wie ltrace können ähnliche Dinge für libararies erledigen ...

Systemadministrator, stimme ich zu ist nicht für dieses Forum, wie "Wie mache ich qmail X?", sondern ist "Mein SMTP-Virenscanner ist nicht schnell genug, basierend auf dnotify?" (Antwort) "Hey, inotify", so leicht zu unterscheiden? Letzteres kann entweder Shell- oder Linux-Kernel-Systemaufruf sein.

Ich bin nicht viel von einem für Standards (lesen Sie eine zu viele in letzter Zeit), ich bin ein Tag auf POSIX "Kommando-Sprache", um einige konzentrieren sich auf bestimmte definative Informationen zu verschieben.

Interaktion auf Systemebene ist eine Art Programmierschnittstelle (API)/Benutzerschnittstelle (Shell) Dualität (insbesondere für UNIX).

Wenn der Kontext eines Inquisitors primär schnittstellenbasiert ist und es ein einfacher Steinbruch (oder sogar typisch) ist, eine ausschließliche Programmierung/API-Antwort zu lösen, um Mann und Maschine gleichermaßen zu helfen, warum eine Domänenänderung (Körper des Wissens oder URL-Domain;)?

+0

+1 Gute Frage, die * nicht * geschlossen werden sollte und * nicht * auf Meta gehört. Es sollte jedoch Wiki sein. – balpha

+0

Warum sollte es nicht auf meta.stackoverflow.com gehören? Ist das nicht genau die Definition einer Meta-Frage? – sth

+2

Es ist eine Meta-Programmier-Frage ("Wann ist das Programmieren") und keine Meta-SO-Frage. Obwohl die Antwort Auswirkungen auf das "Was gehört hier?" Meta-SO-Frage, das sind zweitrangig. – balpha

Antwort

2

Es tut mir leid, ich verstehe nicht die Unterscheidung, die Sie versuchen, zwischen UNIX und Windows zu zeichnen. Als jemand, der beide benutzt und programmiert, scheint die Unterscheidung, ob ein Aufruf eines Kernel-Dienstes in einer Bibliothek ist oder nicht, unwichtig. Die Unterscheidung ist - wird der Aufruf in einem Programmierkontext gemacht? Zum Beispiel gehören Fragen über den UNIX-Cat-Befehl hier nicht dazu, während Fragen über den UNIX-Systemaufruf read(), den cat auf irgendeiner Ebene verwenden muss, tun.

Oh, und es gibt keine "enge Integration" zwischen dem Kernel und der Shell.

2

Ist es nicht fair # die Leveldiskussion von UNIX-Systemen im selben Bereich wie die Programmierung einzuschließen? Eines der am nützlichsten UNIX Werkzeuge, die ich je benutzt habe, strace/trus/par, wird um Systemaufruf Informationen und Berichterstattung basiert, andere Tools wie ltrace für libararies ähnliche Dinge tun ...

Diskussion über das Debuggen Tools ist perfekt auf SO, IMO. Ich habe keine Debugger-Tools-Frage geschlossen.

Wenn also die geschlossene Frage, die Sie referenziert haben, "Wie finde ich, welche Prozesse Dateien für das Debuggen meines Programms berühren", dann stelle ich mir vor, dass es nicht geschlossen worden wäre. Aber es schien zu sein, "wie finde ich heraus, welche Prozesse Dateien berühren, um die Atmosphäre meines Schlafzimmers zu verbessern", was nicht programmierungsbezogen ist.

Sysadmin Fragen gehören woanders. Bash-Programmierung ist programmierbezogen, System-Utilities nicht. Es ist genauso wie "Wie mache ich Word-Format mein Dokument in drei Spalten" ist nicht mit der Programmierung verwandt, sondern "Wie programmiere ich ein VB-Skript, um mein Word-Dokument zu formatieren".

0

Ich denke, wenn Sie die gleiche question heute gefragt, wäre es auch geschlossen. Aber eher als "nicht programmierungsbezogen" wäre es "gehört auf ".

Wenn Ihre Frage gewesen wäre, möchte ich die Dateien mein Programm berührt, d. H. Speziell auf Entwicklungsarbeit bezogen, dann wäre es marginal.

+0

Die Sache ist, der Punkt, den ich versuche zu machen, ist sicher, ein Windows-Benutzer, der diese Frage stellt, "Hey ya dood, benutze Programm X, y, Z von system-admin-guys.downloads.com". Allerdings sind die API/System-Tools für einige, die nicht allen, sondern vielen Aufgaben in UNIX erteilt wurden, in der Regel einfache Referenzimplementationen der API. – RandomNickName42

+0

Dasselbe gilt häufig für Windows. Viele der Tools sind lediglich API-Wrapper (siehe die meisten PowerShell-Cmdlets), und viele Bibliotheksfunktionen sind ebenfalls ziemlich einfach. Das Problem ist nicht UNIX vs. Windows, sondern SysAdmin vs. Developer (wer und warum wird das Tool verwendet). Process Monitor (die Antwort auf Ihre ursprüngliche Frage, wenn es unter Windows war) kann hier und auf ServerFault eine Antwort sein. – Richard

0

-System admin, ich stimme nicht zu diesem Forum, wie „Wie ich machen qmail tun X?“, Sondern „Mein smtp Virenscanner ist nicht schnell genug, basierend auf dnotify?“ (Antwort) "Hey, inotify verwenden", so einfach zu diskretisieren? Letzteres kann entweder Shell-oder Linux-Kernel-System Aufruf sein.

Wir müssen nicht unterscheiden. Wenn jemand einen SMTP-Virenscanner schreibt, ist das eine Programmieraufgabe, und Fragen dazu, wie es geht, sind Programmierfragen. Dann ist es egal, ob es in bash, Assembly oder C++ oder Whitespace geschrieben ist.

Auf der anderen Seite, zu fragen: „Wie kann ich sehen, welche Prozesse auf Unix laufen?“ ist keine Programmierfrage. Ja, die Antwort wird sein, einen Befehl zu verwenden, der im Grunde genommen ein Wrapper um einen Systemaufruf ist, und so was? Der MS Word-Dialog "Datei speichern" ist ein Wrapper um einen Schreib-Dateisystem-Aufruf. Das macht es nicht programmierungsbezogen.

Ich sehe das Problem nicht wirklich.

Ist es nicht der Fall, dass UNIX-Systeme Fragen programmieren Fragen? Wenn nicht, wo ist die Grenze zwischen einer Programmierung/Skriptsprache und Benutzeroberfläche?

Die Grenze ist hier: "Wird die Frage in einem Programmierkontext gestellt?" Ein Endbenutzer, der fragt, wie man einen Unix-Befehl benutzt, ist keine Programmierfrage. Aber ein Programmierer, der fragt, wie man sein Programm unter Unix etwas machen kann, ist programmierbezogen.

Es spielt keine Rolle, dass der Shell-Befehl und der Systemaufruf im Grunde identisch ist. Wenn es aus einem Programmierkontext aufgerufen wird, ist es programmierungsbezogen. Sonst ist es nicht. Wir können sogar die gleiche Unterscheidung unter Windows treffen. Wenn ich frage "Wie kann ich CreateFile von meinem Python-Programm aufrufen", ist das eindeutig programmierungsbezogen. Aber "Das Programm, das ich ausgeführt habe, stürzte ab und gab mir eine Fehlermeldung, dass CreateFile fehlgeschlagen ist. Was bedeutet das?" ist nicht programmierungsbezogen.

Einer wird aus einem Programmierkontext gefragt, der andere einfach den Namen eines Systemaufrufs.

Wenn Sie im Zweifel sind, ist hier Wikipedia-Definition von „Programmierung“:

Computerprogrammierung (oft auf die Programmierung verkürzt oder Codierung) wird der Prozess des Schreibens, Prüfung, Debugging/Fehlersuche, und Aufrechterhaltung des Quellcodes Computerprogramme

das ziemlich klar, wie mir scheint. Liest/schreibst du Quellcode? Wenn nicht, ist es kaum Programmieren. Es ist genug, ein Benutzer zu sein, der ein Programm erstellt hat.