Zukunftssicher - Java oder C#?
-
Wenn du Wirtschaftsinformatik machen willst Java ansonsten JavaScript.
-
Auch eine Insel schrieb:
Wenn du Wirtschaftsinformatik machen willst Java ansonsten JavaScript.
-
tg3463v634v6 schrieb:
Dravere schrieb:
Gilt nur im Marketing. Tatsächlich gilt für beide Sprachen: Compile once, debug everywhere!
Tatsache? Ich musste meine Anwendungen noch nie debuggen nachdem (~=weil) ich die von meiner Mac Workstation auf den Linux Server deployed hab
Wenn du nur in deinem Bereich bleibst, kann dies womöglich problemlos funktionieren. Wenn du aber Endkunden belieferst und die Anwendungen etwas grösser werden, ist es ein feuchter Traum, dass Java irgendwie plattformunabhängiger wäre als C#, C++ oder sonst irgendeine Sprache. Vor allem wenn eine der Plattformen noch Windows und die andere unixartig ist.
Grüssli
-
Ich finde Platformunabgängigkeit völlig überbewertet. Viele stecken da viel Energie rein und brauchen es am Ende nicht.
Ich persönlich entwickel primär C# unter Windows und Java unter Linux (Mint).
Ob du nun C# lernst und dann Java oder genau umgekehrt ist völlig egal - die beiden Sprachen sind so ähnlich das du das in sehr kurzer Zeit drinne hast.
Überleg dir einfach was du so gerne schreiben würdest, und dann schau welche Sprache dafür am geeignetsten ist.
-
Bashar schrieb:
pumuckl schrieb:
Beide (vor allem Java) sind aktuell ziemlich gehyped.
Nanu? Hast du das letzte Jahrzehnt im Kälteschlaf verbracht? Java ist inzwischen langweilig und etabliert, von Hype keine Spur. Oder der Hype dauert seit über 10 Jahren an, kann auch sein, aber dann ist es kein echter Hype mehr, oder?
Kommt drauf an bei wem. Bei den Entwicklern ist es etabliert. Aber normalerweise setzt sich so ein Hype mit einiger zeitlicher Verzögerung in den höheren Ebenen fort. Was bei Entwicklern nurnoch ein müdes Gähnen hervorlockt ist bei den Schlipsträgern am oberen Ende der Excelschubserkette grade das Neueste vom Neuen.
-
pumuckl schrieb:
Kommt drauf an bei wem. Bei den Entwicklern ist es etabliert. Aber normalerweise setzt sich so ein Hype mit einiger zeitlicher Verzögerung in den höheren Ebenen fort. Was bei Entwicklern nurnoch ein müdes Gähnen hervorlockt ist bei den Schlipsträgern am oberen Ende der Excelschubserkette grade das Neueste vom Neuen.
Du meinst, Java hat sich durchgesetzt, weil die Entwickler davon so begeistert waren, und mit 10 Jahren Verspätung greift die Begeisterung auf das Management über? Naja, ich war nicht dabei und kenne nur die Klagen einzelner betroffener, aber die sagen im Gegenteil, dass Java zuerst den Entscheidern verkauft wurde, die es dann den Entwicklern aufgedrückt haben.
-
David W schrieb:
Ich finde Platformunabgängigkeit völlig überbewertet. Viele stecken da viel Energie rein und brauchen es am ende nicht.
Sehe ich genauso. Im Forum liest man oft so Sachen wie "Nimm XY, weil das laeuft auf Windows und Linux und Mac und Bla". In der Realitaet ist das nicht wirklich so oft ein Kriterium. Meistens entwickelt man doch nur fuer Windows oder iOS oder Linux. Ich hab auf jeden Fall noch nicht einmal ein Projekt gesehen, dass auf zig Plattformen laufen sollten.
-
Ich schon.
-
Tyrdal schrieb:
Ich schon.
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
-
RDE_AVS_NGL läuft auf Windows und Linux. Kennste wahrscheinlich nicht. Ist speziell fürs GÜZ Letzlinger Heide gemacht worden.
-
Cybertec schrieb:
Tyrdal schrieb:
Ich schon.
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
Ich schaue mal kurz mein Dock durch:
Terminal - Nein, bash aber ja
FirstClass - Ja
Opera - Ja
FireFox - Ja
Safari - Jein (Windows + Mac)
Eclipse - Ja
Netbeans - Ja
MS Office - Nein
LibreOffice - Ja
FileMaker - Ja
...soll ich weiter machen?
Prinzipiell ist die Mehrheit der Software die ich täglich verwende Multiplatform fähig. Die Commandline Tools die auf allen Unix-Artigen Systemen laufen, lasse ich sowieso mal aussen vor.
-
Die Frage war ernst gemeint. Ich habe an so alltägliche Sachen wie Browser nicht gedacht.
-
Dravere schrieb:
tg3463v634v6 schrieb:
Dravere schrieb:
Gilt nur im Marketing. Tatsächlich gilt für beide Sprachen: Compile once, debug everywhere!
Tatsache? Ich musste meine Anwendungen noch nie debuggen nachdem (~=weil) ich die von meiner Mac Workstation auf den Linux Server deployed hab
Wenn du nur in deinem Bereich bleibst, kann dies womöglich problemlos funktionieren. Wenn du aber Endkunden belieferst und die Anwendungen etwas grösser werden, ist es ein feuchter Traum, dass Java irgendwie plattformunabhängiger wäre als C#, C++ oder sonst irgendeine Sprache. Vor allem wenn eine der Plattformen noch Windows und die andere unixartig ist.
Grüssli
Falsch, ich denke mal unsere Anwendung hier erfüllt deine Vorstellung von "groß" und es klappt problemlos, einige Kollegen entwickeln auch unter Windows, insofern wüsste ich nicht was das damit zu tun haben soll.
Aus deinem Post kann ich also nur noch schließen, dass du a) selbst nie an einer entsprechenden Anwendung gearbeitet hast, b) deine Meinungen nur vom Hörensagen in Foren wie diesem bildest und/oder c) für dich die Plattformunabhängigkeit schon nicht mehr gegeben ist wenn deine Klickibunti Software auf dem Mac scheiße aussieht weil du nicht damit gerechnet hast, dass z.B. Buttons auf anderen System auch andere Dimensionen haben...
-
Cybertec schrieb:
Tyrdal schrieb:
Ich schon.
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
Ich schaue mal kurz meine Taskleiste durch:
Chrome - Ja
Notepad++ - Nein
VMWare - Ja
VirtualBox - Ja
FileZilla - Ja
IntelliJ - Ja
WebStorm - Ja
Photoshop - Ja
Flash/Illustrator - Ja
Wireshark - Ja
MS Solitär - Nein
Pidgin - Ja
-
Cybertec schrieb:
Die Frage war ernst gemeint. Ich habe an so alltägliche Sachen wie Browser nicht gedacht.
Mag sein, dass gerade von den alltäglichen Sachen diejenigen am Besten überleben, die auf mehreren Plattformen verfügbar sind. Auch bei anderer Software, die nicht grade für die Zielgruppe "Privatanwender, die eh zu 95% Windows-PC haben" gedacht sind, wird häufig mit möglichst verbreiteten Sprachen entwickelt, um den Kundenkreis nicht künstlich einzugrenzen. Das Produkt, an dem ich auf der Arbeit mitwirke, läuft z.B. auf Windows, Unixen und HOST-Rechnern (z/OS).
Cybertec schrieb:
Dann nenn mal bitte eins das auf allen Plattformen (ich gehe jetzt nicht von mobilen Endgeräten aus) läuft und in der gleichen Sprache programmiert wurde.
Nenn mir mal bitte andersrum ein Produkt, das auf verschiedenen Plattformen läuft und dafür in verschiedenen Sprachen jeweils neu implementiert wird.
Dass Sprachen nie absolut plattformunabhängig sind ist denke ich den meisten klar. An irgendeiner Stelle greifen immer Restriktionen des OS, außerdem müssen häufig irgendwo die jeweiligen Systembilbiotheken angebunden werden, und spätestens wenns sehr kritisch um Performance geht, geht irgendwann nichts mehr an plattformspezifischen Hacks vorbei. Trotzdem ist es besser, bei der Portierung auf eine andere Plattform <0.1% des Codes anzupassen, als den ganzen Kram in irgendeiner anderen Sprache neu zu schreiben.
-
Hallo?
Meine Frage war wirklich ernst gemeint, da ich nicht an solche Sachen gedacht habe. Es war also rein aus Interesse.
Ein Produkt welches auf versch. Plattformen läuft und jeweils neu implementiert wurde?
Skype. Windows soweit ich weiß Delphi, unter Linux C++ mit Qt.
-
Cybertec schrieb:
Meine Frage war wirklich ernst gemeint, da ich nicht an solche Sachen gedacht habe. Es war also rein aus Interesse.
Gibt viele Tools die speziell sind auf die das auch zutrifft. Vorallem Server komponenten sind teilweise enorm Protabel. Apache, MySQL, Oracle,...
Ein Produkt welches auf versch. Plattformen läuft und jeweils neu implementiert wurde?
MS Office fällt mir da noch ein.
-
tg3463v634v6 schrieb:
Falsch, ich denke mal unsere Anwendung hier erfüllt deine Vorstellung von "groß" und es klappt problemlos, einige Kollegen entwickeln auch unter Windows, insofern wüsste ich nicht was das damit zu tun haben soll.
Aus deinem Post kann ich also nur noch schließen, dass du a) selbst nie an einer entsprechenden Anwendung gearbeitet hast, b) deine Meinungen nur vom Hörensagen in Foren wie diesem bildest und/oder c) für dich die Plattformunabhängigkeit schon nicht mehr gegeben ist wenn deine Klickibunti Software auf dem Mac scheiße aussieht weil du nicht damit gerechnet hast, dass z.B. Buttons auf anderen System auch andere Dimensionen haben...Es ist schön, wenn die Leute vernünftig diskutieren und die andere Partei ernst nehmen und probieren ein wenig mitzudenken.
Du solltest mal lesen, was ich geschrieben haben.
1. Compile once -> Debug Everywhere.
2. Man braucht trotzdem ein Testsystem für die andere Plattform.
3. Java ist nicht plattformunabhängiger als C, C++, C# oder andere Sprachen.Ich habe nirgends geschrieben, dass Java nicht plattformunabhängig ist!
Du bestätigst meine Aussage direkt:
tg3463v634v6 schrieb:
... c) für dich die Plattformunabhängigkeit schon nicht mehr gegeben ist wenn deine Klickibunti Software auf dem Mac scheiße aussieht weil du nicht damit gerechnet hast, dass z.B. Buttons auf anderen System auch andere Dimensionen haben...
Nein, ich sage nicht, dass keine Plattformunabhängigkeit gegeben ist. Ich habe gesagt, dass du es auf dem anderen System testen musst. Womöglich debuggen musst. Und das du die genau gleichen Probleme hast, wie wenn du z.B. C, C++ oder C# nimmst. Und die Unterschiede sind ja nicht nur bei "Klickibunti" zu finden. Das geht von Pfaden bis zu unterschiedlichen JVMs.
Es ist ein feuchter Traum zu glauben, dass man Java einmal kompilieren müsste und dann würde es auf jedem System laufen, ohne auch nur einen Test auf dem anderen System durchzuführen.
Grüssli
PS: Sorry, für die späte Antwort, hab den Thread irgendwie vergessen
-
Dravere schrieb:
Und das du die genau gleichen Probleme hast, wie wenn du z.B. C, C++ oder C# nimmst.
Also gewisse Probleme hat man mit Java und/oder C# definitiv nicht, die man mit C btw. C++ sehr oft hat.
z.B. die integralen Typen, darüber muss ich mir bei Java und C# einfach überhaupt keinen Kopf machen.
Und dann kommt noch dazu, dass bei Java und C# die Standard-Library viel grösser ist. Klar, die verhält sich nicht immer 100% perfekt genau gleich wie auf allen Systemen. Aber auf jeden Fall besser, als wenn man den Code entweder ganz selbst schreiben muss, oder auf irgendwelche frickel Libs von frickel OS-Entwicklern zurückgreifen.
Natürlich gibt es auch Gegenbeispiele. zlib ist supi, da kann man nix sagen, mit sowas kann man toll arbeiten. Ein "überhaupt nicht super" Beispiel für Komponenten der Java-Standard Library kann ich jetzt nicht nennen, dafür kenn ich das Teil zu wenig.
Es gibt auf jeden Fall etliche Firmen die Java verwenden, die kreuz und quer Systeme mischen beim Entwickeln/Testen/Deployen etc., und wo das sehr gut hinhaut. Mit ganz normalen "off the shelf" Programmierern, keine Programmierer-Götter die einfach alles können.
Dagegen kenn' ich keine Firma, wo das mit C oder C++ in dieser Art hinhaut.
Was ich damit eigentlich sagen will: man kann glaube ich mit Java viel einfacher systemunabhängigen Code schreiben, als mit C oder C++
-
Meiner Meinung nach sind Programmiersprachen und -systeme nur Mittel zum Zweck.
Eine langfristige und sichere Perspektive für dein Wissen hast du nicht.
Spezialisierung auf ein System ist immer ein Risiko, nämlich dass es nicht mehr gebraucht wird, dort wo du bist.
Im technischen Bereich z.B. ist es viel wichtiger sich in Mathe,Physik,... ein solides Fundament zu erarbeiten. D.h. auch nach dem Studium dran bleiben. Das erlaubt dir flexibel auf neue Situationen zu reagieren (bis zur Rente).
Ich finde es wichtiger sich ein Projekt als Ziel zu setzen und zu Überlegen/Recherchieren, wie komme ich da hin. Da ist das Programmieren dann vielleicht nur ein kleiner Teil davon.