Programming thread

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
Any chance the Analytical Engine will ever actually be built?
Zero. One of Babbage's biggest personality flaws was a willingness to abandon a design as soon as he had a better idea, which is one of the reasons he was never able to complete a project. I know that copies of his second design for the Difference Engine were built (and worked correctly), but since we got several plans for the Analytical Engine and none of them were fully complete (I think we got one where the instruction format and instruction set were completely specified, and a complete block-level design, along with detailed component-level designs for a variety of functional units, but it's been years since I read the IEEE article and for the post I just cribbed the quote from the preface of Brooks and Blaauw's textbook on computer architecture).

While someone could probably complete the design and have the result be true to Babbage's vision, it would cost a fortune to make, require a locomotive engine to power it, run glacially slowly compared to any electronic computer, and it wouldn't be too impressive to look at, since it would probably have to be housed in an enclosure filled with lubricant oil. If someone did want to spend time completing the design, it would probably just be done in a CAD system and simulated.
 
While someone could probably complete the design and have the result be true to Babbage's vision, it would cost a fortune to make, require a locomotive engine to power it, run glacially slowly compared to any electronic computer, and it wouldn't be too impressive to look at, since it would probably have to be housed in an enclosure filled with lubricant oil. If someone did want to spend time completing the design, it would probably just be done in a CAD system and simulated.
That definitely seems like more than zero chance to me
 
  • Optimistic
Reactions: agent_donkey
it would cost a fortune to make, require a locomotive engine to power it, run glacially slowly compared to any electronic computer, and it wouldn't be too impressive to look at, since it would probably have to be housed in an enclosure filled with lubricant oil
this just sounds like recent high-end nvidia cards to me
but seriously people had to do some really crazy shit to get good framerates in the 1800s did they
 
I've been getting back into coding recently after close to a decade away from it and man it's daunting how quick all this stuff moves. I really admire the dedication of you Kiwis that wake up and live and breathe this stuff, especially those of you that have dipped around so much that you have off-the-cuff comprehension to compare and contrast the particulars of a dozen different languages enough to have strong opinions about them.

I think I need to do some hard work to build the habit and learn to love doing it so the engine powers itself, but at the very least, I've been having some fun chasing my curiosity around and learning how X thing I like works under the hood.

Anyways, no bigger point here, just glad to see there's a thread here and cool to see everyone having fun. Keep it up, fellas.
 
I've been getting back into coding recently after close to a decade away from it and man it's daunting how quick all this stuff moves.
wtf are you talking about lisp was the best programming language in 2015 just like how it is in 2025
compare and contrast the particulars of a dozen different languages
it's a lot easier once you learn that languages sort of cluster into families that have been around for practically forever and new languages will typically end up in one of the genres
I think I need to do some hard work to build the habit and learn to love doing it so the engine powers itself, but at the very least, I've been having some fun chasing my curiosity around and learning how X thing I like works under the hood.
being curious about how stuff works under the hood and learning shit is all you really need to be at least reasonably conversational in computerspergese
personally, i don't think programming really needs to be that much of a habit; you should just do it when you get frustrated about your computer not being able to do some shit, so you make it able using some kind of special formal syntax
It is only the hipster turbo-autism stuff that moves at the speed of light, all the serious business stuff remains largely the same.
only the retarded hipster autism moves at the speed of light and they aren't really moving that much because they are just "inventing" something that my species of hipster autist wrote as a throwaway macro in 1963
 
it's a lot easier once you learn that languages sort of cluster into families that have been around for practically forever and new languages will typically end up in one of the genres
There are more complete genealogies than this one but this one is relatively easy to take in all at once, if that makes sense:
The influence of Smalltalk is certainly lowballed but Algol, C and Lisp all have the place they more or less deserve
being curious about how stuff works under the hood and learning shit is all you really need to be at least reasonably conversational in computerspergese
personally, i don't think programming really needs to be that much of a habit; you should just do it when you get frustrated about your computer not being able to do some shit, so you make it able using some kind of special formal syntax
Typically after realizing "wow this is really tedious and is going to give me RSI". Listen to your wrists!
 
I appreciate the warm reception, fellas. It's been nice getting back into it lately because I feel like I'm grasping a lot of stuff recently that I didn't before - I was never much more than functional before, certainly not properly passionate or theoretically-well versed beyond the stuff I slapped together out of momentary need, but I'm seeing a lot more beauty in the craft recently as I wrangle bigger ideas of architecture, consistency, and all that than I used to. The difference between code that merely works and code that works well and doesn't make me want to kill myself when I have to square up with the task of figuring out what the fuck I was thinking two weeks ago.

It definitely makes it a lot more tolerable to work with a larger codebase because I don't have to fear that it's getting worse as it goes, though it certainly helps to check out for the day once I realize that my best brainpower has been squeezed dry before I start racking up technical debt - no work is better than negative work, and all that. Also, even if my understanding of my own work does change as the scope expands, leaning on the campsite rule and cleaning up one or two things while I'm in the neighborhood has been doing a lot to passively clean up the place as I go, which strikes me as a lot more realistic than setting aside dedicated cleanup and refactoring time.

Granted, I'm certainly out of my depth here (pardon me if I'm just spouting off a bunch of baby-brain bullshit here) and I certainly could shortcut to competence by engaging with more people more often about it outside of personal reading and stuff, but I dunno, I have to admit there's something satisfying about coming to those conclusions and conceptions yourself. The achievements are a little more personal when they're yours, you know?

I've been out of the game for a while but I think I've really been learning to appreciate coding recently in a way that I didn't back when I used to do it, and I think that's really cool - seeing a new side of something you thought you burned out on years ago kinda puts a twinkle back in your eye and gives you some hope that maybe your current conception isn't your final one, and just because things can get worse doesn't mean they can't get better.
 
Last edited:
I finished learning how to program when I started learning Lisp.
yeah but you're still learning lisp
and lisp is technically programming since it happens to be able to run on a computer

anyway what i said about learning programming applies doubly to lisp because you can write 5 optimizing lisp compilers and know every system inside and out and you will still be a relatively new lisp programmer
 
yeah but you're still learning lisp
and lisp is technically programming since it happens to be able to run on a computer

anyway what i said about learning programming applies doubly to lisp because you can write 5 optimizing lisp compilers and know every system inside and out and you will still be a relatively new lisp programmer
I think I will stick with being a C-nile. :)

There's something about the lisp syntax that fundamentally breaks my poor brain. I am probably just retarded
 
There's something about the lisp syntax that fundamentally breaks my poor brain. I am probably just retarded
it's simple, there isn't really any syntax besides the names of the keywords and where you put your parentheses
as long as you have a decent editor that can highlight matching parentheses and auto-indent lisp s-expressions you shouldn't have that bad of a time
also if you're having trouble with understanding quoting, the biggest thing you need to understand is that it's just a way to disambiguate from literals and program parts when the literals look like programs (symbols=variables, lists=forms)
 
I was "inspired" last night, ended up writing a GRUB based bootloader and simple kernel. Most atrocious C code I've ever wrought upon this plane, 2/3rds of it is various debug print utilities because lolnolibc. Took me about 2 hours to figure out how to get the memory map structs loaded properly because of packing and alignment shit. Finally managed to allocate a page.
10/10 great exercise, gonna fuck around with it more tonight.
 
it's simple, there isn't really any syntax besides the names of the keywords and where you put your parentheses
as long as you have a decent editor that can highlight matching parentheses and auto-indent lisp s-expressions you shouldn't have that bad of a time
also if you're having trouble with understanding quoting, the biggest thing you need to understand is that it's just a way to disambiguate from literals and program parts when the literals look like programs (symbols=variables, lists=forms)
Lisp syntax is easy-peasy for me. What I don't understand yet is macros. Any good guides?
 
Lisp syntax is easy-peasy for me. What I don't understand yet is macros. Any good guides?
macros are indeed pretty tricky
the good thing is that macros are typically used quite sparingly, and you can do a lot without ever needing to make one
the most common use for macros is when you realize you're writing the same code over and over, but can't abstract it away using procedures for some reason. instead of coping and seething and emailing the language devs to add a gimmicky meme feature to reduce your specific kind of boilerplate, you can use defmacro or define-syntax or whatever to recognize a new keyword and replace it with a template that gets filled out at compile time

there are actually a few macro systems in the lisp world so you might want to go ahead and learn macros 3 times instead of just once
common lisp's macros are basically functions that take a bunch of arguments and return a list that happens to be a valid lisp ast. there is a special syntax for quoting s-expressions and putting random extra values in so you can do this without wanting to kill yourself
scheme's macros are a pattern matching language that makes it completely impossible to fuck up certain things that are easy to fuck up in common lisp macros, at the expense of some raw power. in the classic scheme tradition, various extensions exist to get around this but none of them are universally supported in the standard library of every implementation because fuck you

best way to learn macros imo is to get sick of writing some niggerlicious boilerplate and just make them
unless you can get away with making procedures, in which case macros might not be the best tool for the job
 
best way to learn macros imo is to get sick of writing some niggerlicious boilerplate and just make them
unless you can get away with making procedures, in which case macros might not be the best tool for the job
I was indeed under the impression you should always default to functions and then switch to macros upon noticing niggerlicious DRY code smells. I've also seen macros being described as a more powerful version of Python decorators so that's a good jumping off point as well.
 
I have yet to find a problem that could be solved by macros that could not be solved by simpler means, usually a closure, albeit only in languages with first class functions.

Is there really a scenario in which macros are the best solution?
 
  • Thunk-Provoking
Reactions: Belisarius Cawl
Back