slightlyoff / cassowary.js

Cassowary/JS, better, faster, future-ready
Other
1.69k stars 107 forks source link

Is this project dead? #79

Open wmadden opened 7 years ago

wmadden commented 7 years ago

The last commit was 2 years ago, there's no documentation, and nobody's requests for help or documentation appear to have been answered.

But this is a really useful tool! It's a shame to see it die. Anyone interested in giving it a new/proper home?

Dimous commented 7 years ago

There is nothing to improve) You may already know about - http://overconstrained.io/ (https://overconstrained-slack.herokuapp.com/)

If you are looking for better implementation of cassowary algorithm, you may be intrested in - https://github.com/IjzerenHein/kiwi.js/ Check out autotests - https://rawgit.com/IjzerenHein/kiwi/master/test/index.html (click on list items to expand)

wmadden commented 7 years ago

Thanks for the prompt response @Dimous. cassowary.io is beautiful, but doesn't really offer any documentation or assistance to newcomers looking to apply cassowary.js. @epsichaos mentioned in one of the other issues that the Python port's documentation is a good place to start, so I'm working through that, but it's a shame that cassowary.js has no documentation of its own.

epsxy commented 7 years ago

@wmadden I've been working on Cassowary for a couple of months in my former job, creating a library to design responsive & constrained UIs with React & Cassowary. I've meet all the answers on Python's documentation, but the js library is not really convenient & reliable to use. I've spent a lot of time fighting with features, declarations and syntax to use properly this lib.

My conclusion was that Cassowary is not currently completely ready for production (which was my purpose in my previous work), due to the lack of documentation and support, of real already existing production implementation & help on the Internet. However, it's still a wonderful library I had a lot of fun with 😄 . If you have other questions, I'll be happy to help 😃

wmadden commented 7 years ago

Hi @Epsichaos, I've been using Cassowary.js for the last 6 hours or so and I've managed to work out what I need with a combination of the Python docs (thanks for the tip 😉 ) and by reading the Cassowary.js source - a lot of which is very difficult to work with.

I think this library would benefit from a pretty comprehensive overhaul, but in the absence of a production project to motivate and direct the work, it's unlikely I'll be the one to do it. But on the other hand it's a really useful tool; now that I know about it perhaps I'll find a use for it in production in the future.

I have to agree though, in its current state I'd be very wary of using it in production.

epsxy commented 7 years ago

Hi @wmadden,

Have fun with your exploration of Cassowary :). As far as I know, the only important projects using Cassowary are Grid Stylesheets and The Grid (led by the main contributors to Cassowary algorithm & Cassowary.js). They seem to believe in their constraints solver algorithm, as their startup (The Grid) will release a product using the GSS system (CSS with constraints). But they don't seem interested in promoting their libraries (the last conferences about GSS and Cassowary are very old (2014/2015).

trusktr commented 6 years ago

I wonder why we don't see more auto-layout type stuff in production? At least I never hear about it.

Why is this? Is there something about cassowary/auto-layout that's too limiting? Why hasn't it simply taken off if it is as amazing as it seems?

ZanderBrown commented 6 years ago

Not web based but constraints are widely used in macOS/iOS and Gtk4 may feature built-in support bringing it to the Linux Desktop.

I suspect UWP uses them to some extent as well.

trusktr commented 6 years ago

Yeah, I was curious about web. Why is it so underrated in web?

ZanderBrown commented 6 years ago

Yes it's interesting, some frameworks have limited support and there are projects like this one but autolayout in HTML doesn't seem to have taken off.

It might be something to do with the fact HTML is primarily designed for documents rather than application interfaces and thus constraints are inconvenient to use

mcbain commented 6 years ago

With a fast web based impl things like this http://iamralpht.github.io/constraints/ would be possible.

trusktr commented 6 years ago

Indeed, his articles are really cool.

I wonder if this concept can be taken to 3D space? f.e., imagine a kitchen counter configurator: depending on width, height, and depth, different sorts of kitchen drawer/sink/etc configurations could be possible.

epsxy commented 6 years ago

I wonder if this concept can be taken to 3D space

@trusktr Cassowary is based on the simplex algorithm, a classical algorithm to solve mathematical constrained systems. It can be extended to n-dimensions thus to 3 dimensions aswell :). If you're interested in the theory, you can read the original paper about Cassowary.

If you want to create 3 dimensional constraints system, just represent the objects with 3 components and write your equations they have to be constrainted to.

souporserious commented 6 years ago

@trusktr I think it's not widely use because of ease of use. Coming from a web development background it was really intimidating having to start worrying about width and height on every element and how that relates to other elements. I can't imagine trying to explain this stuff to my team. They would think I'm crazy 😜 I've been experimenting in React lately to see if this could be made easier and more approachable. I'd love to be able to use a full constraint system paired with something like iamralpht's constraint animations in my normal work.

DanielRuf commented 5 years ago

So still no updates since then but open issues and PRs.