Yeah, gen-class is the thing. Proxy, well, proxies, but genclass
produces a statically compiled ahead of time class. It's a real Java
class, so yes, you can use it from Clojure like any other Java class.
Genclass is a little more painful than proxy, but probably a little less
painful than having a combined Java/Clojure build.
Phil
Anvar Karimson <
an...@karimson.com> writes:
> Is that via gen-class? I have to admit that I am not very familiar with
> gen-class, is it still possible to use the class from Clojure?
>
> Yes, that is probably the most pragmatic choice, premature optimization and
> all that.
>
> On Friday, 4 April 2014 15:03:00 UTC+1, Phillip Lord wrote:
>>
>> Anvar Karimson <
an...@karimson.com <javascript:>> writes:
>> > I am trying to understand what the best course of action would be in the
>> > following scenario:
>> >
>> > I have a Java base class that I need to extend. The class is fundamental
>> to
>> > my application and will be running fairly hot compared to other bits of
>> > code in the application. Therefore I want it to execute as fast as
>> > possible. The way I see it there are two options;
>> >
>> > 1) Use proxy
>> > 2) Create a class in Java that provides the glue between Java and
>> Clojure
>> > and removes the need for extending the base class in Clojure.
>> >
>> > I would prefer to use option 1 but I am a little bit worried about the
>> > performance implications of doing so, especially adding a level of
>> > indirection by using map-lookup for accessing methods so I suspect I
>> will
>> > have to go with option 2.
>> >
>> > Any recommendations or alternatives?
>>
>> Or Option 3, create a class in Clojure which extends the Java.
>>
>> My suggestion, try number 1 which is easy, then performance test it.
>>
>> Phil
>>
--
Phillip Lord, Phone:
+44 (0) 191 222 7827
Lecturer in Bioinformatics, Email:
philli...@newcastle.ac.uk
School of Computing Science,
http://homepages.cs.ncl.ac.uk/phillip.lord
Room 914 Claremont Tower, skype: russet_apples
Newcastle University, twitter: phillord
NE1 7RU