PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wofür wird Java heute verwendet?


Sewing
2011-05-01, 13:02:25
Was sind die Hauptanwendungsbereiche von Java?

Stehe am Anfang und würde das gern wissen.



Werden mit Java auch Websites erstellt?


in welcher Sprache ist beispielsweise Facebook geschrieben?

Cubitus
2011-05-01, 13:22:40
Facebook wird ein PHP Gerüst haben, darauf sind verschiedene Applets drauf gesetzt, also auch das Java Applet das sich mit einem Webbrowser wie dem Apache z.b führen lässt.

Java Anwendungen sind heute besonders im Web/Smartphone Bereich zu finden.
Java bringt seine eigne Laufzeitumgebung mit und ist daher Plattform unabhängig und deshalb z.b auch neben x86 Cpus und Windows mit ARM CPUs, Unix und Linux Systemen kompatibel.

robobimbo
2011-05-01, 13:24:42
Java hat seinen fixen Platz vor allem in Enterprise Anwendungen gefunden. Natürlich wirds auch in zig anderen Anwendungen und Projekten verwendet.

Facebook ist in PHP geschrieben, wobei allerdings Facebook - sowei ich weiß - den PHP Code per eigenen Tools in natives C übersetzt um die ganze Sache zu beschleunigen.

Thunderhit
2011-05-01, 13:41:18
Hauptanwendungsbereich ist die Anwendungsentwicklung. Genauer gesagt solche Anwendungen, bei denen die Performance nicht das wichtigste ist (was bei >90% der Software der Fall ist). Aber da gibts auch .NET. Vorteil von Java ist die Plattformunabhängigkeit (jaja, .Net hat auf Linux Mono, aber naja. Bei Java war die Plattformunabhängigkeit geplant im Gegensatz zu .Net).

Exxtreme
2011-05-01, 13:42:43
Die meisten Application-Server (JBoss, Glassfish & Co.) sind in Java geschrieben. Auch im mobilen Bereich ist Java recht stark. Auch wenn speziell auf Smartphones Objective-C und Dalvik derzeit eine starke Konkurrenz sind.

Sewing
2011-05-01, 13:57:32
also lohnt es sich, mit derSprache auseinander zu setzen, oder gibt es weit verbreitetere und/oder zukunftsträchtigere?

PatkIllA
2011-05-01, 14:08:25
Für jeden Zweck die richtige Sprache. Du scheinst irgendwie kein Ziel vor Augen zu haben.

Exxtreme
2011-05-01, 14:10:31
Sowas ist immer recht schwer vorauszusehen. Ich kann mich noch daran erinnern als Modula2 eine goldene Zukunft vorausgesagt wurde. :freak:

Da Oracle kein Fliegengewicht ist und Java jetzt schon ein riesiges Biotop an IDEs, Frameworks und Komponenten hat, gehe ich nicht davon aus, dass es so schnell eingeht.

Edit: Laut dem Tiobe-Index ist Java derzeit die am meisten verbreitete Sprache. Danach kommt C.

Trap
2011-05-01, 14:17:06
Java wird uns auf jeden Fall noch lange begleiten. Und selbst wenn es mal unpopulär werden sollte, es wird mit Sicherheit einen Nachfolger mit sehr nah verwandter Konzeption geben.

sei laut
2011-05-01, 14:45:23
also lohnt es sich, mit derSprache auseinander zu setzen, oder gibt es weit verbreitetere und/oder zukunftsträchtigere?
Ist Wurst. Objektorientierte Programmierung wirds noch länger geben. Wenn das Zugpferd sich ändert, kannst du mit gewissen Vorkenntnissen leicht auf ein neues umspringen. Nur die Vorkenntnisse brauchst du halt erstmal, egal ob jetzt in C, Java oder einer anderen..
Edit: Allerdings solltest du dir deiner Ziele bewusst sein, da du in Konkurrenz zu den Informatik-Studenten stehst.

Marscel
2011-05-01, 14:59:36
Was sind die Hauptanwendungsbereiche von Java?

Den Benutzer der Anwendung auszubremsen. :ulol:

Mit Java als Sprache fährt man aber sprachskill-technisch gegen keine Wand. Ist insofern Wumpe.

Sewing
2011-05-01, 15:05:41
Klares Ziel ist da:

"Graphen und Netze" Vorlesung Oo

Acid-Beatz
2011-05-01, 15:51:36
Viel Gerätesoftware is meines Wissens nach in Java geschrieben, also Zeug wie Kaffemaschine,Waschmaschine oder auch Toaster.

Falsch machen kannst damit wohl wenig, man wird von Anfang an zu sauberem Programmieren gezwungen und die Sprache hat auch viel anderes Zeugs wie Threadverwaltung oder ein GUI schon integriert.

Greez

huha
2011-05-01, 16:03:08
Viel Gerätesoftware is meines Wissens nach in Java geschrieben, also Zeug wie Kaffemaschine,Waschmaschine oder auch Toaster.

Niemals!
Eine Sprache wie Java ist in diesem Kontext auch 100% sinnfrei. Java braucht relativ viele Ressourcen, die man gerade auf kleinen, billigen Systemen nicht hat. Im Embedded-Bereich ist C die Sprache der Wahl und wird es noch lange, sehr lange bleiben. Wenn man nur 128 Byte RAM hat, dann wird jede Form der automatischen Speicherverwaltung (und Java hat die ja) relativ sinnlos, da sie auch ordentlich Speicherplatz und CPU-Leistung kostet, wovon man eben extrem wenig hat. Und gerade in der Massenfertigung nimmt man die Komponenten, die gerade noch ausreichen, weil sich das sofort im Preis bemerkbar macht.

Falsch machen kannst damit wohl wenig, man wird von Anfang an zu sauberem Programmieren gezwungen und die Sprache hat auch viel anderes Zeugs wie Threadverwaltung oder ein GUI schon integriert.

Wirklich "sauber" programmiert man mit Java auch nicht.
Die Sprache ist aber okay, man kann ordentlich damit programmieren, manche historischen Details nerven allerdings extrem. Ist jetzt keine besonders tolle, aber auch keine besonders schlechte Sprache. Ein großer Vorteil von Java ist allerdings, daß es eben so oft eingesetzt wird. Man findet also auch entsprechend viele Ressourcen im Netz.

-huha

Exxtreme
2011-05-01, 16:10:43
Viel Gerätesoftware is meines Wissens nach in Java geschrieben, also Zeug wie Kaffemaschine,Waschmaschine oder auch Toaster.

Nene, dazu nimmt man C oder gar Assembler. Eine JVM braucht da viel zu viele Ressourcen. Die Erfinder von Java wollten mal, dass Java auf solchen Geräten auch läuft. ;)


Ein großer Vorteil von Java ist allerdings, daß es eben so oft eingesetzt wird. Man findet also auch entsprechend viele Ressourcen im Netz.

-huha

Japp. Um mit Java loszulegen muss man keinen Cent für irgendwelche Entwicklungswerkzeuge ausgeben. Selbst für "erwachsene" Sachen wie Tier 3-Anwendungen nicht. Da wird man sich mit Nicht-JVM-Sprachen wesentlich schwerer tun.

Sewing
2011-05-01, 16:34:00
was genau macht/bedeutet diese Zeile zu Anfang einer Klasse?


public static void main(String [] args){


Okay meine Klasse ist public, das heisst, es kann auch von außerhalb darauf zugegriffen werden

aber was genau bedeutet der Rest? Wird da ein Array vom Datentyp String erzeugt?


achja und ist Klasse dasselbe wie Methode oder Programm?

Acid-Beatz
2011-05-01, 16:37:06
Okay, ich muss zugeben,dass mein "Java in a nutshell" noch ganz aus den Anfangszeiten stammt aber damals wars eben so angedacht und ich dachte es hätte sich schon längst durchgesetzt (eben weil heutige Microkontroller auch leistungsfähiger sind)

So kann man irren, pardon ;)

Exxtreme
2011-05-01, 16:38:31
*g*


Lad dir das Javabuch mal herunter:
http://www.javabuch.de/download.html

Man muss weit nach unten scrollen.


Da steht alles was man wissen muss.


Die Klasse main ist die Klasse wo das Programm logisch seinen Anfang nimmt. Das Feld mit den Strings enthält die Übergabeparameter. Übergabeparameter kennt man von DOS-Programmen ala "xcopy blablabla" etc.

Acid-Beatz
2011-05-01, 16:40:01
Hier wär mal ein Onlinebuch (http://openbook.galileocomputing.de/javainsel/), k.a obs auch gut ist aber anschauen kannst dus dir ja mal ;)

PatkIllA
2011-05-01, 16:52:48
Klares Ziel ist da:

"Graphen und Netze" Vorlesung Oo
Was ist denn das für ein Studium? Bislang klingt das so als ob du noch nie mit Programmierung in Kontakt bekommen wärst.

Sewing
2011-05-01, 18:32:53
Ich hatte 2 Semester C und muss mich jetzt umstellen

Sewing
2011-05-01, 18:41:16
public static void main(String [] args){





wofür steht das args?

PatkIllA
2011-05-01, 18:41:46
wofür steht das args?
Die Kommandozeilenparameter.

Du solltest aber wirklich ein paar Tutorials lesen. Die drei Wörter am Anfang sind deutlich wichtiger

Exxtreme
2011-05-01, 18:54:34
wofür steht das args?
http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html

Marscel
2011-05-01, 19:20:37
wofür steht das args?

Soso, 2 Semester C :|

Sewing
2011-05-01, 21:18:52
Ich bin ja dabei mich einzuarbeiten, aber sowas hier


Soso, 2 Semester C :|


ist für mich spam!


Wenn du nichts beizutragen hast, dann poste auch nicht

patermatrix
2011-05-01, 21:26:53
Er wollte wohl darauf hinweisen, dass args (in Form von argv) auch in C verwendet wird und exakt die selbe Bedeutung hat. Da man in Java args.length hat, entfällt das argc aus C. Dies ist auch schon der einzige Unterschied.

Sein Post sollte wohl auch eher Verwunderung ausdrücken und keine Beleidigung sein.

Der_Donnervogel
2011-05-01, 23:41:39
Niemals!
Eine Sprache wie Java ist in diesem Kontext auch 100% sinnfrei. Java braucht relativ viele Ressourcen, die man gerade auf kleinen, billigen Systemen nicht hat. Im Embedded-Bereich ist C die Sprache der Wahl und wird es noch lange, sehr lange bleiben. Wenn man nur 128 Byte RAM hat, dann wird jede Form der automatischen Speicherverwaltung (und Java hat die ja) relativ sinnlos, da sie auch ordentlich Speicherplatz und CPU-Leistung kostet, wovon man eben extrem wenig hat. Und gerade in der Massenfertigung nimmt man die Komponenten, die gerade noch ausreichen, weil sich das sofort im Preis bemerkbar macht.Das PC Java wird man da nicht nehmen, es gibt aber auch angepasste Varianten für solche Anwendungen. Das geht hinunter bis zu JavaCard. Damit kann man sogar Chipkarten mit Java programmieren. Wobei da viele Dinge vom normalen Java fehlen, z.B. hat JavaCard keinen Garbage Collector mehr. :freak:
Nene, dazu nimmt man C oder gar Assembler. Eine JVM braucht da viel zu viele Ressourcen. Die Erfinder von Java wollten mal, dass Java auf solchen Geräten auch läuft. ;)Es gibt Javaprozessoren die Bytecode in Hardware ausführen können. Dort ist Java sozusagen Assembler, bzw. genauer gesagt entspricht der Java-Bytecode dem Maschinencode der vom Assembler erzeugt wird.

ShadowXX
2011-05-01, 23:43:46
Sein Post sollte wohl auch eher Verwunderung ausdrücken und keine Beleidigung sein.
Das glaube ich eher weniger...und auch ich muss sagen das wenn er nicht mal "public static void main(String [] args){" versteht, ich ihm auch nicht abnehme das er 2 Semester C gehabt haben soll.



Es gibt Javaprozessoren die Bytecode in Hardware ausführen können. Dort ist Java sozusagen Assembler, bzw. genauer gesagt entspricht der Java-Bytecode dem Maschinencode der vom Assembler erzeugt wird.
Ich hab schon in 2 Firmen gearbeitet (die wiederum mit anderen Firmen zusammengearbeitet haben) die so ein Zeug (Toaster, DVD-Rekorder & Co.) programmieren und da ist nie einer auf die Idee gekommen das in Java zu machen...C oder Assembler.

Shink
2011-05-02, 08:59:13
Ich hab schon in 2 Firmen gearbeitet (die wiederum mit anderen Firmen zusammengearbeitet haben) die so ein Zeug (Toaster, DVD-Rekorder & Co.) programmieren und da ist nie einer auf die Idee gekommen das in Java zu machen...C oder Assembler.
Nun ja; in unserer vorigen Firma haben wir tatsächlich "so ein Zeug" (Barcodeleser, Zeiterfassungsterminals, Zutrittgeräte) in Java programmiert. Waren TINI-Microcontroller von Dallas Semiconductors. Darauf lief tatsächlich nur Java. Die Dinger hatten z.B. eine Terminalemulation und selbst die war in Java geschrieben.

Ansonsten wegen der Verbreitung von Java: Vor ~5 Jahren hieß es mal es gibt mehr Clientprogramme die im Java-Toolkit Swing geschrieben wurden als MFC-Programme.
Klingt absolut unglaubwürdig. Die Sache ist die: Bei Individualsoftware ist Java recht weit verbreitet und davon gibt es in all den Firmen dieser Welt nunmal eine Menge. (Genauso könnte man z.B. vermutlich sagen dass MS Access weiter verbreitet ist als sehr viele GUI-Toolkits:freak:)

Und wegen der "Ablöse" von Java: Ich vermute mal bis der ganze Java-basierte SUN, Oracle, IBM, SAP und Google-Krempel nebst Milliarden von Codezeilen in Betriebssoftware-Individualentwicklungen vollständig von Java losgelöst ist kann ich vermutlich in Pension gehen. Wer wirklich nicht umlernen will wird das auch nicht müssen. Es gibt z.B. auch noch genug Cobol-Entwickler.
Die ganze langlebige, altmodische und sich kaum bewegende Geschäftssoftware-Welt ist ziemlich auf den Java-Zug eingefahren (wenn auch .NET dort eine ganz beachtliche Verbreitung hat). Client-Entwicklungsumgebungen können innerhalb weniger Jahre in der Bedeutungslosigkeit versinken (siehe Basic, Delphi), Business Anwendungen bekommen nicht einfach so ein Update wegen einer neuen, moderneren Technologie: Wieso sollte jemand so eine Umstellung bezahlen (und wer sagt dass er gerade das Geld dafür hat)?
Das ist sowohl Fluch (wegen der vielen Bremsklötze bei der Weiterentwicklung und dem Fokus auf Rückwärtskompatibilität) als auch Segen (Zukunftssicherheit).

Coda
2011-05-02, 12:52:44
Niemals!
Aber sicher. Selbst auf SIM-Karten läuft Embedded Java.

urpils
2011-05-02, 13:12:21
Aber sicher. Selbst auf SIM-Karten läuft Embedded Java.

jep - hier in diesem Podcast wird das gegen Ende geklärt:

http://chaosradio.ccc.de/cre179.html

edit: wer nicht selbst suchen/hören will: http://en.wikipedia.org/wiki/Java_Card

Tiamat
2011-05-02, 17:37:08
Ja also Enterprise-Anwendungen inclusive Webapplikationen sind mit Java im prof. Bereich häufig angesiedelt. Aber das ist auf keinen Fall der einzigste Anwendungsbereich.
Jetzt mit Android bei Smartphones..
Der Vorteil ist halt die relative plattformunabhängigkeit, das hat zu der enormen Verbreitung geführt.
Selbst bei Robotern ist Java keine Seltenheit mehr.

Wenn du zwei Semester C hattest, warum bleibst du dann nicht im C-Corner wie z.b C++ oder C#. So Unterschiedlich sind C# und Java wirklich nicht.

Gruß
Tiamat

Thunderhit
2011-05-02, 18:03:00
Weil er dann erstmal Objektorientierung lernen müsste und wie wir sehen, hapert es schon bei args.

Gohan
2011-05-02, 22:11:47
Ich vermute mal Aufgrund deiner Fragen, dass du nicht wirklich die Grundlagen von C verstanden hast. Das ist nicht bös' gemeint, aber du solltest dir dringend nochmal mehrere Begriffe anschauen, da du ansonsten nicht weiter kommst.

Um mit Java zu starten, solltest du versuchen Definitionen zu folgenden Begriffen zu finden und diese selbst anwenden:

Klasse
Instanz
Variable/Typen
Methode/Funktion
Modifier (aka public, private, protected, static usw.)

Evtl. wäre für dich auch ein Buch wie Java Head First (zu Deutsch, Java von Kopf bis Fuss) ganz geeignet, welches den Stoff in einer durchaus interessanten Form aufarbeitet. Hat schon vielen geholfen, die in der Vorlesung nur Bahnhof verstanden haben.

Coda
2011-05-02, 23:44:30
Wenn du zwei Semester C hattest, warum bleibst du dann nicht im C-Corner wie z.b C++ oder C#.
:facepalm:

Exxtreme
2011-05-02, 23:46:04
Jetzt mit Android bei Smartphones..

Auf Android läuft kein Java.

Trap
2011-05-03, 00:13:53
Sag das Google:
The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Ganon
2011-05-03, 00:26:30
Auf Android läuft kein Java.

Nunja. Es ist Java mit einer "modifizierten" VM und dadurch leicht geändertem Bytecode.

Wenn du eine Android-App entwickelst, schickst du die App durch den Java-Compiler und das Resultat wird durch einen Bytecode-Transformer geschickt.

Es läuft zwar nicht das offizielle Java darauf, aber eine etwas angepasste Version davon.

Coda
2011-05-03, 00:48:16
Auf Android läuft kein Java.
Die Sprache ist Java, was für eine VM es ausführt ist doch völlig latte.

Nunja. Es ist Java mit einer "modifizierten" VM und dadurch leicht geändertem Bytecode.
Der Bytecode ist völlig anders.

Sewing
2011-05-03, 16:19:59
Ich vermute mal Aufgrund deiner Fragen, dass du nicht wirklich die Grundlagen von C verstanden hast. Das ist nicht bös' gemeint, aber du solltest dir dringend nochmal mehrere Begriffe anschauen, da du ansonsten nicht weiter kommst.

Um mit Java zu starten, solltest du versuchen Definitionen zu folgenden Begriffen zu finden und diese selbst anwenden:

Klasse
Instanz
Variable/Typen
Methode/Funktion
Modifier (aka public, private, protected, static usw.)

Evtl. wäre für dich auch ein Buch wie Java Head First (zu Deutsch, Java von Kopf bis Fuss) ganz geeignet, welches den Stoff in einer durchaus interessanten Form aufarbeitet. Hat schon vielen geholfen, die in der Vorlesung nur Bahnhof verstanden haben.


weiss ich soweit alles!


Auch wenns komisch klingt, mir ist in 2 Semestern C nie diese Zeile untergekommen oder aber ich habs vergessen (war 2007)

weiss auch nicht, was so schwer daran ist mir auf meine frageeinfach eine rational begründete Antwort zu geben oO

Ectoplasma
2011-05-03, 20:26:05
Auch wenns komisch klingt, mir ist in 2 Semestern C nie diese Zeile untergekommen oder aber ich habs vergessen (war 2007)

Ja das klingt wirklich komisch, denn wenn du in 2 Semestern C diese Zeile "public static void main(String [] args)" nicht kennst, dann weiss ich auch nicht. In C gibt es das Equivalent "int main(int argc, char *argv[]);". Das brauchst du eigentlich in jedem C Programm. Es kann natürlich sein, dass du im Studium immer nur mit einem Framework gearbeitet hast, aber wir reden hier ja auch über Grundlagen.

MuLuNGuS
2011-05-04, 19:42:18
void main()
{

}



ja..kann sein dass er ohne parameterübergabe auskommen musste :)

Coda
2011-05-04, 19:45:23
Es gibt kein "void main", nur "int main". Das sollte so eigentlich nicht gelehrt werden.

Der_Donnervogel
2011-05-04, 20:18:24
Es gibt kein "void main", nur "int main". Das sollte so eigentlich nicht gelehrt werden.Man sollte es nicht benutzen, aber prinzipiell funktionieren tut es. Der Compiler gibt vielleicht ein Warning aus, aber es würde mich wundern wenn er nicht bauen würde. Wenn man ohnehin nicht vor hat einen Wert zurück zu geben macht es auch nicht viel Sinn am Schluß noch ein return 0 rein zu schreiben. Da kann man es doch genauso gut dem Compiler überlassen sich drum zu kümmern.

Coda
2011-05-04, 20:27:09
clang (LLVM) baut es nicht:

test.c:4:1: error: 'main' must return 'int'

Das von dir angesprochene Verhalten 0 zurückzugeben, wenn kein return-Statement vorhanden ist, ist übrigens im Standard enthalten. Die Rückgabe-Signatur muss aber trotzdem "int" sein.

Exxtreme
2011-05-04, 21:15:16
Also die alten Borland C++-Compiler schlucken auch ein void als Rückgabewert.

Tiamat
2011-05-04, 23:22:08
clang (LLVM) baut es nicht:

test.c:4:1: error: 'main' must return 'int'

Das von dir angesprochene Verhalten 0 zurückzugeben, wenn kein return-Statement vorhanden ist, ist übrigens im Standard enthalten. Die Rückgabe-Signatur muss aber trotzdem "int" sein.
:facepalm: