Skip to content

Instantly share code, notes, and snippets.

@headius
headius / gist:3491618
Created August 27, 2012 19:34
JVM + Invokedynamic versus CLR + DLR

Too much for teh twitterz :)

JVM + invokedynamic is in a completely different class than CLR + DLR, for the same reasons that JVM is in a different class than CLR to begin with.

CLR can only do its optimization up-front, before executing code. This is a large part of the reason why C# is designed the way it is: methods are non-virtual by default so they can be statically inlined, types can be specified as value-based so their allocation can be elided, and so on. But even with those language features CLR simply cannot optimize code to the level of a good, warmed-up JVM.

The JVM, on the other hand, optimizes and reoptimizes code while it runs. Regardless of whether methods are virtual/interface-dispatched, whether objects are transient, whether exception-handling is used heavily...the JVM sees through the surface and optimizes code appropriate for how it actually runs. This gives it optimization opportunities that CLR will never have without adding a comparable profiling JIT.

So how does this affect dynamic

@jboeke
jboeke / Sample Contract - Software Deliverable
Last active January 26, 2021 16:12
Sample Contract - Software Deliverable
## For educational purposes only! Not a substitute for individualized advice from a qualified legal practitioner. ##
SOFTWARE CONSULTING AGREEMENT
THIS AGREEMENT is entered into on <contract date> by and between Avie, LLC, (hereinafter "Developer") and <client company>, (hereinafter "Company").
RECITALS
WHEREAS, Company wishes to retain Developer to develop certain <software type> software (hereinafter defined and referred to as “Software”); and