Hallo.
Ich beschäftige mich „hobbymäßig“ mit Programmieren. Bisher habe ich mit
C und (berufsbedingt) mit LabView programmiert.
Ich möchte jetzt auch „privat“ wesentlich tiefer und professioneller ins
Programmieren einsteigen und bin derzeit auf der Suche nach einer
geeigneten Programmiersprache für mich. Ein wichtiges Kriterium für mich
ist, eine Programmiersprache mit Perspektive zu finden. Auch wenn man
heute nur schwer beurteilen kann was in 10 Jahren ist.
Linux kann ich nichts abgewinnen, daher wird Windows als Plattform
dienen. Für Embedded-Programmierung werde ich weiterhin bei C bleiben.
Zeit ist knapp, das gilt leider besonders bei mir derzeit. Daher will
ich mich wirklich auch eine Sprache konzentrieren um dort entsprechend
tief einzusteigen. Ich habe mir schon selbst einige Gedanken gemacht,
würde aber jetzt gerne mal eure Meinung zu folgenden Programmiersprachen
hören:
- C++ bzw. Visual C++ (Express)
- D (von manchen als „die Zukunft“ gepusht?)
- Visual Basic
- Java
- C#
Dies sind die Programmiersprachen zwischen denen ich schwanke. Alle
haben scheinbare Vor- und Nachteile. Ich freue mich über eure Meinungen
und erhoffe mir davon weitere Aspekte, die ich vielleicht bisher noch
nicht bedacht habe.
Danke vorab für jede Hilfreiche Meinung.
Es kommt immer darauf an, WAS du damit programmieren willst.
Jede Sprache hat ihre Stärken.
Ich würde C/C++ empfehlen.
Es ist auf jeden Fall das universellste.
Damit kann man alles machen. (Wenn auch nicht immer am leichtesten)
Ausserdem ist es für jede Hardware und jedes Betriebssystem verfügbar,
was auf alle anderen eher nicht zutrifft.
>Es kommt immer darauf an, WAS du damit programmieren willst.>Jede Sprache hat ihre Stärken.
Ich eher zu Java als zu C++ tendieren.
-Java wird mittlerweile öfter nachgefragt
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-Sehr einfach und schnell zu lernen
-Gute Entwicklungsumgebungen
-Stärken im Enterprise - Umfeld (J2EE)
-Starke externe Libs (Apache commons, Java3D, JavaMediaFramwork,...)
-...
Ist aber wieder ein Glaubenskrieg
Um die immerwährende Diskussion etwas abzukürzen (als ob es noch nie
eine Programmiersprachen-Diskussion gegeben hätte ...):
[ ] Sind alle scheiße
[ ] Sind alle super
[ ] $X ist super, alle anderen scheiße
Wie bereits gesagt wurde, je nach Einsatz und Branche sind andere
Programmiersprachen üblich.
Was ich so kenne und schon gesehen habe:
C -> Mikrocontroller, einfache Konsolenprogramme für Linux und co.
C++ -> PC Software die einigermassen portabel sein soll, Treiber,
Zeitkritische Anwendungen
C# -> Stark am aufkommen für kleine, mittlere bis sehr grosse
Softwareprojekte für Windows. Gute Unterstützung von Teamarbeit.
Java -> Embedded Geräte, Software für Banken
Visual Basic -> Software für Testsysteme in Produktionsstätten
Habe nie jemanden D programmieren sehen, das war eine ziemliche
Totgeburt und daran wird sich so schnell auch nichts ändern.
Sag mal etwas genauer, welche Art Programme du schreiben willst.
"Hardwarenah" programmieren kann man auf Windows eigentlich gar nicht
mehr, außer man schreibt Device-Treiber, aber das ist Hardcore und zum
Einstieg nicht zu empfehlen.
Zu C++: Du kannst schon C, würdest also vermutlich relativ zügig
kompilierbaren C++-Code hinkriegen und kennst auch ein paar der
typischen Fallen (Pointerfehler und so). Trotzdem, ein
Do-it-yourself-Umstieg auf C++ geht oft schief, weil man zuerst komplett
umdenken muss auf Objektorientierung, bevor man C++ "richtig" einsetzen
kann, und viele lernen das nie - warum denn, geht doch auch so.
Es spricht also viel für einen klaren Schnitt und einen Neuanfang mit
einer modernen Sprache (C# oder Java).
Ein Knackpunkt könnte die Schnittstelle zum Betriebssystem (WinAPI)
sein. Die wird in C++ natürlich voll unterstützt. Ich weiß nicht, ob in
Java alles geht. In C# ja - was nicht von .NET unterstützt wird, muss
man sich über Platform-Invoke holen. PI-Code sieht nicht gerade schön
aus, und man muss sich einlesen, aber die hässlichen Teile können danach
in einem Interface-Modul konzentriert werden, und der Rest bleibt
sauber. Außerdem gibts nicht mehr wirklich viel, wofür man PI braucht.
Also auch hier keine Notwendigkeit für C++.
C# oder Java würde ich für Applikationen ohne Einschränkung empfehlen,
je höher der Level (Oberfläche, Workflow, Kommunikation), desto besser.
Die zur Verfügung stehenden Sprachmittel lassen kaum Wünsche offen. Die
Ähnlichkeiten zwischen Java und C# sind groß, so dass da hauptsächlich
der persönliche Geschmack den Ausschlag geben dürfte. Beide haben
leistungsfähige Compiler und robuste Laufzeitumgebungen, die beim
Debuggen gute Unterstützung geben.
Die wichtigste IDE für C# ist Microsoft Visual Studio, es gibt auch eine
Express-Version. Daneben gibts noch SharpDevelop, aber das kenne ich
nicht.
Für Java gibts mehrere populäre IDEs, hier entscheidet der Geschmack.
D hab ich in freier Wildbahn noch nie gesehen, das halte ich für eine
Randerscheinung.
C# ist eindeutig die beste Programmiersprache für Standard
Windowsapplikationen. Die Sprache hat z.B. viel viel weniger Fallstricke
als C++. Viele Fehlerquellen von C++ Programmen werden schon durch die
Sprache vermieden. Die Unterstützung von Windowsfunktionen ist durch das
.Net Framework einfach traumhaft. (Im Gegensatz zu Java.) Wenn du
wirklich nur einfache Programme (d.h. nichts mit Live Videoverarbeitung
o.ä.) nur für Windows programmieren willst, dann nimm C#.
Ich will hier mal für MEIN Lieblingstool in die Bresche springen:
RealBasic.
Es ist neben Java m.E. die einzige echte Cross-Platform-Umgebung.
Welches Produkt bietet sonst noch identische Versionen (IDEs) für
Windows, Mac OSX und Linux, auf denen man jeweils für die eigene und
die anderen Systeme lauffähige Programme erstellen kann?
Und das noch dazu ohne vorher irgendwelche Virtual Machines
installieren zu müssen? RealBasic erstellt echte Compilate.
Und wenn jetzt einer "iii Basic!" schreit - es ist ein sehr modernes
objektorientiertes Basic mit Klassen, Methoden, Events ... man kann
eigene Klassen und Objekte erstellen bzw. ableiten. Auf Netzwerk,
Internet, Sound, SQL-Datenbanken und Grafik kann zugreifen.
Ausserdem hat man Zugriff auf alle möglichen Systemfunktionen, z.B. über
API-Calls oder Declare-Statements (dann aber um den Preis der
Plattformabhängigkeit).
Frank
Wobei viele der Meinung sind, das C# nicht unbedingt die Zukunft gehört.
C++ hingegen hält sich seit Ewigkeiten, wird auch noch lange in der
Zukunft eine wichtige Rolle spielen und man kann damit nahezu alles
Programmieren.
Wo ist das Problem; wenn man heute C# lernt heisst es ja nicht, dass man
nicht übermorgen auch C++ lernen und umsteigen kann, falls bis dahin C#
ausgestorben sein sollte.
In der Technik ist ja nichts konstant ausser der Veränderung, das sollte
jedem bewusst sein, welcher in diesem Gebiet arbeiten möchte.
> Wobei viele der Meinung sind, das C# nicht unbedingt> die Zukunft gehört.
Ich wäre sehr gespannt, hierfür eine Begründung zu hören.
Ich bin fest vom Gegenteil überzeugt. C#-Programme haben nach meiner
Erfahrung eine kürzere Time-to-Market und weniger Restfehler als
vergleichbare C++-Programme. In allen Anwendungsbereichen, in denen ein
kleiner Performance-Nachteil entweder in Kauf genommen oder durch
schnellere Hardware kompensiert werden kann, wird C++ durch C# verdrängt
werden, oder ist schon verdrängt.
Für das Zielsystem Windows:
Egal welche Sprache, das Help System der Entwicklungsumgebung muss gut
sein. Und da ist Microsofts MSDN Library kaum zu schlagen.
Für einmalige Programme würde ich C# nehmen weil alles vorgefertigt ist
man damit schnell zum Ziel kommt.
Bei einem eigenen Produkt, welches ich auch in 10 Jahren in Version 5
verkaufe, nur C++ mit MFC.
C sollte man können, wenn man sich ernsthaft mit Programmieren
beschäftigt, ist einfach Standard. Man muss ja nicht jeden Trick und
jedes Detail begreifen, aber man sollte m.E.n. zumindest in der Lage
sein, C-Quellen zu lesen und richtig zu deuten.
Einen riesigen Vorteil könnte man z.B. in frei implementierten Sprachen
(Java, C, C++, C# usw.) sehen: Ich kann mir alles Nötige (Compiler,
Laufzeitumgebung) runterladen und archivieren -- es bleibt trotzdem
lauffähig und für immer wartbar.
Dreht Microsoft dagegen irgendwann mal .NET und C# ab, steh ich erstmal
aufm Schlauch, wohingegen ich z.B. meine GCC-Quelltexte habe, die laufen
mir nie mehr davon.
Alles andere --> ausprobieren, es gibt weder Patentlösungen noch 'die
universelle Sprache'. C kann letztlich sicher 'alles', aber nicht
unbedingt einfach. C++ kann auch 'alles', aber alles auf hundert
verschiedene Arten und hat einige Dinge, die man gerne als
'Designfehler' sehen könnte:
http://yosefk.com/c++fqa/defective.html
hi
ich kann C/C++, C++/CLI empfehlen. Ist bei Visualstudio C++ bei.
C kannst du ja schon. Man kann C Quellcodeteile mit geringen Änderungen
in C++/CLI übernehmen. Treiber sind leicht einzubinden. C++/CLI ist eine
.net Sprache, als diese ist es auch leicht in Labview einzubinden.
> daher wird Windows als Plattform> dienen. Für Embedded-Programmierung werde ich weiterhin bei C bleiben.
C++ bzw. Visual C++ (Express):
Grundsätzlich: C++ (auch der kommende C++0x-Standard) wird in Zukunft
bei weitem nicht die Expressivität und Funktionalität erreichen, die in
anderen Sprachen möglich ist.
U.a. sind Reflexion, Introspektion, dynamische Typisierung,
Metaprogrammierung und funktionale Programmierung entweder nur stark
eingeschränkt (bis zur Unbrauchbarkeit) oder überhaupt nicht möglich.
D (von manchen als „die Zukunft“ gepusht?):
Hat zwar einige sehr gute Ansätze, ist aber weitestgehend eine Insel (es
sind z.B. verglichen mit C++, C# oder Java nur sehr wenige Bibliotheken
vorhanden http://www.dsource.org/projects/ bzw.
http://www.wikiservice.at/wiki4d/wiki.cgi?AllLibraries)
Java:
Für Windows-Desktop-Anwendungen nicht zu empfehlen.
Visual Basic:
Wer's mag soll es benutzen...
C#: Standardsprache für das .NET-Framework
Zu den .NET-Sprachen / dem Framework noch ein paar Punkte:
- Man kann sich die Sprachen/Paradigmen aussuchen mit denen man ein
Problem lösen will, von VB über C#, oder funktional mit F# (1), oder mit
Ruby, Ada etc.
- Ist für so gut wie alles vom Embedded Gerät mit Micro/Compact
Framework bis hin zu Webanwendungen (ASP.Net und Silverlight auf der
Clientseite) und wirklich großen Projekten einsetzbar.
- Gute Dokumentation, viel Source-Code verfügbar (z.B.
www.codeproject.com und www.codeplex.com)
- Sehr gute Unterstützung für GUIs insbesondere WPF (benötigt zwar
etwas mehr Einarbeitung als WinForms, ist dafür aber auch wesentlich
flexibler als andere Lösungen)
(1)
AutoCad und F#
http://through-the-interface.typepad.com/through_the_interface/
Allgemeine Links, Blogs und Code
http://cs.hubfs.net/
Entwickler-Blog
http://blogs.msdn.com/dsyme/
Henry wrote:
> Für das Zielsystem Windows:>> Egal welche Sprache, das Help System der Entwicklungsumgebung muss gut> sein. Und da ist Microsofts MSDN Library kaum zu schlagen.>> Für einmalige Programme würde ich C# nehmen weil alles vorgefertigt ist> man damit schnell zum Ziel kommt.>> Bei einem eigenen Produkt, welches ich auch in 10 Jahren in Version 5> verkaufe, nur C++ mit MFC.
Überspitzt formuliert: Das Programm soll erst in 10 Jahren bestenfalls
Alpha-Status erreicht haben, dann aber auch hoffnungslos veraltet und
gleichzeitig unwartbar sein...
Sven P. wrote:
> Einen riesigen Vorteil könnte man z.B. in frei implementierten Sprachen> (Java, C, C++, C# usw.) sehen: Ich kann mir alles Nötige (Compiler,> Laufzeitumgebung) runterladen und archivieren -- es bleibt trotzdem> lauffähig und für immer wartbar.> Dreht Microsoft dagegen irgendwann mal .NET und C# ab, steh ich erstmal> aufm Schlauch, wohingegen ich z.B. meine GCC-Quelltexte habe, die laufen> mir nie mehr davon.
1. Warum sollte das nicht mehr wartbar sein? VM mit OS, Libs, IDE,
Quelltexten etc. archivieren reicht (sollte man auch bei anderen
Projekten machen)
2. CLI und Sprache sind standardisiert
C#
http://www.ecma-international.org/publications/standards/Ecma-334.htm
bzw.
http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42926
und CLI
http://www.ecma-international.org/publications/standards/Ecma-335.htm
bzw.
http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=42927
3. Es gibt mit der SSCLI schon seit längerem eine Referenzimplementation
der grundlegenden Bibliotheken und Compiler im Quelltext
http://www.microsoft.com/downloads/details.aspx?FamilyID=8c09fd61-3f26-4555-ae17-3121b4f51d4d&displaylang=en
4. Die Quelltexte des aktuellen .NET-Frameworks sind vollständig
verfügbar:
http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx
5. Mit mono und dotgnu existieren zwei alternative Implementationen
Gast wrote:
> Wobei viele der Meinung sind, das C# nicht unbedingt die Zukunft gehört.> C++ hingegen hält sich seit Ewigkeiten, wird auch noch lange in der> Zukunft eine wichtige Rolle spielen und man kann damit nahezu alles> Programmieren.
Sagt wer? Die gleichen Leute die auch sonst ohne die geringsten
Kenntnisse FUD verbreiten?
>Java:>Für Windows-Desktop-Anwendungen nicht zu empfehlen.
Wie kommst du den auf den Mist ???
Desktopanwendungen sind genauso gut wie von jeder anderen
Programmiersprache auch (siehe Swing, SWT)
Marc wrote:
>>Java:>>Für Windows-Desktop-Anwendungen nicht zu empfehlen.>> Wie kommst du den auf den Mist ???>> Desktopanwendungen sind genauso gut wie von jeder anderen> Programmiersprache auch (siehe Swing, SWT)
Definitiv nicht.
Nur mal ein paar Beispiele:
- Look&Feel der Komponenten (egal ob SWT oder Swing, SWT ist nur näher
an einer nativen Anwendung als Swing)
- Window und Komponenten-Refresh beim Ändern der Fenstergröße
- Rendering von Fonts und Renderingunterschiede zw. Java2D und SWT und
dem nativen UI
- Performance/Antwortverhalten
Dazu kommen noch eine ganze Reihe von Gründen die aus Entwicklersicht
gegen Swing und SWT sprechen. Neben der fehlenden Akzeptanz auf dem
Desktop, ist dies u.a. die wesentlich geringere Produktivität.
>Es ist neben Java m.E. die einzige echte Cross-Platform-Umgebung.>Welches Produkt bietet sonst noch identische Versionen (IDEs) für>Windows, Mac OSX und Linux, auf denen man jeweils für die eigene und>die anderen Systeme lauffähige Programme erstellen kann?>Und das noch dazu ohne vorher irgendwelche Virtual Machines>installieren zu müssen? RealBasic erstellt echte Compilate.
ganz einfach ;)
Lazarus
Ist ein Delphi Klon der Delphi vielerorts schon fast verdrängt hat.
Läuft und erzeugt in/für Windows,MacOS,Linux,WinCe,*BSD,Solaris. Der
Compiler (Freepascal) kann für fast jede CPU code erzeugen (sehr ähnlich
gcc) avr z.b. ist gerad in der mache. Die Klassenbibliothek ist
weitestgehend (nicht ganz immer möglich bei Plattformunabhängigkeit)
kompatibel zur Delphi VCL.
Man hat damit sehr schnell ein Programm zusammengeklickt, und Pascal ist
eine sehr schöne saubere Sprache.
Hatte früher in Delphi programmiert, bis ich dann auf Visual Studio mit
C# umgestiegen bin. Pascal war nicht so übel, aber man schreibt sich
fast die Finger wund ;-) (z.B. begin/end statt {/} in C, C++ oder C#)
Wie lange hast du denn Delphi programmiert ?
Ich programmier C und Pascal und bin wirklich dankbar für das begin/end
weil man den Code hinterher 10x besser lesen kann trotz gleicher
codeführung.
Ich schreib im AVR Studio ca 6x so viel wie im lazarus da die
Funktionsrümpfe und Klassengerüste und Variablendeklarationen alles
automatisch vom lazarus erzeugt werden. Glaub ich hab schon seit 2
Jahren kein begin/end mehr geschrieben.
Ich fange mal mit dem Bashen an: Wer heutzutage noch neue Projekte mit
C++ anfängt, der hat einen an der Waffel. Ich habe schon ziemlich viele
Projekte erlebt. Die grausamsten wurden in C++ umgesetzt.
Sprachen mit Zukunft sind meiner Meinung nach Java und C# im Bereich
"normaler" Anwendungen. Python und Ruby finde ich ganz attraktiv. Delphi
wird scheinbar viel in kleinen Softwareschmieden eingesetzt.
Für den Hobby-Bereich: Mal ehrlich. Wie will man da tief einsteigen? Als
Hobby-Programmierer kratzt man doch eigentlich immer an der Oberfläche.
Meine Empfehlung an den Op: Nimm etwas einfaches, was leicht zu erlernen
ist und nicht allzuviele Teergruben hat. C++ hat dermaßen viele
Teergruben, daß ich es uneingeschränkt überhaupt nicht empfehlen kann.
Außerdem soll Hobby doch Spaß machen? Vielleicht schaust Du Dir mal
Python an?
Dann noch: Wenn Du wirklich was mit Zukunft lernen willst, dann kauf'
Dir Bücher über Objektorientierung. Bitte nicht die Schinken von
Markt&Technik. Uneingeschränkt empfehlen kann man die Autoren Martin
Fowler, Bertrand Meyer (obwohl der manchmal etwas schläfrig schreibt),
Kent Beck, Cay Horstmann (Core Java, das Buch zur Sprache schlechthin).
Wenn möglich nimm' die englische Originalversion, die Übersetzungen sind
meist fragwürdig.
Die Schlacht ist eröffnet, wer schmeißt mit Fischen? :-)
Noch mal zu Java Progamm auf Windows. Ich persönlich habe das Gefühl,
dass diese "träge" sind. Beispiel MATLAB. Rechnen kann es ja fix aber
die Grafikausgabe oder einfach nur ein Menü anzuklicken dauert merklich
länger als bei vergleichbaren Programmen. Geht's euch auch so?
Java besitzt aus meiner Sicht den Vorteil, das es moderne Anforderungen
wie GUI-Klassen schon aus dem Sprachumfang bedient. Dies ist aber mit
den C++-Bibliotheken Qt oder wxWidgets mehr als wettgemacht.
Erleichternd bei der Programmerstellung mit modernen IDE's wie Eclipse
ist weniger die Sprache an sich als der Umstand, das das Programm eben
die ganze Zeit im Hintergrund mitcompiliert wird und man Fehler schon
beim Tippen angezeigt bekommt. Auch dieser Vorteil ist mit der
Verfügbarkeit von C++-Entwicklungsumgebungen und Plugins für Eclipse
teilweise wieder wettgemacht.
Ein echtes Plus für Java ist die Ausführbarkeit von den Programmen auf
verschiedensten Plattformen ohne Neuübersetzung. Gut um kleinere Sachen
von der eigenen Homepage mal schnell vorzuführen.
Zu den Nachteilen von Java, wie ich sie empfunden habe:
Da ist zum einen der nicht zu verleugnende Performanceverlust, den man
gerade bei größeren Datenmengen (große Bilder etc.) deutlich spürt.
In dieser Hinsicht ist die Java-JIT-Compilierung nicht wirklich die
Lösung.
Warum? Zwei meiner Ansicht nach wesentliche Punkte:
1. Java baut auf dem kleinsten gemeinsamen Nenner aller
Rechnerarchitekturen auf, der 0-Adreß-Maschine. Maschinencode für solche
0-Adreß-Maschinen gerade in Hinsicht auf die immer wichtiger werdende
Parallelverarbeitung (SIMD-Befehle) oder der Registervielfalt der
x86-Nachfolger umzuwandeln ist deutlich schwieriger als wenn man den
Hochsprachenalgorithmus vor sich hat.
2. Der JIT-Compiler wird sich nie den Überblick über den Code leisten
können wie ein traditioneller Offline-Compiler. Ansonsten wäre sein
Resourcenbedarf viel zu hoch! Gerade diese weitreichende Codeanalyse
verhilft dem GCC in der letzten Zeit zu Leistungssprüngen.
3. Man vergesse nicht, den Ressourcenbedarf des JIT-Compilers mit zu
erfassen!
Auch der Umgang mit Hauptspeicher kann schnell dazu führen das der PC
zum Auslagern gezwungen wird und so richtig quälend langsam wird.
Auch andere Sachen finde ich bei C++ besser gelöst.
Zum Beispiel den starken Overhead bei Java, bedingt durch die Ableitung
aller Klassen von Object.
Definiere ich mir unter C++ einen Komplex-Wert
complex<double> a;
so belegt dieser nur den Platz für zwei Double-Werte. Bei Java habe ich
den gesamten, durch Object mitgeschleppten Overhead! Das spielt bei
einem komplexen Wert nicht die Rolle, aber wie sieht es bei einer
1024x1024x1024-3D-Matrix aus?
Überhaupt finde ich die Template-Sache bei C++ viel besser gelöst als
die Schein-Templates unter Java, die über zeitraubende dynamic_casts
über die Object-Basisklasse laufen.
Die C++-Templates erlauben mir, Algorithmen generisch aber hocheffizient
umzusetzen - gerade auch durch die Möglichkeit der Spezialisierung.
Desweiteren vermisse ich oft bei Java die unsigned-Datentypen. Viele
Berechnungen in der Bildverarbeitung oder auch anderswo müssen in Java
sehr
kompliziert gestaltet werden weil eben kein unsigned-Wert vorhanden ist.
Das in C++ integrierte C-Erbe finde ich auch nicht unpassend. Man soll
ja nach dem natürlichsten Sprachmittel greifen, und was ist für
mathematische Funktionen natürlicher als Funktionen? sin(x) liest sich
leichter als java.lang.Math.sin(x).
Überhaupt kann die C-Untermenge manchmal recht hilfreich sein. Ein
parameterisierter Dateiname ist mit sprintf() noch immer am schnellsten
zusammengefügt, und zuweilen ist mir der Zugriff auf die "rohen"
Bytedaten auch ganz hilfreich.
Gerade im mathematischen Umfeld finde ich die Operatorenüberladung von
C++ recht gut. Was liest sich besser?
Java: Vector y = M.prod(x).add(o);
-oder-
C++: Vector y=M*x+o;
Gerade bei komplizierteren Formeln erleichtert die C++-Notation deutlich
die Fehlersuche.
Arc Net wrote:
> Definitiv nicht.> Nur mal ein paar Beispiele:> - Look&Feel der Komponenten (egal ob SWT oder Swing, SWT ist nur näher> an einer nativen Anwendung als Swing)> - Window und Komponenten-Refresh beim Ändern der Fenstergröße> - Rendering von Fonts und Renderingunterschiede zw. Java2D und SWT und> dem nativen UI> - Performance/Antwortverhalten> Dazu kommen noch eine ganze Reihe von Gründen die aus Entwicklersicht> gegen Swing und SWT sprechen. Neben der fehlenden Akzeptanz auf dem> Desktop, ist dies u.a. die wesentlich geringere Produktivität.
Hmmmm .... deswegen hat sich also Eclipse so stark verbreitet?
Stefan May wrote:
> Ich kann das für Eclipse nicht bestätigen.
Eclipse ist auch mit SWT realisiert, was recht Systemnah progarmmiert
ist.
Das Vorurteil von langsammen Java-Anwendungen betrifft eigentlich immer
die Swing-Anwendungen.
> Wie lange hast du denn Delphi programmiert?
Habe Delphi 4, 5, 6 ein paar Jahre eingesetzt, allerdings nicht als
Hauptaufgabe, sondern nur für kleine Tools um z.B. Daten per serieller
Schnittstelle mit Elektronik auszutauschen, darzustellen, in DB ablegen
etc.
Wie gesagt, ich fand Delphi super, aber in C# oder so schreibt man
tendenziell schon weniger. Ich war damals auf C# und .NET umgestiegen,
weil Delphi immer mehr zu einem Schattendasein und Nischenprodukt
"runtergekommen" war. Mit C# Kenntnissen hat man heutzutage einfach die
besseren Jobaussichten und der Support im Internet durch MSDN, Foren,
Kollegen, ... ist unerschöpflich.
Und genau das ändert Lazarus gerade grundlegend da die
Plattformunabhängigkeit immer wichtiger wird, und Lazarus nicht nur
Plattform sondern sogar Widgetsetunabhängig ist. Man kann z.b. unter
Linux mal eben für QT und GTK2 ein programm ausliefern was in anderen
Sprachen und Systemen unmöglich ist.
Als ich das erste mal von Lazarus las, war ich richtig begeistert. Dann
habe ich mich auf die Suche ins Web begeben, um ein Lazarus zu
downloaden und auf meinem Mac oder PC zu installieren.
Ähm ... naja, das wars dann erstmal. Nicht dass man da einen Installer
fände und loslegen könnte. Nein, nach einigem Suchen bin ich drauf
gekommen, dass man sich da mehrere Pakete zusammensuchen muss, einzeln
installieren und selber complieren.
Sorry, nette Idee, aber da warte ich besser noch zwei Jahre und bis
dahin bleibe ich bei RealBasic. Das kommt in einem Stück und
funktioniert auf Anhieb. Ok, dafür ist es auch nicht kostenlos.
Wobei ich glaube, dass die Notwendigkeit des "Zusammenfrickelns" bei
Lazarus keine Frage des Preises ist. Dieses Detail ist wohl eher auf
(für mich) merkwürdigen ANsichten der Autoren zurückzuführen ...
Frank
Das stimmt gar nicht, da hast du was falsch gelesen. Für Windows gibts
komplett installer. Unter Linux kommts auf die Distribution an bei
Ubuntu z.b. braucht man nur eine Paketquelle hinzufügen und kann es
einfach über die Software repositores installieren. Auch für MacOS gibts
nen installer. Kannst dich gern an mich oder das Deutsche Lazarus Forum
(http://www.lazarusform.de) wenden mit deinem konkretem Betriebsystem
dann kann man dir die einfachste Methode aufzeigen.
Im Fall vom MacOS(X) würd ich nen daily Snapshot nehmen die sind immer
ne ecke weiter als die Stable, gerade bei MacOS welches quasi die neuste
unterstützte Plattform ist macht das noch ne menge aus. Du musst zuerst
den freepascal Compiler+ Sources installieren und dann Lazarus. Alle
drei pakete findest du in den neusten Versionen hier:
http://snapshots.lazarus.shikami.org/lazarus/