|
|
|
|
Ich wechsele ja nicht nur die PCs sondern auch die Software und die Sprachen alle Nase lang, da lohnt das kaum.
|
|
|
|
|
|
|
Ich habe heute das erste mal mit CMake rumgespielt. Das is faaaancy...
|
|
|
|
|
|
|
und ich mit git subtree
erste Versuche sind erfolgsversprechend, mal sehen wie gut später das Updaten läuft
|
|
|
|
|
|
|
| Zitat von B0rG*
Ich habe heute das erste mal mit CMake rumgespielt. Das is faaaancy...
| |
Ich bin auch auf cmake umgestiegen. Oder um ehrlich zu sein, automake habe ich nie benutzt.
cmake rockt.
|
|
|
|
|
|
|
Für wie unsauber haltet ihr das Mischen von C/C++ code? Ich habe so eine Simulation und der code an sich ist relativ sequentiell und schwierig Objektifizierbar, aber das interface, also CLI parameter, config files etc., ließe sich mit C++ viel eleganter aufschreiben.
Und nochmal eine andere Frage: Wie gut kann g++ Klassen/Templates rausoptimieren, sodass der C++ code vergleichbar schnell ist wie ein stumpfes aneinanderreihen von C statements?
|
|
|
|
|
|
|
| Zitat von Oli
Für wie unsauber haltet ihr das Mischen von C/C++ code? | |
Gegenfrage: Wäre es möglich, für wie unsauber hältst du das mischen von Fortran und Java?
Du mischst zwei Programmierparadigmen, wenn du dich streng an die Sprachen hältst. Das ist in etwa wie das benutzen von GoTos: Es mag schnell und auf den ersten Blick schmerzlos zum gewünschten Ergebnis führen. Aber irgendwann frisst dich ein Velociraptor.
|
|
|
|
|
|
|
| Zitat von wuSel
| Zitat von Oli
Für wie unsauber haltet ihr das Mischen von C/C++ code? | |
Gegenfrage: Wäre es möglich, für wie unsauber hältst du das mischen von Fortran und Java?
Du mischst zwei Programmierparadigmen, wenn du dich streng an die Sprachen hältst. Das ist in etwa wie das benutzen von GoTos: Es mag schnell und auf den ersten Blick schmerzlos zum gewünschten Ergebnis führen. Aber irgendwann frisst dich ein Velociraptor.
| |
Najaaaa, ich kann eine .cpp Datei und eine .c Datei haben, beide getrennt kompilieren und die Methoden aus der einen ohne jeden Umstand in der anderen verwenden. Ich finde das schon einen Unterschied zu Fortran/Java.
/e: Zumal sich C und C++ gar nicht sooo sehr unterscheiden, je nachdem wie stark man auf die Sprachenfeatures von C++ zurück greift.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Oli am 23.07.2013 9:59]
|
|
|
|
|
|
| Zitat von Oli
Zumal sich C und C++ gar nicht sooo sehr unterscheiden, je nachdem wie stark man auf die Sprachenfeatures von C++ zurück greift.
| |
Ja, wenn ich C++ programmiere und einfach mal OOP weglasse, habe ich C... glückwunsch.
Nur weil die zwei Sprachen syntaktisch Überschneidungen haben und der Compiler das akzeptiert, macht es das nicht besser, da immernoch zwei verschiedene Welten aufeinander prallen.
Ich versteh was du meinst und würde wohl mit demselbem Gedanken spielen, aber dann musst du dich wirklich wirklich wirklich streng an die Trennung von Berechnung und Interface halten. Sonst komm ich persönlich mit dem Raptor vorbei. :>
|
|
|
|
|
|
|
Guck mal hier Scheinbar kann C++ genau so effizient viele, viele Array Zugriffe handhaben und optimiert die Unterschiede zu C sowieso raus.
Ich denke halt, der C++ Code ist sauberer. Ich portiere das Programm mal und vergleiche dann.
Seit der letzten Revision hat C++ auch gescheite random number generators und ich könnte die GSL als Dependency los werden... <random>
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Oli am 23.07.2013 10:13]
|
|
|
|
|
|
Das wollte ich auch nicht bestreiten, mir geht es eher um Lesbarkeit und das Gesicht desjenigen, der später mal dran weiter arbeiten musst, wenn die Grenze total verschwimmt und alle Nase lang Sprache und Style wechseln.
Wenn du da eine klare Trennung reinbekommst, dann vielleicht.
|
|
|
|
|
|
|
Ist C++ nicht sowieso abwärtskompatibel? also ein C++ compiler nimmt anstandslos C code?
|
|
|
|
|
|
|
Ich klinge zwar vielleicht wie ein Echo aber: Nur weil das technisch geht ist das noch lang keine gute Idee.
|
|
|
|
|
|
|
Gerade wenn man von C kommt, ist C++ C mit Klassen, Strings und std::vector. Viele Dinge, die C++ angenehm machen lernt man oft erst mit der Zeit. Ich behaupte also, dass der Übergang eh schleichend ist.
Ich würde aber unbedingt die 50 ways... Bücher von Meyers empfehlen.
|
|
|
|
|
|
|
| Zitat von Admiral Bohm
Gerade wenn man von C kommt, ist C++ C mit Klassen, Strings und std::vector. Viele Dinge, die C++ angenehm machen lernt man oft erst mit der Zeit. Ich behaupte also, dass der Übergang eh schleichend ist.
| |
Und ich behaupte eben, dass genau dieser kranke Bastard aus C und C++ im gleichen Programm kein guter Programmierstil ist.
|
|
|
|
|
|
|
Das habe ich auch nie behauptet. Leider sieht 95% des realexistierenden Codes so aus. Deswegen freue ich mich immer, wenn sich jemand nur auf C beschränkt und Vererbung am besten ganz weglässt. Aber einige Dinge (Eigen, STL-Features) sind einfach zu brauchbar, um sie links liegen zu lassen.
|
|
|
|
|
|
|
Gelegenheit macht eben nicht nur Diebe, sondern auch schlechten Programmierstil.
|
|
|
|
|
|
|
| Zitat von Oli
Guck mal hier Scheinbar kann C++ genau so effizient viele, viele Array Zugriffe handhaben und optimiert die Unterschiede zu C sowieso raus.
Ich denke halt, der C++ Code ist sauberer. Ich portiere das Programm mal und vergleiche dann.
Seit der letzten Revision hat C++ auch gescheite random number generators und ich könnte die GSL als Dependency los werden... <random>
| |
Erwähnenswert sind auch die smart pointer unique_ptr, shared_ptr. Das macht irgendwie Spaß damit zu programmieren
|
|
|
|
|
|
|
Benutzt eigentlich das ganze Internet boost? Nervig.
|
|
|
|
|
|
|
| Zitat von wuSel
| Zitat von Admiral Bohm
Gerade wenn man von C kommt, ist C++ C mit Klassen, Strings und std::vector. Viele Dinge, die C++ angenehm machen lernt man oft erst mit der Zeit. Ich behaupte also, dass der Übergang eh schleichend ist.
| |
Und ich behaupte eben, dass genau dieser kranke Bastard aus C und C++ im gleichen Programm kein guter Programmierstil ist.
| |
Ich verstehe irgendwie das Problem nicht, wenn C doch eine untermenge von C++ ist dann ist es technisch gesehen doch gar kein Mix, sondern reines C++... vllt kannst du das genauer erläutern?
|
|
|
|
|
|
|
Imperatives Programmieren != objektorientiertes Programmieren
Die Syntax mag als Untermenge technisch funktionieren, der Programmierstil sollte aber ein komplett anderer sein.
E: Wie gesagt, wenn er eine klare Trennung findet und der C-Teil richtiges C ist und der C++ klar davon abgetrennt nach OOP programmiert wurde und das am Ende zusammen eben ein Programm ergibt ist das kein Problem. Unchic wird es wenn die Grenzen verschwimmen. Aber dann habe ich auch wirklich zwei verschiedene Programmiersprachen in meinem Projekt und zwei verschiedene Herangehensweisen an die jeweilige Programmierung. Das muss mir dann klar sein.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von wuSel am 23.07.2013 13:02]
|
|
|
|
|
|
C ist keine Untermenge von C++.
Es gibt einen Standard der C beschreibt und einen Standard der C++ beschreibt. Und es gibt "zufällig" eine syntaktische und semantische Schnittmenge die groß genug ist, das ein C++ Compiler auch C frisst was auch daran liegt, das das halt historisch gewachsen ist.
Zu argumentieren das man daher C und C++ mischen darf ist ziemlich unsinnig. Nur weil der folgende Code semantisch und syntaktisch Javascript und Python Code ist, heißt nicht, das ich die Sprachen mischen sollte:
|
Code: |
bears = "are owesome";
console.log("Bears" + bears);
|
|
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Achsel-des-Bösen am 23.07.2013 13:01]
|
|
|
|
|
|
ok, das macht Sinn, danke an beide!
|
|
|
|
|
|
|
| Zitat von wuSel
Gelegenheit macht eben nicht nur Diebe, sondern auch schlechten Programmierstil.
| |
Aber gerade beim Programmieren würde ich sagen, dass guter Stil schon ein sehr hoher Anspruch ist. Gerade ein Anfänger wird vielleicht schon einzelne Dinge über guten Stil lernen können - aber wann welcher Teil seines Programms auf C oder C++ zurückgreift, dürfte für (mich) einen Anfänger schon höheres Voodoo sein. Ich kenne gerade mal den grundsätzlichen Unterschied.
Ich glaube einfach, dass das im großen und ganzen das Ideal ist, aber aus pragmatischen Gründen immer mehr oder weniger in den Hintergrund gestellt werden muss. Von dem, was ich lese, ist es bei Oli allerdings durchaus mehr auf dem Niveau, selbst entscheiden zu können, was guter Stil ist.
I got laid. Woo, high five.
|
|
|
|
|
|
SOAP
|
Ich hab nen Soap-Service in C# geerbt, den ich jetzt weiter pflegen soll. Wenn ich den per PHP beauskunfte und eine Exception abfange stehen die Errors in $e->detail->ServiceFault->Errors->ServiceFaultEntry->Message;
Ist das normal die so tief zu schachteln oder was hat der Ersteller des Services da gemacht?
Wenn ich ganz normal ein throw im service einbaue krieg ich das auf PHP-Seite ganz easy mit $e->getMessage()
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Gore am 23.07.2013 13:55]
|
|
|
|
|
|
Ich versuch mich gerade an einer Forensic Challenge wo ich unter anderem dieses Bild gefunden habe:
Nur steh ich jetzt an :/ hab mal versucht die Helligkeiten zu ändern worauf einige markante Pixel stehen blieben. Hab aber keinen weiteren Ansatz (dachte an Offset der Pixel zum Rand oder zum nächsten zählen = Ascii Value)
vielleicht hat ja hier wer eine Idee
|
|
|
|
|
|
|
Die Haelfte der obersten Zeile sieht aus als ob sie irgendwas codiert haette.
|
|
|
|
|
|
|
In aller Regel ist bei solchen Bildern nicht irgendwo Code im Rauschen versteckt, die Bilder sind vielmehr der komplette Code. Die seltsame oberste Zeile könnte Teil eines Dateiheaders sein, wodurch die lange Wiederholung entsteht. Versuch also mal, nicht an einzelnen Pixeln rumzudoktorn sondern das gesamte Bild auf s/w => 0/1 oder eben 1/0 abzubilden und schau dann, ob sich aus dem Binärquark einer Variante zufällig ein valides Dateiformat ergibt.
|
|
|
|
|
|
|
das ist aber auch geil fies
dort sind diverse graustufen mit verbaut, die allerdings alle aus 3x dem selben hexcode bestehen
|
|
|
|
|
|
|
| Zitat von Ballardbird_Lee
| Zitat von wuSel
| Zitat von Admiral Bohm
Gerade wenn man von C kommt, ist C++ C mit Klassen, Strings und std::vector. Viele Dinge, die C++ angenehm machen lernt man oft erst mit der Zeit. Ich behaupte also, dass der Übergang eh schleichend ist.
| |
Und ich behaupte eben, dass genau dieser kranke Bastard aus C und C++ im gleichen Programm kein guter Programmierstil ist.
| |
Ich verstehe irgendwie das Problem nicht, wenn C doch eine untermenge von C++ ist dann ist es technisch gesehen doch gar kein Mix, sondern reines C++... vllt kannst du das genauer erläutern?
| |
C ist keine Untermenge von C++.
-In C ist void* konvertierbar zu jedem Pointertyp, in C++ nicht
-"int class" ist gültiges C, aber kein C++
-enum (kann) anders funktionieren
-Die C++-Includes für die C-stdlib sind teilweise anders
-Implizite Funktionsdeklarationen gehen nicht in C++
-Funktionsdeklarationen/definitionen werden anders interpretiert.
C: void foo() => kann mit allem möglichen aufgerufen werden
C++: void foo() => kann nur ohne parameter aufgerufen werden
-Es gibt noch sehr viel mehr unterschiede.
Letzteres kann man hier schön sehen:
|
Code: |
% cat t.c
#include <stdio.h>
void foo() {}
main() {
foo(42, "bar");
foo();
}
% g++ t.c
t.c: In function ‘int main()’:
t.c:6:14: error: too many arguments to function ‘void foo()’
foo(42, "bar");
^
t.c:3:6: note: declared here
void foo() {}
^
zsh: exit 1 g++ t.c
% gcc t.c
% |
|
|
|
|
|
|
|
|
| Zitat von jonny
das ist aber auch geil fies
dort sind diverse graustufen mit verbaut, die allerdings alle aus 3x dem selben hexcode bestehen
| |
könntest du das vielleicht näher erläutern?
Mich verwirrt das. Hab mir in der ersten Zeile die Graustufen hexcodes angesehen - sind viele verschiedene und paar gleiche.
hab mit Tontrennung auf 2 Stufen ein SW Bild draus gemacht aber keine "normale" Dateiendung haut hin.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von b4ckspin am 23.07.2013 17:01]
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XIII ( Completely Automated Public User Test To tell PIMP ) |