Hi Jason! 

Magnar, could you talk a little about how your project is better 
> than/different from Stefon/dieter and cornet? I feel like we have a lot of 
> these projects now, all doing mostly the same thing.
>

Thanks for asking. I'll try to shed some light on the differences as I see 
them, and hopefully the people behind Dieter/Stefon (they're very similar) 
can add some details into their thinking. I haven't seen Comet, and google 
didn't help much either. Can you share a link?

As for Optimus vs Stefon: First of all it's a difference in focus. Stefon 
focuses on being an asset pipeline modelled after Sprockets in Rails. It 
lets you write LESS, CoffeeScript, Haml - turning it into CSS and 
JavaScript. Optimus is not about transpiling from other languages, but 
about frontend optimization. As such, it rewrites your urls to include 
cache busters and serves your assets with far-future expires headers, so 
they can be cached aggressively in production. As I add more features to 
optimus, they too will focus around better frontend performance - and not 
more languages to be transpiled.

While this is the main point in my mind, there are also other differences 
that aren't just details that everyone will agree on. :-) These two come to 
mind:

1. Stefon serves assets live in development, but requires a build step in 
production to precompile the files. Optimus does not require a build step, 
but compiles your asset when the server starts. 

2. Stefon creates bundles by having custom .stefon files with edn-flavored 
lists of files in your directories of static assets. Optimus also needs a 
list of bundles, but does so using Clojure in your program. I would think 
that Stefons' approach is better if your frontend developers are not 
comfortable editing the Clojure code, while Optimus' approach allows more 
programatic control.

I hope I haven't misrepresented Stefon in any way - these are my 
impressions. Since I'm a front-end optimization nut, these arguments were 
enough to sway me to create a different package. It would be several major 
breaking changes to Dieter and Stefon's architectures and APIs, and I 
didn't think I would get anywhere fighting for these changes in github 
issues.

 

> I also don't totally understand why they're all done as Ring middleware 
> instead of lein/maven plugins. Maybe this is my Java background talking, 
> but that seems to me to be the logical place to put this sort of thing.
>

Front-end development with a compilation step is pretty horrible. There's 
also the case that the URL to a static asset and its location on disk is 
entirely different after optimization.

Hope that answers your questions somewhat decently. And if it didn't, maybe 
you'll be swayed by the argument that a little competition is a good thing 
for the community. :)

- Magnar

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to