Hi Ari, I think you are on to something. New functionality and streamlining the ORM flow is what I am looking for in the rewrite we contemplate. I don't care that much about directly rewriting what we already have on top of another toolkit. If we are not planning to drastically change anything, we can keep supporting the Swing version for another 10+ years.
I hope we can change the way we do ORM, making it more intuitive and productive. Remove friction from dev work. E.g. the current separation into Obj and DB layers is clunky; maybe we visually collapse it into a single layer of entities like EOF did or something. So a question to answer is how do we rethink the current form-based editor before we pick a technology. > Is it worth examining DBeaver to see whether Cayenne functionality could be > added on top of the existing ERD features? > https://dbeaver.com/docs/wiki/ER-Diagrams While I use DBeaver almost daily and appreciate all the work that went into it and shared at no cost, the UI is horrible (esp on the Mac). The Eclipse-style widgets, bad responsiveness and modality everywhere are driving me crazy. E.g. you reopen DBeaver with 5 tabs from a previous session, that are connected to a DB that is no longer there, and you get exactly 5 modal error popups that you need to dismiss manually. > I like the idea of converting a query into SQL in order to understand what it > is doing. Yeah, we need this kind of features - making the Modeler a developer tool that helps to understand your own Cayenne code. That of course will also require extra backend work (replacing EJBQL with a syntax for ObjectSelect). But it should be worth it. > What would be involved in making Cayenne modeler an Eclipse or Intellij > plugin? Would that increase market awareness, especially if the IDE could be > made more aware of how to handle Cayenne annotations. I am a bit weary of *direct* integration with other tooling (as in becoming a plugin). E.g. writing the Modeler as an Eclipse plugin sounded entirely uncontroversial in 2006, but luckily we never got there. This would've been a dead end in the current market. Most of the industry is using IntelliJ now, and I still encounter customers who are fully Eclipse or Netbeans. The current standalone Modeler can serve all of them the same way. It is a big deal. > A modeler which runs inside a browser reduces the barrier to entry hugely. > Imagine going to a demo website, uploading your database schema and being > able to instantly play with your schema and output a working Java project. You mentioned this before. So the goal would be to obtains a starter Java project? This is potentially interesting. E.g. people seem to like https://start.spring.io/ <https://start.spring.io/> . On the other hand generating usable projects is quite an undertaking. We are developing a CLI project generator under Bootique (see https://bootique.io/docs/2.x/bootique-tool-docs/ <https://bootique.io/docs/2.x/bootique-tool-docs/> ), and the problem is that there are too many possible configurations. So getting a project that is in your preferred style is hard. I constantly struggle with it. > If Modeler changed to another language or UI library, could it leverage that > to better integrate with other tooling? I may have one such integration scenario I care about myself - integration with Liquibase... I no longer use a permanent local DB to run my code. My APIs and jobs are tested via JUnit, Testcontainers, and a Docker-based transitory DB, and I never ever check them manually. But I still forced to maintain a semi-permanent local DB to do "DB Import" for Cayenne, and this creates extra friction. Allowing CayenneModeler to create its own transitory schema with Docker/Testcontainers/Liquibase for the purpose of DB Import would be extremely cool. If anyone can propose other similar use cases from their own experience, let's discuss. Andrus > On Dec 16, 2021, at 2:21 AM, Aristedes Maniatis <a...@ish.com.au.INVALID> > wrote: > > A few random thoughts. > > > ## Integrations > > If Modeler changed to another language or UI library, could it leverage that > to better integrate with other tooling? > > For example, could making parts of the modeler a js library allow it to work > with existing js database modelers like Vertabelo > https://my.vertabelo.com/try-db-designer > > > > Here are some desktop app database modelers I found: > > * https://www.toadworld.com/products/toad-data-modeler > > * https://www.mysql.com/products/workbench/ > > * https://www.idera.com/products/er-studio/enterprise-data-modeling > > * https://sparxsystems.com/products/ea/ > > * https://astah.net/ > > > > ## Building on an existing platform > > Is it worth examining DBeaver to see whether Cayenne functionality could be > added on top of the existing ERD features? > https://dbeaver.com/docs/wiki/ER-Diagrams > > > What would be involved in making Cayenne modeler an Eclipse or Intellij > plugin? Would that increase market awareness, especially if the IDE could be > made more aware of how to handle Cayenne annotations. > > > ## Competing implementations > > It is worth looking at the feature set over here: > > https://tools.jboss.org/features/hibernate.html#hibernate-console > > > I like the idea of converting a query into SQL in order to understand what it > is doing. But of course that needs a modeler which can talk to the Java > Cayenne library and might rule out a pure browser/js implementation. Rather > it might look like the Cayenne server library with some sort of rest API to > serve the front end. Cayenne as a service, if you will. > > > > ## Browser/cloud modeler > > A modeler which runs inside a browser reduces the barrier to entry hugely. > Imagine going to a demo website, uploading your database schema and being > able to instantly play with your schema and output a working Java project. > > > ## Developer skills > > Does anyone in the existing team have js skills? > > > > Ari > > > > > On 11/12/21 7:15pm, Andrus Adamchik wrote: >> A datapoint to our perennial discussion of technology to use for the future >> CayenneModeler... With Swing being old and crusty, and JavaFX no longer >> supported by Oracle, perhaps we should be looking for something fresh. I >> just came across a new "Compose Multiplatform" desktop UI framework by >> JetBrains [1]. It is programmed in Kotlin and is based on Google toolkit for >> Android. Their GitHub examples [2] are not that visually impressive, but I >> would imagine it is a matter of styling. A million $ question is whether it >> will be around and open source in 10-15 years. >> >> Anyone knows anything about it? >> >> Andrus >> >> [1] https://www.jetbrains.com/lp/compose-mpp/ >> [2] >> https://github.com/JetBrains/compose-jb/blob/master/artwork/readme/apps.png >> >>