Autor Beitrag
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 :P)?

Aktuell in verschiedenen Projekten: Haskell, C++, Python, Groovy
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Do 24.05.12 18:59 
user profile iconj.klugmann hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 24.05.12 19:46 
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du mit Bibliotheken programmierst, dann produzieren diese in Kombination mit deiner Anwendung wieder mehr Fehler.
Gibt es da keine ausgereiften Bibliotheken? Sowohl Delphi als auch Qt und Java habe ich immer als sehr fehlerfrei empfunden.

Also ich habe zur Zeit hier so einen jar-Wahnsinn: Projekt kompiliert mit Jar Ver. 4.1.0 aber nicht mit 4.1.1. Das macht es extrem schwierig.

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Eine (Skript-)Sprache, die funktionieren könnte: JavaScript mit HTML. Letztendlich immer noch ein guter Kompromiss, um alle Bedürfnisse abzudecken. Zudem kommt noch die relativ gute Umsetzung von Austauschformaten wie JSON und XML.
Das hört sich ja sehr exotisch an!! Wie weit kann man denn mit dieser Kombination gehen?

Webseiten laufen doch ganz gut ;)

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Letztendlich gibt es nicht die perfekte Sprache. Allerding gibt es die perfekte Sprache für ein Problem.
Kannst du mir da mal einen Überblick geben? Welche Sprache fehlt mir da noch in meinem "Werkzeugkasten"?

Ich denke, in diesem Thread wurden die wichtigsten genannt. Vielleicht wäre noch ObjectiveC zu erwähnen. Dazu habe ich aber keine Verbindung.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: 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
BeitragVerfasst: Sa 26.05.12 16:26 
Moin,

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 8).

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
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++.

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOliver Maas hat folgendes geschrieben Zum zitierten Posting springen:
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).

user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconOliver Maas hat folgendes geschrieben Zum zitierten Posting springen:
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



BeitragVerfasst: 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:
ausblenden 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] = { 00 };
Vector2D  vector;

bool size = sizeof ( array ) == sizeof( vector );

Wo genau versteckt sich der Overhead?

Weniger auf Performance konzentrieren und lieber ordentlichen Code schreiben. ;)
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mi 04.07.12 21:06 
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 09.07.12 10:46 
Also wenn schon brainfork, aber gut ... BF reicht für die meisten auch schon aus ;-)

Ich hätte noch Haskell im Angebot. Man kann wunderbar lustige Sachn hinschreiben und der Compiler schluckt es.

ausblenden Quelltext
1:
f n | n < 0 => 1 | otherwise => product (take n [1..])					


Oder auch mein 30-Zeiler im andren Thread, der inzwischen auf 17 Zeilen geschrumpft ist ;-)

ausblenden Quelltext
1:
2:
3:
foo = bar []
bar a b | b < 10 => a ++ [mod b 10] | otherwise => bar ([mod b 10]:a) ([div b 10])
main = print (foo 42)

_________________
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



BeitragVerfasst: Mo 09.07.12 13:07 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Quelltext
1:
2:
3:
foo = bar []
bar a b | b < 10 => a ++ [mod b 10] | otherwise => bar ([mod b 10]:a) ([div b 10])
main = print (foo 42)


Der letzte Code-Absatz ist kein valides Haskell-Programm. Syntax-Fehler und wenn ich mich nicht irre dann ensteht da auch noch eine Endlos-Rekursion. Die "=>" müssen "=" heißen.

Moderiert von user profile iconNarses: Zitat gekürzt.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 09.07.12 14:25 
user profile iconBenBE: FTFY ;)
ausblenden Quelltext
1:
2:
f n = product [1..n]
foo = reverse . map (`mod` 10) . takeWhile (/= 0) . iterate (`div` 10)

_________________
>λ=