Also, there is a major difference that in Julia all methods use multiple dispatch (and there isn't a performance cost to doing so). Multiple dispatch in Lisp was severely limited by people not using it for performance reasons.
What do you mean by this? In what ways do you find MD in Lisp "limited"?
Even though low-level numeric code might not be written with them, large parts of applications often are written using them.
"We were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." - Guy Steele
I assume Guy Steele knows his stuff when talking about Lisp like languages.
Higher language feature from Lisp (CLOS, macros, conditions, closures, interactive development, ...) were not brought to mainstream Java. Closures, some interactivity, ... eventually were added many years later.
From a Lisp user perspective Java was more than 'halfway' away, and probably still is.
So we could argue bullet points about how someone highly relevant in Lisp and Scheme community was wrong on his assertion, if you like.
https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/...
Had not been for Guy Steele's background, and the context of the talk where he made that statement, I would agree with you.
Also keep in mind that SUN at that time was aggressively marketing Java as THE new language for system and application development, especially for the enterprise (a main target market for SUN). Though the origins of Java was as a programming language for set-top boxes, when it was still called Oak.
The quote from Guy was kind of an excuse there, for the modest design goals: at least we (-> SUN) dragged C++ developers towards Lisp, even though Smalltalk, Lisp, etc. people themselves were not a target and were not that impressed. Things like Garbage Collection in a language designed to replace C++ in many scenarios was still revolutionary.