| Autor |
Beitrag |
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.05.12 18:46
| Zitat: | | Sowohl Delphi als auch Qt und Java habe ich immer als sehr fehlerfrei empfunden. |
QT, fehlerfrei, ... *hust*
| Zitat: | | Ich finde auch, dass mit C++11 große Schritte nach vorne gemacht wurden, aber eine STL zur GUI-Erstellung vermisse ich immer noch (Qt ist ein akzeptabler Ersatz). |
GUI gehört nicht in den Standard... Und: QT5 wird besser!11
| Zitat: |
D.h. in der realen Welt wird C mit C++-Compiler geschrieben? |
Das sind bis jetzt meine Erfahrungen, aber da gibt es auch sicherlich Projekte, mit einer besseren Code-Qualität.
| Zitat: |
Welche Sprachen nimmst du (außer Haskell )? |
Aktuell in verschiedenen Projekten: Haskell, C++, Python, Groovy
|
|
Mitmischer 1703 
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Do 24.05.12 18:59
j.klugmann hat folgendes geschrieben : | | Zitat: | | Ich finde auch, dass mit C++11 große Schritte nach vorne gemacht wurden, aber eine STL zur GUI-Erstellung vermisse ich immer noch (Qt ist ein akzeptabler Ersatz). |
GUI gehört nicht in den Standard... Und: QT5 wird besser!11 |
Naja, GUI im Standard würde das ganze erheblich vereinfachen => Das Standardkomitee schreibt ja platt gesagt sowieso nur ein paar Funktionen vor, warum nicht auch ein paar GUI-Funktionen?
_________________ Die Lösung ist nicht siebzehn.
|
|
Th69
      

Beiträge: 4805
Erhaltene Danke: 1061
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Do 24.05.12 19:45
Bzgl. GUI im C++-Standard gab es heute auf c-plusplus.de eine passende Diskussion dazu: C++1y in GCC
Kurzfassung: aufgrund der verschiedenen GUI-Systeme wird es wohl keine brauchbare gemeinsame Basis geben.
|
|
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Do 24.05.12 19:46
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Do 24.05.12 20:20
Wow sich die Mühe machen auf so ziemlich jeden Einwurf zu reagieren ist doch mal ein Dank wert.
| Zitat: |
Ralf Jansen hat folgendes geschrieben :
Ab einem bestimmten Punkt im Entwicklungszyklus ist der bei mir sowieso oft negativ.
Kannst du das mal genauer erläutern? |
Wenn es der Deadline eines Projektes entgegen geht und erst recht wenn Software in die reine Wartungsphase tritt wirst du üblicherweise mehr Code entfernen als hinzufügen. A.) du wirst mäßigen Code durch besseren kompakteren Code ersetzen. Ganz einfach weil programmieren könne alleine nicht reicht sondern man auch das Problem verstehen muss das man durch entsprechende Programmierung lösen will (man ist ja nicht auch Mathematiker, Versicherungsfachmann, Bauingenieur, Logistiker etc.) und man auch meist mit irgendwelchen System interagieren muss für die man sehr unwahrscheinlich Spezialist ist (spezielle Hardware, Softwarekomponenten, Altsysteme etc.). Das zu lösende Problem wirst du also erst beim programmieren langsam besser verstehen und deinen Code irgendwann dem gestiegenen Verständnis anpassen (eine Form des Refactoring). Und B.) Du wirst Features oder Codevorbereitungen für Features entfernen müssen. Gerade wenn man Inhouse-Anwendungen schreibt wird meist kaum das umgesetzt was man vorher geplant hat (Und es macht es auch nicht besser wenn man das ganze dann hinter schicken Vorgehensmodellen, wie z.B. SCRUM, versteckt). Es geht üblicherweise viel Energie in Dinge die am Ende nicht gebraucht werden und weg müssen. Ergo wird in dieser Zeit mehr Code entfernt als hinzugefügt womit dein LOC Maß dann negativ ist.
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Do 24.05.12 22:51
Wie weit kann man mit Javascript gehen? Ziemlich weit: Firefox hat vernachlässigbar kleine Anteile an nicht-JS-Code.
Besonders JS1.7 mit den Mozilla-Erweiterungen ist eine verdammt einfach zu lernende funktionale Sprache, Jägermonkey ist eine sehr schnelle Engine (Chromes V8 ist schneller, kann aber weniger was Sprachfeatures und Standardfunktionen angeht). Würde jemand etwas wie die VCL oder auch nur Qt und eine native platform (irgendwer muss das Toolkit mit der Engine verbinden) dafür bauen, würde ich das sofort verwenden. Mozilla hat XULRunner, aber das ist ein Krampf. Damit will man nicht arbeiten, auch weil es keine IDE gibt: man hat nur eine Verzeichnisstruktur, das wars.
Und damit das Fazit: eine sehr schöne sehr produktive Sprache, deren beste Implementation leider nur im Browser-DOM zivilisiert nutzbar ist. Ansonsten gibts noch nodejs, was immerhin für GUI-lose Anwendungen geht - aber das ist wieder V8, da fehlt halt immer was.
Nur so als weiteren Messpunkt für dich 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Laser
Hält's aus hier
Beiträge: 1
Ubuntu 10.10
Free Pascal 2.4
|
Verfasst: Sa 26.05.12 16:26
Moin,
Mitmischer 1703 hat folgendes geschrieben : |
Delphi: eigentlich recht schick, aber ich will mich nicht an etwas binden, das nur kostenpflichtig Updates erhält. Schnell, schicke Bibliothek. Trotzdem eine Sprache, in der man meiner Meinung am produktivsten ist.
[...]
Obwohl ich weiß, dass es eine solche Sprache nicht gibt, meine Wunschsprache sieht so aus:
-pfeilschnell wie C++ (kein Muss)
-eine Bibliothek wie Java, C# oder Delphi
-einfach wie Delphi oder C#, kein einfacher Fehlereinbau wie in C++.
-kein Klassenzwang, trotzdem sollte man Klassen schreiben dürfen, wenn man es will.
-Pointer (zumindest delegates)
-möglichst kostenfrei
-multiplattform (eigentlich der wichtigste Punkt)
Gibt es wenigstens eine Sprache, die dem nahe kommt? |
Wenn ich Dich richtig verstehe, willst Du eigentlich Delphi und das kostenlos.
Hast Du Dir schon einmal Lazarus/Free Pascal angesehen?
de.wikipedia.org/wik...wicklungsumgebung%29
de.wikipedia.org/wiki/Free_Pascal
Multiplattform ist erfüllt. Beim Compilieren ist Free Pascal schneller als C. Der Code minimal langsamer. Die Bezeichner heißen genauso wie bei Delphi. Der Rest der Anforderungen ist auch erfüllt.
_________________ Liebe Grüße
Laser
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mi 30.05.12 16:30
Ich verwende für Desktop-Anwendungen momentan Java und C#, die ich beide als sehr produktiv empfinde. Was Sprachfeatures betrifft ist Java aber leider etwas hinterher (zieht aber nach: Closures in Java  .
Mitmischer 1703 hat folgendes geschrieben : | | Da gefällt mir C+ doch deutlich besser, wo durch die Deklaration festgelegt wird, ob ein (foo == bar) genügt oder ein (*foo == *bar) her muss. |
Ist in Java im Prinzip gleich: Alles außer primitiven Datentypen sind Referenzen wie Zeiger in C++.
Mitmischer 1703 hat folgendes geschrieben : | Oliver Maas hat folgendes geschrieben : | Klassenzwang: nunja, Delphi ist da ja nicht so streng, Java mag halt keine "freischwebenden" Methoden, die einfach irgendwo abhängen.
Ist das wieder der Nachteil, mehr tippen zu müssen? |
Nein, es ist einfach unnötig. Wenn ich statische Hilfsfunktionen, die keine Member verwenden (wie seperate struct-Initializierer) habe, brauchen die keine Klasse. Punkt. Und da will ich keinen Overhead haben! Klassen bedeuten ja auch immer höheren Ressourcenanspruch und geringere Performance. Ein Namespace wie in C++ wirkt syntaktisch ähnlich und ist doch der bessere Ansatz, wenn ich die coolen Features einer Klasse nicht benötige. |
Bei heutigen Rechnern machen die paar Byte für eine zusätzliche Klasse im Arbeitsspeicher nicht wirklich etwas aus. Und struct-Initializierer gehören in die struct-Deklaration (bzw. Klassendeklaration; in Java gibt's ja keine speziellen structs).
Mitmischer 1703 hat folgendes geschrieben : | Oliver Maas hat folgendes geschrieben : | | Reverse Engineering: Problem hatte ich in der Praxis noch nie. |
Es wird ja auch niemand auf dich zugehen und dir beichten, dass er deinen Code hat . |
Dafür gibt's den Obfuscator.
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 29.06.12 09:10
| Zitat: | | Nein, es ist einfach unnötig. Wenn ich statische Hilfsfunktionen, die keine Member verwenden (wie seperate struct-Initializierer) habe, brauchen die keine Klasse. Punkt. Und da will ich keinen Overhead haben! Klassen bedeuten ja auch immer höheren Ressourcenanspruch und geringere Performance. Ein Namespace wie in C++ wirkt syntaktisch ähnlich und ist doch der bessere Ansatz, wenn ich die coolen Features einer Klasse nicht benötige. |
| Zitat: |
Klassen bedeuten ja auch immer höheren Ressourcenanspruch und geringere Performance. |
Wie kommst du darauf? Folgendes Experiment:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| struct Vector2D { int X; int Y;
Vector2D() throw() : X(0), Y(0) {} };
...
int array[2] = { 0, 0 }; Vector2D vector;
bool size = sizeof ( array ) == sizeof( vector ); |
Wo genau versteckt sich der Overhead?
Weniger auf Performance konzentrieren und lieber ordentlichen Code schreiben. 
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Mi 04.07.12 21:06
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 09.07.12 10:46
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 09.07.12 13:07
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 09.07.12 14:25
|
|
|