# Was kann Java alles?



## A3XX (22. Mrz 2004)

Hi

Totale Newbiefrage ich weiss: Aber was kann man mit Java alles machen? Ich bin jetzt sehr viel im Internet am programmieren gewesen (PHP etc.) und möchte nun eine Programmiersprache auf dem Computer lernen (also eben, nichts, wasnur im Web anwendbar ist  Und ich muss mich für eine Sprache entscheiden. Was kann Java was C++ nicht kann und umgekehrt? Kann man mit Java komplette Anwendungen proggen? Und so weiter...Bitte einfahc mal alles wissenswerte für nen bloody newbie aufschreiben..danke


----------



## Roar (22. Mrz 2004)

Java kann alles bis auf hardwarenahe programmierung.
oder hast du ne konkrete frage ob man was mit java machen kann?


----------



## Reality (22. Mrz 2004)

Ja, mit JAVA kannst du richtige Anwedungen proggen und auch Applets für´s Web.
Wie schon erwähnt kannst du nichts hardwarenahes programmieren, falls dich das aber doch interessiert, würde ich dir C empfehlen, da es schneller ist als C++.
Für alles andere reicht JAVA.

Liebe Grüße
Reality


----------



## bygones (22. Mrz 2004)

Reality hat gesagt.:
			
		

> Für alles andere reicht JAVA


Was heißt hier reicht ?? Für alles andere ist Java sehr gut  :roll:


----------



## Pulvertoastman (22. Mrz 2004)

Reality hat gesagt.:
			
		

> Ja, mit JAVA kannst du richtige Anwedungen proggen und auch Applets für´s Web.
> Wie schon erwähnt kannst du nichts hardwarenahes programmieren, falls dich das aber doch interessiert, würde ich dir C empfehlen, da es schneller ist als C++.



Hardwarenähe hat nicht unbedingt etwas mit Geschwindigkeit zu tun. Das fängt auch schon beim Ansprechen Serieller und Paralleler Schnittstellen an.


----------



## A3XX (22. Mrz 2004)

Was genau meint ihr mit Hardwarenah? Kann ich zum Beispiel so Fotoalben etc. in Java programmieren? Hat ja nix mit Hardware zu tun. Was schliesst alles Hardwarenah ein? 

PS: Danke für die schnellen, vielen Antworten 

Und welches Buch ist das Beste zum Anfangen? Programmierkentnisse (all die Kontrollstrukturen etc. ) hab ich schon


----------



## bygones (22. Mrz 2004)

Hardwarprogrammierung heißt z.B. direkter Zugriff auf die Speicherverwaltung, ansprechen von Hardwarekomponenten usw...

Bücher:
http://www.javabuch.de
http://www.galileocomputing.de/openbook/javainsel


----------



## A3XX (22. Mrz 2004)

Was zeichnet denn Java gegenüber anderen Sprachen besonders aus? Wieso sollte man sich gerade für Java entscheiden?


----------



## bygones (22. Mrz 2004)

A3XX hat gesagt.:
			
		

> Was zeichnet denn Java gegenüber anderen Sprachen besonders aus? Wieso sollte man sich gerade für Java entscheiden?


Das behaupte ich mal kann dir keine beantworten. Warum ausgerechnet Java - warum nicht ?

Java ist objektorientiert, d.h. man kann "leicht" die Realität abbilden. Java ist sehr mächtig (Anwendungen, Internet, Client-Server, Datenbank, XML usw usw) und plattformunabhängig.

Das kannst du aber auch auf viele andere Sprachen übertragen !!

Aber Java macht Spaß und du hast hier ein geiles Forum .... also warum nicht ?


----------



## A3XX (22. Mrz 2004)

Hm ok hast mich überzeugt  Ne es ist halt so , dass ich im Studium im Herbst auch Java lernen muss  Wollte mich nur schon informieren ob es sich auch jetzt schon lohnt rrein aus Interesse Java zu lernen und nicht C oder so. Aber demfall ist das so, denn gross mit Hardware will ich nix zu tun haben


----------



## bygones (22. Mrz 2004)

Aus eigener Erfahrung kann ich dir Java empfehlen (im Gegensatz zu C) - meine Meinung - ich finde Java ist strukturierter und angenehmer zu arbeiten. Man kann zwar auch mit C "pseudo" objekt orientiert arbeiten, aber ich finde Java angenehmer !


----------



## Reality (22. Mrz 2004)

Hi,


			
				Pulvertoastman hat gesagt.:
			
		

> Reality hat gesagt.:
> 
> 
> 
> ...


Denke schon, dass etwas damit zu tun hat. In C z.B.,  musst du alles manuell machen, was Speicher usw. angeht. In C++ und besonders JAVA geht vieles automatisch.
C ist an Assembler ziemlich angelehnt, auch wenn es deutlich einfacher ist zu erlernen. Trotzdem ist C fast genauso schnell wie Assembler. 

Für mich steht fest, die nächste Sprache, die ich lernen will ist C, da es hardwarenah und sehr schnell ist. Warum nicht C++? Weil JAVA schon teilweise schneller ist als C++ und weil es C++ gegenüber sehr viele Vorteile hat, wie z.B. Sicherheit, es ist robust, die Anwedungen sind kleiner, automatische Speicherverwaltung etc.

Liebe Grüße
Reality


----------



## Roar (22. Mrz 2004)

mann da geht man kurz was essen und zack sind masig andere antowrten da 
C ist an assembler angelehnt ?? die syntax von c istjawohl völlig ander als die "syntax" von asm.


----------



## Reality (22. Mrz 2004)

Klar, aber C macht so ziemlich dasselbe wie Assembler. Will damit sagen, dass man bei C auch vieles manuell machen muss. Dass C an Assebler angelehnt ist, habe ich aus einem Buch, also wiedersprich mir nicht. :lol: 

Liebe Grüße
Reality


----------



## Roar (22. Mrz 2004)

Reality hat gesagt.:
			
		

> Klar, aber C macht so ziemlich dasselbe wie Assembler. Will damit sagen, dass man bei C auch vieles manuell machen muss.


ja schon, c ist nunmal nicht so einfach wie java, und in C muss man ja schon fast alles selber machen. aber rein syntaktisch hat C mit assembler so wenig gemeinsam wie Java und html. aber technisch gesehen stimmt es ja, wobei ich sogar glaube, dass manche C compiler den c source erst in assembler umwandeln und dann in op code umgewandelt wird.. naja is ja egal


			
				Reality hat gesagt.:
			
		

> Dass C an Assebler angelehnt ist, habe ich aus einem Buch, als wiedersprich mir nicht. :lol:


 :lol:


----------



## tomkruse (22. Mrz 2004)

Hi!

Und nochwas, was man in Java kann und in anderen Sprachen nicht: Man kann Anwendungen für Handys programmieren. So ziemlich alle aktuell am Markt befindlichen Handymodelle haben eine KVM (Java Virutal Machine für Mobile Geräte) und man kann darauf sogenannte Java-MIDlets laufen lassen. 

HandyGames kann man natürlich auch in C++ schreiben, aber nur wenige Handys (meist auf Symbian OS Basis) können damit auch was anfangen. Somit hat Java hier eindeutig die Nase vorne  :lol: 

Cu - Tom.


----------



## biker126 (23. Mrz 2004)

@roar:
jedes c/c++ programm wird erst in assembler und dann in maschinencode umgewandelt . aber ich muss euch zustimmen. wenn man oop proggen will is java eindeutig bequemer als c++. aber wenn man schnelle/hardware bezogene sachen machen will is eindeutig c das beste.
aber ist schon lustig hier. man merkt, dass man in einem java-forum ist "in c muss man noch alles von hand machen". ich mag pointers... . und "new" is ganz isi. nur "delete" is schon bisl blöder geb ich zu. da muss man genau wissen WANN man jetzt deleten darf und wann nicht (man kannst natürlich auch gleich sein lassen wenn die anwendung ned zuviele "new's" hat ^^.


----------



## me.toString (23. Mrz 2004)

Java hat einen RIESEN Vorteil gegenüber C/C++ ... es ist platformunabhängig. Gerade das finde ich toll ... da ich zu Hause zwischen Windoof und Linux hin- und herwechsel habe ich Java-Programme schätzen gelernt.
Der Nachteil, dass man mit Java nicht hardwarenah programmieren kann ist aber auch gleichzeitig ein vorteil ... bei C/C++ musst du die ganze Zeit aufpassen, was du mit deinen Pointern machst ... eine unbedachte Anweisung und dein Programm stürzt ab. Da du bei Java nur mit Referenzen arbeitest hast du die Probleme nicht - natürlich kann man auch hier mit einer falschen Anweisung das Programm zum Absturz bringen ... aber dann bekomms du von der VM detaillierte Fehlermeldungen, die dir zeigen wo der Fehler aufgetreten ist. Frag mal 'nen C/C++-Programmierer nach 'nen "segmentation fault" ... da suchst du dich dumm und dusselig im Programmcode !!!


----------



## bygones (23. Mrz 2004)

ehli75 hat gesagt.:
			
		

> Frag mal 'nen C/C++-Programmierer nach 'nen "segmentation fault" ... da suchst du dich dumm und dusselig im Programmcode !!!


 :roll:  :lol:  :!:


----------



## biker126 (23. Mrz 2004)

mit nem anständigen debugger und n bisl übung findest den pointerfehler aber auch "relativ" schnell. musst einfach massen von breakpoints setzen. bei jedem funktionsaufruf einen und dann in der funktion selber auch n haufen. dann findest meist recht schnell raus in welcher funktion der fehler auftritt.... .

aber die exceptions sind natürlich schon im einiges praktischer *g*.


----------



## Miskral (26. Mrz 2004)

Ist schon lustig wie sich JAVA - Programmierer über C und C++ auslassen. Ich bin in der glücklichen lage das ich Java, C, C++ und Assembler behersche. Jede Sprache hat ihre Vor- und Nachteile. 

Zu Java :
+ Sehr viele einfach anzuwendenden Templates
+ Plattformunabhängig 
- meines erachtens Speicherhungrig
- oftmals langsam 
- Hardware zugriff nur über JNI 

Zu C :
+ Schelle Programme
+ direkter Hardwarezugriff
+ direkter Zugriff auf fertige Templates des jeweiligen Betriebssystems
- plattform unhabhängigkeit nur begrenzt möglich und nur durch neu Compelieren 
- eigene Speicherverwaltung (kein GarbageCollector)

Man kann die Listen sicherlich noch Erweitern. Man muß immer schauen worauf man in einem Projekt wert legt. 

Gruß Chris


----------



## tomkruse (27. Mrz 2004)

Hi!

Ich muß Chris da wirklich rechtgeben. Ist doch sinnlos zu diskutieren, ob Java oder C++ besser ist. Kommt eben immer drauf an wofür man entwickelt und was man erreichen möchte.

Was viele übersehen, die Programmieren vor allem als Hobby betreiben ist der Kostenfaktor. Ein C++ Projekt ist (meist) deutlich aufwändiger als ein Java-Projekt und dann läuft es nur auf einer Plattform.

Cu - Tom.


----------



## biker126 (28. Mrz 2004)

naja, die anfangs frage lautete ja was java alles KANN und nicht obs besser ist als c oder so...

und was es kann/nicht kann bzw. wofür java geeignet/weniger geeignet ist sollte jetzt wohl allen klar sein ^^


----------

