8 ms·
Quote from Tarn Adams (DF's creator): I don’t even use version control. If you don’t know what that is then you’re not gonna yell at me. If you even know what
by kderbe 11y ago
Quote from Tarn Adams (DF's creator):
I don’t even use version control. If you don’t know what that is then you’re not gonna yell at me. If you even know what version control is you’re gonna be like, ‘You don’t use version control? You don’t use source control? What is wrong with you? How can you even work?’
If you're the sole developer of a project and you have, say, hourly backups, then maybe version control is a waste of effort? I would still use it out of habit, but it seems perfectly reasonable to me that Tarn would choose not to.
- viraptor 11y agoI don't think it would be a waste of effort. Unless he's got an amazing mind, uncanny ability not to make mistakes, and doesn't forget anything, getting `$vc blame ...` is worth it on its own. I'd argue it's not reasonable, but it's his choice to make. But I really hope he's got automatic, offsite backups going.
- rsync 11y agoNot sure if he will ever read this thread, but FWIW, free rsync.net account for life, if he wants one. Same goes for Terry A. Davis.
- stormbrew 11y agoFor me version control isn't even really about having backups (though that is a nice side effect). Version control is about documenting and annotating the process of creation, and it is uniquely necessary in programming because of how eternally iterative programming is. Code that is not annotated with its history and its motivations suffers to an extreme degree from entropy, becoming more and more difficult to understand. VC is part of code. Not using it is, to me, like refusing to use verbs.
- strictfp 11y agoTo me it's a way of creating checkpoints which I can revert to when I've taken a wrong turn. It actually increases productivity for me.
- SkyMarshal 11y agoIt's also a useful way of managing different experiments, and discarding the ones that didn't work and reverting to last known good, or integrating the ones that do work. That gets increasingly messier as your codebase grows.
- LoSboccacc 11y agowell vc to me is about merging and managing integration in a sane way, the ability to rollback on snafu is surely welcome, but for my side projects I just use some cloud sync service
- imdsm 11y agoThen you lack the history of your code, storing only the latest version. Though for personal projects, this might not matter, it's all a part of discipline in my eyes. If you see SCM as too time consuming, then I think you need more practise, and as such, should be using as much as you can.
- lololomg 11y agoI agree that version control is a fundamental part of software and if you ever have to read code I hope you have access to the versioning and issue discussions. Some people are ok without it for personal projects, but one day someone is going to read your code. Please be nice to them and give them the history behind your decisions.
- daemin 11y agoVersion Control is not really a part of the code, but it's a part of the whole project if you will. There's code, version control, build system, issue tracker. In some cases these can be very simple, and the simplest cases I can think of are: version control - backups, build system - batch/script file, issue tracker - text file. Although once you know one of the more complex versions of each system then it's easier to just use that. (Git/SVN/CVS, make/CMake/Premake, etc)
- deepnet 11y agoNot using VC is coding with permadeath. We play Dwarf fortress; Tarn is playing the meta game.
- Negative1 11y agoThis is the same exact argument against buying renter's insurance (for instance). Lot's of programmers are creatures of habit. It probably is faster for him to work without version control. Until that one day when it isn't and he wishes he was.
- mavhc 11y agoIt's the next level on from "I don't need comments, I can remember everything" and "meaningful variable names take too long to type"
- simoncion 11y ago> This is the same exact argument against buying renter's insurance... Eh? I don't buy RI because * I can cover the replacement cost of everything covered by pretty much every RI policy I've ever seen * Over the decades I've been living on my own, I've never had a situation where any RI policy would kick in Therefore, RI policies are nothing but money set ablaze for me. I'd rather make use of that money.
- jon-wood 11y agoCan you cover the cost of everything at once? If that's the case, good for you, but I pay for insurance to cover those one in a million chances like the house burning down with everything in it. It's entirely possible I'll never claim, but if my house just burnt down I don't want to be worrying about where I'm going to find money for a hotel tonight, and replacing everything I own tomorrow.
- papercrane 11y agoRenters insurance isn't just about replacing your belongs, it also is about liability coverage (e.g. someone is injured in your apartment.)
- VLM 11y agoInsurance is state by state. And the $10K I had on my apartment before I dropped it wouldn't pay for a paper cut in the ER anyway. At least it was extremely cheap like $10/yr as some kind of package deal with my car insurance. That was for a masonry and steel and tile apartment building, likely a wood house would be much more expensive.
- clevernickname 11y agoPopular version control takes natural, insignificant, almost unconscious modifications and turns each into an explicit diff that must be entered into the system and documented forever. If you are a solo developer, version control is literally a waste of time. Just write the damn code and back up it at the end of the day. Leave meticulous documentation to the uberprojects, megacorps, and CS grads that want to pretend that they are doing something meaningful.
- nv-vn 11y agoI disagree. Version control very much impacts the process of writing code. For example, if I'm going to make a major change to a solo project but I don't know what angle to approach it from, I'll create a branch to test one approach and another to test a different approach. If I'm unhappy, I can always branch from master again. The alternative would be to either attempt to make as few breaking changes as possible or test out exactly one at a time and lose progress when I go from one approach to another. Also, if I need to go back to an older version to fix something broken or remove a part of my code, commit messages document the changes so that I don't have to think of the code as a linear timeline of changes and search for the date, but rather search for commits that include keywords in the names and focus on those.
- cturner 11y agoYou can do much of what you described by copying directories around, keeping a text file running sheet and judicious use of winmerge. The key thing is to be managing complexity. git provides good mechanisms for this but it is not the only way. Linus didn't use version control for at least a decade, either. git started out as an automation of an existing manual process he had.
- imdsm 11y ago> You can do much of what you described by copying directories around, keeping a text file running sheet and judicious use of winmerge. Sorry, but can I just check, are you saying this is the alternative as in you SHOULD do this, or are you saying this is the alternative as in you SHOULD NOT do this? It's just the way you wrote it sounds like you're saying this is the recommended way of developing, which I'm sure is not what you meant. Also, is winmerge available in .deb/.rpm?
- golergka 11y agoWell, you could use the same logic for comments, namespaces, variable and function names, high-level languages. All of these are created to mitigate human errors. If you think that you don't make them, why bother? Write the whole thing in hand-crafted optimized assembly, from beginning to the end.
- coldtea 11y agoAnd some people have done just that. In fact tons of mainstream 80s programmers wrote whole games and other apps in optimized assembly from beginning to end. And some still do (MenuetOS, TempleOS, etc). But obviously, that's a slippery slope. You can do anything in between. The other end of that BS argument line is that you could use the same logic to depend on ALL available tools -- and refuse to write anything without an IDE, package manager, language features like contract programming, formal proofs, etc.
- cjkahn 11y agoAgreed. Others have pointed out that one can just commit daily and use git as a backup. This is true, but there is still a psychological difference: We have become slaves of our window managers and development tools. The fewer tools you use, the more true creativity is unleashed. The best works of humanity have been written before the existence of version control (and computers for that matter). I see version control as a necessary evil for multi-developer projects.
- boomlinde 11y agoWell, if you're developing something, and that isn't your development tools themselves, you are still a slave to your development tools. I really don't buy this argument, and I just think that it's a matter of habit and convenience. You can pick and choose development tools freely until you think that you have a satisfying workflow. I would argue that for me, personally, using version control "unleashes more true creativity" because I can fire and forget my changes and just branch out or roll back until I find something I like, without thinking too much about where and what to backup. The not actually writing code or designing aspects of development then take less time out of my work.
- imdsm 11y agoI have to agree. With SCM, I feel more in control, and worry less about my code and files getting lost, and feel like I am free to do anything. I tell my developers when they're worried about testing something on code, just create a branch and try it, and if it fails, just move on. You shouldn't ever be worried about losing code, or changing things. This is one of the greatest advantages of SCM -- how many variations of a codebase you can have, and how easy that can be.
- imdsm 11y agoSounds like TA is asking for some Fun!
- logicrook 11y agoThere's an article with an outrageous title (claiming one's getting towards the goal of simulating existence!) and the top comment is about "he doesn't use version control?!". That's so HN.
- mrfusion 11y agoWhere does it talk about simulating existence? I tried skimming it
- ZoF 11y agoWhat? The entire article is about this. It would be hard to find a paragraph where this isn't explicitly mentioned. You didn't skim very well.
- erikpukinskis 11y agoI read the whole thing and I didn't catch that part either.
- osweiller 11y agoTo be fair, the title is serious exaggeration. Tom Adams has a large task list of implementation ideas, and they're 42% complete. He then says that these represent the "narratively interesting" parts of existence. If I made a game that had a day and night, sleep and awake, food, drink, sex and death, I could claim that it simulates 100% of the interesting parts of existence. To cast that as actually simulating existence would be silly, though.
- wlievens 11y agoLisa, I want to play your game.
- chaostheory 11y agoVersion control is a really cheap and really useful time machine with notes for all the periods of a program's life that people want to either travel to or just see. It's really useful whether or not you work in a team. It's also so trivial to set up and use now with git and mercurial, that it makes me scratch my head whenever experienced programmers mention that they don't use it.
- Kenji 11y agoNo, version control is still advantageous if the project has more than, say, 5000 lines (or however many lines you are still able to fully comprehend as a whole). - If you're using services like github or bitbucket, you have remote backups of your source in case your HDD breaks. - You have clear documentation of your progress, the changes, what you implemented when. - You can always revert to a prior point. If you try to implement a risky feature that might break a lot of things, and if it does, you can revert to an old version with 1 command. If you have hourly backups, or folders with regular full backups, you will scramble to find the right version to revert to (I happen to know from experience!) - If you take a break from the project, you can quickly pick up from where you left off when you read your last commit message. Trust me, once you started using VC on solo projects, you can't imagine your life without that convenience. It's so easy to set up and just makes your life easier in many ways.
- ywecur 11y agoIt's about documenting when and where changes are made so that you can find bugs easier, not for backups.
- mesozoic 11y agoOh I hope he has good offsite backups at least. I would hate for the world to lose the future of Dwarf Fortress because he loses his code.