Zum Forum springen
Benachrichtigungen
Alles löschen

[Geschlossen] C++

99 Beiträge
35 Benutzer
0 Reactions
7,454 Ansichten

imho ist c++ nur noch gut um sehr systemnah zu programmieren

versuchs mit c#
gibt auch eine kostenlose version von microsoft


rawman81
Beigetreten: 27.10.2008

Original von brontonase
imho ist c++ nur noch gut um sehr systemnah zu programmieren

pure c++ vielleicht... mit nem ordentlichen framework (z.b. qt) kann man damit auch sehr gut alle möglichen anwendungen schreiben.


C# ist für kommerzielle Programme selbstmord.
C++ als systemnah zu bezeichnen ist ganz schön gewagt, dank solchen Aussagen denk ich immernoch, dass es sinnvoll ist mit C anzufangen.
Ich hab mal NetBeans als IDE ausprobiert, bin sehr zufrieden, hat sogar ganz nette Plugins (MSP430 Plugin zB).


Original von NamenIos
C# ist für kommerzielle Programme selbstmord.
C++ als systemnah zu bezeichnen ist ganz schön gewagt, dank solchen Aussagen denk ich immernoch, dass es sinnvoll ist mit C anzufangen.

1. warum?
2. ich habe nicht gesagt das c++ systemnah ist


mcmoe
Beigetreten: 11.04.2006

bei einem anfänger spielt es doch überhaupt keine rolle, ob der code blitzschnell, oder langsam ausgeführt wird. ein anfänger schreibt doch grundsätzlich erstmal performance-mäßig sauschlechten code und bedient sowieso doch nur low-end-aufgaben, bei denen die geschwindigkeit kaum eine rolle spielt.

ich will nicht darauf hinaus, dass java besser für anfänger ist, sondern will primär betonen, dass c++ für einsteiger extrem frustrierend ist. allein schon die typisierung ist bei c++ so streng und detailliert, dass man als noob kaum chancen hat es auf anhieb zu kapieren und richtig zu machen.

ich finde es auch nicht verkehrt, wenn man bei visual basic bleibt und damit objektorientiert denken lernt.

sinn und zweck von OOP zu begreifen ist ohnehin die größte hürde, vor allem weil sie in vielen büchern langweilig erklärt wird. ("die klasse auto besitzt vier mal das attribut rad.")

c++ ist schön und gut, aber bei einem anfänger ist das schon ziemlich mit kanonen auf spatzen ballern.


Original von mcmoe
ich finde es auch nicht verkehrt, wenn man bei visual basic bleibt und damit objektorientiert denken lernt.

wäre auch okay
wobei ich dann eher mit c# einsteigen würde


schoxx
Beigetreten: 22.09.2007

Original von brontonase
1. warum?

Schau dir mal den Elephant oder SngWiz in .Net Reflector von Redgate an. Das könnten Schüler umgehen die im Informatik Kurs ein wenig C#/C++ gelernt haben*. Auch Obfuscation ist kein Schutz. Selbst verhältnismäßig aufwendig geschützte .Net Programme sind viel einfacher zu reversen als C++ Programme.

*Und die MSIL Befehlsreferenz vor sich haben


lryyyyyy
Beigetreten: 15.12.2007

Also ich fand die DVD "Video2brain C++" (genauer Titel ist mir entfallen.... ) ziehmlich gut :)


rofelmat0r
Beigetreten: 06.09.2008

Ich denke ich muss das projekt erstmal auf eis legen, da ich unerwartet einen sc2 key bekommem habe! Werde trotzdem probieren nebenbei 1-2bücher zu lesen


Original von NamenIos
C# ist für kommerzielle Programme selbstmord.

schonmal probiert nen prorgamm zu reversen was durch smartassembly geschickt wurde? da ist jedes c/c++ programm deutlich einfacher zu reversen :P


Original von elbarto132

Original von NamenIos
C# ist für kommerzielle Programme selbstmord.

schonmal probiert nen prorgamm zu reversen was durch smartassembly geschickt wurde? da ist jedes c/c++ programm deutlich einfacher zu reversen :P

Security through obscurity, ich weiß nicht ob ich darüber lachen oder weinen soll. Ich weiß nicht was sich da in den letzten 1-2 jahren getan hat, aber kann man das so einfach dumpen wie xenocode? Funktioniert DILE noch? Wenn ja ist das trotz alldem (zumindest für mich) weitaus einfacher als C++ (bzw ASM halt) ohne weiteren Schutz. Allein schon das Speichermanagment von C#/MSIL ist eine Wohltat zum reversen.

Keine Ahnung wie du auf deutlich einfacher kommst.


naja, bei nem stink normalen c++ programm bekommste sauberen, straight forward assembler code raus, bzw mit hilfe von hex rays bekommt man direkt den pseudocode

schreib mal was in .net, lass es von http://www.smartassembly.com/ (is ne 14 tage trial oder so) bearbeiten (einfach alles anhaken und auf höchste sicherheit stellen), und probier es zu reversen (die probleme problemen fangen schon damit an das reflector es nicht so einfach dekompilieren wird ;))
da ist normaler asm code deutlich besser zu verstehen :P


wo liegt das problem, wenn man das programm disassemblen kann? SAP zB liefert den quellcode gleich mit, und der lizenznehmer kann ihn für seine eigenen zwecke anpassen. geschadet hats ihnen nicht.
und nachprogrammieren durch einblick in den code ist ja sowieso verboten, man kann also gegen konkurrenten, die dies machen, juristisch vorgehen.
den quellcode nicht mitzuliefern bzw. alles zu unternehmen, damit man nicht auf den quellcode schließen kann, ist doch nur dazu da, um den kunden zu ärgern *grml*
und dann noch ewig brauchen, um irgend einen kleinen aber schwerwiegenden fehler zu patchen, den man selber in einigen minuten behoben hätte. closed-source ist einfach scheiße.

edit: zum thema dieses threads
es gibt diverse lernprogramme für programmiersprachen / programmieren allgemein, die vl. nützlich sein könnten, die erste hürde zu nehmen.
zB hier: http://www.swisseduc.ch/informatik/karatojava/kara/
lerninhalt: endlicher automat, kontrollstrukturen (if, while)

allgemein zum thema (spielerisch) programmieren lernen: http://de.wikibooks.org/wiki/Programmieren_leicht_gemacht_-_adäquate_Modelle_für_den_Einsatz_im_Unterricht

damit kann man auch mal in einer starcraft-pause arbeit :P


KTU
KTU
Beigetreten: 24.01.2007

armer OP :)

Hier mal eine kleine Einleitung um dich ins Boot zu holen:

sowas wie dein halloWelt.c, was dir wahrscheinlich recht kryptisch vorkommt, ist es in Wirklichkeit nicht. Es ist auf einer weit höheren Abstraktionsebene als Du denkst.

Dein Prozessor (bzw die Hardware) versteht es einfach überhaupt nicht, dieser kann nur ein paar Befehle wie Speicherregister adressieren, addieren, multiplizieren, Sprungbefehle ausführen und Befehlsketten auslesen und abarbeiten. Also muss man dein Gebilde in die Sprache deiner Maschine übersetzen. Das tut der Compiler.

http://de.wikipedia.org/wiki/Befehlssatzarchitektur

Und dann sieht dein Programm auf einmal so aus:

Das zweite ist jetzt so geschrieben, dass es ein x86 "versteht".

Und die Jungs hier die von den adovocacy newsgroups entlaufen sind (da kann man tag und nacht Diskussionen führen wie: Mein Betriebssystem ist besser als deins. Java ist besser als .net usw) haben dich hoffentlich nicht zu sehr mit ihrem pseudo intellektuellen Kram verunsichert.


KTU
KTU
Beigetreten: 24.01.2007

*push*

so langsam sollten die 21 Tage rum sein.


Original von KTU
Und dann sieht dein Programm auf einmal so aus:

Das zweite ist jetzt so geschrieben, dass es ein x86 "versteht".

nee das zweite versteht ein x86 genausowenig wie das erste


KTU
KTU
Beigetreten: 24.01.2007

01110111011000010111001100100000011001010111001100100000011001100111010101100101
01110010001000000110001001100101011010000110100101101110011001000110010101110010
01110100011001010010000001110011011000110110100001100101011010010111001101110011
00100000011010110110110001110101011001110111001101100011011010000110010101101001
01110011011100110110010101110010001000000110011101101001011000100111010000100000
01100001011000100110010101110010001000000111001101110100011010010110110101101101
01110100001000000111001101100011011010000110111101101110001000000111001101110100
01110010011001010110111001100111001000000110011101100101011011100110111101101101
01101101011001010110111000100000011010010111001101110100001000000110010001101001
01100101001000000110100101110011011000010010000001101110011000010111010001110101
01100101011100100110110001101001011000110110100000100000011000010111010101100011
01101000001000000110111001110010011101010010000001100101011010010110111001100101
00100000011000010110001001110011011101000111001001100001011010110111010001101001
01101111011011100111001101110011011000110110100001101001011000110110100001110100
00100000

sorry ja. die ISA ist natürlich auch eine Abstraktionsebene :] Also manchmal...


nö, auch falsch. das ist was der pc versteht: http://de.wikipedia.org/wiki/Opcode ;)