freenode/#abcl - IRC Chatlog
Search
7:01:14
easye
mycroft actually runs the client under ABCL as opposed to the serve, so they're slightly different approaches.
7:03:34
fwoaroof[m]
$work is a Java shop, and we managed to sell management on Clojure for a couple projects
7:04:46
fwoaroof[m]
I find the hardest thing is remembering that I have to avoid shadowing core functions with my variable names
7:04:49
easye
It is similar enough to CL to confuse my brain. I need to look up everything, and seemingly have no initution.
7:06:24
fwoaroof[m]
That way I could just learn the bits I needed for particular tasks, rather than figuring everything out at once
7:07:34
fwoaroof[m]
However, I've observed that the way I think about programming seems to be unusual: when I try to tell people about how I approach things, they don't seem to recognize my experience :)
7:09:18
easye
But again, I think that was a "me" problem. Clojure is certainly a valid, maturing language that brings many things to the table.
7:10:42
fwoaroof[m]
But, yeah, in a JVM shop it's a nice way to interface with existing systems and build new functionality out with a minimum of work
7:10:44
easye
Oh? Getting a mature macro system in Clojure is controverial? I didn't know of that debate. Why reject them?
7:11:39
fwoaroof[m]
So, aside from the built-in macros and macros from a couple of libraries, they are seldom used
7:12:04
easye
Until one understands when to use a macro v. a function, one probably shouldn't use them.
7:12:23
fwoaroof[m]
Yeah, on the other hand they're a good way to enforce "compile-time" constraints
7:13:21
fwoaroof[m]
For example, I have a service that queries a database, but sometimes it runs complex calculations in the database, and sometimes it just pulls data out and runs identical calculations in Clojure (long story)
7:14:23
fwoaroof[m]
Anyways, I managed to get a set of macros that compile lispy math-expressions both to our DB's query language and to Clojure functions: so, as long as we've tested the macros, we don't have to worry about drift between the DB queries and the Clojure code
7:15:38
fwoaroof[m]
In Clojure, I think a lot of the aversion to macros has to do with most people coming from non-Lisps
7:16:17
fwoaroof[m]
And they learn Clojure from similar people, so they often never really understand the problems macros solve
7:17:34
fwoaroof[m]
I should figure out a presentation I could give at work about this, and see how it goes over
7:18:38
easye
You could definitely riff of _On Lisp_'s examples. pg has a unique talent at picking problems that have simple seeming solutions that are actually quite sophisticated.
8:38:42
easye
lagagain: After some investigation of your javafx, it seems that (jclass "javafx.scene.control.Label") fails because it is a proxy for a native class.
8:39:39
easye
Under macos 10.15, I get a "Security" notification from the system that it refuses to load an unsigned dylib. Under Linux, I get NIL.
8:41:15
easye
So probably one has to somehow put the jfx shared objects into the hosting JVM's library path somehow.
8:53:32
lagagain
easye: Do It means it includes some .dll or .so files, so can't directly use Label?
8:56:00
easye
Again, I think you can get around this by telling the hosting JVM where the libraries are.
8:56:42
easye
One used to be able to add them to a "special" JVM directory under jdk8. I'm not sure what the equivalent is under jdk11.
8:57:08
easye
I'm experimenting with using CFFI to load the libraries, but don't quite have the right code.
10:31:20
lagagain
I also think that is the true way. I get a different Error message if I loaded libraries before.
10:33:41
lagagain
without load library, get `java.lang.NoClassDefFoundError: Could not initialize class javafx.scene.control.Label` https://www.irccloud.com/pastebin/fjkI9bCy/
10:35:20
lagagain
if load library before find class, get `Graphics Device initialization failed for : es2, sw Error initializing QuantumRenderer: no suitable pipeline found` and `java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found` https://www.irccloud.com/pastebin/piJMfAc5/
10:36:45
lagagain
easye: but need use `java -Djava.library.path=<absolute lib directory path> -cp <abcl classpath> -jar abcl.jar` to run abcl