-
Notifications
You must be signed in to change notification settings - Fork 385
2.0 goals
ArthurClemens edited this page Sep 17, 2012
·
10 revisions
These haven't actually been formally discussed yet. Just Greg Weber's brainstorm.
Widgets are actually one of the slowest parts of Yesod, and there is probably a lot of potential to optimize the code. However, this can only take us so far - we need an easy way to cache widget content in memory rather than having to continually regenerate it. This entire issue revolves around smartly recognizing when the cache needs to expire. Hopefully Haskell's purity can make cache expiring a little easier.
- https://github.com/defunkt/jquery-pjax integration. PJAX uses HTML5 pushState history. This avoids needing to render a layout.
- General benchmarking & profiling. We have really only benchmarked requests/second for a simple response and worked on making that path is well optimized.
- Combining static assets as mentioned below.
- sockjs mentioned below makes communicating with the client side faster. We can hold open a connection for every client to send them updates and potentially to reduce tcp slow start latency.
1.0 is a great server-side framework. We have the basics for help with the client side with widgets and support for organizing and minifying javascript/css, but we need to take this further.
- technique for combining & minimizing static assets. We do this for your js/css templates, but not for existing static files.
- integration with responsive design principles. We are already getting some integration with Bootstrap, it seems like a decent default. Have the ability to automatically serve properly sized images (maybe pre-cache different sizes, maybe cache different sizes after generating them). If we go the Bootstrap route we probably need integration with LESS
- wai-sockjs for a backwards-compatible, high-level websockets interface.
- integration with Javascript. This could mean writing JS in Haskell. It could mean automatically generating backbone.js model code, automatically updating view code with knockout.js, or FRP JS code with flapjax.
- Haskell to JavaScript: https://github.com/faylang/fay
- Simple & safe raw query support.
- Yesod middleware
- A more official library/plugin API
- Any other ideas?
See Wish list