Programming thread

  • 🔎 If you see an alert for analytics.usips.org, this is a self-hosted system I am running as a test. It is GDPR compliant and collects no invasive information.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
LISP as an initial CS class in college
Isn't that an academic shibboleth?

Academic CS fucking loves trees. AST for compilers as much as just theory and recursion and blahdeblah.

Look LISP is undeniably cool but the fucking parenthesis counting makes everything look like moonspeak, and even if I can 'read' it I've literally never understood anything more than car cdr cdr shit.
 
Isn't that an academic shibboleth?

Academic CS fucking loves trees. AST for compilers as much as just theory and recursion and blahdeblah.

Look LISP is undeniably cool but the fucking parenthesis counting makes everything look like moonspeak, and even if I can 'read' it I've literally never understood anything more than car cdr cdr shit.
Syntax is bloat, (cope (and seethe))

Edit: Seriously though, if you decide to goof around with making languages, you should know that runtime development is always more important, don't get caught up adding sugar if the cake is charred.
 
Last edited:
Isn't that an academic shibboleth?

Academic CS fucking loves trees. AST for compilers as much as just theory and recursion and blahdeblah.

Look LISP is undeniably cool but the fucking parenthesis counting makes everything look like moonspeak, and even if I can 'read' it I've literally never understood anything more than car cdr cdr shit.
(defparameter *lol* "skill issue")

Also; what is Lisp used for and why do you like it (out of curiosity)? I think we have one course here that uses it, but that is not in my degree plan. My peers don't seem to enjoy it much, but what do they know! They just complain about all the parenthesis.
I know this is almost a month late, but here you go. LISP isn’t really popular nowadays. It was big in the 70s and 80s for AI (not like ChatGPT) but the tech just wasn’t there and when it did C already took over. It still had some niche uses, as previously mentioned Naughty Dog wrote the Crash Bandicoot Series and Jak and Daxter series in LISP for Playstation. I doubt they use it now because jeets Unreal Engine doesn’t use LISP. As for why I started learning it, someone was mentioning it in the thread and I wanted to see what the fuss was about. The discovery that my childhood games were written in LISP helped too.
 
(defparameter *lol* "skill issue")


I know this is almost a month late, but here you go. LISP isn’t really popular nowadays. It was big in the 70s and 80s for AI (not like ChatGPT) but the tech just wasn’t there and when it did C already took over. It still had some niche uses, as previously mentioned Naughty Dog wrote the Crash Bandicoot Series and Jak and Daxter series in LISP for Playstation. I doubt they use it now because jeets Unreal Engine doesn’t use LISP. As for why I started learning it, someone was mentioning it in the thread and I wanted to see what the fuss was about. The discovery that my childhood games were written in LISP helped too.

There is nothing about directly writing an AST or RPN instead of code most people can read that's better for making video games.
 
There is nothing about directly writing an AST or RPN instead of code most people can read that's better for making video games.
Being able to write your own language features seems like pretty big boon, given you have people who can do it ofc.
Big projects often use code gen tools, which seems to be pointing that there is some demand for manipulating AST outside circumstances predicted by language designers.
 
manipulating AST outside circumstances predicted by language designers.
Which is why Odin ships tools for parsing itself and manipulating its own AST in the core libraries.
That guy seething about new languages doesn't seem to understand that they do have some industrial backing at this point, even if they don't have the massive institutional backing of C++ or C.
 
Which is why Odin ships tools for parsing itself and manipulating its own AST in the core libraries.
That guy seething about new languages doesn't seem to understand that they do have some industrial backing at this point, even if they don't have the massive institutional backing of C++ or C.
These tools exist in many languages, but they invariably suck ass compared to the real thing because their base language's syntax is complicated. Meanwhile, Lisp macros are basic list transformations.
 
Being able to write your own language features seems like pretty big boon, given you have people who can do it ofc.

Libraries and tooling work fine, especially if it's a big FOSS library/tool instead of XxSperg67xX's DSL.

Big projects often use code gen tools, which seems to be pointing that there is some demand for manipulating AST outside circumstances predicted by language designers.

I love gode gen tools. I understand AST manipulation. I've literally used them to do things like experiment with ripping invasive linked lists out of the linux kernel and replacing it with handles.

None of that required Lisp.
 
Still better than tabs/spaces though
This has been a retarded take for years. Most people nowadays use tools that prevent such errors in Python. Also, debugging groups of 4 spaces of indentation is so much less of a problem than debugging wrong parenthesis in Lisp it's not even funny.
 
None of that required Lisp.
The point being made isn't that lisp is the only language suitable for AST manipulation, it's that sexps are themselves equivalent to the AST, there's a term for this, having the runtime and syntactic representations be so readily exchanged makes a lot of the grunt work in parsing and manipulation a lot easier.

There's a reason Treesitter uses scheme-adjacent syntax for the queries, it really just makes the pipeline easier

I will say, if you're not a parsing nerd, I respect this point not holding much weight, but having the code be its own AST eliminates a shit ton of headache you normally get in defining a grammar. You can roll a lisp lexer/reader/parser by hand fairly easily if you're familiar with the rules, whereas more exotic syntax usually requires more involved parsing with something like Bison
 
anyone who knows how to program in assembler languages is mentally ill
This is true. Although I'm not very good at it, I do enjoy it. One of my favorite classes was having to examine the disassembly of toy malware written by my professor and sift through all his obfuscation attempts to understand what the program was doing. He laughed and said "good!" when students said they're afraid of his exams.
He's a great professor though. I've barely passed his courses, have taken 7+ exams from him and failed over half, and still have a great time. Usually students only take one course from him when they have no other choice and talk about how traumatizing it was, but I'm currently taking a 3rd course with him! I joked that in my past life I was a priest who practiced self-flagellation.

The best professors are the ones that make you suffer, pain builds growth. He had to check in on me about three times (twice when I first took a class with him, and again in the next class) because he was concerned about my mental health. I started emailing him after exams that I'm okay and what I liked about it because I started to feel bad. I didn't know I looked so suicidal all the time? The third time I was actually okay!

Anywho, does this mean you enjoy malware analysis too?!

He even shits on returning error codes when that's one of the only ways to indicate failure in C.
He should unironically kill himself. Usage statements, returning error codes, etc is very fun.

Still better than tabs/spaces though. Anything is better than that. Fuck python.
This is a based and correct fact.
 
He should unironically kill himself. Usage statements, returning error codes, etc is very fun.
I've skimmed through his book a long time ago and it's shit. If statements bad - use OOP abstractions for that. Long functions bad - use short one-line functions. Not only a grifter, but also a great poofter that man is.

Also, java.

This has been a retarded take for years. Most people nowadays use tools that prevent such errors in Python. Also, debugging groups of 4 spaces of indentation is so much less of a problem than debugging wrong parenthesis in Lisp it's not even funny.
The longer the function, and the more nesting there is, the more of a pain it is to read this shit. Braces make it a lot easier for me. Vim helps also by highlighting the matching brace.
 
Last edited:
Back
Top Bottom