#Programmingparadigms
A fun one to present back in Sept. A link to my No Time To Wait 8 recording and slide-deck and some thoughts about #DeclarativeProgramming and how you might embrace today.

exponentialdecay.co.uk/blog/declara...

#NTTW #NTTW8 #digipres #Software #DigitalLiteracy #ProgrammingParadigms
Declarative programming for Digital Preservationists @ NTTW8 – ross spencer :: exponentialdecay.digipres :: blog
exponentialdecay.co.uk
May 20, 2025 at 5:31 AM
Reactivity in Observable notebooks is kind of similar to Makefiles: cell values update based on dependencies, but more automatic. You see visualized results immediately, but also the wrong ones. Forces you to write clean code, or crash visibly.
#ProgrammingParadigms @northeasternu.bsky.social
April 16, 2025 at 5:43 PM
The classic Rails demo shows how it uses templates to auto-generate controller, model, and view files - setting up MVC instantly. The framework feels declarative. With little code, one can build a lot of functionality. It still feels like magic today. #ProgrammingParadigms @northeasternu.bsky.social
April 8, 2025 at 3:33 AM
HTTP vs WebSocket is like texting vs calling. HTTP sends messages and waits at a time, while WebSocket enables real-time bi-directional talks. But WebSocket first connects via HTTP that upgrades to WebSocket, like texting "Let's talk" before a call. #ProgrammingParadigms @northeasternu.bsky.social
April 2, 2025 at 5:08 AM
One challenge in programming is the risk of regressing existing bugs when developing new features. With TDD, the existing test suite serves as a safety net, helping catch regressions early and reducing the risk of last-minute surprises in testing! #ProgrammingParadigms @northeasternu.bsky.social
March 26, 2025 at 5:15 PM
Jest is a testing tool that works across many JavaScript environments, but it’s not a panacea. When using it with ESLint, don’t forget to import Jest’s global helpers or configure the ESLint environment ahead. A small setup makes all the difference! #ProgrammingParadigms @northeasternu.bsky.social
March 19, 2025 at 10:02 AM
The communication of shared workers in JavaScript is like a transport layer protocol in networking: it uses ports (MessagePort) to enable messaging between the main script and the worker with multiple connected scripts (like different processes). #ProgrammingParadigms @northeasternu.bsky.social
March 12, 2025 at 9:59 PM
JavaScript: Promises are great for avoiding callback hell and support chaining, but .then() always hands me another Promise. await, on the other hand, feels more like synchronous code and lets me access the actual data directly. Prefer it now! #ProgrammingParadigms @northeasternu.bsky.social
February 26, 2025 at 10:56 PM
Asynchronous programming in JavaScript is like multi-threaded programming in C - but without threads 🤔. With ’Promise‘ implementation, 'then' brings success, and 'catch' handles failure. Straightaway! #ProgrammingParadigms @northeasternu.bsky.social
February 19, 2025 at 9:20 AM
To achieve purity, functional programming use more memory and sacrifice some performance. In return? More deterministic results. Compared to OOP, which excels in modularization, I think functional programming's strength lies in making debugging easier #ProgrammingParadigms @northeasternu.bsky.social
February 12, 2025 at 9:09 AM
/**
* What I learned about JSDoc (with JSDoc documention)
* @param {string} msg - a note from me
* @return {void}
*/
function learn(msg) {
console.log(`I learn: ${msg}`);
}
learn("Using JSDoc makes JavaScript feel a bit more strongly typed"); #ProgrammingParadigms @northeasternu.bsky.social
February 4, 2025 at 8:28 AM
Does a UML diagram help with refactoring? Not really. Refactoring requires examining the code to reduce redundancy. But does refactoring result in a better UML diagram? Yes! A good refactor leads to a clearer UML with more fields in the abstract class #ProgrammingParadigms @northeasternu.bsky.social
January 29, 2025 at 6:57 AM
Building a 3D scene in browser with Three.js is like an ad shoot:
1. Set the stage with a Scene and place the objects
2. Pick a wonderful angle with a Camera
3. Finally, produce the picture with a Renderer
Declarative, and see it instantly with Vite!
#ProgrammingParadigms @northeasternu.bsky.social
January 22, 2025 at 1:16 AM
JavaScript handles OOP inheritance with prototype chain, which is conceptually like a linked list. Using a property? It’s like asking each person in a line from the beginning, 'Hi, are you X?🙋' until you find one, or hit the end of the line.
#ProgrammingParadigms @northeasternu.bsky.social
January 15, 2025 at 10:36 PM
#ProgrammingParadigms @northeasternu.bsky.social Just discovered @observablehq and I'm obsessed! 🤯✨Code + visualization in the same reactive notebook? Mind blown.
Building interactive data visualization has never been this intuitive. The live editing + instant feedback loop is addictive!
April 16, 2025 at 6:18 AM
#ProgrammingParadigms @northeasternu.bsky.social Just watched DHH's legendary "15-minute blog" Rails demo. Mind blown! 🤯 While I'm still debugging my "Hello World," this guy built a WORKING BLOG with comments in less time than it takes to order pizza. Rails magic is real!
April 9, 2025 at 5:56 AM
#ProgrammingParadigms @northeasternu.bsky.social
WebSockets are like sending your message through a tube straight to the server – no detours, no delays! 🚀. You can even send JSON to keep things neat! Just remember, if it fails, blame the internet, not your code.
April 2, 2025 at 4:32 AM
#ProgrammingParadigms @northeasternu.bsky.social Writing tests before code felt weird at first, but now it’s like sending future me a cheat sheet. TDD is lowkey wizardry—catching bugs before they’re even born.
March 26, 2025 at 6:14 PM
#ProgrammingParadigms @northeasternu.bsky.social Writing React apps without tests is like skydiving without checking your parachute—you could survive, but why risk it? 🪂 Jest & React Testing Library make testing a breeze, keeping your code safe and sanity intact.
March 19, 2025 at 3:00 AM
#ProgrammingParadigms @northeasternu.bsky.social Ever felt your web app lagging due to heavy JavaScript tasks? Enter Web Workers! They run scripts in the background, keeping your UI smooth and responsive. Perfect for data processing or complex calculations without freezing the main thread.
March 12, 2025 at 6:28 AM
#ProgrammingParadigms @northeasternu.bsky.social
Promises in JavaScript are like life: full of awaits and uncertainties. But when they resolve, it’s like watching a cloud part to reveal the blue sky. 🌤️ Keep pushing through those pending states—good things are just an .then() away!
February 26, 2025 at 7:20 AM
#ProgrammingParadigms @northeasternu.bsky.social
Async JavaScript is like ordering coffee. You place your order (promise), do other things (non-blocking), and when it’s ready, they call your name (resolve). If they mess up? Rejected, and now you’re out of coffee and patience.
February 18, 2025 at 7:37 PM
#ProgrammingParadigms @northeasternu.bsky.social
Vanilla JS walked, and Svelte could fly. 🚀 Why manually wrangle the DOM when Svelte compiles away the hassle? No runtime, no bloat—just futuristic, reactive magic. It’s time to evolve past the old ways. Embrace the future.
February 12, 2025 at 3:14 AM