Also eigentlich willst du irgendwas in der Form einer Low-Code Plattform. So ziemlich alle davon sind aber kommerziell, also vielleicht nicht so interessant wenn du nicht gerade eine Probeversion bekommst welche ausreicht.
Das ist ein guter Hinweis. Und das kann man ja durchaus einmal etwas beleuchten / ein paar Links geben!
a) Eine Low-Code Plattform, über die ich gestolpert bin:
FlutterFlow - Build beautiful, modern apps incredibly fast!
Da gibt es auch einen kostenlosen Account und mit dem kann man ggf. sowas bauen. API und data integration ist da bereits mit drin, aber ich weiss nicht, in welcher Form. Es scheint auf Firebase gesetzt zu werden, was dann da ggf. Kosten verursacht (Habe ich schon lange nicht mehr geschaut).
Generell ist hier aber die Gefahr gegeben, dass so ein kostenloser Account auch einmal eingestellt werden kann.
b)
The best time-to-market for Java - OpenXava
OpenXava ist eine freie Lösung. Es gibt da zwar auch noch XavaPro, aber das braucht man gerade am Anfang nicht. User, Module und all sowas ist bei so einer Lösung vermutlich nicht besonders interessant.
Hier ist aber die Problematik, dass man eben etwas baut, das einer Java EE Anwendung entspricht und die will gehostet werden. Das kommt dann mit gewisser Komplexität daher. Wenn man aber nur einen User hat, dann nutzt man ggf. die Entwicklungsumgebung.
c)
High productivity application development platform (jmix.io)
jmix ist der Nachfolger von Cuba. Es beruht auf einem Open Source Kern, der frei verfügbar ist. Aber man hat dann halt nicht den vollen Editor. Mit Subscription hat man dann einen Editor und alles wird total easy: Man gestaltet seine Data Entities in der Entwicklungsumgebung, erzeugt darauf seine Screens und hat dann auch seine vollwertige Java Enterprise Anwendung (mit Spring Boot / Vaadin Basis)
Wenn man es ohne den Editor versucht und alles so aufbaut: Warum nicht. Aber das kostet viel Zeit.
d)
JHipster - Full Stack Platform for the Modern Developer!
Das ist auch ein interessanter Ansatz für eine Full Stack Lösung. Man bekommt Frontend und Backend beides zusammen.
Meine Bewertung
So interessant das auch alles zu sein scheint: Ich selbst halte von diesen Lösungen relativ wenig. Ich bin da streng genommen gleich zwei Mal heftig auf die Nase gefallen.
Erst einmal meine Erfahrung:
1) Microsoft Lighswitch (Schon eingestellt)
Das war eine interessante Lösung. Man hat seine Entities erstellt und darauf dann sein Frontend zusammen geklickt. Das ging erstaunlich gut.
Das Thema hat aber eine gewisse Komplexität - das hat sich bei Fehlern böse bemerkbar gemacht - der Anwender hat dann mal eben 10-30 kryptische Fehlermeldungen wegklicken müssen. Und Das war dann schwer zu finden. Ein Fehler war mal, dass ich etwas nach "Anleitung" gemacht habe und die war leider nicht ganz korrekt. MSDN Forum war da dann sehr hilfreich
Das zweite Problem sind Anpassungen. Es ist toll: Man klickt sich eine Lösung zusammen. Das Kernproblem damals war: Entwicklungsteam war ausgelastet. Andere hatten eine MS SQL Datenbank erstellt und dazu brauchte es dringend ein Frontend. Dann habe ich mit Lightswitch mal eben eine UI zusammen geklickt und deployed (Alles an nur 1 Tag!). Also 1 Tag bis Produktion für eine komplexe Datenbank: Das war schon etwas
Aber dann kamen weitere Anforderungen und die waren dann plötzlich nicht 1:1 umsetzbar. Dann find die Suche nach Workarounds an. Das kostet mehr Zeit, als es einmal richtig zu machen.
Und dann das Problem von Updates. Es war enorm nervig, dass kleine Anpassungen an der Datenbank plötzlich irgendwo etwas kaputt gemacht haben. Du änderst etwas an Tabelle1 und bei einer anderen Tabelle, an der nichts geändert wurde, gehen die Screens nicht mehr.
==> Enormer manueller Testaufwand.
2) cuba (jetzt jmix)
Das lief auch super. Damit habe ich dann auch auf die Schnelle eine Lösung für eine existierende Datenbank gebaut. War echt super.
-> Reporting funktioniert manchmal aber nicht. Bei mir waren es dann teilweise viele Daten und da gibt es irgendwelche Probleme. War aber nicht analysierbar. Extrem nervtötend
-> Problem mit Updates. Bei einem cuba Update war dann das Projekt nicht mehr aktualisierbar. Das war der Punkt, an dem ich es dann fallen gelassen habe!
Mein Fazit:
1. Komplexität zu verstecken ist nicht gut! Wenn man die zugrunde liegende Technik nicht kennt und nicht im Zugriff hat, dann ist man bei Problemen auf verlorenem Posten! Das funktioniert nur in Bereichen, in denen die Komplexität gut dokumentiert und durch eine breite Masse benutzt wird! (Also typische Beispiele wie Spring Boot, Quarkus, Angular, React, ....) Also vulgär ausgedrückt: "Selbst wenn es sich als Schei.... heraus stellen sollte für Dich: Du hast Millionen Fliegen, die Dir helfen können, weil sie drauf fliegen"
2. Anpassungen: Immer wenn Du plötzlich Anforderungen hast, die so nicht vorgesehen sind, hast Du ein massives Problem. Du bist bei RAD Tools halt nur noch auf einem hohen Level unterwegs. Anpassungen im Low Level Bereich sind einfach nicht vorgesehen! Das muss einem klar sein!
3. Es ist deutlich entspannter, etwas von der Basis aufwärts zu lernen. Es ist sehr nervtötend, wenn Du irgendwo auf hohem Level bist und dann in andere Technologien einsteigen musst, um da einen Fehler zu verstehen oder so. Und wenn Du mit der Basis anfängst, dann hast Du solides Wissen und kannst damit auch leichter auf neue Versionen adaptieren.
==> Mein Tipp ist ganz deutlich: Eine saubere Basis nutzen. Ein Low Code Tool sehe ich als nicht wirklich zielführend, wenn es um die Produktentwicklung geht. Wenn man nur für sich Daten verwalten will: Excel und co. Das wurde schon eingesetzt, das ist bekannt. Der Wechsel zu OpenOffice oder so dürfte nicht zu schwer sein.
Ansonsten eine solide Basis nutzen. Das kann Spring Boot mit Thymeleaf sein (Setzt aber auch HTML voraus. Nicht so durchdacht von mir, als ich es genannt habe) oder einfach Vaadin. Zu Vaadin gibt es gute Videos und man kann alles rein in Java aufbauen. Sowas in der Art sehe ich eher als zielführend und vor allem lernt man dann (hoffentlich) die Grundlagen. Das hilft einem dann in Zukunft auch weiter.