Live data from Hacker News

The Bipolar Lisp Programmer (2007)

marktarver.com

51–60 of 136 posts

Re: The Bipolar Lisp Programmer (2007)

#51
post #32
post #3

Earlier quoted context omitted.

Okay, you made me want to try Lisp.

The sibling comment suggests Clojure, and last time I tried I lost all patience after having to deal with setting up Java, lein (it's been quite a while). If you want the least amount of friction possible, install Racket and run DrRacket. Here's a tutorial: https://docs.racket-lang.org/quick/index.html and one to make web apps: https://docs.racket-lang.org/more/index.html (I don't mean to disparage Clojure, I'm sure…

I had the same experience. Spent over an hour trying to strap all the components into a working system just for it to trow error after error. So I gave up learning Clojure and instead went into Pharo. Self-contained environment trivial to set-up, same live environment typical of lisps, but approached from the Smalltalk side. I enjoy it.

Re: The Bipolar Lisp Programmer (2007)

#52

I've never had a professor understand me like this. I picked up Lisp during my Freshman year when I bought SICP. If you look at my transcripts you can easily infer my mental state at the time. Some semesters all A's, others all F's (or W's), with no rhyme or reason. I graduated with a 1.7 GPA, showed up high to class (if I showed up at all), and barely made it through. It took me 9 years to graduate between all the s…

> I picked up Lisp during my Freshman year ... I do hate the corporate world (and have trouble staying anywhere long) with a passion and would very much like to find a way out.

maybe we should work together

Re: The Bipolar Lisp Programmer (2007)

#53
post #37
post #33

Earlier quoted context omitted.

> programming from inside the system. Can you elaborate on that? I think you are saying that REPLs in other languages don't do what you can do in Lisp, but I don't think I know enough to fully understand why.

Imagine this: You start a fresh REPL session with a vague idea of something you want to build. You have good tooling that enables you to write code in your favourite editor and pipe it to the REPL through a socket. You write a couple of functions and send them to the REPL. You call them a few times with some test arguments, maybe define a couple global variables while testing, and realize one of the functions doesn't…

About 15 or 20 years ago I had a work flow using SBCL Common Lisp where I saved images and always restarted a new work session where I left off. Easy to do.

I was motivated to do this because I had a ton of linguistic and text data in my environment which back then took a little while to load. Now, I organize everything I do into small or sometimes tiny Quicklisp projects/libraries and that is much more convenient for me.

If you want to really get into image based programming, the open source Pharo Smalltalk is very good.

Re: The Bipolar Lisp Programmer (2007)

#54
post #34

Does anyone use Shen? I was looking into it recently and thus recognize the author of this post as the originator of Shen. https://shenlanguage.org/ Why would one use Shen over Common Lisp, Racket, Chez Scheme, or Clojure, for example?

I love Shen and highly recommend the Book of Shen and Tarver's other book on Logic and Computation.

The crazy thing about Shen is that its type system is sequent calculus, which means when you define your types, you are literally writing the same language that mathematicians use when they prove things about type theories.

Why would you use it? Because you can leverage a crazy amount of power by writing your own type theories in your programs.

Is it practical in today's corporate world? Probably not, but there is at least one case study in the real world https://www.youtube.com/watch?v=lMcRBdSdO_U

Re: The Bipolar Lisp Programmer (2007)

#55
post #48
post #2

I quite enjoyed this article, but I reckon they're talking about ADHD rather than "bipolar" mind. Seen under that lens, I resonate with his caricature. Focus is a precious, rare resource outside my control. Mainstream languages, made for collaboration in big teams rather than maximum personal freedom, soon impose restrictions that kill hyperfocus. The "unused variable is an error" is the most egregious of them that I…

> The "unused variable is an error" is the most egregious of them that I hate with a passion. Same. That has tripped me so many times when trying out something simple in golang. I get why they are undesirable in the long run, but in the short run I'm often trying out a fragment and don't have the users of every variable written yet.

My hype for Zig died the day Andrew decided to push for that nonsense.

Re: The Bipolar Lisp Programmer (2007)

#56

I’m fairly annoyed with myself on my worse days for heading into embedded as a career path when Lisp (clojure mainly) is the only development process I’ve really ever felt fit my brain. I’m positive that there is a Lispy language out there (actually in existence, or the aether) that is appropriate for embedded work, but the constraints of the target make it difficult to envision. I like C and assembly because they’re…

> I’m positive that there is a Lispy language out there (actually in existence, or the aether) that is appropriate for embedded work, but the constraints of the target make it difficult to envision.

Perhaps Fennel* fits the bill?

* https://fennel-lang.org/

Re: The Bipolar Lisp Programmer (2007)

#57
I used to be all in on the Blub Paradox discourse -- but I've been learning some C++ for the Arduino and the differences in power with, say, Python, are mainly related to how easy it is to think-as-you-code in a dynamic language.

Of course, my life story is such that I've used Python professionally to the extent that I've started to forget all other languages -- so I naturally find the Blub Paradox Discourse favorable. But all the footguns that come with passing around pointers to memory addresses also come with a whole different way of expressing problems; whole different range of thoughts that are thinkable.

(I valiantly await the Rust brigade in my replies...)

Re: The Bipolar Lisp Programmer (2007)

#58
post #48

Earlier quoted context omitted.

> The "unused variable is an error" is the most egregious of them that I hate with a passion. Same. That has tripped me so many times when trying out something simple in golang. I get why they are undesirable in the long run, but in the short run I'm often trying out a fragment and don't have the users of every variable written yet.

Your comment and the grandparent comment have both really validated me. I know that's weird to say, but I really thought I was just Wrong about the linters/LSPs and unfinished lines or unused variables. Thank you :)

Those that implemented the unused variable feature are completely unaware that there are two modalities of programming: exploring a problem space, and building a solid product.

When you're exploring, you don't want your compiler to stop you in your tracks to warn you about pedantic nonsense. It's not a syntax error that prevents your compiler from understanding, it's just arbitrary restriction that the compiler decides to pester your about, a sort of a robotic grammar nazi.

Computers are obtuse, the worst thing they can do is ignore your perfectly parseable and valid instructions for arbitrary reasons. Machine, if you know I'm not using a variable, kindly let me know and carry on doing your job.

Re: The Bipolar Lisp Programmer (2007)

#59
post #28

Earlier quoted context omitted.

ADDENDUM: I love Lisp but I want to clarify that its secret sauce is that it enables exploratory programming: programming from inside the system. While most languages are akin to preparing a detailed blueprint and executing it (then stop to update the blueprint and try again), exploratory programming is like sculpture. You have an unformed mass full of unrealised potential, and you slowly carve it to shape. The ADHD/…

"The ADHD/Bipolar mind of the article isn't great at making plans, it's great at following its gut instinct, making shit up step by step." Which is why I do best with the command line, piping outputs and rapidly iterating to get the output I want. And why I struggled so much writing Python in a larger, more complex script/app. I wanted to constantly run and rerun the smaller parts to get each one just right. Unfortun…

> I wanted to constantly run and rerun the smaller parts to get each one just right.

> Maybe I should have tried writing part of my most recent script in Lisp?

90% of Lisp programming is selecting an expression in your editor and pressing C-x C-e to execute it. And continue until you are satisfied it operates as you want, then integrate it in the larger system.

Re: The Bipolar Lisp Programmer (2007)

#60
post #2

I quite enjoyed this article, but I reckon they're talking about ADHD rather than "bipolar" mind. Seen under that lens, I resonate with his caricature. Focus is a precious, rare resource outside my control. Mainstream languages, made for collaboration in big teams rather than maximum personal freedom, soon impose restrictions that kill hyperfocus. The "unused variable is an error" is the most egregious of them that I…

This comment is certainly true for me. The article really resonated for me.
Post reply on HN