PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schnellste Programmiersprache



blue lord
16.11.2004, 17:48
Was ist die schnellste Programmiersprache (für Windows Programme, kein 3D)?

Freezy
16.11.2004, 17:52
Schnell in welcher hinsicht?

- Schnell im allgemeinen erstellen einer Anwendung
- Schnell beim Compilieren von Code
- Schnellichkeit bei der ausführung des Programmes

?

blue lord
16.11.2004, 17:58
Schnellichkeit bei der ausführung des Programmes

Jo,
das meine ich.

Crash-Override
16.11.2004, 18:56
Assembly müsste aufgrund seiner systemnaheit sehr schnell sein, c++ aber auch recht gut. VB beispielsweise ist in der Hinsicht relativ langsam, aufgrund der erst nachträglichen interpretierung.

blue lord
16.11.2004, 19:12
Was ist Assembly?

Ich habe im Wikipedia gesucht, aber nichts gefunden.

Dingsi
16.11.2004, 19:32
Assembly ist die letzte Sprache vor der Maschienensprache. Also ziemlich, ziemlich Low-Level. Man kann eigentlich nichts anderes machen, als Rechnen und mit Pointern rumspielen. Ich kopier jetzt einfach mal Lukis Code aus dem "exe Größe" Thema:
;Hello World Programm
ORG 100h ; COM File

EntryPoint:
mov si, message1 ; Addresse von String Message nach SI
.startloop
lodsb ; Byte laden
or al,al ; ist = 0 ?
jz short .endloop ; wenn 0, dann ende
mov ah,0x0E
int 0x10 ; Bios-Interrupt
jmp short .startloop ; naechstes Zeichen
.endloop
ret ; Ende COM File

DataSection:
message1 db "Hallo Welt.",13,10,0 Und da das ganze einfach, low-level und systemnah ist, ist es auch verdammt schnell. Für immer wieder verwendete Algohrithmen z.B. wird oft ASM verwendet. Z.B. bei Shadern oder bei Verschlüsselungen/Komprimierungen.

Crash-Override
16.11.2004, 19:32
Allgemein: Assembler-Dialekte zusammengefasst.
Gibt ja verschiedene Dialekte z.B. speziel für i386 usw.

blue lord
16.11.2004, 19:49
Dann kann ich eigentlich für schnelle Programm bei C++ bleiben, oder?

Ynnus
16.11.2004, 20:06
Es gibt nicht DIE Sprache, sondern man muss sehen wofür man welche Sprache nimmt. Und schnell in Sachen Anwendungen, naja, da gibts wohl kaum große Unterschiede. Denn Anwendungen sind nicht Framebasiert (werden nicht jedes Frame neu gezeichnet) sondern sind Eventbasiert und somit meist sowieso nicht auf Geschwindigkeit bedacht, dass es nicht so viel Unterschied macht, ob man Visual Basic (oder PureBasic), C++ oder Delphi oder sowas nimmt. Ein Fenster mit ein paar Buttons darstellen wird wohl überall nicht viel Zeit beanspruchen und die Events bearbeiten sollte auch nicht das Problem sein.
Im Allgemeinen, wenn du C++ kannst, solltest du dabei bleiben und das vertiefen. Damit kann man wohl wenig falsch machen.

ABER, dann kommt es auch immer noch auf den Programmierstil an. Auch in C++ kann man Programme schreiben, welche langsamer laufen als in anderen Sprachen, wenn man es nicht anständig optimiert oder einfach nur Mist codet. Demnach muss man aber auch in anderen Sprachen optimieren oder einen schnellen Weg (z.B. lieber Pointer verwenden als lange im Speicher suchen) wählen um ein schnelles Programm zu erhalten.

Freezy
17.11.2004, 18:35
Es gibt nicht DIE Sprache, sondern man muss sehen wofür man welche Sprache nimmt. Und schnell in Sachen Anwendungen, naja, da gibts wohl kaum große Unterschiede. Denn Anwendungen sind nicht Framebasiert (werden nicht jedes Frame neu gezeichnet) sondern sind Eventbasiert und somit meist sowieso nicht auf Geschwindigkeit bedacht, dass es nicht so viel Unterschied macht, ob man Visual Basic (oder PureBasic), C++ oder Delphi oder sowas nimmt. Ein Fenster mit ein paar Buttons darstellen wird wohl überall nicht viel Zeit beanspruchen und die Events bearbeiten sollte auch nicht das Problem sein.

Aber auch in Anwendungen können Algorythmen drin stecken die einen Unterschied ausmachen könnten ;)

Im grunde genommen übersetzt jede Sprache gleich schnellen, Ausführbaren code... nur kommt es darauf an was man (oder der Compiler) alles zwischen packt... Um ein Pixel auf einem Pic zu manipulieren genugt ein bisschen ASM Code. Natürlich kann man das auch in C++ oder Delphi machen, aber Delphi beispielsweise packt dir da die TImage Komponente dazwischen was einfach Ziet frisst.

Jesus_666
18.11.2004, 20:01
Ich würde sagen, es kommt absolut drauf an, was man braucht. Wenn man vorhat, aufwendige Berechnungen durchzuführen und auf ein GUI verzichten kann, sollte man mit C oder C++ zurechtkommen (vielleicht sogar mit C noch besser - bei C++ wird AFAIK mehr Zeug eingebunden und wenn man die gesamten zur Verfügung stehenden Ressourcen braucht könnten ein paar Kilobyte Extracode schon einen gewissen Unterschied machen).
Für absolute Geschwindigkeit kommst du an ASM nicht vorbei.

Für ein ressourcentechnisch vergleichsweise popliges Programm wie einen Maker-Klon braucht man hingegen kein echtzeitaktualisiertes UI und auch keine massiven Berechnungen und sollte sogar mit langsameren Sprachen wie Java zurechtkommen.
Wenn du nicht gerade vorhast, ein aufwendiges Spiel zu programmieren, dürfte bei der Wahl der Sprache die Geschwindigkeit wohl kaum eine größere Rolle spielen.

re: wall_com
18.11.2004, 21:05
für allgemeine anwendungen ist objekt pascal hervorragend find ich ... die geschwindigkeit der befehlserfassung hängt von den komponennten ab .... bzw von der programmierung :rolleyes:

MagicMagor
18.11.2004, 22:36
Ich glaub in unserem Bereich, der Hobbyprogrammierung, ist die Wahl der Programmiersprache eher sekundär wenn es um die Geschwindigkeit der Anwendung geht. Viel wichtiger ist da schon saubere Programmierung.
Davon abgesehen, macht es einen Unterschied ob ein Spiel mit 200 FPS oder 300 läuft? Wirkliche Gedanken um seine Programmierung sollte man sich erst machen, wenn die FPS stark in den Keller gehen, ansonsten ist das mMn ebenso wie die Benchmarks, eine Zahl, die ihre größte Wirkung auf das Ego des Spielers bzw Programmierers hat.

Netbek
18.11.2004, 23:06
Die schnellste Programmiersprache, hmm.
C++ ist bestimmt schnell

Jedenfalls im Verhältnis zur langsamsten "programmier"-sprache der welt.
Die Möchtegernskriptsprache "mIRC-Script"(heisst die auch so?) ist nämlich ca. 10'000 mal langsamer als C++.
Hab da mal nen Algorithmus von mIRC in C++ übernommen und in etwa das festgestellt :D

Jesus_666
19.11.2004, 08:43
Die schnellste Programmiersprache, hmm.
C++ ist bestimmt schnell

Jedenfalls im Verhältnis zur langsamsten "programmier"-sprache der welt.
Die Möchtegernskriptsprache "mIRC-Script"(heisst die auch so?) ist nämlich ca. 10'000 mal langsamer als C++.
Hab da mal nen Algorithmus von mIRC in C++ übernommen und in etwa das festgestellt :D
Wobei es nicht gerade fair ist, die interpretierte Skriptsprache eines zweitklassigen Chatprogramms mit einer professionellen Programmiersprache, für die seit 1980 Compiler (weiter)entwickelt werden, zu vergleichen.

Und verglichen mit Maker-Assembly ist mIRC-Script immer noch unglaublich komfortabel und flink.
...Wer auch immer auf die Idee gekommen ist, eine interpretierte pseudo-Assemblersprache zu entwickeln, gehört bestraft.

Bluebird
19.11.2004, 13:38
...Wer auch immer auf die Idee gekommen ist, eine interpretierte pseudo-Assemblersprache zu entwickeln, gehört bestraft.

Und was ist mit Java?

regnad
19.11.2004, 20:05
Und was ist mit Java?
Naja, wahrscheinlich geht die Java Virtual Machine "etwas" über die simple Stack-Maschine dieses Maker-ASM hinaus ;)

Soweit ich weiß wird der Java-Zwischencode zur Laufzeit vom JustInTime-Compiler der Java-VM in den jeweiligen Maschinencode übersetzt, theoretisch ist Java damit also genauso schnell wie nativer Code.

Murphy
19.11.2004, 21:09
Und was ist mit Java?
Du siehst Java als eine interpretierte pseudo-Assembler Sprache?
Zu Maker - "Assembly" passt diese Aussage. Und zwar hauptsächlich wegen der umständlichen Rechenweise. Genau wie beim Assembler musst du beim Maker Rechenoperator und 2 Parameter angeben. Soweit ich mich zumindest erinnere.
Das bedeutet, dass du für die Rechnung a = (0.5 * b) / ( c * d ) sehr viele einzelne Rechenschritte durchführen musst.
Und zwar etwa so:

b = b*0.5;
c = c *d;
b = b/c;
a = b;

Maker Assembly triffts daher ziemlich gut. Wer sich das ausgedacht hat, gehört wirklich hinter Gitter, denn eine vernünftige Syntax fürs rechnen hätte den Zeitaufwand mit dem Maker erheblich verkürzt.
-------------------------------------
Übrigens würde mich interessieren, ob du Ahnung von Java und Assembler hast.

derBenny
19.11.2004, 23:34
Was ist die schnellste Programmiersprache (für Windows Programme, kein 3D)?Ich würde auch sagen, dass es für einfache Windows-Programme keine allzu große Rolle spielt, welche Sprache du verwendest. Wenn du bereits eine vernünftige Sprache beherrschst, brauchst du für die paar Millisekunden wohl kaum eine andere zu lernen. Wenn du allerdings überlegst, welche Sprache du lernen sollst, würde ich dir zu C++ raten. Damit wirst du gleichzeitig in der Lage sein, Java zu verwenden, weil die beiden Sprachen sich in der Syntax ja wirklich kaum voneinander unterscheiden (soweit ich das bisher beurteilen kann).

Jesus_666
20.11.2004, 03:40
Übrigens würde mich interessieren, ob du Ahnung von Java und Assembler hast.
Wer, ich? Ich lerne gerade von der Uni her Java; mit ASM hab' ich mich nicht wirklich beschäftigt - so einen niedrigen Level brauchte ich noch nicht.


Wenn du allerdings überlegst, welche Sprache du lernen sollst, würde ich dir zu C++ raten. Damit wirst du gleichzeitig in der Lage sein, Java zu verwenden, weil die beiden Sprachen sich in der Syntax ja wirklich kaum voneinander unterscheiden (soweit ich das bisher beurteilen kann).
Abgesehen davon, daß bei Java alles in Klassen passiert (selbst Klassen, wie man in C++ benutzen würde, müssen mindestens in der Hauptklasse geschachtelt sein), daß char zwei Byte groß ist (Unicode) und du eigentlich ganz anders programmierst...
Es ist erstaunlich, wie sehr sich Java von C++ unterscheidet, obwohl die syntaktischen Grundlagen identisch sind.

Murphy
20.11.2004, 03:44
Wer, ich? Ich lerne gerade von der Uni her Java; mit ASM hab' ich mich nicht wirklich beschäftigt - so einen niedrigen Level brauchte ich noch nicht.

Mh, nein, eigentlich meinte ich Bluebird.

Bluebird
20.11.2004, 10:58
Mh, nein, eigentlich meinte ich Bluebird.

Ja, ich hab schon in beiden Programmiersprachen programmiert.

blue lord
20.11.2004, 14:35
Ich war heute in der Bücherei und habe mir dort ein Codingbuch über C++ angeschaut.
In dem stand, dass im Augenblich C++ die geräuchlichste Sprache wäre, sie aber bald von Java überhohlt werden würde.

Was haltet ihr davon?

cornuto
20.11.2004, 14:56
Kann schon sein.
Für verschiedene Applikationen verschiedene Programmiersprachen.
Java kommt halt in ner netten Verpackung daher mit vollständigen Bibliotheken zum Netzverkehr. Und zusätzlich die applets technologie.
Aber in Punkto Performace stinkt Java gewaltig ab, natürlich wegen der JVM. Da heisst es halt C/C++

Latency
20.11.2004, 15:07
Aber in Punkto Performace stinkt Java gewaltig ab, natürlich wegen der JVM. Da heisst es halt C/C++ Dafür stinkt C bei der Portierbarkeit. Java's Cross-Plattform Lösung ist in diesem Sinne unschlagbar, da du nicht auf irgendwelche OS oder Architektur-Spezifische Dinge achten musst. Wenn du weißt, dass dein Programm mit einer bestimmten Version von JRE läuft, so wird es das auch auf allen System. Bei C hättest du das Problem, dass du A) deinen Code zum selbstkompilieren mitliefern müsstest, oder X-Verschiedene Bin's wo sich jeder die richtige raussuchen darf.

MuadDib
20.11.2004, 15:16
Ich war heute in der Bücherei und habe mir dort ein Codingbuch über C++ angeschaut.
In dem stand, dass im Augenblich C++ die geräuchlichste Sprache wäre, sie aber bald von Java überhohlt werden würde.

Was haltet ihr davon?
Wie alt ist das Buch, dann kann man genaueres dazu sagen...
Aber gut, angenommen Java solle C++ überholen, wie zum Teufel soll ich dann bei uns im CAVE (http://vrc.zid.jku.at/equipment.htm) programmieren... wo Dinge wie eine JVM unter IRIX komplett fehlt. Angenommen, C++ würde nie von Java überholt werden, warum soll ich mich dann bei einfachen GUI-Applikationen - womöglich mit Netzwerkunterstützung, oder Datenbankprogrammen, Webapplikationen unbedingt mit C++ herumärgern?
Worauf ich hinaus will ist, dass man das einfach nicht derartig generalisieren kann. C(++) eignet sich hervorragend für 3D-Computergraphik, Parallele Applikationen und Systemnahe Programmierung, und für einige weitere Dinge. Java hingegen ist No. 1 wenn es um Businessapplikationen, Datenbankprogramme, Webapplikationen oder aber auch multiportable Anwendungen geht (der Code ist ja überall derselbe, die JVM ist anders), und da wird 100% nie, nie wieder C(++) verwendet werden. Mittlerweile werden ja auch schon stinknormale Desktopanwendungen mit Java programmiert. Dank SWT läuft das auch ziemlich schnell, und bei den heutigen Performanceleistungen der PCs wird es kaum eine Desktopanwendung geben, die dann den PC in die Knie zwingt.

Es kommt halt darauf an, was man programmieren will...

²Jesus: Du hast ganz recht, auch wenn sich die Syntax gleicht, der Aufbau ist komplett anders, vor allem da der Java-Approach ja von Anfang an auf Objektorientierung abziehlte, und das in allen Regeln der Kunst durchzieht.

blue lord
20.11.2004, 17:10
Wie alt ist das Buch, dann kann man genaueres dazu sagen...

Von 2000, da ist es als Neuauflage erschienen. Es hieß glaub ich C++ Objektorientiertes Programmieren.

cornuto
20.11.2004, 17:55
Dafür stinkt C bei der Portierbarkeit.

der thread heisst ja auch schnellste Programmiersprache und nicht portableste Sprache

Jesus_666
20.11.2004, 18:39
Ich war heute in der Bücherei und habe mir dort ein Codingbuch über C++ angeschaut.
In dem stand, dass im Augenblich C++ die geräuchlichste Sprache wäre, sie aber bald von Java überhohlt werden würde.

Was haltet ihr davon?
Schon jetzt ist Java auf dem Markt extrem gefragt. Der Trend dürfte sich in den nächsten Jahren noch verstärken - siehe MuadDibs Posting. Java ist bei Business-Anwendungen sehr beliebt; rate mal, was du auf dem Arbeitsmarkt so findest...

Ich bin mir nicht sicher, wie es mit Sprachen wie Nice (http://nice.sourceforge.net/) und Groovy (http://groovy.codehaus.org/) aussieht, deren Compiler beide Java-Bytecode erzeugen und bei deren Planung gleich die möglichen Schwachstellen von Java in Betracht gezogen wurden. Vielleicht könnte es sein, daß eine dieser Sprachen an Java vorbeizieht, vielleicht wird es auch nur ein Betamax.

blue lord
20.11.2004, 21:07
Ist Java eigentlich "schwerer" oder "einfacher" als C++? Oder sagen wir erlernfreundlicher?

MuadDib
21.11.2004, 19:41
Ist Java eigentlich "schwerer" oder "einfacher" als C++? Oder sagen wir erlernfreundlicher?
IMO ist der Anfang, also das Erlernen der Algorithmen, etwas schwerer als bei C++, v.a. wegen den Eigenheiten von Java, die so in wenig anderen Programmiersprachen vorkommen. Wenn man aber diese Hürde überwunden hat (also den ersten Tag), dann kommt man mit Java meiner Meinung nach viel besser zurecht, vor allem wegen den klar aussagenden Fehlermeldungen beim Kompilieren, die einiges aussagen.

Mit einem guten Lehrbuch (wie dem hier (http://www.amazon.de/exec/obidos/ASIN/3898642313/qid=1101062429/ref=sr_8_xs_ap_i1_xgl/302-6373174-6778449)) lernst du damit spielend leicht die Sprache, und Programmieren allgemein.

blue lord
22.11.2004, 18:42
Was meint ihr hierzu?

http://www.amazon.de/exec/obidos/ASIN/3827370450/ref=pd_rhf_f_2/302-1861430-1434462

http://www.amazon.de/exec/obidos/ASIN/3932588223/ref=pd_rhf_f_1/302-1861430-1434462

Freezy
22.11.2004, 18:54
Dank der JVM kann nichtmal .NET Java ans Bein fahren... oder denk ich da in die Falsche richtung? Oo

Jesus_666
22.11.2004, 19:27
Dank der JVM kann nichtmal .NET Java ans Bein fahren... oder denk ich da in die Falsche richtung? Oo
Naja, Dotnet ist auch plattformunabhängig, solange man Microsoft Windows benutzt. Also besteht praktisch kein Unterschied zu Java, das auf praktisch allem läuft, was einen Prozessor hat. Und Java hat eine feste Marktposition, aber was bedeutet das heutzutage noch? Und Sun ist wesentlich beliebter als Microsoft - und hat weniger Klagen am Hals.
Naja, vielleicht hat Java minimal bessere Marktchancen. Aber auch nur minimal.

cornuto
22.11.2004, 21:04
Dotnet ist auch plattformunabhängig, solange man Microsoft Windows benutzt..

????????????????????????????????

plattformunabhängig? nur windows?
Das konzept von plattformunabhägigkeit ist, dass es eben nicht nur auf einer Plattform läuft

Freezy
22.11.2004, 21:11
????????????????????????????????

plattformunabhängig? nur windows?
Das konzept von plattformunabhägigkeit ist, dass es eben nicht nur auf einer Plattform läuft

Das ist Jeez sein unverwechselbarer Sarkassmus.... auch du wirst dich daran gewöhnen ;) :D

codec
22.11.2004, 21:28
Assembler.

MuadDib
22.11.2004, 21:43
Naja, Dotnet ist auch plattformunabhängig, solange man Microsoft Windows benutzt. Also besteht praktisch kein Unterschied zu Java, das auf praktisch allem läuft, was einen Prozessor hat. Und Java hat eine feste Marktposition, aber was bedeutet das heutzutage noch? Und Sun ist wesentlich beliebter als Microsoft - und hat weniger Klagen am Hals.
Naja, vielleicht hat Java minimal bessere Marktchancen. Aber auch nur minimal.

Wie ging das Zitat noch schnell?
.NET vereinigt soviel Sprachen als möglich auf einer Plattform
Java versorgt soviel Plattformen als möglich mit einer Sprache

Jesus_666
22.11.2004, 22:32
Wie ging das Zitat noch schnell?
.NET vereinigt soviel Sprachen als möglich auf einer Plattform
Java versorgt soviel Plattformen als möglich mit einer Sprache
Ich habe da ein revolutionäres Konzept: Eine einzelne Sprache für eine einzelne Plattfor-- Moment...

BTW, es gibt seit Kurzem eine Software (http://www.stryon.com/products.asp?s=4), die Dotnet in Java verwandeln kann - zumindest einzelne Programme. Leider kann nicht gleich die ganze Plattform umgebaut werden... Schade.

Master of Disaster
29.11.2004, 01:10
Oh Graus! Fortran!!

http://dan.corlan.net/bench.html

Jesus_666
29.11.2004, 08:01
Oh Graus! Fortran!!

http://dan.corlan.net/bench.html
OMG! Eine Sprache zur Berechnung mathematischer Formeln ist schnell, wenn man mathematische Formeln berechnen möchte!

Aber ich werde dem Ratschlag der Seite folgen und alle meine Programme in Lisp schreiben. Hat gerade jemand einen Compiler, der Lisp in Java-Bytecode übersetzt?

Ynnus
02.12.2004, 13:37
Bezogen auf Speed in GUI-Anwendungen:
Ich möchte nochmal kurz meinen Senf dazu tun. C/C++ verfügt ja über keine eigenen Befehle für eine GUI, kann also keine Fensteranwendungen erstellen ohne auf andere APIs zurückzugreifen. Und da kommt es auch speziell darauf an, wie flott und optimiert diese APIs sind. Also nicht nur C++ macht den Speed aus sondern die verwendeten GUI-APIs. Etwa mit PureBasic geschriebene Programme greifen auf die WinAPI zurück. Per C++ kann man diese API auch benutzen. Jetzt kommt es natürlich noch darauf an, wie gut diese APIs eingebunden werden und mit dem Rest harmonieren können, dennoch ist dann die API letztlich das Ausschlaggebende Etwas für den maximalen Speed. Da kann C++ auch 5 mal so schnell die Events abarbeiten, wenn die API da nicht so flott hinterher kommt, ist es nicht schneller als wenn eine andere Sprache das nur halb mal so flott macht und immer noch über dem maximalen Speed der API liegt.

Master of Disaster
02.12.2004, 14:09
Ich würde 'reaktionsschnelle GUI-Schnittstelle' nicht unbedingt als Kriterium für eine Programmiersprache hernehmen, die möglichst performanten Code produzieren soll. Keine Programmiersprache hat 'Befehle' für GUIs, die benutzen alle mehr oder weniger performante APIs (Java z.B. Swing/AWT/SWT, C++ FullTick, QT, GTK, WinAPI, etc.). Im Prinzip kann jede Programmiersprache jedes API benutzen, die richtigen Wrapper vorausgesetzt. Meistens beziehen sich Aussagen über die 'Schnelligkeit' von Programmiersprachen auf die Performanz des von ihren Compilern generierten Codes (ja, auch von Compiler zu Compiler gibt es Unterschiede!) - also wie schnell löst der von Compiler A aus Programmiersprache B generierte Maschinencode die gestellte (mathematische) Aufgabe, und nicht darauf, wieviele Frames/Sekunde man mit einem in dieser Sprache implementieren 3D-Shooter bekommt...

blue lord
03.12.2004, 21:04
Ich wollte hierfür keinen neuen Thread aufmachen, deshalb frag ich das mal hier.

Was ist der Unterschied zwischen Microsoft Visual C++ und Microsoft Visual C++ .NET?

Was ist besser? Wenn ich mir einen neuen Compiler zulegen will, welchen soll ich von den beiden obigen nehmen?

Jesus_666
03.12.2004, 23:14
Was ist der Unterschied zwischen Microsoft Visual C++ und Microsoft Visual C++ .NET?

Was ist besser? Wenn ich mir einen neuen Compiler zulegen will, welchen soll ich von den beiden obigen nehmen?
Visual C++ ist Microsofts C++-Klon. Es verhält sich weitgehend wie C++, ist aber nicht standardkonform.
Visual C++ .NET ist eine C++-artige Umgebung zum Schreiben von Dotnet-Programmen. Abgesehen vom Aussehen der Syntax hat es nicht mehr viel mit C++ zu tun.

Dotnet wird bisher nur auf Windows unterstützt (auch wenn es in der Open Source-Welt Bestrebungen gibt, das zu ändern), C++ läuft praktisch überall. Außerdem hast du mit Dotnet keinen normalen Code sondern - ähnlich wie bei Java - Bytecode, der erst interpretiert werden muß. Das brauchst du nicht wirklich; in dem Sinne würde ich VC.NET ausschließen.

Ich würde dir aber auch vom normalen VC++ abraten - es gibt auch kostenlose Compiler und IDEs, die im Gegensatz zu Microsofts Produkten sogar wissen, was ein Standard ist.

kpayne
04.12.2004, 11:47
zum Beispiel Dev C++! Ich benutze ihn auch, der is aber auch wirklich gut !

Aber kann mir einer erklären was Microsoft Visual Studio 2003 ist ? Dort ist doch auch C++ dabei oder nicht?

Danke
cya

MuadDib
04.12.2004, 12:01
zum Beispiel Dev C++! Ich benutze ihn auch, der is aber auch wirklich gut !


Zum x-tausendsten Mal: Dev-C++ ist KEIN COMPILER. Es ist eine IDE (=Drückidrück-Klicki-Bunt-System) die auf den MinGW-Compiler aufsetzt, alternativ kannst du auch den C-Compiler von Borland oder Microsoft darunter schnallen, oder DJGPP, oder jeden anderen, beliebigen Win32 Compiler.

Entschuldigt den Gefühlsausbruch, aber ich weiß nicht, wie oft ich das schon sagen musste...



Aber kann mir einer erklären was Microsoft Visual Studio 2003 ist ? Dort ist doch auch C++ dabei oder nicht?


Visual Studio nennt sich die IDE (Definition bitte oben nachschlagen) für die Microsoft Compiler, die ja momentan alle auf .NET aufbauen. Soweit ich weiß, ist dort auch C++ dabei, den Compiler kannst du dir allerdings auch von der MS-Seite herunterladen.

Jesus_666
04.12.2004, 13:13
Zum x-tausendsten Mal: Dev-C++ ist KEIN COMPILER. Es ist eine IDE (=Drückidrück-Klicki-Bunt-System) die auf den MinGW-Compiler aufsetzt, alternativ kannst du auch den C-Compiler von Borland oder Microsoft darunter schnallen, oder DJGPP, oder jeden anderen, beliebigen Win32 Compiler.
Zum x-tausendsten Mal: MinGW ist KEIN COMPILER. MinGW ist ein Paket aus Windows-Ports diverser GNU-Software (hauptsächlich der GNU Compiler Collection (GCC) und den binutils). Der C++-Compiler in der GCC ist g++.

MuadDib
04.12.2004, 13:22
Zum x-tausendsten Mal: MinGW ist KEIN COMPILER. MinGW ist ein Paket aus Windows-Ports diverser GNU-Software (hauptsächlich der GNU Compiler Collection (GCC) und den binutils). Der C++-Compiler in der GCC ist g++.
Lies genauer, ich hab nicht MinGW an sich gemeint, sondern den MinGW-Compiler, der in der Suite enthalten ist... nit-picking :)

blue lord
04.12.2004, 15:00
Ich benütze auch Dev C++, aber manche Sachen aus Codingbüchern funzen da net. Die funktionieren nur auf VC++ Autoren Edition. Und Sachen die ich damit code darf ich ja nicht weitergeben, bzw. kommt beim ausführen eines solchen Programms immer ne Anzeige, dass ich das Programm nicht veröffentlichen darf. :(

Jesus_666
04.12.2004, 19:17
Ich benütze auch Dev C++, aber manche Sachen aus Codingbüchern funzen da net. Die funktionieren nur auf VC++ Autoren Edition. Und Sachen die ich damit code darf ich ja nicht weitergeben, bzw. kommt beim ausführen eines solchen Programms immer ne Anzeige, dass ich das Programm nicht veröffentlichen darf. :(
Dann beziehen diese Bücher sich nicht auf C++ sondern auf Microsoft Visual C++. Ich würde dir raten, dich eher mit C++ zu befassen.

blue lord
04.12.2004, 21:17
Hier mal ein Beispiel, was in VC++ funzt und mit Dev C++ nicht.


//Zufallsgenerator initialisieren
srand (timeGetTime ());


Hier die Fehlermeldung:

Undefined reference to `timeGetTime@0’

Jesus_666
04.12.2004, 22:05
Hier mal ein Beispiel, was in VC++ funzt und mit Dev C++ nicht.


//Zufallsgenerator initialisieren
srand (timeGetTime ());


Hier die Fehlermeldung:
In C++ würde man das so machen:
srand (time(NULL));

regnad
05.12.2004, 00:26
Visual C++ ist Microsofts C++-Klon. Es verhält sich weitgehend wie C++, ist aber nicht standardkonform.
Visual C++ .NET ist eine C++-artige Umgebung zum Schreiben von Dotnet-Programmen. Abgesehen vom Aussehen der Syntax hat es nicht mehr viel mit C++ zu tun.


Hab selber Visual C++ .net und dass was du darüber zu wissen glaubst ist Unsinn. Du scheinst dass .net Framework und Managed C++ mit der ganzen Entwicklungsumgebung gleichzusetzen. Das sind aber nur Zugaben, denn das Hauptaugenmerk liegt immer noch ganz klar auf C++. Die Visual Studio .net IDE ist meiner Meinung nach die beste auf dem Markt, da können Borland, Eclipse etc. einpacken. Aber MS Hasser werden dazu wohl allein schon aus Prinzip eine andere Ansicht haben...

Was soll eigentlich das Gerede mit dem Standard? Mir ist noch kein Quelltext( ca. 10GB im Laufe der letzten Jahre, hauptsächlich Graphics Programming Zeugs ausm Inet) vorgekommen, den ich nicht mit VC++, sei es die 6.0 oder die 7.0(.net) Version, aufgrund von standardkonformitäts-Problemen kompilieren konnte. Wenn es mal Probleme gab dann wegen Plattform-abhängiger Sourcecodes.

Wenn jemand standardkonformes C++ coden will, kann er dass spätestens seit VC++ 7.0 (.net) machen, den im Gegensatz zur 6.0 Version ist der neue Compiler mind. so konform wie andere Compiler, er muss halt nur auf die MS-spezifischen Sachen verzichten. Übrigens, wie schon im vorherigen Satz angedeutet haben auch andere Compiler Probleme mit dem Standard, z.B. bei extravaganten Template-Geschichten etc.

Das ganze Thema Standard ist sowieso für die Katz' solange ein Großteil aller Coder immer noch diesen Cocktail aus C und C++ fabriziert, der allerortens zu "bewundern" ist. Zum Beispiel Filehandling: was würden die meißten nur ohne fprintf machen?

Zum Test : dieser ist meiner Meinung nach nicht 100% aussagekräftig, da die Messmethode mehr als fragwürdig ist! Warum wurde der entsprechende Codeabschnitt nicht innerhalb des Programms von einer Zeitmessung eingekapselt? Stattdessen wurde die gesamte Programmausführung gemessen. Wer weiß denn, ob nicht schon das Laden und Initialisieren der CRT allein den Großteil der Ausführungszeit in Anspruch genommen hat, aber die eigentliche Codestelle nur einen Bruchteil der Gesamtzeit ausmacht?

blue lord
05.12.2004, 10:09
//Zufallsgenerator initialisieren
srand (timeGetTime ());

In C++ würde man das so machen:

srand (time(NULL));
Nimmt das auch die Bootzeit in Millisekunden als Startwert?

Firzen
05.12.2004, 10:37
time(NULL) liefert dir die Sekunden, die seit 1970 vergangen sind zurück. Das hat dann im Endeffekt den selben Effekt wie timeGetTime(): Der Zufallsgenerator hat jedes Mal beim Programmstart einen anderen Startwert.

blue lord
05.12.2004, 10:40
time(NULL) liefert dir die Sekunden, die seit 1970 vergangen sind zurück.
Ok, dann ist es gut.

Ineluki
05.12.2004, 13:57
ich tippe einfach mal, dass du entweder windows.h nicht eingebunden hast, oder dass du vergessen hast, bei den linkeroptionen -lwin32 anzugeben ... weil timeGetTime sollte ne windowsAPI funktion sein, wenn ich mich nicht taeusche ... und diese bibliotheken scheint msvc++ gleich mit einzubinden ...

versuchs mal mit project->optionen->parameter->linker->-lwin32

Gruss Ineluki

Jesus_666
05.12.2004, 14:07
Hab selber Visual C++ .net und dass was du darüber zu wissen glaubst ist Unsinn. Du scheinst dass .net Framework und Managed C++ mit der ganzen Entwicklungsumgebung gleichzusetzen. Das sind aber nur Zugaben, denn das Hauptaugenmerk liegt immer noch ganz klar auf C++. Die Visual Studio .net IDE ist meiner Meinung nach die beste auf dem Markt, da können Borland, Eclipse etc. einpacken. Aber MS Hasser werden dazu wohl allein schon aus Prinzip eine andere Ansicht haben...
Ah. Ich habe mich auf Microsofts C++-artiges Frontend für Dotnet bezogen; nicht auf die IDE selbst.
Naja, so oder so würde ich Programmieranfängern nicht zu VC++ raten - wer weiß, ob es sich für sie lohnt, für teures Geld extra eine IDE mit Compiler zu kaufen.


Was soll eigentlich das Gerede mit dem Standard? Mir ist noch kein Quelltext( ca. 10GB im Laufe der letzten Jahre, hauptsächlich Graphics Programming Zeugs ausm Inet) vorgekommen, den ich nicht mit VC++, sei es die 6.0 oder die 7.0(.net) Version, aufgrund von standardkonformitäts-Problemen kompilieren konnte. Wenn es mal Probleme gab dann wegen Plattform-abhängiger Sourcecodes.

Wenn jemand standardkonformes C++ coden will, kann er dass spätestens seit VC++ 7.0 (.net) machen, den im Gegensatz zur 6.0 Version ist der neue Compiler mind. so konform wie andere Compiler, er muss halt nur auf die MS-spezifischen Sachen verzichten. Übrigens, wie schon im vorherigen Satz angedeutet haben auch andere Compiler Probleme mit dem Standard, z.B. bei extravaganten Template-Geschichten etc.
Visual C++ die IDE ist wunderbar, wenn man ISO-konformen Code schreiben will. Visual C++ die Sprache ist es nicht. Das Problem ist, daß Leute ab und zu VC++ (IDE), VC++ (Sprache) und C++ verwechseln und dann beispielsweise Fragen stellen, wie man in C++ Features aus VC++ (IDE) benutzt.

MuadDib
05.12.2004, 14:55
Das sind aber nur Zugaben, denn das Hauptaugenmerk liegt immer noch ganz klar auf C++.

IMO mehr auf C#, was rein aus Marketinggründen ja auf der Hand liegt. Der C++-Teil hat sich nicht wirklich gegenüber VS6.0 verändert, IMO.



Die Visual Studio .net IDE ist meiner Meinung nach die beste auf dem Markt, da können Borland, Eclipse etc. einpacken. Aber MS Hasser werden dazu wohl allein schon aus Prinzip eine andere Ansicht haben...
Ich habe Visual Studio in der 5.0, 6.0 und auch .NET Version jahrelang verwendet, eigentlich schon vor Beginn meines Studiums. Und ehrlich gesagt, war es wirklich eine Klasse IDE mit wahnsinnig viel Features und Klim-Bim, die das Programmieren schon erleichtern. ABER, die einzigen verwendbaren Features, die man sonst bei anderen Entwicklungsumgebungen nicht hat, sind Tools für den leichteren Umgang mit der grausigen WinAPI. Klar, WinAPI ohne VS zu programmieren ist bei umfangreichen Programmen glatter Selbstmord. Aber für den Rest tuts eine andere IDE auch, und Eclipse ist dank der großartigen CDT (=C Developer Tools) ganz klar die beste Alternative, die man zur Zeit findet. Ich wüßte kein Feature, dass ich großartig vermissen würde, und da ich keine WinAPI verwende, komm ich damit gut klar :)
Noch dazu gibts Eclipse für andere Plattformen auch, und als Linux-User bin ich dankbar dafür.

Also nochmal: Nichts gegen Visual Studio, aber ich denke, dass man es sich nicht zweimal überlegen muss, eine 2-3 GB große und klobige Umgebung zu installieren, für die man noch viel Geld ausgibt, wenn man die gleiche Funktionalität schneller, schlanker und umsonst bekommen kann.

Master of Disaster
15.12.2004, 02:19
I
[...]
Und Sachen die ich damit code darf ich ja nicht weitergeben, bzw. kommt beim ausführen eines solchen Programms immer ne Anzeige, dass ich das Programm nicht veröffentlichen darf. :(

Daß die Entwicklungsumgebung (Dev-C++) und der Compiler (mingw-g++/mingw-gcc) unter der GPL lizensiert sind heißt noch lange nicht, daß du das Programm welches du damit entwickelst auch unter der selben Lizenz herausbringen mußt.

Firzen
15.12.2004, 16:53
Ich denke, blue lord hat sich da auf die Autorenversion von MSVC++ bezogen. Da erscheint eben vor jedem Programmstart diese Meldung, dass man sein Programm nicht weitergeben darf, oder so ähnlich.

kpayne
15.12.2004, 16:58
Ja du kannst ja das ding da proggen, und mit DevC++ bzw. mit dessen Compiler kompilieren? das geht doch oder?

cya

MagicMagor
15.12.2004, 17:16
Daß die Entwicklungsumgebung (Dev-C++) und der Compiler (mingw-g++/mingw-gcc) unter der GPL lizensiert sind heißt noch lange nicht, daß du das Programm welches du damit entwickelst auch unter der selben Lizenz herausbringen mußt.
Interessant. Beim Freepascal-Compiler steht extra dabei, daß nur Programme, die den Source des Compilers verwenden unter die GPL fallen. Der Compiler selber aber unter eine LGPL und die damit erstellten Programme keinerlei Einschränkungen haben.
Ich hab normalerweise immer gedacht, wenn ein Programm unter der GPL steht bedeutet daß, das jedes Programm was mithilfe dieses Programmes erstellt wird auch unter die GPL fällt. Wieso ist da jetzt bei Compilern/IDEs so eine Ausnahmeregelung, das mit dem Compiler und der IDE erstellte Programme nicht unter die GPL fallen, obwohl Compiler und IDE unter der GPL stehen?
Bin da jetzt leicht verwirrt, weil ich eh nie so richtig bei diesen Lizenzen durchblicke..

MuadDib
15.12.2004, 17:51
Nun, das sind zwei paar Schuhe. Jedes Programm. welches GPL-Programme verwendet, sprich sie als zwingende Bibliothek voraussetzt bzw. den Quellcode mitausliefert, oder aber welches GPL-Programme erweitert, muss wieder als GPL Programm veröffentlicht werden.

Deswegen steht auch auf der Seite, dass Programme, die den Source des Compilers verwenden, ebenfalls wieder unter GPL fallen. Wenn du allerdings dein Programm damit compilierst, benutzt du ja nicht den Quelltext.

blue lord
16.12.2004, 15:08
Ich denke, blue lord hat sich da auf die Autorenversion von MSVC++ bezogen. Da erscheint eben vor jedem Programmstart diese Meldung, dass man sein Programm nicht weitergeben darf, oder so ähnlich.
Jo,
das habe ich gemeint.