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
>> 
>> 

Reply via email to