Warum ist QtCreator so schlecht?

Immer wieder lese ich zur Zeit, dass Programmierer den QtCreator für eine der schlechtesten IDEs überhaupt halten. Ich konnte das bisher nicht nachvollziehen, bis auf Kleinigkeinten finde ich, dass QtCreator eine recht gut IDE ist.

QtCreator
QtCreator

Ich muss durchaus zugeben, dass ich eher die Kommandozeile (Shell), make oder gmake und vor allem einen vernünftigen Editor – VIM – bevorzuge, um zu entwickeln. Zumindest habe ich das so über Jahre hinweg recht erfolgreich gemacht. Doch neben meinem liebsten Editor kenne ich auch andere Editoren, Pseudo-IDEs (Visual Studio Code zum Beispiel) und einige IDEs (Visual Studio, Eclipse, Netbeans, IntelliJ IDEA, Clion, Delphi, Lazarus, Anjuta, KDevelop, Code::Blocks und was weiß ich, was noch). Die beiden verschrienen IDEs gefallen mir komischerweise am besten: QtCreator und Lazarus IDE.

Warum ist das so? Nehmen wir einmal Visual Studio. Bis das Ding gestartet ist, bis ich ein Projekt angelegt oder, schlimmer noch, geladen habe, dauert es ewig bis drei Tage. Danach ist alles so träge und nervig, die Vorkonfiguration kaum zu benutzen, das Einrückverhalten eine Katastrophe und der Editor eine Art Notepad im modernen Gewand. Gut, das ist jetzt übertrieben. Die Editoren leisten schon eine Menge mehr, als Notepad, allerdings halte ich sie, zumindest in der Standardkonfiguration, für unbenutzbar. Tatsächlich ist das bei QtCreator und Lazarus nicht anders. Vergleicht man die Editoren mit modernen Dinosauriern wie VIM, dann merkt man schnell, was effizient ist und was pseudoeffizient ist.

Dann kommen die ganzen Automatismen, die Automagic dazu. All das nervt mich oftmals, denn tauchen Probleme auf, sind sie oftmals nur schwer behebbar, denn man kennt die Automagic dahinter ja nicht und dann nehmen einem diese Systeme nicht Arbeit ab, sondern machen noch viel mehr.

Natürlich sind die integrierten Debugger toll, auch, dass Referenzenzähler mit drin sind, man im Code hin und her springen kann usw. Aber sie lahmen oftmals so sehr, dass ich meinen Gedankenfluss andauernd unterbrechen muss, warten muss oder irgendwas abstürzt.

QtCreator kann nicht viel. Es handelt sich um einen “schlechten” Editor mit Projektmanagement, GUI-Designer und ein paar Nettigkeiten wie integriertem Debugger. Die Sache ist schon komplexer, aber wenn man es herunterbricht, bleibt eine nicht so hochkomplexe IDE, die sich angenehm betreiben lässt. Denn sie unterstützt mich, macht Automatismen oder sichtbar und einfach handlebar. Genau das ist für mich wichtig: zumeist, nicht immer, weiß ich, was passiert und kann auch händisch recht problemfrei eingreifen. Dabei kann ich aber auch im Code herumspringen, Fenster splitten, den grafischen Debugger starten und Kompilierszenarien auswählen. Mir gefällt das sehr und ich empfinde QtCreator tatsächlich als eine IDE, mit der ich gerne arbeite, auch wenn sie Schwächen hat (Editor – das Problem haben aber alle IDEs, die ich kenne, Refactoring ist nicht schön, Automatismen wie Getter/Setter erstellen sind nicht vorhanden, usw.). Ich finde es schade, dass die IDE so zerissen wird. Das selbe bei Lazarus. Ich finde die IDE schön aufgeräumt und einfach in der Nutzung. Darin liegt für mich die Mächtigkeit des Systems.

Doch freue ich mich auch immer wieder, wenn ich auf der Shell und mit VIM arbeiten kann.

FreeBSD-Grundkurs 013: Software installieren und verwalten mit der Ports-Collection

Nachdem wir uns im letzten Video mit der Softwareverwaltung mittels “pkg” beschäftigt haben, kommt heute ein Überblick über die Benutzung der Ports-Collection.

Software installieren und verwalten mit der Ports-Collection
Software installieren und verwalten mit der Ports-Collection

Im Gegensatz zu pkg, bei dem bereits kompilierte Software installiert wird, wird sie beim Installieren von Ports kompiliert. Hat den Vorteil, dass man noch spezifizieren kann – natürlich je nach Port – was man drin haben möchte, aber den Nachteil, dass man kompilieren muss und das Zeit, Strom und Geld kostet.

Worum es in diesem Video nicht geht: Management-Software wie portmaster oder portupgrade. Ich zeige aber einmal die Verwendung von portfind.

Hier geht es zum Video.

Tipp: Notizenprogramm für nahezu alle Plattformen mit Synchronisierung

Wahrscheinlich werde ich noch ein Video dazu machen, aber erstmal als ein kleiner Tipp: Joplin.

Nachdem ich schon eine ganze Weile wieder auf macOS umgestiegen bin (von FreeBSD), suchte ich eine Alternative zu CherryTree, da die GTK-Anwendung unter macOS recht unzuverlässig läuft und sich auch nicht sonderlich gut benutzen lässt. Ich bin dann zufällig auf Joplin gestoßen.

Joplin
Joplin

Letztlich handelt es sich um eine Notizen-App, die via Markdown oder per WYSIWYG-Editor benutzt werden kann. Informationen können in einer Baumstruktur gespeichert werden und die Software gibt es für alle möglichen Betriebssysteme. Ich nutze sie auf

  • macOS
  • Windows
  • iPadOS
  • Android

Das Schöne an Joplin ist, dass die Software ihre Daten synchronisieren kann. Sie bietet dafür verschiedene Dienste an. Ich nutze WebDav. Damit habe ich alle Infos auf allen genutzten Geräten und kann auch per Handy mal flott was notieren und auf meiner Workstation dann weiter verarbeiten.

Zwei Dinge nerven mich allerdings:

  • Die Synchronisierung auf WebDav ist schnarch lahm. Vielleicht liegt es an NextCloud, welches wohl Probleme mit PostgreSQL hat (gibt Foreneinträge ohne Lösung dazu), vielleicht aber auch an Joplin. Ich suche noch nach einer Lösung
  • Auf den mobilen Plattformen gibt es keinen WYSIWYG-Editor

Schaut es euch einfach mal an, es ist kostenlos.

FreeBSD-Grundkurs 012: Software installieren und verwalten mit PKG

Was macht man mit einem Betriebssystem ohne Software? Genau: nichts. Nicht so bei FreeBSD. Über 30.000 Softwarepakete stehen zur Verfügung (gut, es ist weniger Software, wenn man die Flavours einbezieht, aber dennoch eine beachtliche Menge dafür, dass FreeBSD eben nicht Linux ist).

In diesem Video geht es um die Softwareverwaltung mit “pkg”.

Software installieren und verwalten mit PKG
Software installieren und verwalten mit PKG

Ich zeige folgendes:

  • Von quaterly auf latest umstellen
  • Installation von Software
  • Upgrade von Software
  • Deinstallation von Software
  • Aufräumen von Packages
  • Lokale Software installieren

Hier geht es zum Video.

Hier noch einige Links:

Kurztipp: In Thunderbird “Übermittlungsstatus (DSN) anfordern” für alle E-Mails automatisch einschalten

Ich hatte in letzter Zeit das Problem, dass ich sicher sein wollte, dass meine E-Mails auch tatsächlich zugestellt werden. Jetzt gibt es die generelle Möglichkeit, eine Empfangsbestätigung (MDN) anzufordern. Dabei ist das Problem, dass der Empfänger das aber ablehnen kann und man selbst somit nicht wirklich weiß, ob die E-Mail angekommen ist. Eine technische Möglichkeit wäre jetzt natürlich, in die Logs des Mailservers zu schauen, aber das ist mit Aufwand verbunden und müsste dann ggf. auch dokumentiert werden, wenn man das als Nachweis möchte.

Thunderbird bietet hier, bei zu sendenden E-Mails, den Übermittlungsstatus anzufordern (DSN). Erreicht die E-Mail dann den annehmenden E-Mail-Server und unterstützt er DSN (was sicherlich fast alle tun), erhält man von diesem eine E-Mail zurück mit dem Status, ob die eigene E-Mail zugestellt wurde (oder eben nicht).

Im Gegensatz zur MDN, bei der man in der grafischen Konfiguraiton einstellen kann, dass sie immer aktiviert ist, geht das bei der DSN nicht. Man kann das aber in der erweiterten Konfiguration einschalten.

Dazu geht man in die Einstellungen von Thunderbird. Unter “Allgemein” gibt es ganz unten rechts “Konfiguration bearbeiten…”:

Thunderbird-Einstellungen: Konfiguration bearbeiten...
Thunderbird-Einstellungen: Konfiguration bearbeiten…

Darauf geklickt gibt man im Suchfeld folgendes ein:

mail.dsn.always_request_on

und ändert den Wert von “false” auf “true”:

mail.dsn.always_request_on auf true gestellt
mail.dsn.always_request_on auf true gestellt

Danach fordert Thunderbird immer automatisch den Übermittlungsstatus an. Stellt man den Wert von “true” wieder auf “false”, ist die Option abgeschaltet.

Deutsches Tastaturlayout bei SLIM unter FreeBSD

Eine Zuschauerfrage war, wie man ein deutsches Tastaturlayout unter SLIM (Login Manager/Display Manager) hinbekommt. Letztlich ist das recht einfach.

Du legst die Datei

/usr/local/etc/X11/xorg.conf.d/keyboard-de.conf

mit folgendem Inhalt

Section "InputClass"
    Identifier    "KeyboardDefaults"
    MatchIsKeyboard    "on"
    Option        "XkbLayout" "de"
EndSection 

an und startest SLIM einmal durch

service slim restart

Danach sollte SLIM (und alles, was mit Xorg zu tun hat und nicht umkonfiguriert wurde) ein deutsches Tastaturlayout haben.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 7

In diesen ca. 20 Minuten machen wir einiges. Wir laden das Logo der Firma im Firmeneintrag und zeigen es an. Dann implementieren wir noch die Funktion, dass man aus der Firmenmaske die Firma direkt auf der compow-Website anzeigen kann und wir machen die Ausgabetabelle der Firmen sortierbar.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 7
Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite – Teil 7

Und so sieht es (auf macOS) aus:

Firmeneintrag mit angezeigtem Logo
Firmeneintrag mit angezeigtem Logo

Hier geht es zum Video.

Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite – Was kommt jetzt?

Diese Woche wird es erstmal kein Video geben, da zu viel los ist und alle hier kränkeln. Aber was kommt als nächstes?

Nunja, ohne Video werde ich als erstes die Anzeigemaske für die Firmen erstellen, denn das ist langweilige Fließbandarbeit. Danach werden wir uns gemeinsam ansehen, wie wir das Logo-Bild der einelnen Firmen, welches Base64-encoded in der SQLite-Datenbank liegt, in der Firmenmaske anzeigen können. Vielleicht bauen wir es auch in die Ergebnisliste mit ein.

Dann brauchen wir noch etliche weitere Teile:

  • Export der Suchliste
  • Export von Firmen
    • XML?
    • JSON?
    • CSV?
    • Text?
  • Drucken von Firmen
  • Eine Toolbar
  • Ein Menü
  • Einen “Über”-Dialog (About)
  • Für Windows einen Installer
  • Eine Hilfe für die Software oder ein Handbuch?
  • Tests auf Linux, FreeBSD und Windows
  • Vielleicht noch mehr, was mir gerade nicht einfällt

Ich denke, wir werden uns dann nächste Woche damit beschäftigen. Bis dahin hoffe ich, dass ich die Firmenmaske fertig bekomme, wonach es zur Zeit aber nicht aussieht.