How do you code?
#21079
I got started similar to kagi, basically "I want to make video gaem :DD" as a wee lad followed by installing GameMaker and making a crappy Mario RPG "clone" (you could walk around and that was it).. I also used Visual Basic a lot, I think being young and fascinated by computers it served as like the perfect playground to draft up ideas for programs, no matter how boring. It was neat being able to follow a stupid YouTube tutorial and make a notepad clone that actually worked.

I gave up for a couple years and ended up getting back into game development, this time using Java. Notch used to do livestreams where he'd program games for the 48-hour Ludum Dare competition, and I remember watching him make Prelude of the Chambered and just being stunned at how quickly he could write a software renderer on the fly like it was nothing. The ability to hot reload code on the JVM so you could make changes and see them apply in real-time was also super cool. There's a timelapse here:

This is singlehandedly what got me hooked on programming.. dude started from scratch and made a little universe with nothing but text. That was SO cool to me. This concept of starting with nothing appealed to me so much to the point I stopped really even caring about making games and just dabbled in building rendering engines for a few years. Initially with Java, then later on C++.

I also got into webdev a bit, initially because I just wanted to make a site to publish my games on. Sublime Text, PHP, XAMPP, just writing this stuff brings back cozy memories. I wrote some really dogshit PHP code.

Nowadays I run a business writing software for processing and analyzing weather data. The website is all mod_perl, no frameworks beyond what's in-house. The software responsible for handling the data is all written in C and C++, although newer components I've started writing in Rust (see the Rust thread). I don't really have time for game development anymore although I'd like to get back into it someday. Aside from that, all the other development I do consists of making dumb tools to make life a bit easier and contributing to FOSS every once in a while.

Tools


"Tools, man. Where are your tools?"
I'll start with the IDEs and editors.

The largest piece of software I develop is a front-end for accessing the aforementioned data. It's a pretty big C++ codebase with a decent-but-not-outrageous number of dependencies. If I'm developing on Windows—which I am in most cases since the customer base is also mostly Windows users—I use Visual Studio as my IDE and for other platforms I prefer CLion. Visual Studio is a steaming pile of shit but it still delivers the best workflow for application and systems programming on Windows. I like its debugger although the one in CLion is great too. Every once in a while I'll have to pull out WinDbg. I've also used KDevelop as an IDE in the past, and while I really like the UI, it's just too buggy (in typical KDE fashion) to be usable.

Outside of this one particular project though, all of my programming is done in GNU Emacs. I used to use JOE because it was the only terminal-based text editor that didn't feel like dogshit (sorry but I hate Vim & modal editing is stupid), but eventually wanted more features as well as an actual extensibility ecosystem. Emacs is super extensible. I could make a whole thread just talking about Emacs and all the things you can do with it, it's really a cool piece of software that's seldom discussed because of its learning curve and clunky UI. Its defaults are pretty bad. However once you get used to it and learn how to use the macro system it's so fast. I'd attribute my ability to work quickly at least partially to just being really good with Emacs. Also it being both a GUI + TUI editor is goated

//i.fii.moe/21vFRuXsFKIU3z.png

"Which languages do you tend more to use for each type of project?"



C and C++ for application and systems stuff, although I've been adopting Rust more and more. Perl for everything else. Perl is ugly as shit but it's sooo nice for quickly jotting things together. I seldom write shell scripts because Perl just does it better. I use it for webdev as well. It's just so expressive. Raku's kind of neat too.. I've been meaning to make a thread talking about it similar to my Rust discussion but I haven't used it enough to really justify it yet.

For front-end webdev stuff I just use vanilla everything, no frameworks for anything. It's not the worst thing in the world. If you use JS the way it was originally intended it isn't that bad. Maybe if I'm in a hurry on a specific project I'll use Bootstrap or something to make CSS less of a hassle but I really just don't care. Maybe this isn't the most optimal way to do webdev but I don't care; the most optimal way to enjoy life is to not do webdev in the first place :D

"Do you know how to exit Vim without doing Ctrl+Z?"


:q!
followed by
sudo apt-get install emacs

//i.fii.moe/21vH4zsngpMmYK.png

Closing Thoughts


Tools don't really matter, pick something comfy and get good at it.. knowing your tools is a billion times more important than what the tool is to begin with :D

@foxcam:
"I write mainly in C and use scrappy libraries like SDL, stb, and Dear ImGui to put stuff together"
Don't call them scrappy! These are all excellent libraries and used everywhere. Dear ImGui probably isn't the most suitable for a lot of things compared to Qt/WxWidgets/whatever, but I've managed to ship successful software using it (albeit only after hacking on it a good bit)
If you want a real taste of hell, try any Microsoft UI framework :3

@saikuru:
"Rust (almost exclusively, especially with ratatui for TUIs, and egui and iced along with some dioxus for regular interfaces)"
So, ok, I just defended Dear ImGui 2 seconds ago but I will admit egui is one of those things that makes me want to use Rust more. It is SO much better. Most of the things I've had to hack Dear ImGui to do, it just does out of the box. I think you sold me on this in chat a while back. Haven't looked at the other two though..
I once shot a man in Reno, just to watch him die.
#21080
I'd really like it if you made an emacs thread. I've wanted to switch over to emacs for years but my main complains are speed (as I said before) and memory bloat (kind of scary to open your text editor and see 50 MiB being used) but there are so many features that look super cool. I was watching a youtube video and saw the guy pull out multiple cursors at once and it was very "hackerman" looking
#21082
you should make an emacs thread because i don't really understand what it is tbh
#21091

+1 on that emacs thread. I've already had to patch stuff into my copy of Imgui as well; one thing I probably will do in the long-term is write my own UI to replace it on the things I'm currently writing. At least it's somewhat easy to pop it open and modify given its relatively small code base unlike something like Qt :P

#21093
regarding GUI libraries, I liked IUP for small tools (example). It's comparatively much smaller than something like Qt and has less coupling as well.

Recently I actually wrote something in Rust and I quite liked the experience. Feels like C++ without all the extra baggage (I hate hate hate hate hate exceptions) but I feel like the compiler warns way too much about things that are ultimately pointless. This list will probably grow over time:

/* Fuck off, I don't care. */
#![allow(nonstandard_style)]
#![allow(unused_variables)]


I'm surprised it didn't bitch and moan about me putting a newline before the opening brace of a function definition.

cargo is amazing. It just goes to show how terrible the ecosystem for C/C++ build systems there is (cmake/autoconf/visual studio, pick your poison). I'd compare it to pip with venvs and ruby with the gem bundler thing it has. There's a reason C projects end up with so much boilerplate.

I like that it's actually difficult to achieve memory leaks. The project I wrote was a simple rust rewrite of a daemon that went inbetween beefweb and mpris, allowing them to communicate with one another. The original python version would slowly leak memory over time, one time I saw it using >700MiB of memory at once. Meanwhile my rust rewrite literally takes up 5MiB max.

Also I don't like implicit return. :)
MUSIC70INTHEHOUSE