Welche Sprache
-
Hi,
ich weis ja nicht, wieso Java so viel einfacher sein soll als Delphi.
Delphi hat den vorteil, daß alles was die Oberfläche betrifft in den dfm-Dateien abgelegt ist und die eigentliche Programmierseite davon sauber bleibt.
Mit aus 5 Zeilen eine 6. berechnen meinte ich mit Sicherheit nicht addieren.
Kaputtlachen könnte ich mich immer, wenn als wichtigstes aller Argumente die Portabilität aufgeführt wird. Und für was programmieren die Erfinder des Schießpulfers die am lautesten danach rufen dann wirklich? Für Windows!
Für große Projekte mag Portabilität sicher eine Beduetung haben, aber ich vermute mal, das mindestens 95 % aller Programmierer nie ihre Programme auf eine andere Basis als die Microsoft-Systeme heben.Gruß Mümmel
-
muemmel schrieb:
Kaputtlachen könnte ich mich immer, wenn als wichtigstes aller Argumente die Portabilität aufgeführt wird. Und für was programmieren die Erfinder des Schießpulfers die am lautesten danach rufen dann wirklich? Für Windows!
Für große Projekte mag Portabilität sicher eine Beduetung haben, aber ich vermute mal, das mindestens 95 % aller Programmierer nie ihre Programme auf eine andere Basis als die Microsoft-Systeme heben.Das dürfte u.a. auch ein Henne-Problem sein.
-
wenn ich das so lese - wird zeit für was neues
-
das meiste ist doch schon längst dagewesen, es wird nur von vielen ignoriert, oder kann mir jemand erklären, was man mit java,ruby,python machen kann, das man nicht auch mit smalltalk und tcl seit 2 bis 3 Jahrzehnten machen könnte (von der schlüssigeren Syntax der beiden letzteren gar nicht zu reden)?
-
u_ser-l schrieb:
das meiste ist doch schon längst dagewesen, es wird nur von vielen ignoriert, oder kann mir jemand erklären, was man mit java,ruby,python machen kann, das man nicht auch mit smalltalk und tcl seit 2 bis 3 Jahrzehnten machen könnte (von der schlüssigeren Syntax der beiden letzteren gar nicht zu reden)?
Es geht doch garnicht darum, was man machen kann?! Es geht doch darum wie man es machen kann.
Mit 6502-Assembler kann ich auch alles machen. Nur wie mache ich das damit? Und dann weiß ich, das ich dafür kein 6502-Assembler mehr nehmen würde. Weil ich das gleiche Problem mit anderen Sprachen anders (z.B. einfacher) umsetzen kann. Meistens geht es auch um Nachhaltigkeit. Ich kann mit Sprache X nicht so nachhaltig entwickeln wie mit Sprache Y. Sprache A ist für kleine Programme geeignet, dafür komm ich bei komplexen Programmen in eine Sackgasse und nehme dafür lieber Sprache B, auch wenn diese bei kleinen Programmen umständlicher ist.
-
ja, ist ja wahr. Aber die von mir genannten smalltalk und tcl sind derart durchdacht aufgebaut und flexibel, daß sie die Anforderungen aus mehreren Jahrzehnten erfüllen können, ohne daß man die Sprachen um neue Syntax/Features anreichern müßte.
Braucht man in tcl ein Objektmodell, kann man eins implementieren - es gibt mehrere (xotcl, itcl, snit ...), davon sind einige sogar in tcl selbst (!) implementiert.
Ähnlich in smalltalk - was fehlt, wird hinzuimplementiert, ohne Änderung am Sprachkern. Wozu dann python oder gar ruby ?
-
Bulli schrieb:
Mit 6502-Assembler kann ich auch alles machen. Nur wie mache ich das damit? Und dann weiß ich, das ich dafür kein 6502-Assembler mehr nehmen würde. Weil ich das gleiche Problem mit anderen Sprachen anders (z.B. einfacher) umsetzen kann.
ich glaube es liegt nur daran, wie man seine programme strukturiert. höhere programmiersprachen erzwingen eine günstige struktur, während man mit assemblersprachen sehr diszipliniert umgehen muss. aber wer 'es kann', kann sicherlich auch mit 6502-assembler komplexe und grosse programme schreiben, die trotzdem erweiter- und wartbar sind.
-
u_ser-l schrieb:
das meiste ist doch schon längst dagewesen, es wird nur von vielen ignoriert, oder kann mir jemand erklären, was man mit java,ruby,python machen kann, das man nicht auch mit smalltalk und tcl seit 2 bis 3 Jahrzehnten machen könnte (von der schlüssigeren Syntax der beiden letzteren gar nicht zu reden)?
Neuere Bibliotheken zu finden? (1)
Was ich unter "b) die Bibliotheken die verfuerbar sind" einordne.Java ist die Sprache, die am wenigstens Features bietet. Generics wurde erst 2004 eingefuehrt (3), keine Closures, keine Lamdas, keine Operatorueberladung, keine Mehrfachvererbung. Wieso ist aber dann Java so erfolgreich? Es hat schon 2005 die Anzahl an Projekte, die in C++ geschrieben sind, auf Sourceforge eingeholt (2).
C 14613 projects
C# 2304 projects
C++ 15131 projects
Java 14520 projects
Perl 5728 projects
PHP 10731 projects
Python 3894 projectsWeis jemand wie man eine aktuelle Statistik ueber die Sprachen auf SourceForge bekommt?
(1) http://www.cs.berkeley.edu/~flab/languages.html
(2) http://rengelink.textdriven.com/blog/index.php?id=2
(3) http://en.wikipedia.org/wiki/Generics_in_Java
-
DEvent schrieb:
Java ist die Sprache, die am wenigstens Features bietet. Generics wurde erst 2004 eingefuehrt (3), keine Closures, keine Lamdas, keine Operatorueberladung, keine Mehrfachvererbung. Wieso ist aber dann Java so erfolgreich?
Man könnte gemein sein und sagen, dass man versucht hat Java so einfach wie möglich zu halten um die ganzen Wirtschaftsinformatiker und Durchschnittsprogrammierer zu bedienen. Dafür gab es offensichtlich einen Markt den man offensichtlich erfolgreich bedient hat. Ein langweiliges, emotionsloses Stück Sprache+Framework.
-
Tim schrieb:
Ein langweiliges, emotionsloses Stück Sprache+Framework.
dafür dass es so emotionslos ist, waren die flamewars (z.b. früher hier) aber ganz schön emotionsgeladen.
-
+fricky schrieb:
Tim schrieb:
Ein langweiliges, emotionsloses Stück Sprache+Framework.
dafür dass es so emotionslos ist, waren die flamewars (z.b. früher hier) aber ganz schön emotionsgeladen.
Irgendwie müssen sich die generischen Java-Progger auch mal austoben
-
DEvent schrieb:
Java ist die Sprache, die am wenigstens Features bietet.
ich denke mal, daß Forth, LISP, smalltalk und tcl (Hoch-)Sprachen sind, die vom Sprachkern her am wenigsten Features haben - diese Sprachen bieten aber dank ihrer überaus weitsichtigen Konzepte unendliche Möglichkeiten, Features zu implementieren, und zwar - das ist der Punkt - ohne die Sprache zu verlassen.
Es ist beispielsweise problemlos möglich, in Forth oder tcl ein prototypenbasiertes Objektmodell zu implementieren, wenn einem die herkömmlichen klassenbasierten Objektmodelle nicht passen. In java wüßte ich nicht, wie man das Objektmodell wechseln könnte, ohne den Sprachkern zu ändern.
DEvent schrieb:
Wieso ist aber dann Java so erfolgreich?
ein passender Hype zur passenden Zeit ? - Internet war in den 90ern für die meisten Anwender neu und das web war mega-in; die Idee, Software im Browser laufen zu lassen, portabel und auf einer virtuellen Stackmachine, faszinierte einen Teil der Fachwelt und Anwender. Da kann man schon mal vergessen, daß smalltalk ziemlich genau dies schon Jahrzehnte vorher ermöglicht hatte, und das auch noch ganz ohne verquaste Syntax.
-
Und was lernt uns diese Diskussion, und vor allem was kann der Fragesteller damit anfangen?
Ich meine, nichts oder nicht viel.
Er war mit C++ schon auf dem richtigen Weg.
Wenn er damit klarkommt, kann er sich alles übrige leicht aneignen, wenn er es denn noch will.
-
berniebutt schrieb:
Und was lernt uns diese Diskussion, und vor allem was kann der Fragesteller damit anfangen?
Er hat eine wichtige Lektion gelernt: Frage nicht in einem Programmierforum welche Sprache man lernen sollte
-
Tim schrieb:
Er hat eine wichtige Lektion gelernt: Frage nicht in einem Programmierforum welche Sprache man lernen sollte
lol
-
is' doch wahr
-
Hi,
die Existenzberechtigung von Java und C#, das ist ähnlich wie die Frage, warum viele (seriöse?) Firmen immer noch mit Basic und dessen Varianten programmieren.
Es ist einfach billiger einen Programmierer für Basic, Java, C# auszubilden als für C++. Irgendwann wird der C++-Programmiere vielleicht besser und produktiever sein als aus den anderen Sprachen, vor allem wenn er sich seinen eigenen Fundus auf den er zurückgreifen kann zusammenprogrammiert hat. Aber wenn ich einen habe der frisch von der UNI oder BA kommt, dann wird der eben wesentlich schneller produktiv werden als mit C++. Und es werden mit den Sprachen auch die klar kommen, die man nie im leben auf C++ loslassen würde. C++ ist zwar eine ganz tolle Sprache, mit der man alles machen kann, aber es ist wohl derzeit die mit weitem Abstand umfangreichste Sprache. Seinerzeit ist ja schon PL1 an der zu großen Kompliziertheit gescheitert. In C++ reicht es ja nicht, einfach nur zu lernen, viele Dinge muß man ganz einfach erst mal verstehen, und einige von den Abstraktionsmechanismen sind für einen Anfänger sicher dickes Brot.
Im übrigen bin ich aber nicht der Meinung, daß es problemlos ist, von C++ zu den einfacheren Sprachen zu gehen. Ich selber kommer eigentlich eher von C/C++ und bin arbeitsbedingt zur Zeit überwiegend bei Delphi, und ich hab den Umstieg die ganze erste Zeit als eine gewaltige Zwangsjacke empfunden. Wenn man zu einer leistungsfähigeren Sprache aufsteigt, dann bekommt man zusätzliche Möglichkeiten, über die man sich freut und die man dann mit benutzt. Wenn man dagegen zu einer beschränkteren Sprache zurück geht, dann ärgert man sich nur rund und wund was alles nicht geht was man sonst ganz anders machen würde.Gruß Mümmel
-
Dreierlei.
Erstens. Wieso fragt jeder - Sorry, aber langsam ist das Thema so ausgelutscht wie mein ausgekacktes Eis - Idiot nach, welche Sprache die bestgeeignetste für Ihn wäre?
Zweitens. Wieso sucht derjenige, wenn er denn so lust hat das Programmieren anzufangen - wo er ja eh im nachhinein öfter mal recherchieren muss - hat, nicht einfach mal per Google oder Board-Suche.
Drittens. Wieso fallen alle Forenmitglieder jedesmal darauf rein und fangen auch noch direkt danach mit einem Krieg der Sprachen an?
Ich kanns echt nicht mehr verstehen und sehen.
-
berniebutt schrieb:
Er war mit C++ schon auf dem richtigen Weg.
zweifellos, wenn er den weg des waldarbeiters bevorzugt.
-
muemmel schrieb:
die Existenzberechtigung von Java und C#, das ist ähnlich wie die Frage, warum viele (seriöse?) Firmen immer noch mit Basic und dessen Varianten programmieren.
Es ist einfach billiger einen Programmierer für Basic, Java, C# auszubilden als für C++. Irgendwann wird der C++-Programmiere vielleicht besser und produktiever sein als aus den anderen Sprachen, vor allem wenn er sich seinen eigenen Fundus auf den er zurückgreifen kann zusammenprogrammiert hat. Aber wenn ich einen habe der frisch von der UNI oder BA kommt, dann wird der eben wesentlich schneller produktiv werden als mit C++. Und es werden mit den Sprachen auch die klar kommen, die man nie im leben auf C++ loslassen würde. C++ ist zwar eine ganz tolle Sprache, mit der man alles machen kann, aber es ist wohl derzeit die mit weitem Abstand umfangreichste Sprache.Sehe ich nicht so. Meine Erfahrung ist die: Java ist zwar einfach zu lernen und man hat alle Fallen schnell gerafft, aber dafür muß man sehr viel Lehrzeit in Frameworks und Laufzeitumgebungen investieren. D.h. es reicht nicht Java+JRE zu lernen, denn damit kann man im Enterprise-Bereich keinen Blumentopf gewinnen. Nach Java+JRE geht erst das Lernen richtig los! JEE, EJB, OSGi, Eclipse-RCP, Spring uvm.
Ich finde es wirklich naiv und gefährlich hier zu verbreiten, das man mit java+JRE in Enterprise-Projekten voll dabei sein kann. Ganz im Gegenteil, wer bei uns mit Java-JRE ankommt, muß erstmal an Schulungen teilnehmen und dann hat er immer noch keine Praxiserfahung, sondern wird jeden Tag ankommen und fragen, wo denn wie und was nochmal ging.
Die Komplexität in Java verschiebt sich einfach nur in Richtung Tools, Frameworks und Platformen. Warum? Weil Dinge wie OSGi und Eclipse-RCP das Java-Defizit wieder ausbügeln müssen! Das was ich in C++ & Operating System schon komplett habe, muß ich bei Java + JRE durch OSGi & Co erweitern, um überhaupt an die Features von C++ & Operating System zu kommen. Schaut euch doch mal OSGi und Eclispe-RCP an: die ganzen Features habe ich schon in C++ und Windows (oder auch jedes andere OS).
Warum sollte ich auch mit einer naiven Sprache und Runtime im Enterprise das erreichen können, was komplexe Systeme ermöglichen? Die ganzen Features in Windows (oder auch jedes andere OS) sind doch nicht zum Spaß entwickelt worden. Sondern weil sie benötigt werden. Und da Java & Co. absolut keinen Zugriff drauf bieten, muß man sie durch Tools, Frameworks und Runtime/Platforms erweitern - und natürlich muß sie ein Studienabgänger alle lernen!
Denkt bitte mal darüber nach, ob man mit Java & Co. wirklich weniger Lehrzeit benötigt!?