I want to talk about three things that has fundamentally changed my dev-life. There are a lot of things, like ImGUI, that are very amazing and useful but they don’t provide a general solution across many problems.
In no particular order…
Git
I’ve been using Git since 2010 and it really has changed my dev-life. I’d used version control before that, mainly Perforce, SVN and PVSC, but Git felt nice and unobtrusive and I like that everything was local until I pushed to the server.
It’s both nice and annoying that you can’t lock files (like art). You can (kind of) with LFS but that feels tacked on and not ready for primetime. Don’t think so? Try explaining installing and using it to a non-technical artist sometime.
Git can be frustrating if you’re trying to do anything but the basics.
Accidentally check in a secret file months ago and need to scrub it? Good luck with that. There are ways but it requires a lot of Git-Fu.
I mainly use a GUI for git (Fork) and that takes most of the pain away. I do use the command line, but mostly in automation scripts.
Markdown
Before Markdown became the de-facto standard, I used my own custom format. It worked but wasn’t great and only I understood it.
Markdown has it’s issues when you start using the more esoteric features. I’m also annoyed at bold and italics notation. Why is italics *italics* and bold is **bold**? Why not *bold* and _italics_. That would make a lot more sense to me.
I also have issue with it’s creator, John Gruber. He is a highly annoying smug Apple Fanboy. His writing was fine in the early days when Apple was #3, but got intolerable as Apple became the 800lb gorilla. It’s changed recently as Apple has snubbed him but I still can’t read anything he writes.
But, I like his Markdown.
JSON
I use JSON for just about every data file format in my games. JSON was created by Douglas Crockford as a notation for Javascript objects.
I worked with Doug Crockford at Lucasfilm for several years. I always had a lot of respect for Doug and was somewhat intimidated (in a good way) by him. Doug was also the producer for the Nintendo Maniac Mansion.
As much as I love JSON, there are some things about it that annoy me. I dislike that trailing commas are not allowed
"name": [
"value1",
"value2", <- Opps
]
There is no need for this and it makes writing out valid JSON more complex. I also don’t like you that have to wrap keys names in quotes if they are simple ascii.
name: "value" <- Opps
I wrote a custom JSON parser I use in all my games that relaxes these, but then general JSON readers fail on my data.
Comments:
addresses many of the annoyances mentioned already (trailing comma,
comments) and more (multi-line strings, ...)
The reason is that nothing is invented in a vaccuum, and before HTML came along most digital communication platform supported one level of emphasis at best - computers could print text in a brighter colour to make bold, and typewriters could underline. So different communities had different conventions for expressing that one level of emphasis: *bold* and _underline_.
But HTML4 has *two* levels of emphasis, bold and italic. As a convenience, both conventions for level-1 emphasis got mapped to HTML's level-1 emphasis formatting (italic), and they were each extended to support level-2 emphasis as well.
That said, Markdown is really a shorthand for HTML, and if you choose different abbreviations that suit your taste better, it doesn't really matter - it all becomes HTML in the end.
Markdown is nice for simple texts, and anyway it's just a little wrapper around HTML so you can always go crazy and write HTML when needed. I've also used reStructuredText for some projects, and even though I despise its syntax, it comes with a lot of great stuff to generate more complex documentation (table of contents in Markdown, anyone?). Since I have to go back and forth between the two, I always needs some kind of cheat sheets to remember the syntax, not to mention that Markdown has now many different flavors with different level of support (if you want footnotes, etc.).
And finally, I agree with the general sentiment about JSON here. The lack of support for trailing commas is a pain in the butt, especially as a Python developer because this is a given there, and as many pointed out, the lack of support for comments is SO frustrating! At work, we use a mix of JSON and YAML depending on the need. I still don't fully understand the YAML syntax (especially that | thing with multi-line statements), but I guess I need to come to peace with all these crazy "de facto standards".
CommonMark tries to solve *some* of it - it still doesn't solve everything though, and it's much more complex than Markdown. (Gruber prevents anyone to call themselves "Markdown"; that's why they are not Common Markdown but CommonMark.)
It's very pleasant to write, I'll give you that. (Better than MediaWiki!)
A good list.
I'll add the cli to this. Learning the cli has paid off and also helps pretty much for every task I have in my day-to-day life as a dev.
I switched to fish. For me this is perfect, almost 0 config, and does what I need.
.jsonc
Add comment: