On Aug 13, 6:14 pm, Casper Bang <casper.b...@gmail.com> wrote:
> What I admittedly still don't quite understand, is Charles critique
> regarding dependencies on heavy and foreign runtime libraries. The
> fact that fcode is transformed to CIL or bytecode natives is just an
> implementation detail in my head to make use of the most common
> runtimes deployed in the field today.
>
> In theory, when Fan is finalized and have taken over the world, for
> all practical purposes you could strip out all libraries of the
> underlying runtime and have Fan emit calls to Fan libraries rather
> than JRE/CLR libraries. One would only need library classes when
> purposely inter-operating with the underlying "native runtime". Or am
> I missing something here?

My point is that we've lost sight of the fact that every Java
application on the planet has been grossly bloated up in size by more
and more runtime librry dependencies. Some percentage of this is a
faling of the JDK to adopt improvements quickly enough (the near-
universal presence of JodaTime or ASM, for example), but a growing
percentage is the aggregate effect of polyglotism where every
additional language drags along its own matched luggage. Now, if we
want an app that uses JRuby and Scala, we're pushing 15-20MB of
library code just to get started, and that doesn't include any third-
party libs for each language that you might want. Add Groovy and you
might be close to 30MB. Now deploy that aggregation as part of
separate apps to the same application server, so everything has to be
loaded for each app. Or try to build an app with any of these
languages for a mobile device with memory or bandwidth constraints.
And of course this ignores that fact that by building "a better JDK"
on top of the JDK for each language, over and over again, we're
essentially leaving the evolution of the JDK behind while
simultaneously dooming ourselves to forever updating our wrapper
libraries to new JDK/JVM releases.

This is, in fact, the one place where the CLR/DLR/.NET approach is
working a lot better. If it turns out everyone needs a better time
library, or if there's a better library that can be interface-
compatible with the existing one, it can get incorporated much more
quickly. If there are common language utilities that all languages end
up needing, they get rolled into a future .NET release. I mean
honestly...the list of obviously missing libraries in the JDK is
growing steadily: bytecode emission and manipulation (ASM), native
library invocation (JNA/JFFI), POSIX filesystem operations (jna-posix
or upcoming NIO2), common language interop (Dynalang or similar),
annotation processing (apt-mirror-api), and so on. How stupid is it
that we all end up shipping the same libraries or rolling our own
again and again?

- Charlie
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to