Hacker News new | past | comments | ask | show | jobs | submit login

The first thing I would suggest is see if using Lisp would satisfy some need that your current solutions are not. Sometimes it is hard to even know if that will be the case, because later generations of programmers may not even know what makes Lisp different from Python/C/C++/Java/etc. I would suggest reading "On Lisp" [1] by Paul Graham to get an idea of what Lisp can do. There are many other good books, but I find "On Lisp" to get to the point of what makes the language special, as opposed to other books that focus more on computer science fundamentals or topics like symbolic AI.

You will often encounter people making bullet points of why Lisp is or is not better than <insert language> here. This was me! I was a self taught programmer who grew up in the 80s using assembly language and Basic and then C and C++. The type of hardware that could run Lisp was not available to me and my career trajectory took me towards C++/Pascal/Objective-C. My first serious encounter with Lisp was using a Symbolics workstation that was sitting in a conference room at Apple. It blew my mind! I wanted to have an environment similar to that combined with what I was working on with OS X. It never happened.

Current hardware is amazingly powerful and many of the gripes people raised about Lisp are no longer pressing issues. I don't experience memory pressure or GC lags or any of the issues that used to be show stoppers thirty years ago.

You may find that Lisp is for you and it is scratching some particular itch you may not realize you even had!

[1] http://www.paulgraham.com/onlisp.html




I have a pretty good idea that lisp would fit into how I like to develop software.

The biggest thing that I'm looking towards lisp for is interactive programming. Python is currently my primary language, and I heavily test/prototype things in the REPL as I'm programming or dropping into one for debugging.

Additionally, I like the things you get with a complied language but have zero interest in going deep (I know them and have used them, but not professionally) with the standard C derivatives of C, C++, obj-C, and Java. I'm also pretty tired of many of the gotchas in python with its bolted-on-type system and is essentially a wrapper around C. I love the libraries and functionality, but the amount of boilerplate and testing needed to produce reliable code has burnt me out on it.

I'd probably go with Swift and SwiftUI if it weren't Apple only and still limited in what it can be practically used for, such as building deployable web services with it.

The other thing that has always lingered in my mind is the promise of DSLs/functional programming/etc. or other abstractions that never lived up to their potential ergonomically in other languages. I'd start using them but almost immediately run into edge cases that required workarounds to get working. After a while, I would abandon them entirely because the workaround added up to not being cleaner overall or leading to lower readability and maintainability.

Like function composition, I'd love to have functions that are generic work loops/data pipelines that I pass in different data and business logic/conditionals to. Still, in python, it's challenging to do that cleanly/maintainable. Or even some of the basic stuff Ruby does with metaprogramming that ends up being a nightmare to attempt in python. Even javascript does better with functional programming than python or any C derivatives.

So I have a fair sense of why I'm leaning towards lisp. I'm more interested in jumping in and using it for practical things. For example, I want to write a web API that uses SQLite. How do I prototype and test that using lisp? Kind of a “working programmer’s guide to getting going with common lisp.”

Oh, I'm also currently an independent software developer, so I don't need to worry about external constraints.

I will read On Lisp first, though! I just read the preface, and it directly addresses several of my desired outcomes.


Great. You can ping me at the address in my profile if you want more details about how I deploy mobile applications using Lisp.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: