"We are back" « oc.at

@ pro-coders

daisho 08.07.2004 - 23:59 2596 41
Posts

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von gerhardtt
also ich würd dir c++ empfehlen(wenn du keine plattformunabhängigkeit willst) (ist ein objektorientierte sprache) ordentlich zu lernen... und man lernt nicht die sprachen sondern das paradigma (objektorientiertheit). profis solltens sich dann doch sehr schnell in java einarbeiten können wenn sie c++ wirklich gut können (schätz 3 wochen und ein c++ mensch kann java) aber bis man c++ kann ~ mehrere jahre.

C++ an sich ist sehr wohl plattformunabhängig, und nicht nur eine objektorientierte, sondern eine "multi paradigm programming language" (sagt der Erfinder Bjarne Stroustrup). In C++ kannst du prozedural, objektorientiert, generisch (mit Templates) oder klingonisch programmieren, je nachdem was der beste Weg zur Lösung des aktuellen Problems ist.

Das ist natürlich einer der Gründe, warum C++ nicht ganz einfach zu lernen ist (ich kanns nach 10 Jahren professioneller Programmierung noch immer nicht bis ins letzte Detail). "Mehrere Jahre" ist sicher nicht falsch.

Ein anderer Grund liegt in den vielfältigen Libraries für C/C++, die bei weitem nicht so einheitlich sind wie die von Java (und die sind auch großteils plattformspezifisch). Auch ein erfahrener C++-Programmierer wird daher länger als 3 Wochen brauchen, um sich die diversen Libraries und Java-spezifischen Paradigmen anzueignen.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von diokletian
das arge bei java is halt, dass du wirklich "cleanen code" schreiben musst, das is bei cpp ned ganz so schlimm :).

edit: was bei java suckt is der interpreter :rolleyes:

In Java brauchst du dich um das Freigeben deiner Objekte nicht zu kümmern, das vergißt die Runtime automatisch für dich.

Und welchen Interpreter meinst du? Heutige JVMs haben alle einen JIT Compiler.

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von Neocron
So, wies derzeit aussieht wird Java in den nächsten Jahren ganz gross rauskommen... auf den Universitäten in Österreich wird nur mehr Java gelehrt, andere prgrammiersprachen höchstens in grundsätzen
auch unser ehemaliger Info Lehrer hat voll auf Java gesetzt!
_JAVA_!

Früher wurde Pascal gelehrt, deshalb hat es sich auch ganz stark durchgesetzt, ja? ;)

Java ist aber trotzdem stark im Kommen, schließlich ist es das Basic der 90er Jahre.

DKCH

Administrator
...
Registered: Aug 2002
Location: #
Posts: 3343
Zitat von that
Früher wurde Pascal gelehrt, deshalb hat es sich auch ganz stark durchgesetzt, ja? ;)

nicht nur früher ;)

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11346
Zitat von Ringding
Ein Wechsel von C++ zu Java ist unwahrscheinlich. Kein Mensch, der C++ kann - und damit meine ich wirklich können, nicht nur vom Hörensagen -, steigt freiwillig zu Java um. Da kommt man sich einfach viel zu eingeengt vor. Wie ein Spielzeug ist das (bitte keinen Flamewar jetzt).

Mich schreckt vor allem ab, wie umständlich viele Dinge in Java sind. Wozu hat man eine moderne Programmiersprache, wenn man nicht einmal eine universelle max() Funktion schreiben kann? (fragt zumindest A.Stepanov, der Autor der C++ Standard Template Libary) Mir ist auch nicht ganz klar, warum IBM WebSphere auf einem P4-3000 mit 2 GB RAM mehr als eine Minute zum Starten braucht und dann hunderte Megabyte RAM verbrät, obwohl nur eine kleine Anwendung installiert ist und noch niemand connected ist.

Mit Java 1.5^H^H^H5.0 ist ja da teilweise Besserung zu erwarten, mal sehen...

Der Umstieg von C++ auf Java kann ja auch wirtschaftlich motiviert sein, immerhin gibt es immer mehr Arbeitsplätze für Java-Programmierer und immer weniger für C++.

Java ist eindeutig die Programmiersprache der Zukunft.

... d.h. irgendwann in der Zukunft wird es Maschinen geben, auf denen Java ordentlich läuft. ;)

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9845
also das auf unis nur mehr java unterrichtet wird ist absoluter schwachsinn.

und das java die sprache der zukunft ist würde ich persönlich nicht behaupten. java ist ne nette sprache zum unterrichten und um programmieren zu lernen, das wars dann aber auch schon.

ich würd eher sagen c# ist die sprache der zukunft.

und wieso auf java umsteigen zwecks GUI programmierung?

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von that
Mich schreckt vor allem ab, wie umständlich viele Dinge in Java sind.
Was ist denn in Java so kompliziert/umständlich?

Also ich glaube auch, dass es einfach darauf ankommt, was du programmieren willst. Für eine einfache P2P Software ist Java sicher am einfachsten. Für das Zugreifen auf irgendwelche spezifischen Hardwaregeräte, wirst du an C/C++ nicht vorbeikommen und für Webseiten empfiehlt sich wiederum Java (PHP ist wirklich ein Graus).

Übrigens glaub ich nicht, dass Java in den nächsten Jahren einen großen Boom erleben wird. C/C++ wird imho weiterhin am meisten Einsatz finden ;)

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
Zitat von that
Ein anderer Grund liegt in den vielfältigen Libraries für C/C++, die bei weitem nicht so einheitlich sind wie die von Java (und die sind auch großteils plattformspezifisch). Auch ein erfahrener C++-Programmierer wird daher länger als 3 Wochen brauchen, um sich die diversen Libraries und Java-spezifischen Paradigmen anzueignen.

die 3 wochen bezogen sich auf die theoretischen unterschiede zu c++. wie lange es dauert bis man java "kann" ist eine andere frage. und ich glaube nicht das es ein java-paradigma gibt (zumindest kann ich mir keins vorstellen). man programmiert objektorientiert (fast zumindest) aber das tut man in c++ auch (wenn man will).

ad pascal = java:

also nur weil informatiklehrende jetzt java verwenden ist es im prinzip nicht schlecht. ich glaube nicht das es die gleiche leidensgeschichte durchmachen wird wie pascal. pascal wurde in der schule nur wegen seiner vermeintlich leichtern lesbarkeit verwendet (aber aus dem grund eine programmiersprache einer anderen vorzuziehen ist blödsinn - damit arbeiten muss ja sowieso ein programmier und der versteh code - egal ob pseudo code,pascal oder c).

ich find java schon langsam schön - auch wenn die generics im 1.5 anscheinend ein bisschen stiefmütterlich implementiert worden sind.

grüsse

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von gerhardtt
auch wenn die generics im 1.5 anscheinend ein bisschen stiefmütterlich implementiert worden sind.
Besser geht's halt nicht in der JVM.

Für C/C++ Leute ist es deshalb umständlich, weil alle Methoden/Variablen aus der Lib elend lange Namen haben mit komischer Groß-/Kleinschreibung, weil's keine Makros gibt, mit denen man sich blödsinnige Wiederholungen sparen könnte und noch sonst sehr viele nützliche Dinge tun kann, weil man hunderttausend Exceptiondeklarationen schreiben muss und die Klassen damit völlig unleserlich macht - oder alles mit throws Exception erschlägt und damit den Sinn des ganzen untergräbt -, keine getrennten Header/Implementierung (man muss also immer im ganzen .java File herumsuchen und kann sich nicht auf ein schlankes .h beschränken), ...

Römi

Hausmeister
Avatar
Registered: Feb 2001
Location: Bez. Tulln
Posts: 5377
also ich glaub man kann nicht sagen dass eine Sprache sich durchsetzt...

C++ ist wichtig

Java aber auch, Ein Freund von mir hat vor einem Jahr ca zu arbeiten begonnen in einem SW Unternehmen, die machen alles hauptsächlich in Java.

php mag ich zwar überhaut ned so (imho murks) aber es ist denk ich auch sehr wichtig sich damit ein wenig auszukennen - Webzeug braucht man sowieso immer.

Zum anfangen wenn du die theorie beherrscht usw würd ich sagen is Java einfacher wenn man das Konzept versteht, aber vieles lernt man nur mit c (pointer, usw?)

Wobei ich kein Profi bin... ist halt meine Einschätzung.
Wirklich können kann ich gar keine Sprache, aber mit c++, java, php, assembler, modula2 hatte ich schon zu tun während meiner Ausbildung. Unnötig zu sagen dass ich nur Bruchteile kann bzw manches gar ned (zb assembler ;) ).

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12215
Mal etwas anderes: Hab mich heute mal hinter Ruby geklemmt, gefällt mir recht gut, auch wenn die Sytax natürlich wieder mal das Rad neu erfinden muss :rolleyes:

Trotzdem ist die Sprache irgendwie genau das, was ich mir vor 9 Jahren anstatt QBasic immer gewünscht habe *g*

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
Zitat von daisho
Welche Programmiersprache wird in der Praxis benutzt? Welche Vor- und Nachteile haben diverse Sprachen (VC++, VB, Java, ...).

Die einfache Antwort auf deine Frage: ALLE (wobei, wie schon zu vor erwähnt, VC++ keine Sprache sondern eine Entwicklungsumgebung ist).
Welche Sprache verwendet wird hat allerdings nicht immer einen gerechtfertigten, programmiertechnischen oder wirtschaftlichen, Grund. Wenn ein Vorgesetzter der im Grunde keine Ahnung von der Materie hat meint es müsse ein ganzes Projekt in Sprache X geschrieben werden obwohl es keine rationalen Gründe dafür gibt dann wird eben Sprache X verwendet. Wenn solchen ambitionierten Leuten eingetrichtert wurde das in Java oder VB entwickelte Software schneller fertig, sicherer, benutzerfreundlicher, besser zu warten, etc. ist, dann wird eben diese Sprache eingesetzt. (Aktuelles Beispiel @ Siemens: Fertiges, funktionierendes, in Java programmiertes EDV-System wird in VB neu geschrieben weil der Vorgesetzte es "dann auch versteht". :bash: )

Die Leute die dem Marketing von SUN (Hut ab übrigens, ein so ineffizientes und imho unnötiges Produkt so gut zu vermarkten ist schon eine Leistung) erlegen sind und mit dem Buzzword "Platformunabhängig" um sich werfen haben allerdings offensichtlich keine Ahnung von Alternativen. Wie ebenfalls bereits erwähnt ist C/C++ (dessen Kern _extrem_ schlank und daher effizient ist - nicht mal I/O ist da vorhanden (-> Bibliotheken)) sehr wohl leicht zu portieren. Schwierig wird es erst wenn man anfängt APIs von Betriebssystemen direkt anzusprechen, denn damit bindet man sich an deren libs. Das es einige, kommerzielle oder kostenlose (Open-Source) Lösungen für dieses Problem gibt ist wohl den wenigsten bewusst. Libs wie Qt oder wxWidgets bieten für den Entwickler ein einheitliches Interface das auf allen Platformen identischen Code zulässt und dabei die durchaus unterschiedliche Handhabung der Systeme im Hintergrund abwickelt.
Es ist somit überhaupt kein Problem portable, native GUI-Applikationen in C++ zu schreiben. Es ist lediglich eine neu-compilierung auf dem entsprechenden System erforderlich.

Das Java die Dinge vereinfacht und dem Entwickler (wie ebenfalls schon angesprochen) Freiheiten nimmt finde ich ebenfalls _nicht_ gut, denn imho hat ein professioneller Entwickler zu wissen was er / sie tut, und sich auf ein Sicherheitsnetz der Sprache zu verlassen hat damit wenig zu tun.

Last but not least zu Java: Es regt mich immer wieder auf, weil es so unverständlich ist, in einer Sprache zu schreiben die aktuelle PCs aussehen lässt als wären sie 5 Jahre alt! Zugegeben ist es für einen einfachen Taschenrechner nicht relevant, aber das "Argument" das die "heutigen PCs ja eh schon schnell genug sind" ist einfach nur haarsträubend! Das wäre so als würde man sagen: "Die Kühler heutzutage sind doch eh schon leistungsfähig genug! Um die Abwärme der künftigen CPUs brauchen wir uns also garnicht zu kümmern, super!". Effizienz ist der Schlüssel.

Ad PHP (und Java im Web): Was hat Java im Web zu suchen? Ausser für Spielchen (dieses Multiplayer-MiniGolf ist zb sehr gut :) ) und Go-ICQ ist es doch nichts als eine Plage für den User. Jede Seite die eine Minute für das Laden von irgendwelchen (toll animierten) Java-Applets verschwendet wird von mir geächtet und nach Möglichkeit gemieden. Eine Kombination aus PHP und JavaScript bietet imo ausreichend Möglichkeiten für eine Webpräsenz und fast jede Seite (je nach Datenbankzugriff) ist in Bruchteilen einer Sekunde vom Server generiert. So soll es sein.

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Java Server Pages meint er wohl. Da hat es durchaus seine Berechtigung, ist großteils auch ziemlich performant und ist immerhin eine echte Konkurrenz zu ASP.NET (eigentlich sollte ich's umgekehrt sagen, schließlich war JSP ja vorher da... :))

Bzgl. C/C++ und plattformunabhängige GUIs - ich beschäftige mich gerade mit Mozilla Embedding, das ist mittlerweile schon eine echt brauchbare Alternative.

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
Zitat von FMFlash
Ad PHP (und Java im Web): Was hat Java im Web zu suchen? Ausser für Spielchen (dieses Multiplayer-MiniGolf ist zb sehr gut :) ) und Go-ICQ ist es doch nichts als eine Plage für den User. Jede Seite die eine Minute für das Laden von irgendwelchen (toll animierten) Java-Applets verschwendet wird von mir geächtet und nach Möglichkeit gemieden. Eine Kombination aus PHP und JavaScript bietet imo ausreichend Möglichkeiten für eine Webpräsenz und fast jede Seite (je nach Datenbankzugriff) ist in Bruchteilen einer Sekunde vom Server generiert. So soll es sein.

also es scheint als ob du dich mit java im web noch nicht beschäftigt hast. ich meinte nicht nur jsp sondern auch servlets, die sind meiner meinung nach unglaublich mächtig. wenn du noch nicht weiter bist als "java+web=applet" dann solltest vorher mehr lesen um mitdiskutieren zu können.

und ich sehe in dem prinzip das java dem programmierer die möglichkeiten nimmt keinen fluch. es is schön und gut wenn man kontrolle über das system hat, aber man kanns auch übertreiben. jeder java programmierer weiss (oder sollte) wissen was der gc macht etc. aber er muss sich eben nicht mehr mit nebensächlichen dingen herumspielen die ihn eigentlich von seiner wahren aufgabe abhalten. den speicher alloziieren und wieder freigeben ist meiner meinung nach eine einfache angelegenheit die java einem abnimmt (zumindest teilweise). für kontrollfreaks is java wohl nichts, für leute die etwas entwickeln wollen, das sich mit java entwickeln lässt, sehr wohl.

FMFlash

tranceCoder
Avatar
Registered: Mar 2001
Location: Wien
Posts: 2037
Zitat von gerhardtt
also es scheint als ob du dich mit java im web noch nicht beschäftigt hast. ich meinte nicht nur jsp sondern auch servlets, die sind meiner meinung nach unglaublich mächtig. wenn du noch nicht weiter bist als "java+web=applet" dann solltest vorher mehr lesen um mitdiskutieren zu können.

Da hast du wohl recht, also bitte gib mir was über die Mächtigkeit von Servlets zu lesen (aus deinem reichen Erfahrungsschatz), damit ich auch mitdiskutieren kann. Danke. ;)

Zitat von gerhardtt
und ich sehe in dem prinzip das java dem programmierer die möglichkeiten nimmt keinen fluch. es is schön und gut wenn man kontrolle über das system hat, aber man kanns auch übertreiben. jeder java programmierer weiss (oder sollte) wissen was der gc macht etc. aber er muss sich eben nicht mehr mit nebensächlichen dingen herumspielen die ihn eigentlich von seiner wahren aufgabe abhalten. den speicher alloziieren und wieder freigeben ist meiner meinung nach eine einfache angelegenheit die java einem abnimmt (zumindest teilweise). für kontrollfreaks is java wohl nichts, für leute die etwas entwickeln wollen, das sich mit java entwickeln lässt, sehr wohl.

Wir sollten wohl alle etwas "mehr lesen", denn die Objekte der STL und Bibliotheken wie wxWidgets überlassen fast nur noch das new der Objekte dem Programmierer. Somit braucht man sich hier genauso wenig um die Speicherverwaltung kümmern. Der feine Unterschied ist das einem C++ die WAHL lässt wie man mit diesem Werkzeug umgeht. Wenn es z.B. um performance-kritische Bereiche handelt kann es sich durchaus auszahlen die Speicherverwaltung dafür selbst zu schreiben statt z.B. das "string" Objekt zu verwenden. Viele schreiben Programme in C++ ohne um die Möglichkeiten - und im Sinne des Erfinders korrekte Anwendung - der STL zu wissen. Geht mir leider auch nicht selten so, liegt wohl am "aufwachsen" mit "normalem" C. :p
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz