Dojo

Dojo 1.x rewrite Delightful.JS

#1

Just a note for all the Dojo 1.x users who might not see Dojo 2.x topics on Dojo Discourse due to the preconfiguration of dojotookit org:

The original release candidate of Dojo 2, a complete Dojo-1-like rewrite by the former IBM team is called Delightful.JS and can be found here: http://ibm-js.github.io/deliteful/

@Dylan / Site Pen: Mention that fully functional but yet unreleased version of Dojo 2! Now!

  1. Change the main teaser of “dojotoolkit org”
    from “Visit dojo io for documentation, examples, and more on Dojo, the Progressive Framework for Modern Web Apps and successor to the Dojo Toolkit”

to “Visit dojo io and Delightful js as successors to the Dojo Toolkit”

  1. Add a blog post on dojotoolkit org explaining the situation and the situation behind the scenes. Explain yourself why you don’t mention the other Dojo Toolkit rewrite.

Do it until 1st of February 2019, otherwise I will file a complaint against you and Site Pen at the JSFoundation to be in breach of its basic principles, mainly

  1. Hindering competition of ideas so as to promote own products / ideas

  2. Misusing the brand name “Dojo” to sell a completely new Site Pen product

  3. Maybe even getting money from the JSFoundation for developping this product.

But maybe the involvement of big business in foundations as a whole is worth a profunder public discussion…

Thanks.
P.

listed #2
#3

Hi Paul,

Thanks for your feedback, though unfortunately some of your points are based on information that doesn’t seem accurate to me.

Far too many years ago we started thinking about Dojo beyond 1.x, and started working on a path that led to many false starts. The biggest impact was the introduction of ES2015 which really led to a complete rethink of what modern Dojo should become.

I have met with the team from IBM that works on Delite / Deliteful several times. Note that this was developed as an IBM project and has never been proposed to the Dojo or JS Foundations as an official foundation project. IBM has unfortunately not invested as much time in the ibm-js collection of projects over the past few years. We were asked at one point if we wanted to take over development of Delite, but we felt that a modern and reactive architecture authored in TypeScript would lead to a better long term solution that would be more efficient to maintain, even with the nice collection of widgets found within Delite. At the time Delite was still using AMD modules and still retained quite a bit of its Dijit heritage. Given that we rarely have the opportunity to rewrite, we wanted to create a framework and widget system that would be the best possible solution for the next many years. We are currently working on a better interoperability approach which should land in the near future.

To clarify a few things:

  • Yes, SitePen is a major contributor to Dojo, and has been since the project started in 2004. We (SitePen) are not attempting to sell Dojo, and we (both SitePen and Dojo) have always run Dojo as an open source project as part of a foundation. We (Dojo) would welcome and love more contributions. To date, most contributions outside of SitePen have been bug fixes, but the project would really welcome deeper participation from the community. If there’s anything we can do to make this more evident, we’d love your feedback.
  • The JS Foundation does not pay for the development of its projects. All projects need to find their own development contributions.
  • It is not up to Dojo to promote all alternatives to using Dojo. For example, should Dojo promote React since React was influenced by Dojo’s widget model? No, and as such I don’t see why Dojo should actively promote a project created by a few of the same people who worked on Dojo 1.x.
  • There is no animosity between the IBM Dojo and Delite contributors and other Dojo contributors.
  • Dojo has maintained its roadmap and direction in the public for many years and we have encouraged feedback over that time. We would love more feedback and contributions if people are interested. Much of this may be found on the dojo.io and dojotoolkit.org websites and blogs.

I would be happy to have a voice chat with you to discuss this further if you do not feel that my reply addresses your concerns. Just let me know!

I would hope you realize that we create open source to create something we hope is useful for others and something we are passionate about. We do not feel there is a conspiracy at place here to stifle the ideas of others, but rather that we need to continue to create software that will hopefully be useful to our users!

Regards,
-Dylan

(P.S. Discourse has marked your original post as spam, because you’re a new user with multiple posts to the external link… I have no idea how to change the moderation filter, sorry about that, I’ll see how to change this).

#4

For me, it seems, that IBM in 2015 has abandoned JavaScript frontend development totally (thereby also deeply frustrating its own development team, I guess, which was burning for the project). As a “platinum member” of the JSFoundation, IBM seems to prefer to donate money now only (and thereby preserving influence) than actively developping a JavaScript frontend framework themselves. It’s politics, its’s business, it’s maybe about losing your face, but not informing the community about this is very disappointing to me and bad code of conduct. That’s primarily IBM’s fault not yours. But in the long run, as the new maintainer, it is also your fault, not to have done, what IBM ought to have done.

Quite for some years, I followed the ongoing work for Dojo 2 and the refactoring process on github. It seems to me, that Delite / Deliftful is that very old Dojo 2 rewrite, and it is actually dead and not an offical IBM product. It’s seems to be a hobby of Bill Keese, one of the old main maintainers of Dojo 1, which where pulled out of the project by IBM.

Of course you do not need to take over the development of Delite / Delitful if you don’t want. But not informing the community about the changes behind the scenes, that IBM droppped out, that there is a working rewrite of Dojo 1, that you don’t like it as new maintainer and want to make a new one, is not, what I expect as transparent and respectful communication with and information of the community.

For me, it seems to be much easier to migrate a 1.x application to Delite / Deliteful than 2+.

And of course it is your job - as a member of the JSFoundation - to promote also other projects. The JSFoundation Antitrust Policy reads like this:

The purpose of the JS Foundation (“JS Foundation”) is to: (a) drive widespread adoption and continued development of key JavaScript solutions and related technologies; (b) facilitate collaboration within the JavaScript development community; ( c) create a center of gravity for open source projects throughout the end-to-end JavaScript ecosystem guiding them toward open governance and diverse collaborator bases; (d) host the infrastructure to support hosted open source projects (“Projects”) and (e) enable, through advancement of the JS Foundation’s projects and strategic partnerships, an open and accessible web.

Wouldn’t it be a wonderful strategic partnership, to honour your old friend Bill Keese and tell the community: We actually “forked” somehow – There is a totally new Dojo 2 and a Dojo 1.x like rewrite called Delite / Deliteful. Dojo 2, is backed up by Sit Pen’s business power and excellence, Deliteful by the old Dojo key maintainer Bill Keese and the community. The opinion on what sound frontend-development is, differs. But look for yourself and choose wisely, but don’t just React :wink: !

All in all, thank you Dylan and Site Pen for the commitment and passion over the years in bringing new software and ideas to the community! It has always been excellent work! I really do appreciate it! All the best to you personally and your business!

#5

Hi Paul,

IBM never really made an official announcement on what their JavaScript strategy is, so I can only really say that they stopped putting engineering effort into things. If someone from IBM wants to make a formal statement, that is fine, but it feels inappropriate for me to speak for them.

My understanding is that Bill Keese maintains Delite(ful) as he works on a product that leverages it.

Maybe Delite/Deliteful would have been a good rewrite of Dojo 1 if it was done five years earlier. However, when you look at the technology and choices it uses (e.g. AMD, Bower, etc.), it’s just not a practical foundation for a modern framework in 2019. Yes, it’s closer in its nature to Dojo 1 because it is more like Dojo 1 in its approach, which does make it easier for Dojo 1 users, but almost no one is asking for a Dojo 1 like framework today.

At one point we actually started a Dojo rewrite using TS that was closer to Dojo 1 ( https://github.com/dojo/intern-only-dojo ), but then ES6 came out and it was clear that we needed a more drastic change to provide something for the future rather than for the past. The early discussions around the direction of Dojo were held in public. We had numerous Google docs and shared the links on the mailing list at the time, and really not much feedback was provided unfortunately. We attempted to resurrect the weekly meetings ( see https://github.com/dojo/meta/tree/master/design-meetings ), but almost no one attended. So we just started communicating plans through code, issues, and pull requests.

In hindsight, if we had time and resources, around the time of Dojo 1.7 or 1.8 we should have released a feature compatible version of Dojo that only used AMD and used that as an opportunity to remove the cruft. But even back then some 7 or so years ago, most of the committers at the time felt that wasn’t enough for Dojo 2, and we needed to think bigger about the future. If there was a plan to do more with Delite(ful) than just keep it in maintenance mode using already out of date choices, then I can see your point, but I think it would just confuse people more that such a thing exists.

Regarding the JS Foundation statement, if Bill or someone wanted to write an article about Delite, I am sure the foundation would be willing to publish it on their blog ( https://js.foundation/blog ) or mention it if Bill wanted to write it elsewhere, and I’d be happy to link to it from the Dojo 1 blog.

Regards,
-Dylan

#6

Hi Dylan and thanks for the clarification and feedback!

Bill and I have written short blog post for the Dojo 1 blog, see text below. Would you be so kind to publish it there?

Note: For some reason, I needed to change to links not to look as links, since I am not allowed - according to discourse - to post links.

A deliteful rewrite of the Dijit UI library

As platinum member of the JSFoundation, IBM is still a major supporter of the open source community, however stopped active development of the Dojo Toolkit itself in 2015.

Up to this date, the IBM Dojo team had been heavily refactoring and rewriting Dojo’s Dijit UI library for a planned new Dojo 2 release. This fully functional, yet never officially released UI library, named Deliteful, can be found here:

http:// ibm-js.github. io/deliteful/
https:// github.com /ibm-js

It is now officially given back to the community for usage, development and maintenance.

Deliteful pursues and improves the established, powerful and yet flexible Dojo 1.x way of creating custom components and applications - either programmatically or declaratively with HTML markup / web components. Thereby, it carefully incorporates strongly needed features
like e. g. an invalidating mixin, that improves DOM rendering for complex widgets with frequent updates.

Moreover, Deliteful comes now with a command line interface (CLI), which improves creation and building of applications. Its widget system targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.

All in all, regarding the state of the art of JavaScript frameworks
(https:// www.sitepen .com/blog/2017/11/10/web-frameworks-conclusions/), it follows a third strategy, that is a middle course between using a full-blown framework (like React or Angular) and going completely frameless. It is a frameless “framework” for everybody which is built on top of popular libraries too popular to fail: Require.JS, DCL, and others thereby leveraging the existing, mature and diverse Dojo 1.x Dijit widget collection.

The framework’s philosophy is: There is no compulsion to innovate just for the sake of innovation. Programming business is not like shoe business and fashion. There is no need to break things, that are proven, sufficient, and good enough to achieve our goals. Virtual DOM sometimes tends to provide the wrong kind of comfort for programmers and tends to add new sorts of opacity hard to fix. Since the beginning of Dojo in 2004, web development has matured a lot over the years and allows for quite efficient frontend programming now. But web development still calls for a profound understanding of what you do (and better don’t do), an approach, Dojo 1.x was always fostering over the years (earning it the reputation to be hard to learn and use). Also without a virtual DOM but with a new widget invalidating mixin, thoughtful Dojo 1.x programms should be able to deliver up-to-date web application with Deliteful (e. g. in combination with today´s browser´s intersection observer APIs).

With Deliteful, Dojo 1.x programmers now have a more modern alternative to Dojo 1.x Dijit UI library, but still with a Dojo 1.x like syntax and feel. And yes: Delitful is still JavaScript, not TypeScript. And it still uses AMD modules which are some kind of clumsy. Of course, a simple TS or JS6 “import” statement would be much more elegant. But slow down and be patient: We all will have it in a few years. But this clumsiness does not keep us from creating great applications with a small learning curve right now, since the newly provided tools of Deliteful truely meet the main challenges of current web development.

#7

Hi Paul, feel free to email me about this ( dylan at dojotoolkit dot org ). In its current form it needs a lot of work to be coherent, and I’m not sure we want to collaborate on this via Discourse.

But for example, “however stopped active development of the Dojo Toolkit itself in 2015.” makes it sound like active development stopped, rather than IBM’s development on Dojo, etc. There’s a lot of typos, a lot of areas that lack clarity, and some areas that just kind of run on. If you want to tighten this up and make sure it’s totally clear then I’ll review and edit and publish it.

#8

Hi Dylan,

10 days ago, I have written you an e-mail without getting any response so far. Why?

I aggree: Development of the Toolkit hasn`t stopped, but IBM is not part of it anymore. That should be made clear.

Here is a shortend version for the post:

++++++++++++++++++++++++++++++++++++++++++++++++++++++

Title: A deliteful rewrite of the Dijit UI library

As platinum member of the JSFoundation, IBM is still a major supporter of the open source community, however stopped participating in active development of the Dojo Toolkit in 2015.

Up to this date, the IBM Dojo team had been heavily refactoring and rewriting Dojo’s Dijit UI library for a planned new Dojo 2 release. This fully functional, yet never officially released UI library, named Deliteful, can be found here:

http:// ibm-js. github. io/deliteful/
https:// github .com /ibm-js

It is now officially given back to the community for usage, development and maintenance.

Deliteful pursues the established Dojo 1.x way of creating custom components and applications - either programmatically or declaratively with HTML markup / web components.

Thereby, it incorporates needed features like e. g. an invalidating mixin, that improves DOM rendering for complex widgets with frequent updates.

Moreover, Deliteful comes now with a command line interface (CLI), which improves creation and building of applications. Its widget system targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.

++++++++++++++++++++++++++++++++++++++++++++++++++++++

#9

Paul, I have yet to receive an email from you on this… I’ve checked spam/junk folders etc.

#10

Also, apologies, I had the email notifications preference set to weekly rather than daily which is one reason my replies have been slow.

#11

LOL – Paul, I have not received your mail!

@Dylan: Yes, this happens quite often nowadays. Mails are lost on their way over the Atlanctic! Or the mail men put the mail into the wrong post box! Have you already asked your neighbour? At least the mail was not returned to me as undeliverable! Check it again: dylan AT dojotoolkit DOT org.

LOL – Sorry, Paul, I have set my notifications preference to weekly, that’s why I am so slow!

@Dylan: It took you over 3 weeks to react to my post!! Whats your strategy: Playing for time? Your reluctance to publish the post is striking and obvious. You said, if Bill and I would write a post, you will be glad to publish it. Now we have done that and you dont publish it! Why? What`s wrong with you? It should be quite easy for you to add an introducing remark to the Dojo 1 blog, that the following post does not reflect the opinion of Dylan Schiemann and its SitePen development team and their new product “Dojo 2”.

I once again remind you of the JSFoundation antitrust policy: You are misusing your position as new project lead to keep information away from the public in favor of your own business interest.

Again: Here is the shortened blog post Bill and I came up with. It incorporates your criticism and is neutral without much marketing yada yada.

And of course we cannot aggree: You dont like Deliteful, we dont like Dojo 2. Hey, we can go on with our rant for quite some time. It`s your choice.

++++++++++++++++++++++++++++++++++++++++++++++++++++++

Title: A deliteful rewrite of the Dijit UI library

As platinum member of the JSFoundation, IBM is still a major supporter of the open source community, however stopped participating in active development of the Dojo Toolkit in 2015.

Up to this date, the IBM Dojo team had been heavily refactoring and rewriting Dojo’s Dijit UI library for a planned new Dojo 2 release. This fully functional, yet never officially released UI library, named Deliteful, can be found here:

http:// ibm-js. github. io/deliteful/
https:// github .com /ibm-js

It is now officially given back to the community for usage, development and maintenance.

Deliteful pursues the established Dojo 1.x way of creating custom components and applications - either programmatically or declaratively with HTML markup / web components.

Thereby, it incorporates needed features like e. g. an invalidating mixin, that improves DOM rendering for complex widgets with frequent updates.

Moreover, Deliteful comes now with a command line interface (CLI), which improves creation and building of applications. Its widget system targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.

++++++++++++++++++++++++++++++++++++++++++++++++++++++

#12

Paul,

Enough with the attacks please. There’s nothing nefarious going on here. I was traveling for work, I have a hip injury which is requiring significant physical therapy, I have three kids and a life, a company to run, open source projects to support, conferences to speak at, and thousands of emails a week to parse through. I was trying to frankly explain that I had missed the notification because I had missed a setting in this software, and I definitely do not have any emails from you directly which I admit is surprising but is fact.

I simply asked that you write a professional, non-biased blog post that would make sense to an average user. The first version you wrote was incoherent at best. I asked you to reach out to me. I was even willing to help so that it might make sense to our readers. I had suggested doing this directly to try to speed things up. Instead you seem to believe that I have some evil master plan here, and I simply don’t know why you feel this way. That said, please comply with the code of conduct, give me the benefit of the doubt, and stick to the topic.

I have referred your complaint to the JS Foundation. That said, I don’t think you understand what an antitrust policy is. It means that companies that contribute to the JS Foundation remain competitive rather than collusive. It does not require the foundation to actively and equally promote all open source projects in existence.

Now, given that you want to have this review done publicly, here are my thoughts (note, I sound argumentative in my reply, but I’m putting my editor hat on):

Title: A deliteful rewrite of the Dijit UI library

As platinum member of the JSFoundation, IBM is still a major supporter of the open source community, however stopped participating in active development of the Dojo Toolkit in 2015.

DS: This is a position statement about IBM, we cannot say this without someone in IBM marketing or legal approving this statement.

Up to this date, the IBM Dojo team had been heavily refactoring and rewriting Dojo’s Dijit UI library for a planned new Dojo 2 release. This fully functional, yet never officially released UI library, named Deliteful, can be found here:

DS: Deliteful has 29 tagged releases ( https://github.com/ibm-js/deliteful/releases ), so is it released or not? Or do you mean it has not yet reached 1.0? Note that it has been worked on for 4.5 years, but has not had a tagged release since 2016? Is this meant to convey confidence that this is an actively developed and supported project? Given that you’re saying in the previous paragraph that IBM still contributes, what is the level of contribution and commitment? Is it right to direct users to a project that is currently getting scraps of Bill Keese’s time at best?

http:// ibm-js. github. io/deliteful/
https:// github .com /ibm-js

It is now officially given back to the community for usage, development and maintenance.

DS: You said there’s no official release? Or is there?

Deliteful pursues the established Dojo 1.x way of creating custom components and applications - either programmatically or declaratively with HTML markup / web components.

Thereby, it incorporates needed features like e. g. an invalidating mixin, that improves DOM rendering for complex widgets with frequent updates.

DS: Needed by whom or for what.

Moreover, Deliteful comes now with a command line interface (CLI), which improves creation and building of applications. Its widget system targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.

DS: Grammar issues here, in particular the last half “targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.” Established profound in what way. Does it support the ECMA 402 spec now found in most browsers ( https://www.ecma-international.org/ecma-402/1.0/ )? Pedantically, there should not be a comma after the word both, but that’s the least of the issues with the current blog draft.

#13

P.S. To be clear, we explored contributing to and leveraging Deliteful when we thought about what we wanted to do with Dojo 2. Deliteful could be used pretty easily with modern Dojo if someone wanted to do so given Dojo’s ability to import web components, assuming it’s using the latest version of custom elements. That said, Deliteful’s home page focuses on how to use Deliteful with AngularJS (Angular 1.x), RequireJS/AMD, and Polymer, but not modern Dojo, and I’ve not taken the time to verify this integration.

Unfortunately anyone reading the home page of https://ibm-js.github.io/deliteful/ is going to look at it and think it’s a dead project as so many of the things it mentions are stale or no longer supported (Windows Phone and other legacy browser support, Bower, ES7 Object.observe, Grunt, AngularJS, Dojo Foundation). Perhaps if you are concerned about getting more adoption for Deliteful, it would be worthwhile for you to update the home page and documentation instead of fighting with me over a blog post, so that when people do check it out, they don’t immediately dismiss the project as legacy/stale/dead?

#14

Hi Dylan, comments are included with (PC:)

Title: A deliteful rewrite of the Dijit UI library

As platinum member of the JSFoundation, IBM is still a major supporter of the open source community, however stopped participating in active development of the Dojo Toolkit in 2015.

DS: This is a position statement about IBM, we cannot say this without someone in IBM marketing or legal approving this statement.

PC: Bill is still with IBM and it is okay for him. We did the post together. YOU don`t need to say anything. It is a blog post by Bill and me.

Up to this date, the IBM Dojo team had been heavily refactoring and rewriting Dojo’s Dijit UI library for a planned new Dojo 2 release. This fully functional, yet never officially released UI library, named Deliteful, can be found here:

DS: Deliteful has 29 tagged releases, so is it released or not? Or do you mean it has not yet reached 1.0? Note that it has been worked on for 4.5 years, but has not had a tagged release since 2016? Is this meant to convey confidence that this is an actively developed and supported project? Given that you’re saying in the previous paragraph that IBM still contributes, what is the level of contribution and commitment? Is it right to direct users to a project that is currently getting scraps of Bill Keese’s time at best?

PC: Yes, it is. If no one knows of it, no one can pick it up and make it use e.g. webpack instead of bower.

http:// ibm-js. github. io/deliteful/
https:// github .com /ibm-js

It is now officially given back to the community for usage, development and maintenance.

DS: You said there’s no official release? Or is there?
PC: :wink: You seem to miss the different meanings of “official” in their respective contexts. But we can drop “offically” if you want.

Deliteful pursues the established Dojo 1.x way of creating custom components and applications - either programmatically or declaratively with HTML markup / web components.

Thereby, it incorporates needed features like e. g. an invalidating mixin, that improves DOM rendering for complex widgets with frequent updates.

DS: Needed by whom or for what.
PC: Needed by people who have widgets with frequent updates of the UI. It is like Dojo 2’s invaldidate and render.

Moreover, Deliteful comes now with a command line interface (CLI), which improves creation and building of applications. Its widget system targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.

DS: Grammar issues here, in particular the last half “targets both, desktop and mobile devices with the established profound i18n and a11y support Dojo has always been known for.” Established profound in what way. Does it support the ECMA 402 spec now found in most browsers? Pedantically, there should not be a comma after the word both, but that’s the least of the issues with the current blog draft.

PC: Established and profound means, that it was always an integral part of Dojo to have i18n and a11y. And yes: Deliteful’s i18n is based on the ECMA 402 specs, see homepage.

#15

In case it wasn’t clear, my questions were not rhetorical, but from the perspective of editing a blog post that would make sense to an end user. Please update the blog post so that the questions are answered. I don’t need the answers so much as an end reader needs to understand what you’re saying.

We take this same level of critique with our own posts, so I’m not trying to pick on you.

To make a statement about IBM’s official position, we need Bill to confirm he’s allowed to say this on the record, or you could change these points be quotes from Bill Keese, software engineer (replace with whatever his current title is) at IBM, etc.