I've worked on several projects where Zing was considered as a solution to
a few problems (normally GC pauses due to really large heaps). But in the
end we never trailed it, due to a few factors:

1) Zing isn't super cheap, it's not that expensive in the grand scheme of
things, but it's an additional cost that had to be added to a project,
normally towards the end when heap sizes or other such things become a
problem. So it's hard to go to management and ask for an increase in
budget.

2) There really isn't a lot of documentation freely available as to how
much Zing helps in a Clojure app. Chicken-and-egg problem here, need more
experience reports to justify the cost, but it's hard to justify the cost
of doing tests with such limited information.

3) Servers and ram are cheap in comparison. So often it was simply cheaper
to create split services up, or partition data in a way that heap sizes
could be reduced. Even something as simple as reducing the JVM heap size
and using memecached on the same box was a cheaper way to solve the
problem.

4) Algorithm changes were also cheaper. In a few cases we moved from using
Clojure's persistent structures to off-heap structures like ChronicleMap or
LevelDB. Or simply walk over the code in question and find ways of storing
less in memory, or caching aggregates instead of whole collections.

In the end there's a theme here. At about 2/3rds of the way through the
project we'd hit an issue with HotSpot and say (hey Zing would help here).
But switching JVMs would require an additional investment. But we already
had a team, so it was simpler to spin off a few developers and have them
solve the worst of the issues and perhaps let a feature slip. In the end, a
small feature not getting in is easier to justify than the purchase of a
new JVM.

So I wish I could work with Zing someday, but each time I've gotten close,
a cheaper solution has presented itself.

Timothy

On Mon, May 21, 2018 at 6:00 PM, Matching Socks <phill.w...@gmail.com>
wrote:

> IBM Java likewise has not excited very much conversation here.  Perhaps
> because Java is "write once, run anywhere"!  The various implementations of
> Java have their strong and weak points, but they will run Clojure in any
> case.
>
> --
> 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/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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/d/optout.

Reply via email to