I've been working on a Lisp that's built as a native Java app with a layer on top for Android. Fine. It's all fine. It's all fine and going a bit slow and that's okay. At least I thought it was. Until last night, when I realized it wasn't fine and was taking too long and going too slow and I started freaking out so I looked for solutions.
Having been around the block (and around and around and around), I knew I had to step away from building it on Android. Old computer, old tablet, bad cable, (some any all) was all it takes to slow things down. It's Lisp, it should be fast.
Problem one, I can't plain old Java on Android Studio. I can Android Java on Android Studio, but not regular old Java. At least that's what I believe in my tired, confused, Android Studio brain. So I decided I had to look elsewhere.
Was considering a saunter back into Emacs, but the thought of getting tempted to do anything in Emacs Lisp had me repulsed like magnetic polarity. Emacs Lisp and all that politics is what frustrated me into Common Lisp and I've never returned since 1997.
In looking desperately for a solution, I arrived at the awareness that I've given up on Eclipse. Every time I tried to import, export, build, or do anything that resembled work in it, I never knew where to look to see what happened. Or it didn't know where to look to find anything. It was like two old people trying to find a pair of shoes, coat and glasses and neither one knew what day it was. Not that the day would matter, it's just meant to highlight the disconnect between knowing what you're supposed to be doing and how you ended up here forgetting what you were supposed to be doing but not really caring.
Because Matlock, that's why.
I had NetBeans installed on my computer from a million years ago, but it looked like it was somebody's Junior High School editor project and WITH REALLY BIG FONTS so I never opened it again. But while Emacs and some editor I was loathe to use was downloading, I fired the Jr. HS project up, moved my Lisp code in and in a couple of hours of minor tweaks, had the Lisp repl up and running.
I was chameleon eyeing Guy Steele's Common Lisp book somewhat simultaneously, trying not to let my heart sink at the recognition of the mountain of work building a real Lisp is while wanting to cry at it and the notion of building it in a JHS editor project, or finding an editor that worked, because I gave up on making Hemlock work on Ubuntu, because Wire hoarks up a hairball and some other error I can't remember but lacked the knowledge and/or patience to dig into kept arriving with every five keystrokes demanding I drop into the repl and type 5 and (ed) each and every time (but now in the fog of my mind I seem to recall it's a configuration problem, but I still can't figure out the wire problem but none of this ever happened on FreeBSD, so I hate Ubuntu, but need it for Android development.)
And while looking at the configurations and my target build and my desire to just create a program that showed either my insane stupidity or possibly not so stupid maybe almost cleverness, I felt like I was surrounded by a pile of Ikea furniture boxes that were all missing parts and screws and had one set of pictorial instructions and text written in Mandarin and I just wanted to build something to show my stupid kid that I was somehow a capable dad and we could have a table, or sofa, or he could have a bunk bed where the bed didn't hang through the hole where the bed was supposed to be supported, but the part had to be here somewhere, let me just check the directions but it wasn't and I couldn't read it and I just wanted to curl up in a ball in the corner and rock myself into a state of mild discomfort while sobbing uncontrollably at the impending downfall of earth at the hands of people who think murder is somehow a solution to any problem at all.
For a bunch of engineers, we really can't build shit that's very good, stable, or easy. What the fuck is up with that? I feel like I'm running a gauntlet of demonic proportion that's a constant beat-down in my very precious mind. And Apple is building military-level encrypted devices in Communist China that law enforcement in the USA can't open and I'm not supposed to be wondering how it is we think we're smart, capable, or even very good and the first amendment and the Constitution AND us aren't seriously under attack? These systems are a tragic mess that we somehow organize just enough to be able to get our work done and forget how hard and stupid configuration and where it all is is...at... and we are. What happened to us and that sentence? I have an excuse because of my high school diploma, but all the education you smart people have... what is it for if not making things easy to use and understand?
Software is a train wreck. Except for Quicklisp.
Whatever, this is all so stupid I wish I'd followed that cute lady Irene into dentistry and a lifetime of vacations and helping the poor and chasing her on the powder slopes of Utah and Colorado and I can't even see what I'm typing, my retinas are both burning from the radiation and flooded with tears. How'd it all go so wrong? Freedom isn't some abstract concept, it's only available here in the USA, and in small doses at that unless we all work together to make it grow to make really big freedom. If we understood the import, we'd never let anybody or anything separate us free people from our freedoms with name-calling.
Sigh, where was I? Cars are easy. Computers are stupid-hard. But I digress.
Whatever. Fine. Whatever! The point? The point is, JHS NetBeans worked like a pro. The editor is almost crisp. It'd be way more fun if it was Hemlock and I could start hacking Lisp to make it bend to my (very tired) will. But compared to all the other crap I've had to do to get a Java program built, configured, and whatever else one does with Java, it was almost pleasant. I was surprised. I'd say pleasantly, but there's nothing pleasant about crying with burning retinas at the recognition of lost Irene and all that lost time building software that mostly doesn't totally suck because I have to squint to make it look good.
Now that I have a second build, I can start making the cross-platform code and the interfaces, so the Lisp and the UI can ship on anything Java. Hopefully. Maybe. If the configurations and builds and jar files and calls aren't tied to some stupid idea of write once run anywhere that doesn't run everywhere.
The first and very noticeable thing was that the code turnaround is going to be insanely fast compared to Android Studio, which goes into a deep trance during builds, like a Google Guru, and returns with great insight that sounds like, "Gradle Build completed in 3 minutes and 47 seconds". WTF? WTF? WTF?! Java. Half-way to Lisp from C++... The equation is not commutative. Halfway back to C++? Might as well be halfway to Hell. And halfway to Hell is way too far inside the gates of Hell (and a trip back to code generation circa 1995) for anybody who's ever had their code loaded into the repl and tested in the time it takes to type it and press a key on a mechanical keyboard.
Does this rant make my ass look fat? I can never tell.
Coffee is my only friend. And Lisp. And they're all I need.
Now if you'll excuse me, I'm old and very tired and need a nap.
Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts
Wednesday, March 16, 2016
Monday, January 25, 2016
A Lisp Mind, Trapped in a Java World
You know how it is. Slogging names like SomethingReallyLongWithItsTypeAtTheEndDialog. Groveling through docs endlessly while trying to remember how to make the widget work right, but the names and the choices are so similar, you have to try a bunch of them before figuring out the right one, which might turn out to be the wrong one for some configuration or target system, but the docs are so light and confusing, they don't tell you that, you have to find out for yourself while the pressures of life squeeze like a vice and HURRY UP AND SHIP IT is all anybody ever says to you along with I THOUGHT YOU WERE DONE?! Madness. As if that's not enough, endlessly waiting for the build to finish and launch before you can agonize over the slow-motion rumblings of a debugger spitting out insane volumes of meaningless crap for an indication of what really went wrong that got set to null for you to find like buried treasure somewhere up there after scrolling around. Again. And again.
I wrestled with a simple math problem in Java for a while yesterday. For far longer than it should have taken. I was progressively more sure my brain injury was slowing me down. Or I did think it, because I couldn't believe I couldn't solve a simple trigonometry problem involving a handful of variables. I spun over it in Java, editing, thinking, compiling, waiting, building, testing as time flew by. I started thinking I needed to get out of programming and accept I was old, broken, and rapidly losing intelligence and vitality. I paced the room waving my hands as each held variables and my mind creaked and groaned under the strain and I felt the desire to overcome a simple problem rapidly diminishing. I never quit, but quit was all I heard in my head, screaming like a Siren into every fiber that was me. I was almost seduced, but then I remembered...Lisp.
I fired up Clisp. I wrote an equation and fed it variables. Then, I wrote a loop with an equation and the output got me... thinking. Where my mind had been a wildly vibrating pile of gelatin about to implode only minutes earlier, it was suddenly calm, focused, and coming to life. In two minutes I had carefully considered each step, then prototyped, considered some more, realized, and, eureka, solved what took hours to only confound me in Java.
For a moment, life was good again.
One day, I hope to be able to go forward into Lisp for good and the onto construction of some of these crazy ideas I have, and not get dragged into hell and halfway back to C++ ever again. Amen.
I wrestled with a simple math problem in Java for a while yesterday. For far longer than it should have taken. I was progressively more sure my brain injury was slowing me down. Or I did think it, because I couldn't believe I couldn't solve a simple trigonometry problem involving a handful of variables. I spun over it in Java, editing, thinking, compiling, waiting, building, testing as time flew by. I started thinking I needed to get out of programming and accept I was old, broken, and rapidly losing intelligence and vitality. I paced the room waving my hands as each held variables and my mind creaked and groaned under the strain and I felt the desire to overcome a simple problem rapidly diminishing. I never quit, but quit was all I heard in my head, screaming like a Siren into every fiber that was me. I was almost seduced, but then I remembered...Lisp.
I fired up Clisp. I wrote an equation and fed it variables. Then, I wrote a loop with an equation and the output got me... thinking. Where my mind had been a wildly vibrating pile of gelatin about to implode only minutes earlier, it was suddenly calm, focused, and coming to life. In two minutes I had carefully considered each step, then prototyped, considered some more, realized, and, eureka, solved what took hours to only confound me in Java.
For a moment, life was good again.
One day, I hope to be able to go forward into Lisp for good and the onto construction of some of these crazy ideas I have, and not get dragged into hell and halfway back to C++ ever again. Amen.
Subscribe to:
Posts (Atom)