The divergence between the Clojure and ClojureScript way is due to first-class functions. That is, in JavaScript a property can be a field or a function or a method. There is currently no way to distinguish between the desire to call a method and retrieve a function as a property except through syntax.

Potential Solution

A way to shorten the gap between Clojure and ClojureScript is to use the following syntax for ClojureScript:

Thus reserving the single hyphenated symbol form for property access. This functionality should also be created in Clojure. This would require a breaking change in ClojureScript and only an enhancement to Clojure.

'.' as a uniform gateway to interop has tremendous value. Even if we normally use the sugar (.bar foo) etc, after macro expansion they all become dot forms and things like code walkers etc can have an easier time of them. I'd avoid another gateway (which -get would be) strenuously, as in - no way.

Perhaps (. foo -bar) ?

This has the virtue of not involving keywords (which have downsides if we want sugar). The sugar:

(.-bar foo) also seems aesthetically more appealing for some reason.

As far as (. foo :bar) working already, it is an undocumented feature and could be changed to (. foo -bar) should we decide.