News for hackers. Stuff that matters.
Re:ABCL – Common Lisp on the JVM by owyn on Tuesday December 10, 2019 @06:09PM (#21757857)
I poked around a bit to figure out why this was even posted and there was a new release 1.6.0 on November 22nd which adds support for jdk 11, among other minor things. ABCL provides a java class which can load/eval lisp code, and the ability to call java classes from your lisp program, stuff like that.

https://abcl.org/svn/tags/1.6.0/CHANGES

As an "old" I learned LISP in college but have never had the opportunity to use it in my career. Still on my todo list!

Re:ABCL – Common Lisp on the JVM by awayfromhomenow on Tuesday December 10, 2019 @06:49PM (#21758101)
Don't do it, you'll hate every other language after that (I do).
Re:ABCL – Common Lisp on the JVM by shpongled on Wednesday December 11, 2019 @03:32AM (#21760631)
I like LISPs conceptually. However, I have a strong preference for static type systems, so I have probably written 10x more lines of code of LISP implementations than LISP code itself.
Re:ABCL – Common Lisp on the JVM by zeveb on Wednesday December 11, 2019 @09:15AM (#21762494)
A Common Lisp implementation may have static types:

    (defun foo (x)
      (declare (type fixnum x))
      (1- x))
If you don't specify them, types all default to T.
Re:ABCL – Common Lisp on the JVM by ernst_klim on Wednesday December 11, 2019 @05:53AM (#21761312)
Although I like OCaml way better than lisp, there is some static typing in Common Lisp. Sure there would be a lot of T (basic object) in your signatures, but you can have some typing discipline within it (although not as strict and beautiful as in ML languages).
Re:ABCL – Common Lisp on the JVM by jsjolen on Wednesday December 11, 2019 @05:19AM (#21761136)
Racket has Typed Racket, you might want to try that out!
Re:ABCL – Common Lisp on the JVM by TurboHaskal on Wednesday December 11, 2019 @05:36AM (#21761233)
Have you tried it yourself though? That thing is so slow it's barely usable.
Re:ABCL – Common Lisp on the JVM by jsjolen on Wednesday December 11, 2019 @06:31AM (#21761525)
Is it the type checking or the runtime that's slow?
Re:ABCL – Common Lisp on the JVM by sli on Wednesday December 11, 2019 @01:26PM (#21765271)
Yeah, this happened to me when I migrated to Clojurescript. But it really only lasted until I (finally) got my arms around Elm. Lisp, of course, is a lot more versatile than Elm since Elm is specifically a browser language, so it's taken the job of being my scripting language away from Python and JS.
Re:ABCL – Common Lisp on the JVM by caleb-allen on Wednesday December 11, 2019 @01:38AM (#21760118)
It makes everything feel like putting together IKEA furniture
Re:ABCL – Common Lisp on the JVM by Rerarom on Wednesday December 11, 2019 @03:14AM (#21760552)
Is that good or bad? IKEA is thrown a lot as a metaphor but I have no idea most of the times what it should mean.
Re:ABCL – Common Lisp on the JVM by ken on Wednesday December 11, 2019 @08:32AM (#21762141)
I've never heard the IKEA metaphor before but it makes sense to me. There's really only one way to put any two pieces together. If they forgot to ship the right bolts, you're SOL.

Lisp is like a wood and metal shop. It may take a little more time to become proficient with the basic tools, but once you do, anything is possible. You don't hear Lisp programmers complain they can't do X with Y, and you don't hear builders complain they don't have the right piece to attach X to Y. If you don't have one sitting around, you take a few minutes and make one.

Re:ABCL – Common Lisp on the JVM by narag on Wednesday December 11, 2019 @07:06AM (#21761685)
No good. Furniture is nice and cheap, but you ensemble it yourself at home. Honestly, I find it easy, but I'm good with that kind of handiwork. Most people find the instructions unclear and difficult to follow. There are many references, from the top of my head I remember The Wire... look for Mc Nulty IKEA on YouTube, I bet it will work.

For a little more money they serve the furniture to your house and ensemble it.

Re:ABCL – Common Lisp on the JVM by LessDmesg on Wednesday December 11, 2019 @03:11AM (#21760547)
I've done it, now I hate Lisp. I've read On Lisp and Let Over Lambda, I've used Clojure in production, and I still hate Lisp, any and all of them. What am I doing wrong? Perhaps it's that reading code is more important than being clever when writing it. Or maybe that Lisp syntax doesn't pass the squint test[0] because it makes the wrong tradeoff of catering to the machine instead of us good ole' humans?

When I make my own language, I'll make sure to make macro calls as clumsy and hideous as possible to discourage their unexpanded use. I'll also make the whole language available at compile time but without syntax manipulation (a la Zig) to make most macros unnecessary.

So no, Lisp is far from "the language to end all languages" or whatever it is you smug Lithp weenies imagine it to be.

[0] https://www.teamten.com/lawrence/writings/the_language_squin...

Re:ABCL – Common Lisp on the JVM by ken on Wednesday December 11, 2019 @09:11AM (#21762453)
I'm not sure what the Language Squint Test is supposed to tell me here. I can clearly see the structure of the Lisp code, too. It's only half as long as the Java one, which is great for reading. A single character can completely change the meaning of an entire block of Java code, too -- that has nothing to do with macros.

> I claim that this squint test is important, and that languages should deliberately make different constructs look different.

For your example, you just happened to pick a programming language you already know well. If this is a beneficial goal, why pick that particular point on the spectrum? Java and Lisp aren't the only games in town. It would be a remarkable coincidence if the language you already know were the optimal point.

COBOL's constructs look even more distinct from each other. A COBOL programmer probably thinks your Java methods all look the same despite having completely different calling conventions. After all, COBOL was definitely designed for "us good ole' humans".

Re:ABCL – Common Lisp on the JVM by aganame on Wednesday December 11, 2019 @05:34AM (#21761220)
> When I make my own language, I'll make sure to make macro calls as clumsy and hideous as possible to discourage their unexpanded use.

Sounds like Rust beat you to it.

Re:ABCL – Common Lisp on the JVM by TurboHaskal on Wednesday December 11, 2019 @05:40AM (#21761249)
Maybe instead of reading On Lisp and Let Over Lambda you should have started with something that explains and encourages the use of CLOS, because that's where Common Lisp really shines.
Re:ABCL – Common Lisp on the JVM by LessDmesg on Wednesday December 11, 2019 @07:59AM (#21761959)
I know about CLOS, multi-methods, the meta-object protocol. It's a nice, dynamic OOP system (though I'm not a fan of dynamic languages). The thing is, CLOS isn't Lisp-specific: it can easily be recreated in a language with a normal syntax, e. g. Smalltalk. So there's no reason, ultimately, to sacrifice readability and maintainability to the demons of Parenthethes and Pervathive Macroth like the Lithp acolytes would have us do. Lisp is just a bad tradeoff from the get-go: reading code is more important than writing, language simplicity is more important than extensibility, and macro-writing is secondary to regular code writing.
Re:ABCL – Common Lisp on the JVM by TurboHaskal on Wednesday December 11, 2019 @09:23AM (#21762555)
Nice, but I think you are exaggerating a bit. Not every Lisper is a smug Lisp weenie. Actually I don't see many of those these days so I don't get the hate. Most of the annoying tribalist folks jumped ship to the Rust and Haskell camp.

Syntax is highly subjective, and funny that you mention Smalltalk, as I had a hard time selling that to some developer friends of mine because the method based syntax really put them off.

I also prefer statically typed languages, at least in the context of professional work with developers with various degrees of expertise contributing to the codebase. Then again, if I have to work in a dynamic language, I definitely take something image based with great tooling and feedback loop such as Pharo or LispWorks over Python or Ruby any day of the week.

Re:ABCL – Common Lisp on the JVM by lispm on Wednesday December 11, 2019 @11:12AM (#21763817)
Since people have different needs and tastes, there is no single type of syntax mechanism agreed upon.

Lisp generally favors flexibility, easy code generation/transformation, code as simple data structures, extensibility... that's attractive and useful for some.