Das Prevent, welches zur statischen Codeanalyse benutzt
wird ist aber auch recht gut. Ist zwar nicht gerade guenstig,
aber in Projekten mit normalen Entwicklern durchaus
angebracht.
Ich benutze das regelmaessig in Kundenprojekten. Ist
inzwischen eine Art sportliche Herausforderung, den Code
auf Anhieb ohne Prevent Warnung zu schreiben.
Code ohne -W (-W all) Warnings zu schreiben ist schon überforderung vieler Spacken hier.
Allerdings sind Spacken natürlich gut darin, zu lernen wie sie genau falsch die Warnings wegbekommen. Vermutlich aus M$-Handbüchern oder C-Büchern von NULL=0[32 Bit] und nicht (void *)0 [64bit] definiert wird was bei 64 Bit die []-Effekte gibt.
Man muss verstehen was man macht und high-level entwickeln. auch in sucks-sprachen wie c. Aber das ist eher kunst und der wille zur qualität. aber sowas findet man halt kaum.
gelohnt wird es einem auch nicht direkt. nur indirekt über weniger bug-arbeit, weniger debuggen,... .
So gesehen sind Ausroll-Tools, Code-Generatoren usw. mir teilweise lieber. Da konfiguriert man und kriegt das ergebnis. Selber coden immer weniger bzw. nur die wenigen relevanten dinge. Persistenz, oo-mapping auf SQL macht z.b. hibernate. J2EE nimmt einem auch viel ab usw. Ein data-master wer darf was (kunde darf seinen namen ändern aber nicht seine kundennummer, er darf neue adressen eintragen usw.) view/change-system wäre noch nett. gibts aber vielleicht auch schon.
Siga9876 schrieb:
--------------------------------------------------------------------------------
> ...
> Man muss verstehen was man macht und high-level entwickeln. auch in
> sucks-sprachen wie c. Aber das ist eher kunst und der wille zur qualität.
> aber sowas findet man halt kaum.
> gelohnt wird es einem auch nicht direkt. nur indirekt über weniger
> bug-arbeit, weniger debuggen,... .
>
> So gesehen sind Ausroll-Tools, Code-Generatoren usw. mir teilweise lieber.
> Da konfiguriert man und kriegt das ergebnis. Selber coden immer weniger
> bzw. nur die wenigen relevanten dinge. Persistenz, oo-mapping auf SQL macht
> z.b. hibernate. J2EE nimmt einem auch viel ab usw. Ein data-master wer darf
> was (kunde darf seinen namen ändern aber nicht seine kundennummer, er darf
> neue adressen eintragen usw.) view/change-system wäre noch nett. gibts aber
> vielleicht auch schon.
Das geht, wenn man genug Leistung hat. Im Deep-Embedded auf
irgendwelchen 8/16/32 Bit-Controllern ist C und manchmal C++
angesagt. Dort findet man dann auch viele Entwickler, die sich
mehr mit Hardware und weniger mit Software auskennen.
Entsprechend sieht dann auch der Code aus.
Auf einem richtigen System nehme ich auch lieber Java, oder
gleich SmallTalk. Bei C++ gibt es leider zu viele Leute,
welche die Standardlehrbuecher gelesen haben und nun meinen,
dass alles was dort behandelt wird auch gut ist. Und dann
sind da noch die Gurus, die 95% des Standards beherrschen,
was man von den anderen Entwicklern die den Code auch mal
in den Fingern haben leider nicht sagen kann - was dann
fatale Folgen hat.
Siga9876 schrieb:
--------------------------------------------------------------------------------
> Allerdings sind Spacken natürlich gut darin, zu lernen wie sie genau falsch
> die Warnings wegbekommen. Vermutlich aus M$-Handbüchern oder C-Büchern von
> NULL=0[32 Bit] und nicht (void *)0 [64bit] definiert wird was bei 64 Bit
> die []-Effekte gibt.
Bevor Du andere als "Spacken" bezeichnest, solltest Du vielleicht selbst mal den C-Standard lesen, insbesondere Abschnitt 6.3.2.3.3:
An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant.
Es ist also völlig egal, ob man (void*)0 oder 0 oder auch (2-2) schreibt. Und in C++ ist NULL stets ohne den Cast nach void* definiert, da es aufgrund des strengeren Typsystems in C++ sonst gar nicht funktionieren würde.
Als die DEC-Alphas rauskamen mit 64 bit, hat man den schlechten Code schnell erkannt. Weil die Kisten crashten wenn man integer(32 Bit) und Pointer (64 Bit) ohne Cast verwürfelte.
Daher sind viele ältere Open-Source-Projekte (Linux gabs damals als 0.13 oder so um den Dreh) 64-bit-sicher.
Vielleicht solltest Du mal nachdenken, was der Cast macht. Er macht wirklich was. Nämlich aus einer 32-Bit '0' einen '64'Bit-Pointer machen.
Kannst natürlich
#define NULL 0L
oder wie das geht machen. Aber dann hast Du mit "0L"(oder wie das geht) auch eine explizite 64-bit-Null erzeugt.
Kann es Sein, das der Standard nicht aktuell ist ?
Aber c++ hätte ja besser sein können als java. Aber die haben ja jahre für libstd++ gebraucht.
Java hingegen bietet BUSINESS_Software usw. als Standards. Referenzimplementierungen,. Testsuites und dann fette Environments wie J2ME (Handy) oder J2EE (Business) an usw. Das ist soo geil. Darauf haben die C++er verzichtet.
Das ist so als ob man das Motorrad erfindet(C++) und dann kein Dach und 4 Räder dranmacht und die Auto-Erfinder(Java) die Kohle krallen und vorbeifahren.
Kommentare: 222 | letzter Beitrag 26.05. 23:51
Kommentare: 216 | letzter Beitrag 00:27 Uhr
Kommentare: 162 | letzter Beitrag 10:16 Uhr
Kommentare: 93 | letzter Beitrag 26.05. 19:45
Kommentare: 66 | letzter Beitrag 08:55 Uhr
E-Mail an news@golem.de

Ein soziales Netzwerk für Pornografie muss seine Marke nicht an Facebook übergeben. Faceporn, ein norwegisches Unternehmen, freut sich über den Sieg vor einem kalifornischen Gericht.

Diablo 3 ist toll, sagen viele Spieler - Diablo 3 ist eine Stimulus-Response-Maschine, sagt Rainer Sigl. Der Blogger und leidenschaftliche Gamer erklärt, warum er sich Blizzards jüngstem Werk verweigert.

Lockheed Martin hat eine neue Version des Exoskeletts Hulc vorgestellt, das es einem Menschen ermöglicht, schwere Lasten zu heben und zu tragen. Der Hersteller will das System im Spätsommer testen und, wenn alles gutgeht, danach an US-Soldaten in Afghanistan ausliefern.

Ein britisches Blog will erfahren haben, dass Facebook den norwegischen Browserhersteller Opera Software kaufen will. Beide Unternehmen wollen sich dazu nicht äußern.

Am 26. Mai 2012 treten neue Datenschutzregeln der EU in Kraft. Websitebetreiber und Werbenetzwerke müssen Nutzer um Erlaubnis fragen, wenn sie Cookies setzen.

Libreoffice könne mehr als Openoffice und biete Entwicklern zudem Vorteile, sagte Michael Meeks auf dem Linuxtag 2012. Außerdem spricht er mit Golem.de über Libreoffice-Online, woran er derzeit arbeitet.