Shamelessly stolen from a Reddit post that made me laugh when I randomly remembered it today. Figured it was worth reposting to Lemmy if I laughed upon remembering it and not just upon first sight.
I really recommend creating a compiler or an interpreter from scratch, don’t even use an IR like LLVM or MIR. Just hack and slash your way though a C compiler, it’s the simplest language most people know. Don’t care about ‘optimization’ at first, fuck optimization. Just grab Yacc/Lex or a PEG parser generator that works with the language you like most and have ot generate assembly code for simple expressions. Like, make a bc(1) native compiler! Interprets are fun too. You can use VMGEN to generate a superfast VM in C, and then bind it to another language using SWIG.
Also never imagine usability. Noobdy is going to use your C compiler for any serious work. It’s just for education. Post it online to receive feedback.
You cna start by writing DSLs. For example, I am implementing the ASDL language from this old paper.
Also if you are going to do it as an example in your resume, just stop. Nobody cares, because it’s a trivial task to write a compiler, even if you write backend, forntned, and the LP yourself! Do something money-loving people loike, like making some bullshit mobile app that tracks your gym sweat volume.
The JetBrains AI plugin wants to be activated so badly, but legal says we can only use GitHub copilot. The copilot plugin is really good so I don’t mind, but we all know the data is going to OpenAI regardless of the plugin. Data sovereignty will only be achieved by running these services locally.
I miss that game. Not much tickles the same creativity and playfulness that I’ve tried since then. I used to spend hours in the level creator doing dumb stuff.
I use the right tool for the job, always. If all I need is to push a branch, then I’d rather use a UI that quickly shows me the changes in a nice diff layout. If I’m doing a pull request review and want to run it locally, I select the branch, pull, and go.
That said, when there are conflicts or tricky merges, or I want to squash a bunch of commits, anything like that, I’ll use the CLI.
It’s not about being above GitHub desktop or being an enlightened CLI user. It is about using the tool that is needed.
I’ve only been writing and releasing software for 15 years, what do I know.
That said, use whatever workflow fits you best! If that’s your hands never leaving the keyboard, rock on! If you instead write code like you’re playing an FPS, enjoy! We all do this because we like it, right? 😊
[Transcriber’s note: the first line in the following transcription is incorrect. After the equals, there should be eight instances of the word “Option”, each succeeded by a less-than symbol, then two brackets, like (), before the first greater-tha symbol. However, if you type a less-than symbol on Lemmy, it seems to strip that symbol and whatever word comes next out of the source when you save the comment.]
I am a human who transcribes posts to improve accessibility on Lemmy. Transcriptions help people who use screen readers or other assistive technology to use the site. For more information, see here.
Still needs to be checked over to make sure it didn’t get anything wrong. In my experience the mistakes AI make with monospace fonts tend to be very awkward to notice (like 1 and l and I and | being interchanged), so I’d have to go over with a fine tooth comb which, for me, since I type quickly, isn’t noticeably faster and is a lot more boring.
programmer_humor
Top
This magazine is from a federated server and may be incomplete. Browse more on the original instance.