Allgemeine Fragen

thor_norsk

Bekanntes Mitglied
Guten Morgen,

kann man mit Java gute Android Apps entwickeln wie Whatsapp, Telegram, bzw. Chat-Programme? Oder sollte man sich lieber Kotlin aneignen?
Ich möchte mir ein Buch kaufen und hätte gerne gewusst, ob Sinn macht, da im Internet wird viel erzählt, dass die mit Java viele Probleme
hatten, daher sind die auf Kotlin umgestiegen???

Danke!
 

Robert Zenz

Top Contributor
kann man mit Java gute Android Apps entwickeln wie Whatsapp, Telegram, bzw. Chat-Programme? Oder sollte man sich lieber Kotlin aneignen?
Ufff...

...da im Internet wird viel erzählt, dass die mit Java viele Probleme
hatten, daher sind die auf Kotlin umgestiegen???
Tu dir selbst einen Gefallen, verzichte auf die "fertigen Meinungen des Internets" zum groeszten Teil und mach' dir selbst ein Bild. Waehrend es viele valide Kritiken an Java (der Sprache) gibt, sind die im Internet meistens "wieso muss ich int final schreiben ich will nur val tippen lol" und "Typen weisz ich, die muss ich nicht hinschreiben". Ich persoenlich liebe Java weil es so einfach und direkt zum lesen ist und keine Abkuerzungen in der Syntax hat. Zumindest in den Projekten die ich hatte war weder die Syntax noch die Tipparbeit derer noch das lesen von Code irgendwie ein Flaschenhals.

Um zu deiner ersten Fragen zurueck zu kehren, in Java werden Anwendungen fuer allen Plattformen geschrieben, Spiele, Datenbanken, High-Frequency-Trading Anwendungen, Server-Systeme welche wirklich Leistung bringen muessen, ERP Systeme in Groeszen die einem den Kopf verdrehen und ich wette es gibt sogar irgendwo ein Projekt um die Sache auf Echtzeit-Betriebssysteme (harte) zu bringen. Also ich denke, Java (und die JVM) sind dafuer geeignet, ja.

Ich glaube @KonradN war zuletzt von Kotlin begeistert und hat es probiert im Vergleich, er kann dir da sicher eine kurze Meinung geben. Einen Vergleich kannst du dir ja selbst heraussuchen, also wo die Unterschiede zwischen den Sprachen liegen.
 

KonradN

Super-Moderator
Mitarbeiter
Ich glaube @KonradN war zuletzt von Kotlin begeistert
Nee, da täuschst Du Dich. Aber ich habe es auch schon ausprobiert. War vor einiger Zeit mal der Meinung, dass es die bessere Variante sei. Aber es kam dann sehr schnell eine Ernüchterung. Auch dort wird nur mit Wasser gekocht.

Die Probleme mit Java waren in erster Linie juristischer Natur. Oracle steckt da halt dahinter (da sie Sun übernommen haben) und Oracle ist bekannt für seine Anwälte. (Davon können auch Kunden viel erzählen!). Und Google hatte die Wahl: Will man weiter mit Oracle Produkten was machen oder will man da mit einer Firma zusammen arbeiten, deren KnowHow man für Android Studio genutzt hat und die halt eine Sprache entwickelt haben, die halt einige Neuerungen hat gegenüber Java. (Wobei Java sich dann auch weiter entwickelt. Man muss nur nicht jeden Scheiß mitmachen :) )

Das generelle Problem ist, dass Java und Kotlin nicht wirklich so Multiplatform sind (geht auch, aber das muss man sich im Detail ansehen. Das wäre dann explizit nicht developer.android.com!). Und Google hat da auch ein eigenes "Pferd im Stall": Flutter mit der Programmiersprache dart.

Wenn es um das Thema Sprache geht: Da sehe ich deutlich bessere Ansätze. Der Pfad der klassischen reinen OO Entwicklung wie in Java ist verlassen. Vererbung gibt es, aber das ist Sache der Entwickler. Du kannst eien Klasse richtig erben, nur das Interface der Klasse nehmen oder einfach den "Inhalt der Klasse Dir aneignen". Das sind ganz interessante Ansätze. Und das ziel ist Multiplatform - also egal was: Mobile Geräte (iOS, Android), Desktops (Windows, Mac, Linux) oder einfach im Browser. Sowas kann man sich ansehen und das nutzen.

Aber wenn man in den Bereich geht: Muss es so eine Nische sein wie Flutter? Sowas gibt es von vielen Seiten. Xamarin wäre da im .Net Umfeld zu nennen. Aber der große Platzhirsch ist und belibt HTML mit Javascript und CSS. JavaScript kann man noch mit Typescript ersetzen und dann ist man extrem gut aufgestellt. Das ist aus meiner Sicht derzeit der Hauptweg für Frontends.
Auf die Mobilen Geräte kann man das mit Wrappern bekommen. Apache Cordova fällt mir da direkt ein.
Auf Desktops wären Wrapper wie Electron zu nennen (Produkte wie Visual Studio Code nutzen es!)
Und im Web ist es eh zuhause.

Und ganz wichtig: Die Wrapper können entfallen - dazu gibt es PWA (progresisve web application) und Webassembly die da sehr interessant sind. Es braucht also keinen AppStore und Co. Lediglich ein Browser, mit dem man auf die Webseite geht und da muss der Anwender nur sagen: "Hey - das hätte ich gerne als App." (Hat aber Einschränkungen was die Nutzung des Devices angeht!)

Das wären so ein paar Dinge, die mir so auf Anhieb einfallen.

Generell würde ich empfehlen, die Anzahl der Sprachen erst einmal gering zu halten und diese dafür zu meistern. Wenn Du java schon kannst und Du nur Android willst: Nutze es um eine Android App zu schreiben. Kein Grund, da alles neu zu lernen!
 

Jw456

Top Contributor
Hallo
Was sagt denn der Meister zum Thema Coroutins in Kotlin?

Da Asynctask ja in Android deprecated ist wird Coroutins empfohlen. Ja es gibt die kaschieren alternativen in Java und Kotlin.
Aber etwas Vergleichbares in Java zu Coroutine kenne ich nicht.


Auch finde ich die Anwendung von Lambdas in Kontlin genialer als in Java.
Daten Klasse ist auch genialer als Record in Java.


Ich finde es gibt schon ein paar Verbesserungen in Kotlin im Vergleich zu Java mit Android. Augenmerk ist hier Kotlin Android.
Auch wird es immer mehr das neue Tutorial nur noch in Kotlin angeboten werden.


Ob man aber jetzt umsteigen sollte um mal eine App zu schreiben das muss jeder selbst entscheiden.
Große dauerhafte Projekte vielleicht ja.
 

KonradN

Super-Moderator
Mitarbeiter
Aber etwas Vergleichbares in Java zu Coroutine kenne ich nicht.
Mit Java 19 sind da jetzt endlich auch die virtuellen Threads gekommen. Ob man das braucht oder nicht muss jeder für sich überlegen.

Auch finde ich die Anwendung von Lambdas in Kontlin genialer als in Java.
Da wüsste ich jetzt nicht auf Anhieb, was Du da genau meinst. Was genau ist da besser als in Java?

Daten Klasse ist auch genialer als Record in Java.
Ich bin hier weiter ein Fan von Lombok. Das schlägt alles. Da hat man halt das genau bekannte Schema und hat die volle Kontrolle so notwendig.

Ich finde es gibt schon ein paar Verbesserungen in Kotlin im Vergleich zu Java mit Android.
Also auch ohne das Android - es gibt ganz klare Verbesserungen. Das ist auch eigentlich normal, da es einfach eine neuere Sprache ist. Wäre es nur ein "Abklatsch", dann wäre es ja auch sinnlos. Da bitte meine Kritik nicht missverstehen!

Und bei den ganzen Dingen, die Kotlin bietet: Java zieht da langsam teilweise nach oder es gibt Alternativen umd sowas auch in Java (halbwegs) komfortabel zu erreichen. Die Frage ist also schlicht: Ist der Vorteil so hoch, dass ein Wechsel Sinn macht? Und da geht es halt nicht um reine Sprachfeatures sondern da kommen auch so Dinge wie: Wie sieht es auf dem Markt aus? Also ganz platt ein: "Was nützt mir eine Expertise in Kotlin, wenn ich dann kein Projekt habe?"

Ich sehe also auch einige Dinge. Operator Overloading! Das alleine ist schon wichtig. Dann wäre der ganze Scheiß hier im Forum von wegen "Strings vergleicht man mit equals" obsolet! BigDecimal Berechnungen - wem streuben sich da nicht die Nackenhaare?

Was etwa sumstritten ist: Extension Methods. Ich finde es einfach genial. Diese ganzen StringUtils und so nerven. Man braucht ein zusätzliches Verhalten von String, dann soll man es doch String geben!

Achtung: Das hilt NICHT bei Libraries wie Apache Commons. StringUtils gibt es ja bei einigen Libraries. Da kommt es zu Konflikten. Aber in Teams ist das einfach genial. Man hat ein Team Framework und da ist dann so Kleinkram mit drin. Dann hat String in eigenen Projekten gewisse Methoden mehr. Das ist deutlich besser lesbar. Also ja - wenn man damit bewusst umgeht, dann ist das auch genial!

Also ganz klar: Kotlin ist alles andere als Schlecht. Und Kotlin Native und so geht auch den richtigen Weg. Da auf keinen Fall missverstehen, wenn ich da teilweise kritische Worte finde. Es ist halt kein Allheilmittel. Es mag Dinge bezüglich null vereinfachen (man braucht halt kein SpotBugs mit Annotations für Meldungen zu NPEs) aber das Problem ist: Die, denen dieses Feature dann ach so wichtig ist und die das als Argument gegen Java sehen, die haben dann in Ihren Projekten keine statische Codeanalyse? Da fühle ich mich dann ehrlich gesagt etwas verarscht.

Da erzählt mir jemand, dass mein Türschloss unsicher ist. Zeigt mir seine tolle sichere Tür ... Nur direkt neben der Tür ist ein riesen Loch in der Wand. Ja, durch seine Tür kommt kein Einbrecher so einfach ... aber wozu auch - der geht ja durch das Loch neben der Tür ....

Das vielleicht einfach zur Verdeutlichung. Es geht also immer um deutlich mehr als reine Sprachfeatures.
 

thor_norsk

Bekanntes Mitglied
Ich war gestern so heiss auf das Buch, habe mir ein gebrauchtes Buch in sehr gutem Zustand bestellt (App-Entwicklung mit Java). Ich möchte Alles mit Java umsetzen, und werde wenn Zeit übrig bleibt Kotlin lernen, einfach zum vergleichen. Ihr habt Recht! Ein Beispiel wäre für mich persönlich die Sprache Python, Klammern werden durch Einrückungen ersetzt, ich finde Java mit Klammern 100 x besser als Python.
Ich hatte paar Mal Einrückungen vergessen und permanent Fehler angezeigt, hat irgendwie genervt.
Da Kotlin JVM verwendet und Codes etwas schlanker sind als bei Java, vor Allem haben die angeblich Null-Pointer-Exception Fehler behoben, bzw weg gelassen.

Ich wünsche euch einen guten Rutsch ins neue Jahr.
 

thor_norsk

Bekanntes Mitglied
Eigentlich JavaFX kann Alles. Man kann CSS einbinden, JSON , und SceneBuilder Alles spielerich zusammenstellen (Label, Button, ...) und später in dem FXMLController Alles steuern. Java hat bisschen scheisse gebaut. Swing Support bis mindestens 2026 deutet auf das Ende oder ???
Ich denke ca. 2028-2030 ist mit Swing vorbei.
Vor Allem Firma Gluon verwaltet JavaFX , bzw. JavaFX von Oracle abgekauft. Die Firma Oracle hätte lieber ein eigenes IDE mit Swing & FX entwickeln sollen, wie z.B. TurboSwingFX oder JetSwingFX IDE .🤣
 
Y

yfons123

Gast
oder man nennt es uhmmm lass mich raten uhhh... "Scenebuilder" das wäre doch was ;)

es gibt das schon nur mit dem unterschied dass es nicht in der IDE ist wie bei Visual Studio sondern ein extra programm
jede sprache hat in der standard bibliothek einen json parser, was du wohl meintest ist eine Javascript engine die Javafx hat, das war ja auch der "GROSSE SINN" von javafx "rich internet applications" zu bauen, also websiten einzubinden...also quasi einen browser ... joaaa
 

KonradN

Super-Moderator
Mitarbeiter
Swing Support bis mindestens 2026 deutet auf das Ende oder ???
Nein, das wäre ja nur kritisch, wenn man den Support benötigen würde. Wenn Oracle den Support einstellt, dann wäre meine Vermutung, dass Swing auch abgegeben wird und dass dann die gleiche Scheiße abgeht wie mit Java EE. Dann ändert sich halt der Namespace weil Oracle Java ans Marke betrachtet, die man nicht verwenden darf. (Ja, Java EE wurde abgegeben, aber java als namespace durfte nicht weiter verwendet werden. Daher wurde alles umbenannt zu jakarta ... Evtl. sollte eine Foundation ein OpenJDK nehmen und als Jakarta Development Kit weiter betreiben. Also einfach Oracle komplett den Rücken zukehren. Guten Support für Firmen kann auch von anderen Firmen geleistet werden. Dann wird das hier halt das Jakarta Forum ...)

Vor Allem Firma Gluon verwaltet JavaFX , bzw. JavaFX von Oracle abgekauft.
Nein, das habe ich anders verstanden. JavafX wird offiziell immer noch von Oracle verwaltet. Gluon hat da aber sein eigenes Repository das auch automatisch synchronisiert mit dem OpenFX Repository. Da ist also nichts mit abgekauft oder so. Gluon ist halt nur am open source Teil dran halt ähnlich wie z.B, die Eclipse Foundation mit irgendwelchen Erweiterungen (wie z.B. J9 das da von IBM beigesteuert wurde).

Was sind virtuellen Threads?

Es wurde schon viele Jahre beim Project Loom an eine Art leichtgewichtigen Threads gearbeitet. Dies ermöglicht durch leichteres und schnelleres Umschalten, dass es auch tausende Threads geben kann ohne dass die Performance einbricht.
 

mihe7

Top Contributor
Swing Support bis mindestens 2026 deutet auf das Ende oder ???
Ich denke ca. 2028-2030 ist mit Swing vorbei.
Totgeglaubte leben länger. JavaFX wird seit zig Jahren als Swing-Nachfolger propagiert, so heißt es in den FAQs zu JavaFX:

https://www.oracle.com/java/technologies/javafx/faq-javafx.html#6 hat gesagt.:

6. Is JavaFX replacing Swing as the new client UI library for Java SE?​


Yes. However, Swing will remain part of the Java SE specification for the foreseeable future, and therefore included in the JRE. While we recommend developers to leverage JavaFX APIs as much as possible when building new applications, it is possible to extend a Swing application with JavaFX, allowing for a smoother transition.

Oracle hat "Oracle Java 8" sogar schon inkl. JavaFX ausgeliefert und es sah so aus, als sollte dieser Weg weitergehen: JavaFX als fester Bestandteil von Java, AWT/Swing raus.

Problem an der Sache:
https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf hat gesagt.:
Both toolkits are part of the Java SE Specification and core to many other toolkits and applications that build on top of them.

Im gleichen Papier aus dem Jahre 2018 hat Oracle verlautbaren lassen:
https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf hat gesagt.:
Oracle will continue developing Swing and AWT in Java SE 8 and Java SE 11 (18.9 LTS).
This means they will be supported by Oracle through at least 2026."

2020 liest sich das nun so:
https://www.oracle.com/technetwork/java/javase/javaclientroadmapupdatev2020may-6548840.pdf hat gesagt.:
Oracle will continue developing Swing and AWT across all supported releases as a core Java SE
technology.

Grundsätzlich gilt aber: GUIs mit Java sind praktisch tot. Wenn es nicht wirklich sein muss, schreibt niemand mehr eine Desktop-Anwendung, der Browser wird immer mehr zum Client für alles.
 

thor_norsk

Bekanntes Mitglied
Ich musste lachen. Java ist besser als die andere Sprachen und ist auf Platz 5, obwohl Alles umsetzen kann, was JavaScript und vor Allem Python nicht besser kann🤣 Sogar Apps lassen sich schneller komplieren unter Java als Kotlin.
Quelle: https://blog.back4app.com/de/backend-sprachen/

Also: GUI-Entwicklung bietet JavaFx viel für mich als Anfänger. Ich weiss nicht, ob juristisch in Ordnung wäre, was ich sage . aber wir könnten Java fordern und die andere Programmiersprachen raus kicken, z.B . Jemand von euch, der besser argumentieren kann als ich , könnte Firma Oracle anschreiben und in Forschung von Java investieren, z.B. ich würde gerne jeden Monat Oracle 5,-Euro spenden, damit Java auf Platz 1 landet.
🤣🤣🤣🤣
 

mihe7

Top Contributor
Ich musste lachen.
Ich auch - was ist das denn bitte für eine Quelle?!?

"Die Programmiersprache Java ist zeitaufwändig."

Was ist denn eine zeitaufwändige Sprache?

Aber noch besser finde ich

"Java ist eine Sprache, die besser auf teuren oder High-End-Systemen läuft. Das macht die Java-Entwicklung sehr teuer." :p

Gut, dass viele Programmiersprachen nicht einfach "laufen" sondern übersetzt werden, muss man ja nicht so eng sehen. Dass eine Anwendung auf High-End-Systemen besser läuft... wer hätte das auch nur im entferntesten ahnen können? Endlich weiß ich, warum die Java-Programme auf meinem Kurbelrechner so langsam sind. Wirklich neu ist aber, dass die Hardwareanforderungen die Java-Entwicklung sehr teuer machen.

"Wir hoffen, dass es Ihnen jetzt mit Hilfe unserer Forschungsarbeit leichter fällt, eine Sprache auszuwählen"

Ganz bestimmt.
 

thor_norsk

Bekanntes Mitglied
Ich wollte was gutes tuen. Ich denke nicht nur an mich, Java gibt es seit 1995, ich dachte wenn jeder z.B. 5,-Euro in Forschung investiert, dann könnte man Java helfen "NUMBER 1" zu werden. 🤣 Am besten wir vergessen was ich geschrieben habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Allgemeine Fragen zu einer App Android & Cross-Platform Mobile Apps 4
W Mobiler Einkaufszettel - allgemeine Fragen Android & Cross-Platform Mobile Apps 25
kaoZ Android Allgemeine Frage zum Händeln mehrerer EditTextfelder Android & Cross-Platform Mobile Apps 25
P Allgemeine frage bzg. Android Android & Cross-Platform Mobile Apps 10
J Der allgemeine Stand der Dinge Android & Cross-Platform Mobile Apps 4
W Feedback zur eigenen App + paar Fragen Android & Cross-Platform Mobile Apps 10
J ein paar Fragen zu Netzwerkverbindungen Android & Cross-Platform Mobile Apps 5
B Android Fragen zu PopupWindow? Android & Cross-Platform Mobile Apps 1
B Android Fragen zu AndEngine? Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
B Android Fragen zu einfache Web-Chat? Android & Cross-Platform Mobile Apps 1
B Android Fragen zu Density? Android & Cross-Platform Mobile Apps 1
B Android Fragen zu SoundPool? Android & Cross-Platform Mobile Apps 4
B Android Fragen zu ViewPager? Android & Cross-Platform Mobile Apps 0
B Android Fragen zu Facebook-SDK? Android & Cross-Platform Mobile Apps 4
B Fragen zu Arrays? Android & Cross-Platform Mobile Apps 9
B Fragen zu Youtube API? Android & Cross-Platform Mobile Apps 2
B Fragen zu onLongClick? Android & Cross-Platform Mobile Apps 2
B Fragen zu Moto Race Game? Android & Cross-Platform Mobile Apps 7
P Android Fragen reihenfolge speichern / laden Android & Cross-Platform Mobile Apps 2
Gossi Android Gossis Android Fragen Thread Android & Cross-Platform Mobile Apps 3
S Anfänger Setup Fragen Android & Cross-Platform Mobile Apps 10
R 2 Androidspezifische Fragen.. Android & Cross-Platform Mobile Apps 4
J Projekt: Mobile Endsysteme Fragen Android & Cross-Platform Mobile Apps 2
G Fragen zur Midlet Signierung Android & Cross-Platform Mobile Apps 2
B RecordStore >Fragen zu deleteRecord ? Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben