Tja, solange bis ich probiere sie zu löschen. Und ganz interessant wird es wenn es auf ein anderes Medium oder zumindest eine andere Partition kopieren oder gar verschieben will. Da sich dahinter eben doch nur ein fingiertes Virtuelles Objekt befindet, gibt es grenzen bei denen das Paradigma nicht mehr funktioniert.
Log dich mit root Rechten ein. "hda" ist bei mir das CD-Rom Laufwerk.
mv /dev/hda /
Damit ist "hda" unter / gewesen.
eject /hda
Hat immer noch mein CD-Rom Laufwerk geöffnet
rm /hda
CD-Rom Laufwerk ist weg.
Was meinst du also genau?
dd kann nur mit Dateien umgehen
dd if=/dev/null of=/dev/hde
Macht seine Sache ebenso, und überschreibt hde komplett mit Nullen, obwohl es eine Festplatte ist.
Tja, solange bis ich probiere sie zu löschen. Und ganz interessant wird es wenn es auf ein anderes Medium oder zumindest eine andere Partition kopieren oder gar verschieben will. Da sich dahinter eben doch nur ein fingiertes Virtuelles Objekt befindet, gibt es grenzen bei denen das Paradigma nicht mehr funktioniert.
/home ist bei mir eine andere Partition als /
mv /dev/hdc /home
Ging bei mir!
cp /dev/hdg /home/sidburn/blub
Fängt an die Datei nach /home/sidburn/blub zu Kopieren.
Beziehungsweise den Inhalt der Festplatte der dahinter steckt.
Sorry, aber das halt ich für kompletten nonsens. Eine VM liest genauso ihren Code ein wie ein Quellcode-Interpreter. Beides sind Dateien mit Struktorierten Anweisungen in einer Spezifischen Sprache. Quellcode ist lediglich fuer den Menschen lesbarer, waehrend Bytecode ganz klar auf eine spezifische Maschine optimiert ist. Der ganze Technische Vorgang dahinter, hat damit rein gar nichts zu tun. Allgemein betrachtet ist eine VM auch nicht mehr als ein Interpreter fuer Bytecode.
Ich glaube das mit den Ebenen wirst du nie verstehen.
Deine Aussage ist ungefähr das selbe als wenn du sagst das IP und HTTP identisch ist, weil bei beiden am ende BITs heraus kommen.
use strict ist eine option, kein zwang.
und?
Ich jede Sprache mehr oder weniger aufwendig in ihren möglichkeiten verschaerfen, aber ich kann in der regel keine Sprache in ihren Kontrollmechanismen lockern ohne den Compiler/Interpreter umzuschreiben. Übrigens ist use strict die ausnahme von der Regel.
Ist "use strict" jetzt die Ausnahme weil es deine Aussage wiederlegen würde?
Also Perl ist deswegen eine Skriptsprache weil es keine Kontrollmöglichkeiten hat. Du selber sagst aber auch gleich das du keinen Compiler/Interpreter kennst wo du eine Sprache ändern kannst. Sprich du hast in keiner Sprache Kontrollmöglichkeiten, also ist auch C/C++ z.B. eine Skriptsprache?
"strict" selber ist ein Pragma das die Behandlung des Codes verändert. Was ist mit den anderen 22 Pragmas die auf einer gewissen Weise die bearbeitung deines Codes verändern? Auch alle ungültig?
"attributes", "autouse", "base", blib", "bytes", "charnames", "constant", "diagnostics", "fields", "filetest", "integer", "less", "lib", "locale", "open", "overload", "re", "sigtrap", "strict", "subs", "vars", "warnings"
Anders rum. In der Performance bringt Typisierung nach diversen Studien wohl minimal bis gar nichts (wobei das sicherlich auch von der Sprache und Umgebung abhaengt). Dafuer bringt es dem Entwickler eine ganze menge weil es saubere Schnittstellen erlaubt. Ich kann mit wenig aufwand und Code, sehr fein granulierte Strukturen definieren. In Sprachen ohne Typen oder ohne Zwangstypen ist sowas ein mittler bis grosser aufwand.
Ich weiß zwar nicht wie du "saubere" Schnitstellen definierst und was "dreckige" sind, aber ich lasse das mal so stehen. Die High-Level Sprachen machen eine bearbeitung leichter, das war es aber auch. Für das "leichter" erkaufst du dir aber Performance. Da immer auf den Typ geprüft werden muss, es muss immer ein Typecast gemacht werden, je nachdem welchen Typ du brauchst etc. Und das kostet sehr wohl performance, auch in C/C++. Wenn du direkt sagst das du nur Integer hast können verschiedene Optimierungen für Integer greifen. Und genauso wird es auch in Perl6 laufen. Eine variable als Integer deklariert, damit wird deine Rechenoperation schneller sein, als wenn du diese als String deklarierst, weil dann ständig ein Typecast gemacht werden muss.
Wenn ich ein Array mit 100 Elementen mit je 5 Bytes erzeuge, dann kann mein Programm direkt 500Bytes am Stück erzeugen, und kann direkt drauf zugreifen. Ein Normales Perl Array wird im Speicher durch ein Array dargestellt das die Speicheradressen von Strukturen enthält. Es muss also dieses auslesen, dann zur Struktur springen, und ggf- noch ein Typecast machen. Das ist definitiv langsamer! Und eine direkte Typisierung kann dir immense Vorteile bringen.
C/C++ sind damit per definition Skriptsprachen. Den dafuer existieren Interpreter.
Wenn ich C/C++ im Verbund mit diesem "Interpreter" benutze dann ja. Was ist daran verkehrt? C/C++ an sich ist nur eine Sprache. Es hängt davon ab was ich damit mache.