Was würdet Ihr an C++ ändern, wenn Ihr keine Rücksicht auf Kompatibilität, Geld, Zeit, Arbeit, etc. nehmen müssten?
-
Green_Ghost schrieb:
nur schwachsinn
lass es einfach
-
Lassen wir das, wuerde ich auch sagen.
Und wenn jemand mit "Oreilly Security" einer Meinung ist,
koennen wir nochmals anfangenFangen wir neu an.
Ghost
-
Ich denke ihr solltet euch mehr nach dem Topic-Titel orientieren,
aber vorher noch eine Meinung zu Linux...Ich benutze meistens Windows, aber nur, weil dort DirectX (zum Programmieren und Zocken) läuft!
Ansonsten würde ich mich gerne weiter in Linux (oder ein anderes [echtes] Unix) einarbeiten.
Meiner Ansicht nach ist Windows nur so populär, weil es viel Menschen gibt, die den Computer ausschließlich fürs Surfen, Office und Spielen verwenden.
Ob ihr (als echte freaks...) es glaubt oder nicht, ich kenne sogar viel zu viele Leute, die aus (!)Gewohnheit nicht auf WIndows XP (von 98) umsteigen,wie soll man denen jemals klarmachen, dass sie auch Linux oder gar ein "Unix mir rudimentärer Oberfläche" benutzen können?
-
Green_Ghost schrieb:
Aber ich verstehe, das mich keiner von den Windows User verstehn kann.
Und ab und zu Etwas Linux, ist auch WindowsUnd wo ist der große Unterschied zwischen Windows und Linux?
Der einzige unterschied den ich feststellen kann ist:- Linux hat eine schönere Installation
- Hardware funktioniert unter Windows immer, unter Linux muss ich mich wahrscheinlich erst damit spielen
- Software Installationen/Updaten sind unter Linux wesentlich besser
- kommerzielle Software ist unter Windows kein Problem, unter Linux schon
und das war es.
Alle anderen Unterschiede liegen unter der Haube und meine Freundin erkennt Linux nur daran, dass Links unten ein "K" statt einem "Start" ist. Und wenn ich ihr ein BSD mit KDE vorsetzen würde, würde sie es für Linux halten, wegen dem "K".Werde bitte Erwachsen. Linux und Windows sind nur unter der Haube unterschiedlich und für den Endanwender bleibt es sich fast gleich. Die meisten Leute würden den Unterschied nicht merken. Ehrlich nicht. Wo ich arbeite wird gerade von MS Office auf OpenOffice umgestellt. Writer <-> Word wird erkannt, weil die Symbolleisten anders aussehen. Aber dass Excel durch Calc ersetzt wurde, haben die meisten nicht mitbekommen (obwohl sie täglich damit arbeiten (!)).
Du siehst also: ob Windows oder Linux ist absolut egal.
Also hör bitte mit diesen dummen flames auf. Wenn du Windows nicht magst: ok, behalte es für dich und sage dass nur, wenn man dich fragt und drücke es nicht jeden aufs Auge. Wie würde es denn dir gefallen wenn ich dauernd auf Linux losgehen würde? Flamewars sind sinnlos. Und keins der beiden OS ist dem anderen wirklich überlegen - weil beide Vorteile und Nachteile haben.
In dem Sinne: every OS sucks
-
Wenn ich KDE will nehme ich Linux.
Ich rede hier von der NO-X umgebung (SHELL)
X-Server ist ne spielerei, und je nach dem nur gebrauch bar.
Zum weiteren rede ich von Windows<=>UNIX nicht Windows<=>Linux//EDIT//
Ist eine Ergenzung.
Hardware probs unter Linux? Mmmm, kenne den Linux Kernel nicht
gerade gut. Bei mir ging immer als. Wobei ich halt dem OBSD kernel gebrauche.
-
Wo sind die Mods??????
-
Es gibt da jetzt für HL2 so ne neue...
-
Green_Ghost schrieb:
Wenn ich KDE will nehme ich Linux.
Ich rede hier von der NO-X umgebung (SHELL)
X-Server ist ne spielerei, und je nach dem nur gebrauch bar.
Zum weiteren rede ich von Windows<=>UNIX nicht Windows<=>LinuxDu hast nichts verstanden
-
Doch doch.
Ich wollte noch meinen Post abschliesen.Klar ist, fuer Anfaenger oder den Normalverbraucher ist Windows genial.
Aber will man mal etwas mehr, reicht es nicht aus.//Edit//
Zumindest wenn man was stable will und sicheres.
Die X passt halt da nicht rein.
-
Green_Ghost schrieb:
Aber will man mal etwas mehr, reicht es nicht aus.
//Edit//
Zumindest wenn man was stable will und sicheres.
Die X passt halt da nicht rein.Ich bin sicher kein Normalverbraucher und ich finde Windows gut und mir reicht es und stabil ist es auch.
Wenn du mit X nen X-Server meinst, dann verstehe ich nur Bahnhof, wenn du etwas anderes meinst, bitte ich um Klarstellung.
-
Halt je nach verwendung.
X ist X-Server.
Beim Compilieren des X-Server werden zum teil so viel schrott
noch auf das system geworfen, das man die sicherheits risiken
nicht mehr greiffen kann.Unter dem Motto "Wer auf dem Netz Arbeitet muss Hacken koennen"
hab ich sachen gesehen, die mir die Haare zuberg stehen liesen.
Darum, nur wer solches sieht kann verstehen, wieso ICH
unter UNIX Arbeite.Darum, jeder das welches er braucht.
Ich wollte eigentlich keine solche schlammschlacht fabrizieren.
Sorry an die ich gestoert habe,
und ich hoffe das ich hier noch etwas geduldet bin.Ghost
-
- ich habe leichte Probleme mit deinen Sätzen. Vielleicht kannst Du sie vor dem abschicken ja nochmal durchlesen. Danke -
Green_Ghost schrieb:
X ist X-Server.
Beim Compilieren des X-Server werden zum teil so viel schrott noch auf das system geworfen, das man die sicherheits risiken nicht mehr greiffen kann.Kannst Du das mal näher ausführen, was die unfaßbaren Risiken von X11 so sind?
-
um mal back2topic zu kommen:
2 sachen die ich mir sehr wünsche:
schauen ob ein beliebiger typ T public von typ Foo geeerbt hat
zb so:
template<class T> void bar(const T& a:public Foo){ //benutze spezielle funktionen die genau auf diese art von typen zugeschnitten sind template<class T> class Bar{ //normales zeugs }; template<class T> class Bar<T:public Foo>{ //spezielles zeugs für Klassen die von Foo abgeleitet sind }; }
vorteil: ich kann funktionen/klassen besser auf bestimmte typen optimieren
2. punkt
überladen von funktionen/methoden auch auf wertbasiswieso das?
nun, manchmal kommt es vor, dass das verhalten einer funktion/methode von dem übergebenen objekt/der klasse abhängig ist, je nachdem welchen status dieses objekt hat, verhält sich die funktion/klasse dann anders.
Vielleicht kann man hier ja das Reinforcement-learning als Beispielanführen, wies hier vorgestellt wird.
soweit ich das verstanden hab, versucht dabei ein Agent aus dem objekt status+einem input eine aktion zu generieren. Diese aktion wird dann ausgeführt und verändert den status des objekts. beim nächsten aufruf des agents muss er sich dann der neuen begebenheit anpassen.
und da könnte man ja ansetzen, indem man für bestimmte werte dem agent ein anderes verhalten oder ein optimiertes verhalten gibt.
normal würde man das vielleicht so machen:
//agent funktion action agent(const int status, const input& input){ switch(status){ case 0: //sonderfall status 0 break; case 1: //sonderfall status 1 break; default: //normales verhalten } }
wärs nicht übersichtlicher, dass einfach so zu machen?
action agent(const int status, const input& input){ //normales verhalten } action agent(const int status where status=0, const input& input){ //sonderfall status 0 } action agent(const int status where status=1, const input& input){ //sonderfall status 1 }
klar, syntaktisch ist das nochnicht ganz ausgereift, aber der vorteil an der sache ist, dass der code einfach erweitert werden kann, wenn sich bei der status verarbeitung was ändert, man fügt einfach hinzu.
vielleicht könnte man auch sowas machen?
class Foo{ private: int status; public: void doSth()const { //mach irgendwas } void doSth() const where status=1{ //tu was anderes } void changeStatus(int); };
wie gesagt, sind nur küne vorschläge die einfach an bestimmten stellen nützlich sein können(1. punkt wohl eher als letzterer).
-
Daniel E. schrieb:
- ich habe leichte Probleme mit deinen Sätzen. Vielleicht kannst Du sie vor dem abschicken ja nochmal durchlesen. Danke -
Green_Ghost schrieb:
X ist X-Server.
Beim Compilieren des X-Server werden zum teil so viel schrott noch auf das system geworfen, das man die sicherheits risiken nicht mehr greiffen kann.Kannst Du das mal näher ausführen, was die unfaßbaren Risiken von X11 so sind?
Etwas Muede, Sorry.
So mein letzter Post zu diesem Thema.
Erstens ist die Frage, ob es auf einem Mailserver eine X geben muss.
Dann ist der X Port auch nicht ungefaehrlich.
Je nach X-Umgebenung, werden Programme installiert, deren
sicherheit du nicht immer abschaetzen kannst.
Ich hoffe dies Beantwortet deine frage.Gehe schlafen. Wie gschrieben, mein letzter Post zu diesem Thema.
Ich will mich hier ja noch blicken koennen.Ghost
-
Shade Of Mine schrieb:
Green_Ghost schrieb:
Aber ich verstehe, das mich keiner von den Windows User verstehn kann.
Und ab und zu Etwas Linux, ist auch Windows[...]
Du siehst also: ob Windows oder Linux ist absolut egal.
[...]
In dem Sinne: every OS sucks
Endlich mal jemand der das ganze unfreakisch aus der Sicht eines Normalanwenders sieht.
Es ist so absolut egal was auf der Kiste läuft Hauptsache es läuft überhaupt. Office,
surfen, mailen, programmieren - wen interessierts was drunter läuft, solange ich machen
kann was ich brauche? Es gibt wichtigers/schöners im Leben außer missionarisch für
irgendwelche Betriebssysteme zu werben.BTT, denn das ist wirklich interessant.
-
otze schrieb:
2. punkt
überladen von funktionen/methoden auch auf wertbasisDas sieht mir nicht wirklich sinnvoll aus.
Die Lösung mit dem switch ist natürlich inakzeptabel.Was aber spricht gegen ein functionMap[inputValue](); ?
Das ganze kannste genau hinter der Schnittstelle verstecken und es ist nicht wirklich aufwendig das zu machen. Ein paar Zeilen genügen ja schon. Außerdem kannste so die Methoden sogar nach Bedarf zur Laufzeit noch austauschen.Da sieht ersterer Vorschlag sinnvoller aus. Obwohl man auch das bereits jetzt relativ gut hinkriegt. Zugegeben: Der Code ist nicht ganz so lesbar.
MfG Jester
-
Ich mus Jester wiedersprechen. Das ganze ist sogar sehr sinnvoll. Allgemein findet man sowas unter dem Namen Prädikat Methoden. Das gab's schon als Erweierung zu diversen Sprachen (z.B. JPred als Java-Erweiterung, ...).
Da natürlich deutlich ausgefuchster, als der hier gebrachte Vorschlag.
Den ersten Teil findest du dort ebenfall als Teil der Prädikate.Nein, eben nicht wie in C. Die Strings sind in D objektorientiert und haben Methoden. Sie sind eben nicht nur arrays of char. Auch wenn sie so aussehen und man sie so benutzen kann.
Jeder Typ, selbst int hat in D "Methoden", (z.B. init). Dadurch ist es aber keinesfalls Objektorientiert. Objektorientierung entsteht nicht dadurch, dass es die Punkt-Syntax gibt. Guck dir z.B. mal Dylan, CLOS oder auch Nice an, damit du vielleicht erkennst, dass die Synthax nichts mit OO zu tun hat.
Intern werden sie nämlich als Reference-Typs mit einem Stringpool verwaltet. Ein char[] funktioniert ganz anders als ein int[], float[] usw ...
Falsch. COW (copy on write) gibt es überall in D.
Walter (der Erfinder von D) ist da immer was eigen. Er sieht alle Dinge immer sehr technisch und nicht so abstrakt, wie es heutzutage üblich ist. Er sagt, ein String ist nur eine Kette von Zeichen, als werden sie in D auch genau so behandelt. (Beinahe ein wörtliches Zitat, nur eben auf Englisch.)
Deswegen gibt es auch keinen Boolean-Typ (jetzt komm mir nicht mit dem alias auf bit). Er sagt, ein Bool'scher Typ ist ein Typ, der zwei Zustände annehmen kann, also passt bit hier perfekt. Soetwas, wie nur true ist auch wirklich wahr, wie man es in den heutigen Sprachen hat (Java, C#, ...) gibt es nicht.
Natürlich erkennt er, dass man mit dem sonst üblichen Verhalten den häufigen Fehler von Zuweisungen statt Vergleichen in if-Konstrukten verhindert, aber das löst er ganz anders, indem er einfach Zuweisungen im if verbietet.Ich habe nie gesagt, dass die Art, wie D mit Strings umgeht schlecht sei. Aber es gibt keine Stringklasse.
Ließ dir doch einfach mal alte Diskussionen zu dem Thema durch, wie z.b. diese.
-
Ein bischen geflame macht immer Spaß, als mach ich doch einfach mal mit:
Ich rede hier von der NO-X umgebung (SHELL)
X-Server ist ne spielerei, und je nach dem nur gebrauch bar.Was ist mit Dingen, wie Bildbearbeitung (Grafiken fürs Web, Plakatwerbung, ...), oder einfache Textbearbeitung (Zeitschriften, Bücher, ...), Musikproduktion (CDs, Radio, Filmmusik, ...), CAD/CAM (Design von Autos, ...). Das wird alles in grafischen Oberflächen gemacht, da es anders nicht sinnvoll machbar ist. Und das ist alles nur Spielerei?
Ich glaube darüber solltest du nochmal nachdenken.
-
Ich würde break in Switch-Statements abschaffen und am Ende jedes Case automatisch rausspringen
-
Jester schrieb:
Da sieht ersterer Vorschlag sinnvoller aus. Obwohl man auch das bereits jetzt relativ gut hinkriegt. Zugegeben: Der Code ist nicht ganz so lesbar.
nicht ganz richtig.
es gibt 2 techniken um die vererbung rauszukriegen:die erste basiert auf konvertierung von zeigern. Die andere versteh ich nicht
die erste Möglichkeit hat einen großen Haken:
class Foo:Bar{};
versuchst du einen Foo* nach Bar* zu konvertieren, schmeisst der compiler nen error->also unbenutzbar.
die zweite Möglichkeit schafft zwar alle Arten der Vererbung, liefert aber auch keinen Anhaltspunkt darauf, ob public vererbt wurde.