Bug 566750 - [Databinding 2.0] API improvements and changes
Summary: [Databinding 2.0] API improvements and changes
Status: RESOLVED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.14   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Christoph Laeubrich CLA
QA Contact: Jens Lideström CLA
URL:
Whiteboard:
Keywords:
Depends on: 566751 566752 566754 566755
Blocks:
  Show dependency tree
 
Reported: 2020-09-08 00:22 EDT by Christoph Laeubrich CLA
Modified: 2020-09-08 13:27 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Laeubrich CLA 2020-09-08 00:22:00 EDT
Databinding is a powerful tool for now over 15 years but I'd like to suggest some changes and improvements to clean up some things for a "Databinding 2.0" API to improve user-experience and stream-line things a bit.

I'll add some tickets for this so different topics can be discussed independently and like to encourage everyone to suggest things that might be useful for a 2.0 version of Databinding.
Comment 1 Christoph Laeubrich CLA 2020-09-08 03:01:21 EDT
As 2.0 will likely not happen I'll close this ticket and try to implement the desired features in the existing framework.
Comment 2 Jens Lideström CLA 2020-09-08 09:08:49 EDT
(In reply to Christoph Laeubrich from comment #0)

As you seem to be interested in the future of the databinding framework maybe you'll find the following document interesting:

https://bugs.eclipse.org/bugs/attachment.cgi?id=283373

It contains the original databinding developers' visions of a 2.0 version.

It is attached to Bug 412499.
Comment 3 Christoph Laeubrich CLA 2020-09-08 10:17:18 EDT
Thanks Jens for this interesting document, I understand most of the PITA mentioned there. The framework itself seems powerful and promising but using it beyond simple use-cases really could drive me crazy.

Especially if I see that Java 8 Lambda and streams are around for quite a while (Java 8 is EOL already...) I think databinding could profit from these alot but to be realistic: more than 7 years and no progress, so is there really any plan (or even chance!) to make a change happen here?
Comment 4 Jens Lideström CLA 2020-09-08 13:27:55 EDT
(In reply to Christoph Laeubrich from comment #3)
> Thanks Jens for this interesting document, I understand most of the PITA
> mentioned there. The framework itself seems powerful and promising but using
> it beyond simple use-cases really could drive me crazy.

Yes, exactly! The complexity and weird errors that you get are truly frustrating. In that document they talk a lot about simplification.

> Especially if I see that Java 8 Lambda and streams are around for quite a
> while (Java 8 is EOL already...) I think databinding could profit from these

Heh! When I started working on databinding a few years ago it didn't yet take advantage of Java 5 features. :) The project that dragged my into doing open-source work for Eclipse was to complete the work with adding type parameters to the framework. (See for example bug 472674.)

At least we can write listeners and converters using lambdas now days. :)

The var-mechanism is also nice with databinding code, which tend to have long types.

> alot but to be realistic: more than 7 years and no progress, so is there
> really any plan (or even chance!) to make a change happen here?

There are no plans to do any large improvements, unfortunately. There are no people available to do the work. It is mostly me doing a little work sometimes, and I work on a purely voluntary basing.

I also don't think there is any interest from the project lead to invest much in this area. When you think about it, the databinding framework is kind of an odd project to be part of the Eclipse platform.

Now and then we do smaller improvements however. For example:

* Bug 552667 contains work by me and another person on a new fluent API for doing bindings. I meant to finish in during the summer but didn't have the time.
* We have done a few small additions to take advantage of lambdas:
    - Properties#convertedValue
    - ComputedValue.create

I think the only chance for a version 2 of the framework would be if an enthusiastic group of people would decide to fork the current framework and do their own thing.

This was attempted a couple of years ago (before my time), but the work stalled after a while. The code is still available here:

https://git.eclipse.org/c/e4/org.eclipse.e4.databinding.git/