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.


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