![]() |
sinnvollere Entwicklungsumgebung?
Hallo Delphi-Freunde,
nach dem ich nun schon einige Tools mit Delphi (Festplatten-Aufräumer, binäre Uhr) und schon einige kleinere Tests mit Java (Eclipse, auch für kleine Android-Apps) programmiert habe, möchte ich mich jetzt der Netzwerkkommunikation zuwenden. Dabei sollte auch die Platformunabhängigkeit eine Rolle spielen (habe Linux + Windows zu hause am laufen), wofür nun Java besser geeignet wäre. Jetzt meine Frage dazu: Mit welcher Umgebung lässt sich die Kommunikation über das (zunächst private) Netzwerk einfacher umsetzen? Hat jemand Erfahrung mit solchen speziellen Gebieten der jeweiligen Programmiersprache / Entwicklungsumgebung? Falls es noch wichtig ist, ich werde die Programmierarbeit am Linux-Rechner vornehmen. Delphi (habe Version 3) wird dann durch Lazarus ersetzt, bzw. versucht mit wine zu laufen. Java läuft dann wahrscheinlich mit Eclipse (bzw. wenn Netzwerke in anderen Umgebungen besser umzusetzen sind, auch gerne mit anderen Umgebungen). Würde mich über Antworten sehr freuen :-D |
AW: sinnvollere Entwicklungsumgebung?
Rein zur Plattformunabhängigkeit:
Bei Java hast du dann natürlich immer den GC am Hals (es gibt nichts, das ich mehr hasse als GCs), bei FreePascal (Lazarus) kannst du die gewohnte Sprache beibehalten (gibt nur einige wenige Differenzen). Bei Java brauchst du weiterhin immer eine installierte JRE, das setzt FreePascal nicht voraus. Ich benutze FreePascal schon seit einer ganzen Weile für Cross-Platform, und es läuft wie geschmiert. Man muss sich einfach nur die windowsspezifischen Aufrufe abgewöhnen, und dann klappt das perfekt. Je nachdem, wie du's einstellst, benutzt die LCL unter Windows direkt die WinAPI und unter Linux GTK oder Qt. Es ist sehr praktisch, dass man sich darum nicht mehr kümmern muss. Delphi 3 ist schon sehr, sehr alt, und da lohnt es sich dann doch nicht, das zu winen. Dass Lazarus als IDE mit neueren Delphis nicht mithalten kann, dürfte klar sein, aber D3 kannst du ohne schlechtes Gewissen im Regal stehen lassen ;) |
AW: sinnvollere Entwicklungsumgebung?
Vielen Dank für deine Antwort :-D
Also werde ich mich demnächst mal wieder ans Programmieren machen (und Lazarus kennenlernen). |
AW: sinnvollere Entwicklungsumgebung?
Für Java kann ich die
![]() ![]() p.s. dass es in Java einen GC gibt weiss ich zwar, aber negativ aufgefallen ist er mir in den vergangen fünfzehn Jahren noch nicht ;) |
AW: sinnvollere Entwicklungsumgebung?
Also ich würde hier eher zu Mono als Plattform und dann wohl C# als Sprache greifen. Es gibt nichts geileres als eine moderne, managed Laufzeitumgebung. Du hast eine optimale automatische Optimierung an Deine jeweilige Plattform (auf x64 Systemen hast Du automatisch eine x64 Anwendung, ohne einen Finger zu rühren) und vor allem kann Mono (analog dazu auch Java) den Speicher viel optimaler verwalten als Du es manuell je könntest.
Als IDE bietet sich dann natürlich MonoDevelop an. Zusammen mit InternetPack (eine OpenSource Komponentensammlung vergleichbar mit den Indy's für Mono und .NET) hast Du dann eine saubere Basis um Netzanwendungen zu schreiben. |
AW: sinnvollere Entwicklungsumgebung?
Naja C# würde ich eher nicht wählen. Denn die Entwicklung der Desktop-Version ist beinahe eingeschlafen. So gibt es aktuell keine Anbindung an neuere UI-Bibliotheken wie GTK3 und die Zukunft von Xamarian ist eher ungewiss und sonst sind eher wenige Firmen an der Entwicklung beteiligt(Novell hat ja alle Entwickler gefeuert).
Mit den Anbindungen an andere Toolkits sieht es nicht unbedingt besser aus: Qyoto => ist nicht aktuell( und aktuell scheint keine Arbeit gemacht zu werden) qt4dotnet => tot WX.Net => fraglich ob es noch lebt Soll nur als Hinweis dienen. C# ist ja keine schlechte Sprache und MonoDevelop keine schlechte IDE, aber wer setzt schon gerne auf ein "totes" Pferd. |
AW: sinnvollere Entwicklungsumgebung?
Zitat:
Und seitdem habe ich eine grundsätzliche Abneigung gegen GCs:
[EDIT] Und damit beißt sich mein Beitrag dann mit den Aussagen: Zitat:
|
AW: sinnvollere Entwicklungsumgebung?
Zitat:
Ausserdem geht es hier um Netzwerk-Programme und nicht um Desktop-Programme, von dehr ist GUI wohl eher kein Thema. Und managed Umgebungen wie Java und .NET/Mono sind nunmal naturgemäß im Server- bzw. Backend-Bereich stärker, von daher passt das. Zitat:
|
AW: sinnvollere Entwicklungsumgebung?
Zitat:
Seit Java 5 ist die parallele Garbage Collection per Default eingeschaltet, wenn es sich um eine Maschine mit mehreren Prozessoren oder -kernen handelt. (Siehe Angelika Langer, Generational Garbage Collection, ![]() Dass man in Delphi alles selber machen darf ist schön, schön ist aber auch wenn einem die Arbeit abgenommen werden kann - weniger Codierungsaufwand für das Schreiben von Destruktoren, weniger Kopfzerbrechen über den 'richtigen' Zeitpunkt ab dem ein Objekt freigegeben werden kann, mehr Zeit für andere Pfadfindertugenden :) Beispiel, was so ein Garbage Collector bringt: wenn eine Reihe von Objekten zyklisch referenziert sind (A -> B -> C -> A), und nur auf eines der Objekte in diesem Ring noch über eine Variable zugegriffen werden kann, darf man natürlich die anderen noch nicht freigeben. Sobald aber diese eine Variable nicht mehr aus dem Programm erreichbar ist (bei Verlassen einer Prozedur in der diese Referenz existierte, oder wenn sie auf nil gesetzt wird), dann sind die daran hängenden Objekte A bis C nicht mehr erreichbar. In Java werden solche Dateninseln erkannt und freigegeben. In Delphi hat man viel Spass mit der Programmierung eines entsprechenden Aufräumalgorithmus... |
AW: sinnvollere Entwicklungsumgebung?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz