PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3 Fragen zum Programmieren


RaCo
2004-06-01, 21:54:32
Ich hätte wie erwähnt 3 Fragen zum Thema programmieren, nämlich folgende:

1. Wenn man nichts kann, womit fängt man am besten an?
(ich schliesse HTML, PHP etc. aus, es geht nur um C++,C# etc.)

2. Wofür verwendet man, oder wofür werden die Programmiersprachen (hauptsächlich) verwendet?

und

3.Was würdet ihr vorschlagen um es zu lernen? Bücher (bspw. von M+T), Tutorials .... ?


Danke schonmal im voraus für eure Antworten

Gruss RaCo

ethrandil
2004-06-01, 22:39:07
Original geschrieben von RaCo
Ich hätte wie erwähnt 3 Fragen zum Thema programmieren, nämlich folgende:

1. Wenn man nichts kann, womit fängt man am besten an?
(ich schliesse HTML, PHP etc. aus, es geht nur um C++,C# etc.)

Die disskusion ist ewig, und vielleicht unendlich ;)

Original geschrieben von RaCo
2. Wofür verwendet man, oder wofür werden die Programmiersprachen (hauptsächlich) verwendet?

C++: Schreiben Platformabhängiger Programme mit Objektorientierter Umgebung (z.B. auch Spiele, Browser, ...)
C: Wie C++ nur ohne Objektorientierung, dadurch einfacher
C#: Sprache mit Bytecode, d.H. der Code ist theoretisch Betriebssystemunabhängig. Microsoft unterstützt aber nur Microsoft ;) Leichtere Sprache als C++.
Java: Auch Bytecodebasiert. Wird von Sun, nicht MS geleitet. C# sehr ähnlich, jedoch etwas anders. Wirklich Plattformunabhängig (wenns ne VM gibt).
PHP: vornehmlich Scripte für Internetseiten, mti denen du z.B. foren und newsletter machst.
.
.
.

- Eth

RaCo
2004-06-02, 07:13:00
Ok Danke das hilft schonmal,
ich müsste nur noch zusätzlich wissen, was man zum programmieren für Programme nimmt. Denn ich denke ich werde mich mal sobald ich bischen mehr Zeit hab an C# wenden, da ich gerne unabhängige Progs machen würde, danach kommt dann JAVA^^

RaCo

Stone2001
2004-06-02, 10:37:02
Original geschrieben von RaCo
Ok Danke das hilft schonmal,
ich müsste nur noch zusätzlich wissen, was man zum programmieren für Programme nimmt. Denn ich denke ich werde mich mal sobald ich bischen mehr Zeit hab an C# wenden, da ich gerene unabhängige Progs machen würde, danach kommt dann JAVA^^

RaCo
Ich würde zuerst JAVA lernen und mir dann C# anschauen. Ist aber Geschmackssache, JAVA ist halt im Augenblick weiter verbreitet als C#!

Eigentlich braucht man nur ein Programm zu programmieren (heutzutage, früher brauchte man mehr) und zwar eine IDE, eine Entwicklungsumgebung in der Compiler, Debugger, ... schön zusammengefasst sind.
Für JAVA gibt da z.B. Eclipse (www.eclipse.org)! Für C# dürfte Microsoft Visual Studio die beste Wahl sein (was sich Microsoft auch teuer bezahlen läßt).

micki
2004-06-02, 13:11:04
Original geschrieben von ethrandil
C#: Sprache mit Bytecode, d.H. der Code ist theoretisch Betriebssystemunabhängig. Microsoft unterstützt aber nur Microsoft ;)

- Eth
wie gut dass mono (http://www.go-mono.com/) die restlichen Betriebssysteme mit abdeckt.

MfG
micki

harlekin
2004-06-02, 13:50:42
Ganz grundsätzlich würd ich mit C anfangen. Es ist vielleicht
am anfang etwas schwieriger, aber man lernt dadurch sauber
und strukturiert zu programmieren. Nach C kommt natürlich
C++ an die Reihe. Mit diesen beiden Sprachen deckt man
ziemlich alles ab und man tut sich nicht wirklich schwer
beim Erlernen von neuen Sprachen.
Java ist zwar ganz nett, aber es verleitet schnell zum
"schlampigen" Programmieren und ist daher als Einstieg nicht
zu gebrauchen. C# hab ich mir noch nicht angeschaut, da es
ein verzweifelter Versuch von MS ist Java vom Markt zu verdrängen.
Kein vernünftiges Projekt verwendet bis jetzt C#.
PHP, Perl, Python ... sind ganz nett zum nebenbei lernen aber
als Einstiegssprache auch nicht zu gebrauchen (siehe JAVA)

MfG

Harlekin

ScottManDeath
2004-06-02, 15:13:12
Original geschrieben von harlekin
Ganz grundsätzlich würd ich mit C anfangen. Es ist vielleicht
am anfang etwas schwieriger, aber man lernt dadurch sauber
und strukturiert zu programmieren.

Mhmm, irgendwie verleitet (reines ) C aber schnell zu unübersichtlichem monolithischen und damit schwer wartbaren Code (wie z.B. #defines, Makros, goto, ...).
Ich würder eher C++ bevorzugen, dabei zu Beginn aber ehrer "C-artig" schreiben und Features von C++ nutzen. Später dann, wenn man Erfahrung hat dann den objektorientierten Teil verwenden.

Original geschrieben von harlekin
Mit diesen beiden Sprachen deckt man
ziemlich alles ab und man tut sich nicht wirklich schwer
beim Erlernen von neuen Sprachen.


Full ACK, mit C++ sind z.B. Java und C# nicht wirklich die Hürde.

Original geschrieben von harlekin
Java ist zwar ganz nett, aber es verleitet schnell zum
"schlampigen" Programmieren und ist daher als Einstieg nicht zu gebrauchen.

Ansichtsache ;) Inwiefern meinst Du schlampig?


Original geschrieben von harlekin
C# hab ich mir noch nicht angeschaut, da es
ein verzweifelter Versuch von MS ist Java vom Markt zu verdrängen.
Kein vernünftiges Projekt verwendet bis jetzt C#.


.NET (und damit C#, VB.NET, J#, Managed C++) hat sicherlich einige Gemeinsamkeiten mit Java und steht damit in Konkurrenz zu Java. Allerdings liegt der Foukus von .NET primär auf Interoperabilität und weniger auf Plattformunabhängigkeit. Ziel ist es unter Anderem durch die Common Language Specification einen sprachübergreifenden Binärstandard zu schaffen (den es z.B. für C, aber nicht für C++ gibt) Mit Java hätte ich wohl mehr Gymnastik machen müssen


Zum andern ist es recht einfach bestehende COM Objekte zu verwenden, ein nicht zu unterschätzender Aspekt der besonders Middleware Hersteller interessieren dürfte, können sie doch graduell nach .NET migrieren. Bei Java müssten sie alles neu entwickeln...

In einem Projekt an dem ich gerade arbeite hab ich die Vorteile nutzen können:

-In C++ ein COM Objekt das einen USB Treiber wrappt.
-In Managed C++ eine Klasse die dieses COM Objekt und Legacy C++ Code nutzt, das ganze über .NET verfügbar macht.
-In C# eine Remoting Anwendung die eine Client/Server Verbindung aufbaut und dem Cliente Dienste des Servers verfügbar macht.
-Den .NET Client als COM Objekt verfügbar gemacht und in einem DirectShow COM Plugin mit C++ genutzt

Z.B. Visual Studio .NET 2003 nutzt zum Teil .NET.
Windows Longhorn wird mit dem WinFX den überwiegenden Teil der ehemals prozeduralen Windows API über .NET objektorientiert offenlegen. Longhorn ist nicht wirklich klein...

mrdigital
2004-06-02, 15:18:30
Original geschrieben von harlekin
Ganz grundsätzlich würd ich mit C anfangen. Es ist vielleicht
am anfang etwas schwieriger, aber man lernt dadurch sauber
und strukturiert zu programmieren. Nach C kommt natürlich
C++ an die Reihe. Mit diesen beiden Sprachen deckt man
ziemlich alles ab und man tut sich nicht wirklich schwer
beim Erlernen von neuen Sprachen.
Java ist zwar ganz nett, aber es verleitet schnell zum
"schlampigen" Programmieren und ist daher als Einstieg nicht
zu gebrauchen. C# hab ich mir noch nicht angeschaut, da es
ein verzweifelter Versuch von MS ist Java vom Markt zu verdrängen.
Kein vernünftiges Projekt verwendet bis jetzt C#.
PHP, Perl, Python ... sind ganz nett zum nebenbei lernen aber
als Einstiegssprache auch nicht zu gebrauchen (siehe JAVA)

MfG

Harlekin

*räusper*
C ist eine sehr "dreckige" Programmiersprache, man muss sich keine ernsten Gedanken über Typen machen, kann wild ohne Cast zwischen den Typen zuweisen (mit teilweise unversagbaren Ergebnissen), man kann sich wild im Speicher austoben, muss sich selbst dynamisch Speicher allozieren und wieder freigeben, es gibt Pointer, mit dennen man so richtig Schlammasel anrichten kann und so weiter und so fort. Alles keine Eigenschaften, die sauber strukturierte Programmierung fördern. Das C sehr mächtig ist, steht dabei nicht zur Debatte! C++ ist ein Hybride, und IMHO die "dreckigste" der höheren Programmiersprachen, man kann wild C und C++ Code mischen, man muss sich beim Programmieren an gar kein Konzept halten. (auch hier gilt wieder, dass C++ äusserst mächtig ist und man sehr schnellen Code erzeugen kann).
Java ist, was das angeht wesentlich sauberer, es gibt eine anständige Typenprüfung, ich dachte sogar zur Laufzeit, man muss konsequent im objektorientierten Modell bleiben, es gibt keine Pointer und man hat kein Theater mit der Speicherverwaltung an der Backe. Von daher eine wesentlich einfachere Lernsprache als C oder C++. Für C# gilt eigentlich das selbe wie für Java, ist halt eine MS Entwicklung, mit der einem das neue .Net Framework dann auch zur Verfügung steht, wenn man ein Projekt hat, dass von den neuen .Net Fähigkeiten profitieren soll, ist das schon eine Überlegung wert.

ScottManDeath
2004-06-02, 15:23:21
Original geschrieben von mrdigital
*räusper*
C ist eine sehr "dreckige" Programmiersprache, man muss sich keine ernsten Gedanken über Typen machen, kann wild ohne Cast zwischen den Typen zuweisen (mit teilweise unversagbaren Ergebnissen), man kann sich wild im Speicher austoben, muss sich selbst dynamisch Speicher allozieren und wieder freigeben, es gibt Pointer, mit dennen man so richtig Schlammasel anrichten kann und so weiter und so fort. Alles keine Eigenschaften, die sauber strukturierte Programmierung fördern. Das C sehr mächtig ist, steht dabei nicht zur Debatte! C++ ist ein Hybride, und IMHO die "dreckigste" der höheren Programmiersprachen, man kann wild C und C++ Code mischen, man muss sich beim Programmieren an gar kein Konzept halten. (auch hier gilt wieder, dass C++ äusserst mächtig ist und man sehr schnellen Code erzeugen kann).
Java ist, was das angeht wesentlich sauberer, es gibt eine anständige Typenprüfung, ich dachte sogar zur Laufzeit, man muss konsequent im objektorientierten Modell bleiben, es gibt keine Pointer und man hat kein Theater mit der Speicherverwaltung an der Backe. Von daher eine wesentlich einfachere Lernsprache als C oder C++. Für C# gilt eigentlich das selbe wie für Java, ist halt eine MS Entwicklung, mit der einem das neue .Net Framework dann auch zur Verfügung steht, wenn man ein Projekt hat, dass von den neuen .Net Fähigkeiten profitieren soll, ist das schon eine Überlegung wert.

Full ACK, siehste ich konnte gar nicht all das "unschöne" an C aufzählen..... ;)

Zum lernen Java oder C#.

P.S. Ich mag C++ trotzdem am meisten (template / define Metaprogrammierung...), obwohl ich fast alles mit C# mache

GUI klick0rn rulz ;)

harlekin
2004-06-02, 15:55:25
Ok, ich muss euch beiden in gewissen Bereichen zustimmen.

C und C++ kann!! man äusserst !!! grauenhaft und schlampig
programmieren... das problem dabei ist, dass man auch dabei
ausserst schnell auf die Schnauze fällt :-)
sprich, man wird indirekt zum schönen Programmieren gezwungen.

Zu java möchte ich noch sagen, dass ich ein grosses Problem
mit dem garbage collector hab. ich mag es einfach nicht wenn
ich nicht die "kontrolle" über den Speicher habe den ich brauch.
ausserdem ist java langsam, hat im vergleich zu C/C++ nicht
annähernd die Mächtigkeit und frisst Speicher wie ein amerikanisches
Auto Benzin. Des weiteren ist es meiner Meinung nach eine sagen wir
mal sehr seltsame Sache alle Methoden inline zu schreiben...
fördert nicht gerade die Übersicht.

Der grosse Nachteil beim Lernen von Java ist, dass man das
Prinzip der Objektorientierten Programmierung sofort beherrschen
(verstehen) muss, da man ansonsten mit JAVA nicht glücklich wird.
In C++ kann ich das ganze auch leicht umgehen, indem ich quasi C
code schreibe.

ethrandil
2004-06-02, 16:27:31
Original geschrieben von harlekin
Zu java möchte ich noch sagen, dass ich ein grosses Problem
mit dem garbage collector hab. ich mag es einfach nicht wenn
ich nicht die "kontrolle" über den Speicher habe den ich brauch.
ausserdem ist java langsam, hat im vergleich zu C/C++ nicht
annähernd die Mächtigkeit und frisst Speicher wie ein amerikanisches
Auto Benzin.
AAAAH, ein Gerücht :D

Original geschrieben von Capt'N Coax
Unter anderem haben mich solche Artikel wo zu oben genannter Aussage veranlasst:

http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

Ab Punkt 2 fallen dort ein paar interessante Argumente.
Das ist aber nicht die einzige Seite die dergleichen beschreibt, allerdings krame ich jetzt nicht nach Links :)

N8

grakaman
2004-06-02, 16:45:44
Original geschrieben von harlekin
Des weiteren ist es meiner Meinung nach eine sagen wir
mal sehr seltsame Sache alle Methoden inline zu schreiben...
fördert nicht gerade die Übersicht.


Du suchst wohl lieber in einer Datei mit tausenden von Zeilen die Methode einer Klasse heraus? Komisch, ich finde das eher unübersichtlich.

harlekin
2004-06-02, 17:45:17
Deswegen hat man meist für jede Klasse eine
eigene Datei....

grakaman
2004-06-02, 18:45:56
Original geschrieben von harlekin
Deswegen hat man meist für jede Klasse eine
eigene Datei....

Nein das hat man eben nicht "meist" so. Und wenn du jede einzelne Klasse in eine eigene Datei schreiben willst, dann kannst du die Methoden auch gleich in die Klasse schreiben. Gerade die Möglichkeit Methoden außerhalb einer Klasse definieren zu können, zeigt eigentlich eher den dreckigen OO Aufsatz von C++.

ethrandil
2004-06-02, 18:55:37
... und wenn du meinst es ist übersichtlicher wenn die Methodensignaturen am Anfang stehen, dann guck dir mal Javadoc an =).

- Eth

harlekin
2004-06-02, 19:07:18
irgendwie denke ich wir meinen ca. das gleiche
aber reden aneinander vorbei...

ums auf gut deutsch zu sagen...

IMHO gehören klassen/methoden deklaration und definition getrennt

ich weiss zwar nicht was daran unübersichtlicher sein soll, als wie
in java, wo ich deklaration und definition zusammen in einem file
hab... aber vielleicht könnt ihr mir das ganze erklären

ethrandil
2004-06-02, 19:11:13
In Java hat man einfach eine Datei für eine Klasse. Finde ich persönlich sehr praktisch, klar.

Ich kann dich schon verstehen, dass du die Signaturen am Anfang einfach übersichtlich findest, finde ich auch. Aber mit Javadoc hat man ein ideales Mittel diese Übersichtlichkeit auch für Java zu erhalten.

- Eth

harlekin
2004-06-02, 19:32:29
mir geht es da nicht so sehr um die übersichtlichkeit....
es ist einfach schöner fürs design, wenn ich einmal das gerüst
der klasse designe (das dann die anderen gleich verwenden können)
sozusagen als interface und mir dann die gedanken mache,
wie ich die Methoden implementiere...
der vorteil daran ist, dass ich dann das header file nicht
angreifen muss...

ethrandil
2004-06-02, 19:34:48
Da würd ich dir doch glatt nen UML-Editor empfehlen ;)

aber lassen wir das. Geschmackssache.

- Eth

grakaman
2004-06-02, 20:18:01
Original geschrieben von harlekin
mir geht es da nicht so sehr um die übersichtlichkeit....
es ist einfach schöner fürs design, wenn ich einmal das gerüst
der klasse designe (das dann die anderen gleich verwenden können)
sozusagen als interface und mir dann die gedanken mache,
wie ich die Methoden implementiere...
der vorteil daran ist, dass ich dann das header file nicht
angreifen muss...

Dafür musst du die Quelldatei anfassen. Unter Java/C#/VB muss man keine Prototypen in Headerdateien definieren bzw. vor den eigentlichen Funktionen/Methoden. Und wenn ich mit Java/C# ein Interface benutze, was in einer extra Datei liegt, so habe ich immer noch weniger Dateien als für gewöhnlich unter C++.

RaCo
2004-06-02, 20:40:05
Ist noch recht interessant was ihr alles so erzählt.
Könntet ihr mir sagen mit was ich es lernen sollte?
Hab mir mal M+T für C++ und C# angeschaut! Nachteil dabei ist ganz klar das C++ nur sehr beschränkt ist und für ganz grobe Anfänger:
http://www.mut.de/main/main.asp?page=home%2Fbookdetails&TOKEN=%7B005D463D%2D9E6C%2D4975%2D98E2%2D143027BBD96D%7D&productID=54980&SID=%7B3C573D00%2DFFD1%2D4CBA%2DBEE5%2DE5181B64CED2%7D

C#:
http://www.mut.de/main/main.asp?page=home%2Fbookdetails&TOKEN=%7B3D529D0C%2D250E%2D46DE%2DB9B4%2DE779E03C382A%7D&productID=12978&SID=%7B1C38C8F8%2D6F14%2D40E2%2D80D8%2D8D6FD20AE6CE%7D

ScottManDeath
2004-06-02, 20:51:06
Original geschrieben von harlekin
C und C++ kann!! man äusserst !!! grauenhaft und schlampig
programmieren... das problem dabei ist, dass man auch dabei
ausserst schnell auf die Schnauze fällt :-)
sprich, man wird indirekt zum schönen Programmieren gezwungen.


Mhmmm, man macht ja auch eine Fahrschule damit man weiss dass man auf der rechten Strassenseite fahren muss damit man nicht in den Gegenverkehr gerät.
Man kann auf unterschiedliche Art und Weise fahren, die einen gehen ganz sanft mit Gas, Kupplung und Bremse um, während die anderen die Reifen quietschen lassen und schneller zum Ziel kommen.
Ich denke die Analogie ist offensichtlich...


Original geschrieben von harlekin
Zu java möchte ich noch sagen, dass ich ein grosses Problem
mit dem garbage collector hab. ich mag es einfach nicht wenn
ich nicht die "kontrolle" über den Speicher habe den ich brauch.
ausserdem ist java langsam, hat im vergleich zu C/C++ nicht
annähernd die Mächtigkeit und frisst Speicher wie ein amerikanisches
Auto Benzin.

Der GC ist schneller beim allozieren, langsamer beim deallozieren.

Pointer++ ist halt schneller als eine Liste durchzugehen, Ein voller GC ist langsamer als die Blöcke wieder der Liste hinzuzufügen. But who cares?

Speicher ist billig und CPUs skalieren schnell genug.
Du bekommst für die eingesparte Entwicklungszeit/Entwickler (bei Java und .NET) locker eine neue CPU und hast noch Geld übrig

Kontrollfetischist ;) Wie oft brauchst du diese Kontrolle? Du verlierst etwas Kontrolle, gewinnst aber Development Speed.

Original geschrieben von harlekin
Des weiteren ist es meiner Meinung nach eine sagen wir
mal sehr seltsame Sache alle Methoden inline zu schreiben...
fördert nicht gerade die Übersicht.



Mhmm, mit einer vernünftigen IDE (und nein ich rede nicht von Notepad oder Emacs ;) ) ist es eigentlich egal wo die Methoden stehen. Ich hab die Erfahrung gemacht das ich mit inline Methodenrümpfen besser zurechtkommen da ich nicht an zwei Stellen ändern muss wenn ich die Signatur ändere. Nachteil ist aber dass ich das Interface der Klasse nicht so leicht erkennen kann, aber dafür gibts ja die IDE ;)

Original geschrieben von harlekin
Deswegen hat man meist für jede Klasse eine
eigene Datei....

Mhmm finde ich etwas übertrieben für Klassen die nur ein/zwei Methoden überladen extra Files zu machen. Bei komplexeren Klassen auf jeden Fall! Hab grade bei meinen Suchalgorithmen die 10 Klassen von einer auf 3 Dateien verteilt....


Original geschrieben von harlekin
mir geht es da nicht so sehr um die übersichtlichkeit....
es ist einfach schöner fürs design, wenn ich einmal das gerüst
der klasse designe (das dann die anderen gleich verwenden können)
sozusagen als interface und mir dann die gedanken mache,
wie ich die Methoden implementiere...
der vorteil daran ist, dass ich dann das header file nicht
angreifen muss...


Dafür hat man (Java / .NET) Interfaces und in C++ abstrakte Basisklassen. Man implementiert die Interfaces in Klassen, greift nur über diese zu.

Datei mit Interfaces + Datei mit den Implementationen vs. Header Datei und Implementationsdatei. What's the point?



P.S.
Ich sollte auf 'Antworten' klicken und nicht zwischendrinne weggehen....

Capt'N Coax
2004-06-02, 22:46:51
Original geschrieben von harlekin
ausserdem ist java langsam, hat im vergleich zu C/C++ nicht
annähernd die Mächtigkeit und frisst Speicher wie ein amerikanisches Auto Benzin.

Die Mächtigkeit, die du da angeblich benötigst, möcht ich gerne erklärt bekommen...
Wofür brauchst du die? Was für gigantomanisch phänomenale Programme schreibst du denn, die eine "mächtige" Sprache benötigen? Oder geht es hier um eine Art Kult a lá "C++ is Cool, weil es alles KÖNNTE was ich will"?

Original geschrieben von harlekin
[...](verstehen) muss, da man ansonsten mit JAVA nicht glücklich wird.
In C++ kann ich das ganze auch leicht umgehen, indem ich quasi C- Code schreibe.

... und damit so ziemlich alles falsch machst, IMO. Klar kann man unter Umständen schnelleren C- Code einbauen, aber wenn du nicht OO programmieren willst, programmiere direkt in C und verbringe den Tag mit debuggen.
Ehrlich, ich bin froh wenn ich mit Zeigern und Speichermanagement nix zu tun haben muss und mich eher aufs
Problem konzentrieren kann. Leute die seit Jahren mit C++ oder in C programmieren werden dem widersprechen, würde ich an deren Stelle wahrscheinlich auch tun, aber der (so gerne beweislos) angeführte Speedverlust der Sprache ist für dich vielleicht überhaupt nicht ausschlaggebend?

Will damit nur sagen, das man "seine" Sprache an seine Anforderungen ausrichten sollte.

Meinen etwas ironischen Ton nicht falsch interpretieren, aber wegen eigener Erfahrung bin ich von meinem hohen "Speed ist alles"- Ross heruntergekommen. Bis vor garnicht allzulanger Zeit war ich C++ Verfechter, obwohl ich überhaupt nicht wusste wovon ich rede.

Gut, das weiss ich heute auch noch nicht ;)

ScottManDeath
2004-06-02, 23:18:43
Man sollte immer folgendes bedenken:

Jedes Problem erfordert das angemessenste Werkzeug.
Nicht jedes Werkzeug löst jedes Problem mit minimalem Aufwand.

Nur 10% des Codes werden 90% der Zeit durchlaufen, demzufolge ist nur dort Speed primär. Es ist auch kein Problem mehrere Sprachen in einem Projekt zu verwenden, siehe mein obiges Posting.

Es gibt Probleme, für die ist C++ optimal, für andere ist Java/.NET optimal.


Ganz persönlich ist C++ meine "Muttersprache", während C# meine "Erste Fremdsprache" ist. Zur Zeit mach ich eigentlich alles in C#, abgesehen von Grafikprogrammierung. Lästig finde ich eigentlich nur der Mangel an templates, der aber auch wie bei Java in der nächsten Revision "gefixt" wird.

Wenn 2005 das neue Visual Studio kommt (mit C# 2.0, ein verbessertes C++ für .NET) werde ich wohl eine schwere Entscheidung haben zwischen C# und C++/CLI. Mal sehen....

harlekin
2004-06-03, 00:53:55
Ok.... :-)

ich denke diese Diskussion führt im Endeffekt nix...
jeder von uns kann wahrscheinlich relativ lange die
vor und Nachteile der einen oder anderen Programmiersprache
aufzählen und der andere kann diese wiederlegen....

können wir uns wenigstens darauf einigen, dass es immer
davon abhängt, was man machen möchte... nach dem motto
"use the right tool for the right job"
alles andere ist eine reine glaubenssache und kann ewig diskutiert
werden (wird es auch).

Ich bevorzuge solche diskusionen meist in igendein lokal und mit
ein bier in der Hand zu führen ;-)


MfG

Harlekin

ScottManDeath
2004-06-03, 01:00:39
Original geschrieben von harlekin
können wir uns wenigstens darauf einigen, dass es immer
davon abhängt, was man machen möchte... nach dem motto
"use the right tool for the right job"


Meine Rede....

Selbst wenn mein späterer Boss zu mir sagen würde: Junge, wir machen jetzt Visual Basic weil Visual trendy klingt, ich würde es tun!
habt ihr wirklich geglaubt ich würde meine Selbstachtung aufgeben? ;D

grakaman
2004-06-03, 09:09:58
Original geschrieben von ScottManDeath
Wenn 2005 das neue Visual Studio kommt (mit C# 2.0, ein verbessertes C++ für .NET) werde ich wohl eine schwere Entscheidung haben zwischen C# und C++/CLI. Mal sehen....

Naja, so richtig schön ist das aber auch nicht. Dann hantierst du mit Value/Ref Klassen herum, benutzt gcnew anstatt new oder ^ anstatt * für einen Zeiger (freilich alles nur bei CLR Code). Wahrscheinlich kannst du unmanaged und managed Code so besser Mischen, weswegen ich das ganze eher als Migrationslösung zu .NET ansehe.

MfG

RaCo
2004-06-03, 15:51:41
Hab ich das richtig verstanden das Tool zum proggen, nennt man IDE??? enthält also Compiler Debugger und so Sachen?
Für C# und JAVA hab ich jetzt eins, jetzt bräucht ich noch eins für C++ bzw C...
Kann mich nur nicht entscheiden zwischen C und C++, da ich den Unterschied nicht verstehe ^^

Chemic
2004-06-03, 17:02:55
Häng mich mal mit dran.

Könntet ihr vielleicht mal ein paar Beispiele geben was so mit welcher Programmiersprache gemacht wird.

Also so Messenger mit xxx, Spiele mit xxx², Treiber mit xxx³, usw.

Gerne auch Konkrete Beispiele, also bestimmte Messenger, etc.

thx

Exxtreme
2004-06-03, 17:30:48
Original geschrieben von RaCo
Kann mich nur nicht entscheiden zwischen C und C++, da ich den Unterschied nicht verstehe ^^
C++ ist objektorientiert, bei C sind Daten und Funktionen getrennt.

mrdigital
2004-06-03, 19:43:00
Original geschrieben von RaCo
Hab ich das richtig verstanden das Tool zum proggen, nennt man IDE??? enthält also Compiler Debugger und so Sachen?
Für C# und JAVA hab ich jetzt eins, jetzt bräucht ich noch eins für C++ bzw C...
Kann mich nur nicht entscheiden zwischen C und C++, da ich den Unterschied nicht verstehe ^^
Fang doch mal mit Java an ein "Hallo Welt" Programm zu schreiben. Sowohl der Java Compiler, als auch verschiedene IDE´s (Integrated Develop Environment) gibts für umsonst, wobei du für die allerersten Gehversuche nur den Compiler und einen Texteditor (aka Notepad ;)) brauchst. Das Netz ist voll mit guten Java Tutorials. Ich würde dir empfehlen, erstmal ein paar ganz einfache Sachen zu machen, die keine grafische Oberfläche haben, sondern nur auf die Kommandozeile ausgeben und von dort auch einlesen. Nach zwei, drei Tagen kannste dich dann auch an was grafisches mal ranwagen, wenn du eine IDE mit einem GUI Builder (Graphical User Interface) hast, geht das dann auch recht flott. An sonsten musst du eben alle Aufrufe, um ein Fenster zu zeichenen "von Hand" reinprogrammieren. Alternativ kannst du auch ein Java Applet machen, das dann in einem Webbrowser Kontext abläuft.

mrdigital
2004-06-03, 20:05:56
Original geschrieben von Chemic
Häng mich mal mit dran.

Könntet ihr vielleicht mal ein paar Beispiele geben was so mit welcher Programmiersprache gemacht wird.

Also so Messenger mit xxx, Spiele mit xxx², Treiber mit xxx³, usw.

Gerne auch Konkrete Beispiele, also bestimmte Messenger, etc.

thx
Windows selbst ist in C, zumindest der Kern (wie Linux oder fast alle anderen Betriebssysteme)
Die meisten anderen Sachen sind C++ oder Delphi oder sonst was, wo es einen anständigen GUI Builder für gibt. Die meisten grossen Projekte sind eh im mehreren Sprachen, je nach Programmteil (es macht keinen Sinn eine GUI in C zu schreiben und die Windows API direkt anzusprechen, weil sowas nur viel Zeit zum schreiben braucht, aber der Geschwindigkeitsvorteil des Codes eh nichts bringt, weil der User hier das langsamste Glied ist. Es macht aber schon Sinn den Kern eines MPG4 encoders in C zu schreiben, wenn man die volle Leistung braucht)

del_4901
2004-06-03, 21:04:52
Windows sowie auch die Treiber enthalten noch meißtens einen kleinen Teil Assembler für Prozesswechsel PortPrograming und solche Sachen. Weil C++ halt doch nicht (all)mächtig genug ist. :)

Gast
2004-06-03, 21:31:45
Original geschrieben von ScottManDeath
[...]
Mhmm, mit einer vernünftigen IDE (und nein ich rede nicht von Notepad oder Emacs ;) )
[...]


Holla, Notepad und Emacs auf eine Stufe gestellt...Wenn das gewisse Leute lesen würden... ;)

mfg

RaCo
2004-06-04, 01:15:00
Original geschrieben von Exxtreme
C++ ist objektorientiert, bei C sind Daten und Funktionen getrennt.

Versteh ich zwar immer noch nicht... ( ich bin n00b, hab absolut keinen Plan)

Wenn ich C++ lernen will was brauch ich da für ein IDE und welche Tutorials sind gut?

Capt'N Coax
2004-06-04, 11:25:01
Objektorientiertes Programmieren (OOP) bedeutet eigentlich nichts anderes, als die Wirklichkeit abzubilden.

Du fasst Datenstrukturen als Objekte auf.
Nehmen wir zum Beispiel Tier als Überbegriff. Es gibt Elefanten, Giraffen, Lurche und lustige Biber. Alle diese Tiere sind Unterklassen von der Klasse Tier. Hier liegt also eine Abstraktion vor, die Menschen IMMER bilden. Eine Abstraktion fasst immer die gemeinsamen Eigenschaften aller ihrer Unterklassen zusammen:

Alle Tiere haben ein Herz.
Aber nicht alle Tiere haben 2 Beine.
Also könnte man in der Programmiersprache so vorgehen, dass man eine Oberklasse "Tier" schreibt, der man ein Herz einprogrammiert (wie auch immer). Jetzt kann man von dieser Oberklasse z.B. 2 Unterklassen ableiten, 4Beiner und 2Beiner, da diese ja unterschiedliche Eigenschaften aufweisen. Von der 4Beiner-Klasse leitet sich dann der Elefant, der lustige Biber und und und ab. Die haben von ihrer Oberklasse "Tier" nun ein Herz geerbt, und außerdem alle Eigenschaften der Klasse "4Beiner". Das ist OOP (Naja, natürlich nicht vollständig).

Das Problem bei OOP ist folgendes:
Erstmal muss man sich in die OOP reindenken. Das fällt besonders Leuten schwer, die vorher in nicht OO- Sprachen programmiert haben, weshalb ich den Ansatz erst C, dann C++ mit "dirty OOP" lernen für falsch halte.
Zweitens ist OOP manchmal etwas kompliziert in der Handhabung der Datenstrukturen. Das ist aber freilich Erfahrungssache.

C++ nutzt man in der Regel wenn man halbwegs Speed braucht und alle Bereiche abdecken will. Du kannst in C++ so ziemlich alles schreiben. C ist IMO veraltet, aber deswegen nicht nutzlos. Es ist in vielen Bereichen NOCH schneller als C++ und man kann damit wunderbar systemnahe programmieren. Assembler ist das Unterste was man programmieren kann (sinnvoll jedenfalls), aber ist auch recht hart zu lernen und teilweise einfach sinnlos geworden (durch die schiere Rohpower die wir heute besitzen).

Also meiner Meinung nach bleiben dir 2 sinnvolle Möglichkeiten:
C++ oder Java, aber bitte OOP lernen. Deswegen sogar eher Java, weil du da quasi zu gezwungen wirst. Der Vorteil, den du in C++ hast, ist neben der schnelleren Geschwindigkeit die Möglichkeit mit Zeigern zu hantieren. Ein Prinzip das einem aber auch erst RICHTIG verständlich wird, wenn man in Assembler mal gearbeitet hat. Speichermanagement ist nicht unknifflig und frustrierend, du musst hier halt viel von Hand machen.

Ich emfehle dir Java zum anfangen. Du bekommst hier alles für Lau, du kannst damit OOP lernen und relativ einfach Webanwendungen schreiben. Grafische Oberflächen lassen sich auch ganz gut realisieren. Als Alternative zu Java vielleicht noch C#, aber diese Sprache ist noch neu und kaum verbreitet, und beide ähneln sich schon ziemlich.
Umsteigen auf C++ kannst du immer noch, wenn du dessen "Mächtigkeit" brauchst.

Ansonsten ist alles was du benötigst Motivation.

Anwendungen:
Guru Carmack schreibt Spiele so weit ich weiss dirty mit C++/C und ein wenig Inline-Assembler.
Mit Java wurden so Software Geschichten geschrieben wie Eclipse selber (die Oberfläche die ich nutzen würde ;)), oder jede Menge Kleinkram im Netz. Vor allen Dingen Applets.

Bitte nicht vergessen:
Es gibt noch VIELE andere Sprachen, z.b. Visual Basic, Basic Derivate wie BlitzBasic (für kleine Spiele), Pascal, Logol, BlaBlubb.

Hoffe deholfen z'aben,
Coax

aths
2004-06-04, 13:12:10
Original geschrieben von harlekin
Ganz grundsätzlich würd ich mit C anfangen. Es ist vielleicht
am anfang etwas schwieriger, aber man lernt dadurch sauber
und strukturiert zu programmieren. Nach C kommt natürlich
C++ an die Reihe. Mit diesen beiden Sprachen deckt man
ziemlich alles ab und man tut sich nicht wirklich schwer
beim Erlernen von neuen Sprachen. Imo sollte man besser gleich mit C++ anfangen, wenn man nicht System- oder Netzwerk-Programmierer werden will.

Demirug
2004-06-04, 13:24:28
Original geschrieben von AlphaTier
Windows sowie auch die Treiber enthalten noch meißtens einen kleinen Teil Assembler für Prozesswechsel PortPrograming und solche Sachen. Weil C++ halt doch nicht (all)mächtig genug ist. :)

Also Windowstreiber kann man ohne Probleme in C++ schreiben bei Longhorn Treibern wird C++ ja zum standard Weg erklärt. Bei WindowsNT sollte man die Verwendung von Assembler in den Treibern auch schon immer vermeiden damit sich ein Treiber ohne Probleme von einer Platform auf die andere übernehmen lässt. Die nötigen Funktionen für die Hardware Zugriffe sind alle im DDK vorhanden.

Eigentlich ist Windows ja sowieso ein OOP System dem man dann eine Funktions-API aufgesetzt hat.

RLZ
2004-06-04, 13:33:36
Original geschrieben von RaCo
Wenn ich C++ lernen will was brauch ich da für ein IDE und welche Tutorials sind gut?

Das einfachste unter Windows ist imo der Dev-C++. Installieren und loslegen.
Oder Linux installieren, Emacs/vi benutzen und man hat alle man-Pages in der Rückhand :)
Für Tutorials gibts doch en Sticky, wenn ich mich recht entsinne...
Falls du grösstenteils grafische Oberflächen programmieren willst, würde ich dir zu was anderem raten, bei dem du Fenster zusammenklicken kannst. C C++ sind eher für den Code im Hintergrund bei dem man die Kontrolle und Geschwindigkeit behalten will. Imo halt der Code auf dens ankommt ;)

Chemic
2004-06-04, 14:40:28
Wie schauts eigentlich mit Delphi aus?
Nicht so mächtig wie C/C++ das ist klar, aber was sind da die besonderheiten?

Gast
2004-06-04, 14:42:45
Original geschrieben von RaCo
Hab ich das richtig verstanden das Tool zum proggen, nennt man IDE??? enthält also Compiler Debugger und so Sachen?
Für C# und JAVA hab ich jetzt eins, jetzt bräucht ich noch eins für C++ bzw C...
Kann mich nur nicht entscheiden zwischen C und C++, da ich den Unterschied nicht verstehe ^^ Also der Compiler übersetzt die Hochsprache (C++/Java/VB) in maschinenlesbaren Code. Mit dem Debugger kannst du dein Programm testen, also z.B. schrittweise ausführen. Mit einem Editor schreibst du deine Quelltexte. Oft brauchst du auch noch einen Editor für Eingabemasken, Icons usw. Darüberhinaus einen Klassengenerator, eine ausführliche Hilfe, und, und, und...

Diese ganzen einzelnen Tools werden aber schnell unübersichtlich. Deshalb werden sie unter einer gemeinsamen Oberfläche zusammen gefasst. Und die nennt man dann neudeutsch Integrated Development Environment (Integrierte Entwicklungsumgebung) oder kurz IDE.

MadMan2k
2004-06-04, 15:07:03
Original geschrieben von Chemic
Wie schauts eigentlich mit Delphi aus?
Nicht so mächtig wie C/C++ das ist klar, aber was sind da die besonderheiten?
erstmal ist Delphi keine Sprache, sondern der Name der IDE von Borland - die Sprache ist Pascal.
Der einzige Vorteil von Delphi ist IMO, dass du die GUI zusammenklicken kannst und dadurch schnell zu erfolgen kommst.
Allerdings find ich die Syntax von Pascal, sagen wir "etwas" daneben.
Als Anfänger macht sie vielleicht mehr sinn, da man die Anweisungen einfach lesen kann aber wenn man mal etwas koplexeres mit mehreren Verschachtelungen vor hat verliert man(ich) schnell die Übersicht.

Beispiel Pascal:

if x <> 1 then begin
tu was;
tu noch was;
end;


Beispiel Java/C(++)

if(x != 1){
tu was;
tu noch was;
}


man beachte den schwachsinnigen Vergleichsoperator...

Gast
2004-06-04, 15:25:26
Original geschrieben von MadMan2k
erstmal ist Delphi keine Sprache, sondern der Name der IDE von Borland - die Sprache ist Pascal.Also auf der Webseite von Borland sprechen die aber schon von der Programmiersprache Delphi.

Die von der Firma Borland entwickelte objektorientierte Erweiterung der Programmiersprache Pascal heisst Object Pascal, besser bekannt als Delphi.

Delphi wurde übrigens 1996 Programmiersprache des Jahres.

Aqualon
2004-06-05, 00:33:44
Original geschrieben von MadMan2k
man beachte den schwachsinnigen Vergleichsoperator...
Warum soll denn <> schwachsinniger sein als != zum Vergleich?

Aqua

Pinoccio
2004-06-05, 01:02:29
Original geschrieben von Aqualon
Warum soll denn <> schwachsinniger sein als != zum Vergleich?

Aqua

Weil != die Realität besser abbildet, zB wenn x boolean wäre (ist hier nicht). Besser wäre natürlich, dem OOP-Gedanken zu folgen und !x.equals(Integer.ONE) oder entsprechendes zu nutzen.

mfg Sebastian

mrdigital
2004-06-05, 10:07:15
ich finde <> auch nicht so toll wie != aber das ist nur eine Frage der Gewöhnung, von der Logik her ist <> genau so gut wie != (wenn etwas grösser oder kleiner ist, dann ist es ungleich). Warum das "!x.equals(Integer.ONE)" den OOP besser zeigt, ist mir nicht klar, ich finde diesen Ausdruck eher unhandlich...

pajofego
2004-06-05, 11:15:18
[B]
Der einzige Vorteil von Delphi ist IMO, dass du die GUI zusammenklicken kannst und dadurch schnell zu erfolgen kommst.

Der einzige? Und wenn es der wäre, dann wäre dies schon alleine der Grund sich für Delphi zu entscheiden.
Also was mich richtig an c++ nervt, ist da Fehlen von Properties bzw. indexierte Properties. Wenn c++ doch so toll ist, warum sind sehr viele Ideen von Delphi in c# bzw. .net realisiert worden? Man bedenke, dass der Vater von Delphi, jetzt der Chefentwickler von .net und c# ist.
Einen vernünftigen Vergleich zw. Delphi und c++ findet ihr hier:Delphi vs. C++ (http://ourworld.compuserve.com/homepages/praxisservice/kapit4.htm)

[B]
Allerdings find ich die Syntax von Pascal, sagen wir "etwas" daneben.
Als Anfänger macht sie vielleicht mehr sinn, da man die Anweisungen einfach lesen kann aber wenn man mal etwas koplexeres mit mehreren Verschachtelungen vor hat verliert man(ich) schnell die Übersicht.

Beispiel Pascal:

if x <> 1 then begin
tu was;
tu noch was;
end;


Beispiel Java/C(++)

if(x != 1){
tu was;
tu noch was;
}


man beachte den schwachsinnigen Vergleichsoperator...


Sorry, aber das ist quatsch was du da schreibst. Streng mathematisch gesehen sind die Vergleichs- und die Zuweisungsoperatoren in C++ falsch. Und das geben die C++ Leute soagar selber zu.

- Ugleich bedeutet "<>" und nicht "not gleich" bzw. "!=".

Aber den Vogel schießt c++ mit "==". Wg. der für Zuweisung reservierten "=" (Gleichheitszeichen) verwenden die c++ Leute das hier "==" als Verlgeichoperator.
Da ist aber Delphi/Pascal konsequent richtig, weil:
- Ein Vergleichoperator "=" ein Gleichheitszeichen ist,
- und ein Zuweisungsoperator das hier ":=" ist, so wie wir es in der Mathematik gelernt haben.

Leider werden diese Diskussionen (was ist besser Delphi oder C++) nie aufhören, ich bin der Meinung man muss schon sich wirklich einmal mit beiden Programmiersprachen beschäftigt haben um wirklich eine realistische Aussage dies bezüglich geben zu können. Und meiner Meinung nach würde dies mit einem knappen Unentschieden enden. Meine Traumprogrammiersprache/IDE würde folgendermaßen aussehen:

- Syntax (C++/Java)
- Compilergeschwindigkeit (Delphi wg. der vorübersetzten Unit-Dateien)
- Bib (VCL)
- IDE (Borland)
- Debugger (MS)

So, dass alles finde ich fast in C# mit dem .net Framework wieder. Ich meine, MS wird sich doch nicht irren oder?

Schönes Wochende:D

Pinoccio
2004-06-05, 13:23:41
Original geschrieben von mrdigital
von der Logik her ist <> genau so gut wie != (wenn etwas grösser oder kleiner ist, dann ist es ungleich). Warum das "!x.equals(Integer.ONE)" den OOP besser zeigt, ist mir nicht klar, ich finde diesen Ausdruck eher unhandlich...

IMHO eben nicht. Nehmen wir als Beeispiel komplexe Zahlen, dort existiert keine kanonische Ordnungsrelation, also gibt es eigentlich kein "kleiner" und kein "größer", aber sehr wohl ein "nicht gleich".

"!x.equals(Integer.ONE)" ist natürlich falsch, es gibt bei Integer keine Konstante dieses Namens, sorry.
Was ich meinte war, daß ein "primitiver" Datentyp nicht so recht in eine OOP-Sprache passt und IIRC gibt es ja auch OOP-Sprachen, die sowas nicht machen.

mfg Sebastian

mrdigital
2004-06-05, 19:39:35
Original geschrieben von Pinoccio
IMHO eben nicht. Nehmen wir als Beeispiel komplexe Zahlen, dort existiert keine kanonische Ordnungsrelation, also gibt es eigentlich kein "kleiner" und kein "größer", aber sehr wohl ein "nicht gleich".

"!x.equals(Integer.ONE)" ist natürlich falsch, es gibt bei Integer keine Konstante dieses Namens, sorry.
Was ich meinte war, daß ein "primitiver" Datentyp nicht so recht in eine OOP-Sprache passt und IIRC gibt es ja auch OOP-Sprachen, die sowas nicht machen.

mfg Sebastian
ja so kann man schon argumentieren, aber in der Regel muss man nicht mit komplexen oder mit Vektoren rechnen, wobei man den > oder < Operator dann ja noch mit einer Norm verküpfen kann und dann gibts schon wieder ein Grösser oder Kleiner, also |a| < |b|, an sonsten macht der "<" Operator auch keinen Sinn ;) Aber wenn man mit mathematischer Schreibweise argumentieren will, dann hat pajofego recht...

Pinoccio
2004-06-07, 16:07:00
Original geschrieben von mrdigital
ja so kann man schon argumentieren, aber in der Regel muss man nicht mit komplexen oder mit Vektoren rechnen, wobei man den > oder < Operator dann ja noch mit einer Norm verküpfen kann und dann gibts schon wieder ein Grösser oder Kleiner, also |a| < |b|, an sonsten macht der "<" Operator auch keinen Sinn ;)

Ebend genau deshalb nicht! Es ist ein Unterschied, ob zwei Vektoren verschieden sind oder ebend bloß ihre Norm! Und besonders bei 3D-Grafik rechnet man ja viel mit Vektoren.

Aber was die "mathematische" Unsinnigkeit des Vergleichoperators "==" betrifft, steht ja noch die Frage, ob sich nicht vielleicht doch beide Sichtweisen gut begründen lassen. Problematisch scheint mir, daß man in der Mathematik sowas wie Zuweisung im Sinne von Initialisierung nicht kennt, dort kann man zwar schreiben a=3 und die Zuweisung meinen, aber man kann auch a=3 meinen und dann sagen Widerspruch", es ist nämlich a=4 oder so. Ich hoffe es ist klar was ich meine.

Siehe zB hier (http://www.dietrichgrude.de/kranich/informatik/modellrechner.htm)
(unteres Drittel)
"In mathematischer Schreibweise kann x = 2 zwei unterschiedliche Bedeutungen haben: Es kann heißen, dass eine Gleichung gegeben ist (deren Lösung 2 ist, wenn x aus R ist). Es kann sich aber auch um die Zuweisung des Wertes 2 für die Variable x handeln. Welche Bedeutung gemeint ist, muss sich aus dem Zusammenhang mit anderem Text ergeben.

Beim Formulieren eines Computerprogramms muss aber klar sein, ob eine Gleichung (ein Vergleich) oder eine Wertzuweisung an eine Variable gemeint ist. Deshalb weicht die Syntax in Programmiersprachen von der mathematiküblichen Form ab. "

mfg Sebastian

pajofego
2004-06-07, 20:38:16
Original geschrieben von Pinoccio

"In mathematischer Schreibweise kann x = 2 zwei unterschiedliche Bedeutungen haben: Es kann heißen, dass eine Gleichung gegeben ist (deren Lösung 2 ist, wenn x aus R ist). Es kann sich aber auch um die Zuweisung des Wertes 2 für die Variable x handeln. Welche Bedeutung gemeint ist, muss sich aus dem Zusammenhang mit anderem Text ergeben.


O.K. Also so ganz recht hast du hier nicht, denn eine mathematische Formulierung wie z.B.: x = 2 ist eine "Aussage" (keine Zuweisung!), die besagt, dass x "gleich" 2 ist und diese ist nur "wahr", wenn "x" den Wert zwei animmt.


Beim Formulieren eines Computerprogramms muss aber klar sein, ob eine Gleichung (ein Vergleich) oder eine Wertzuweisung an eine Variable gemeint ist. Deshalb weicht die Syntax in Programmiersprachen von der mathematiküblichen Form ab.


Hier stimm ich dir zu, denn in der Mathematik gibt es streng genommen keine Zuweisung, sondern nur eine "Definition".
Z.B. ist mit der math. Definition "x := 2" die obere Aussage "wahr". Klar ist, dass in Computerprogrammen, die Sache ein bischen anders aussieht, denn die Zuweisung "x = 2" (c++) bzw. "x := 2 " (pascal) ist keine Aussage, sondern die Anweisung für eine Aktion, mit dem Ziel eine bestimmte Veränderung zu bewirken. Und genau eben aus diesem Grund ist pascal genauer als c++, aber streng mathematisch gesehen ebenfalls nicht korrekt!

Denn übersetzt würde eine mathematische Definition, die eines Konstatent Datentyps (const int x = 2), der im gesamten math. Kontext bzw. Programm nicht verändert werden kann, entsprechen.

So ihr Leutz jetzt hock ich mich mal wieder an mein c++ code und weise einmal ein paar variablen etwas zu :D

mrdigital
2004-06-07, 23:13:39
Original geschrieben von Pinoccio
Ebend genau deshalb nicht! Es ist ein Unterschied, ob zwei Vektoren verschieden sind oder ebend bloß ihre Norm! Und besonders bei 3D-Grafik rechnet man ja viel mit Vektoren.
...

ich wollte damit nur zeigen, dass der "<" Operator nur im Zusammenhang mit einer Norm Sinn macht, das zwei Vektoren bei gleichem Betrag nicht das selbe sind ist mir schon klar ;)