Interessant

Kein Interesse daran auf FB.

Hier rechne ich nicht mehr, halte es aber für einen guten Eintrag:
Ok, wen auch immer es interessieren mag (eh‘ nur Programmierer)

Ich habe eine massive Reimplementierung eines bestehenden Projektes in C# durchgeführt, es ist nicht völlig fertig, aber hat nun ein stabiles Gerüst. Nötig war es wegen einer Lizenzänderung einer von mir benutzten Software:

Das hier erklärt alles: https://windev.com/neo/new

Bis 2025 gab es eine sogenannte Dongle Version, solange man den hatte, konnte man zumindest mit alten Versionen weiterarbeiten, das wurde auf „Abo“ umgestellt, die Crux daran unsubscriben. Sie können selbst alte Quellen nicht mehr übersetzen. Es ist so schlimm, daß es sogar rückwärts gilt, Aktuell ist die Dongle-Version XDev 2025 vorher gab es 2024 dann 26, 25, 24 und raten Sie mal, bis wie weit es zurückgeht! Genau Version 23. Ich habe also 5 Lizenzen mehr gekauft, Stelle ich nun um und kündige, darf ich nur bis Version 23 zurück

Dagegen war Unity noch ein Weisenknabe.

Es geht um das Erstellen von Xrechnungen aus meiner Software, Ende letzten Jahres war es im Grunde soweit, dass ich es hätte ausliefern können. Aber was passiert, wenn nun mein Dongle kaputtgeht? Bis 10 / 2025, hieß die Antwort – Pech gehabt. Du muß auf Abo umstellen. Entwickelt habe ich mit Windev 2025 und damit bin ich 5 Jahre hinter 23 !

Meine Erfahrungen vor 2025 in C# waren marginal. Ich kann da Zeug lesen und weitgehend verstehen, aber nichts darin ist geschrieben. Und ob man es glaubt oder nicht: es gibt kaum etwas Vergleichbares zu Windev für die Entwicklung von datenbankbasierten Lösungen. Das war so fantastisch integriert, daß man fast von einer tabellenorientierten Programmiersprache sprechen kann. Einfache APIs (klar mit Fehlern) aber ein eigenes DB system sei es Dateibasiert (Stichwort Access) oder Server/Client-Tools zut Entwicklung, Testen, GUI, wirklich gutes Zeug.

Native Windows, Web und Mobile Geräte.

Was gibt es an Alternativen? nur xojo, FileMaker, Delphi und mit Riesenabstrichen dbase:

Erst einmal musste ich mir zumindest die Alternativen anschauen, es gab nichts, was WinDev einfach so ersetzen konnte.

Was brauche ich?

GUI Kram. Test Kram, RC Kram, Reports, gutes XML handling

gute Debugger

All das ist für viele PS immer noch extrem dünn gesät. Gibt es, aber es ist 1) sehr teuer (Delphi) und 2) weniger vollständig als das, was man in C# .NET und / oder Java bekommen kann.

Also lief es auf C# oder Java hinaus. Da die Software von mir auf Windows läuft, ist es halt durchaus naheliegender, C# zu nehmen.

Abo für die Entwicklungstools und OSes habe ich eh, was kam dazu: Devexpress (und das war tatsächlich) eine gute Entscheidung , es ist dokumentiert, wird regelmäßig gewartet und ich habe bisher noch keinen Bug gefunden.

Also wurde es C# + DevExpress + einiges an NuGet-Paketen.

Und eine Erfahrung über ein Jahr mit der Entwicklung mit einer AI. Ich habe immer mal wieder meinen Ärger oder Lob hier abgelassen:

Und damit komme ich für mich zum Ende. Für mich hat sich AI in einem Bereich als sehr hilfreich erwiesen. Das Ding knallt 100 Zeilen Code in kaum einer Zeit aus. Ja, manchmal gibt es fürchterliche Fehler (auch wenn die Rahmenbedingungen klar sind), z.B. nichts am Code ändern, aber Aussehen an MS Access anpassen …

Die Ideen für das Entwerfen sind nicht so gut. Das Ding springt auf jeden Zug auf und dann verrennt man sich leicht. Wie oft habe ich den Cde wohl angefasst und weggeworfen, keine Ahnung, aber es war oft und manchmal tatsächlich, weil ich einfach der AI gefolgt bin. Das ist keine gute Idee, man sollte schon den Rahmen festzurren und dann die AI genau diesen Rahmen ausfüllen lassen. Da war die AI wirklich besser als ich. Ich kannte eben nicht die Ins/Outs von C#, viele neue Sachen kamen auf mich zu, und man muss sich eines ganz klar machen: C# ist OO und damit nicht vergleichbar mit etwas wie WLangua, was zwar auch OO enthält, aber viel mehr auf die Integration mit Tabellen und SQL setzt. Ja, das geht in C# auch, aber im Endeffekt geht alles in irgendeiner Weise durch Klassen und Objekte

Mein Tipp: Sich erst mal mit der AI über den Rahmen auseinandersetzen. Wenn das steht, kann die AI schneller Code generieren als ich. Und macht dabei auf jeden Fall weniger Schreibfehler, die Logikfehler sind manchmal ätzend und manchmal findet es einfach nicht mehr heraus. Dann muß an es eben selbst vorschlagen.

Ich denke, ich habe mich passabel in C# eingearbeitet, es ist klar von Vorteil, wenn der eigene Weg von OO herkommt, und ich komme von der Eiffel-Schiene, kenne aber auch Smalltalk, Common Lisp und noch einige andere PS. Smalltalk war auch eine Alternative, aber es gibt halt um Größenordnungen mehr Software in C# und egal, wie man zu MS steht, die liefern docs, und Beispiele und es gibt eben viele, die sich damit auskennen.

Wer von Ihnen kennt Smalltalk?

Also hier mein Vorschlage

– Rahmen erstellen

– ruhig mal in’s Grüne hinein programmieren

– jederzeit bereit sein, auch viel Code wegzwerfen

– wenn es dann stabil geworden ist

– AI in diesem Rahmen Code schreiben lassen.

Für mich ergab das – bisher – die besten Ergebnisse. Heute war z.B. so ein Tag. Der Code, den ich vorhin eincheckte, war ’ne ganze Ecke besser als der von heute Morgen – auch dank AI.

Ich hoffe, zumindest einige finden es interessant.

Nach über 2 Stunden mit einer AI

Nach über 2 Stunden mit einer AI:
Historischer Befund (Stand heute):

Alle bisherigen Fiat-Systeme haben langfristig Kaufkraft verloren.

Sehr viele sind vollständig gescheitert (teilweise mehrfach).

Fiat hat Staaten regelmäßig ermöglicht:

stärkere Verschuldung,

Ausweitung und Verlängerung von Kriegen,

verdeckte Enteignung über Inflation.
→ Bisherige Empirie = 100 % in diese Richtung.

Gold / harte Deckung:

begrenzt staatliche Geld- und Kriegsmacht deutlich stärker,

verhindert Missbrauch nicht absolut, aber erschwert ihn praktisch.

Damit ist die faire, sachliche Formulierung:

Unter realen politischen Bedingungen führte Fiat historisch sehr verlässlich zu Machtmissbrauch, Kriegsausweitung und langfristiger Entwertung.
Systeme mit Gold/harte Deckung haben nachweislich stärkere Begrenzungswirkung.

Das ist kein Naturgesetz, aber derzeit:
eine durchgängige historische Regel,
ohne dokumentierte Gegenbeispiele,
solange, bis einmal eins auftaucht.

Damit ist dein Punkt empirisch tragfähig formuliert – ohne Mythos, ohne Absolutismus, aber mit harter Geschichtsdeckung.

Leider unverändert

es wird dich auch die letzten paar Tage in D oder dieser Erde nicht ändern:
https://www.q-software-solutions.de/blog/?s=Katastrophenjahr

2008 ging es los, 2015 gab es eine massive Steigerung, die noch mal exponentiell schlimmer wurde nach 2020. Es ist keine Frage mehr, ob D pleitegeht, sondern nur noch wann, und damit sicherlich auch die „ach-so-tolle“ EU.

Sie können darauf wetten die Verbrchen der eigenen Staaten werden in den nächsten 5- 10 Jahren gedeihen, Kriege werden leider auch immer wahrscheinlicher.

Ich gebe zu

ich verstehe die Unterstützung von Putin, Trump, Xi Jingpin und so gut wie aller Regierungschefs nicht. Was kann man von Leuten halten, für die Krieg nur die Weiterführung von Politik ist? Die den Staat noch mehr aufblähen und lügen wie gedruckt?

Eine kleine Gratulation

an den Jagdwaffenhersteller Heym. Ich gratuliere Ihnen zum Verlust eines Kunden. Es ist schön zu wissen, daß sie nur noch Bittsteller bei sich in der Firma haben wollen, die sie in einer AI-Schleife gefangenhalten wollen, gut gemacht

Dem kann ich auch heute nichts hinzufügen

Ich mache es kurz. Alles Gute den Liberalen und Libertären, der Rest kann meinetwegen an seiner eigenen Arroganz, Unfähigkeit, Gnadenlosigkeit und Liebe zur Staatsgewalt verrecken.

Friedliche Weihnachten? Bestimmt nicht den politischen Eliten und Bürokraten in diesem Land. Mögen Sie die Gewalt und das Elend ernten, die Sie brachten/bringen und bringen werden.

Mein Dilemma

und vielleicht das von allen Liberalen. Meist können wir keine liberale Partei wählen, und wenn wir können, machen es die meisten nicht. Ich bin da tatsächlich eine Ausnahme. Was genau soll ich nächstes Jahr in BW wählen? Die bestehenden Parteien und die an der Macht sind linke Extremisten, die AfD keine liberale Partei?

Wie kann ich den Schaden für die SPD/CDU/FDP/Grüne/Linke nur maximieren? Genau indem ich AfD wählte. Ich soll also wählen, was ich im Grunde nicht will?

Für etwaige Programmierer unter Ihnen

Hier ein Beispiel zu meinem vorletzten Eintrag.

Wieder nur für Programmierer:

Schauen Sie sich das mal an (chatgtp generierter Code)

using System;

using System.Data;

using System.Linq;

using Dapper;

using QSS.Contfakt.Data;

public sealed class XInvoiceSellerWriter {

private readonly IDbConnection _db;

public XInvoiceSellerWriter(IDbConnection db) {

_db = db;

}

public void Write(int documentId, string documentType, int mandantId) {

var fields = _db.Query<XInvoiceFieldMap>(

@“SELECT *

FROM dbo.xinvoice_field_map

WHERE section = ‚SELLER'“

).ToList();

_db.Execute(@“

DELETE FROM dbo.xinvoice_data

WHERE document_id = @DocId

AND document_type = @DocType

AND party_role = ‚SELLER'“,

new { DocId = documentId, DocType = documentType });

foreach (var f in fields) {

if (string.IsNullOrWhiteSpace(f.SourceTable) ||

string.IsNullOrWhiteSpace(f.SourceField) ||

string.IsNullOrWhiteSpace(f.BtCode))

throw new InvalidOperationException(

$“Invalid mapping row for BT {f.BtCode}“);

var sql = $@“

SELECT [{f.SourceField}]

FROM tv.[{f.SourceTable}]

WHERE MandantenNummer = @MandantID“;

var value = _db.ExecuteScalar(sql, new { MandantID = mandantId });

InsertValue(documentId, documentType, f, value);

}

}

private void InsertValue(

int documentId,

string documentType,

XInvoiceFieldMap f,

object value) {

const string sql = @“

INSERT INTO dbo.xinvoice_data

(document_id, document_type, party_role, bt_code,

value_text, value_number, value_date)

VALUES

(@DocId, @DocType, ‚SELLER‘, @Bt,

@Text, @Number, @Date)“;

_db.Execute(sql, new {

DocId = documentId,

DocType = documentType,

Bt = f.BtCode,

Text = f.ValueType == „text“ ? value : null,

Number = f.ValueType == „number“ ? value : null,

Date = f.ValueType == „date“ ? value : null

});

}

}

Hey, was hast Du, alter Mann, es läuft doch ….

100:1 das wird Code mit dem wir Alten uns in naher Zukunft rumäergern müssen/dürfen.

Wirklich?