HACKER Q&A
📣 p-e-w

Why hasn't Git been adopted outside of software engineering?


There's essentially nothing about Git's functionality that is specific to code. Git works with text-based file formats, which are very common outside of software engineering, and supports binary files as well.

Yet even highly technical fields like scientific publishing, that already use LaTeX for which Git would be a perfect match and could dramatically improve collaboration, still mostly default to sending versions of documents back and forth by email.

I don't buy the explanation that Git is somehow too complex. First, there are all kinds of GUI frontends that hide away the intricacies of the commit flow. Second, it's not like other fields don't already use extremely complex technical tools every day. Git is trivial to use compared to some of the software prevalent in process management and accounting, not to mention civil engineering disciplines. Even Excel is much more complex than Git.

So why is Git still being ignored pretty much everywhere outside of software engineering?

Or perhaps the better question is: Why does software engineering consider Git indispensable, when every other field, including science and civil engineering, seems to get away without it or any equivalent tool?


  👤 init Accepted Answer ✓
Maybe the better question to ask is "why isn't file reversion control adopted more outside of software engineer?"

Git a is distributed version control system that most people shouldn't have to deal with. It has awful tools and doesn't work well with binary files, large files and moved files. Just an example: How do you diff two copies of an excel document with Git?

Most people don't have to deal with multiple "master" branches with no single source of truth because that's really what Git is for.

What most people need, including software engineers working in closed source, is a single source of truth with good history, diff and large files support.

I believe a tool like Dropbox or even centralized version control systems like Subversion or Perforce are better positioned to solve this than Git.

Many cloud based tools already have features that give them the upper hand over git. For example, Google docs allows collaborative editing and editors have access to file history and can revert to specific versions.

Maybe there are tools to diff binary files like two versions of an audio file or two excel documents or whatever two [domain specific file format] documents.

I will be happy if version control came at the file system or cloud drive level and the app just leveraged this integration seamlessly instead of forcing everyone to learn the difference between between branching, rebasing, cloning, copying, stashing, etc...


👤 dagw
when every other field, including science and civil engineering, seems to get away without it or any equivalent tool?

I've worked in civil engineering and we definitely used 'equivalent' tools, primarily Projectwise and Perforce. The main problem is that git's support for large files and binary data is pretty bad, and no one over at "git HQ" seems particularly interested in solving the problems this market has. All the Git UI tools that exist are written by and for software developers, with no thought as to what the actual needs of managing a large Civil engineering project actually are. Git offers no value, compared to other tools, if 90+% of what you are checking in are things like CAD files, Excel sheets, elevation models, and geotechnical survey data.


👤 sdevonoes
> Even Excel is much more complex than Git.

I don't buy it. Sure, Excel is a monster (in size and features) compared to Git, but the average user only has to do 2 things to start using Excel: 1) open Excel (or an Excel file), 2) click on a cell. Profit

Whereas with Git one needs to know what a branch is, what a commit is, what push means, to have a remote repo, potential conflicts,... For computer geeks like us, this is no problem, but for people who don't care (don't need to care), Git is all but "straightforward".


👤 Deukhoofd
The District of Columbia uses Git to track law changes as well.

https://github.com/DCCouncil/law-xml

Similarly, the entire German Federal law can be found on Github:

https://github.com/bundestag/gesetze


👤 Someone
> Git works with text-based file formats, which are very common outside of software engineering

Even if they are very common, I think there are many, many people who rarely or even never write a text file. If you ‘live’ in a combination of Outlook, Word, Excel, Slack, a few web sites (company wiki, Facebook, etc), maybe a company database, where are those ‘very common’ text files?

Also, how do you store your Slack or Teams discussion in git, together with your emails, word docs, etc?

There also is the issue of legislation that requires people to throw away data. Yes, you can rewrite git history to delete the files associated with J. Doe’s application for a given job, but git doesn’t make that easy.


👤 kiney
Plain-text files are actually not widely used outside of software engineering and when they are, they are used like binary and only edited with graphical editors. And most non-tech people don't see the benefit if it is there - in software development versioning was born from pain: big source trees are unmanageable withoud SCM. For typical office documents you miss some benefits but can live without.

One interesting anecdote / micro case-study: In my family we have a vacation home that we rent out. My mom (>70 years old, completely non-technical) manages the renting and updates an online calender where guests can see which dates are available at what price. I developed a very simple custom text format and a static site generator an my mom changes the data using the web-ui of my gitlab instance. I had to teach her but now she is very happy with it and much faster than with the previous solutions. And git helps greatly because mistakes do happen and its very easy to revert and see when they happened etc..


👤 wesnerm2
Git IS heavily used outside of software engineering.

Marketers and documentation writers use markdown and git for building websites and books.

Data scientists use git for their notebooks.

Operations use git for their deployment scripts.

Git isn't the best for office documents. Revision marking (aka, change tracking), document comparisons, and merging are all available in Office suites. Git isn't really used here because there features predate Git, operated on binary files or complex XML documents (neither of which are conducive to diffs).

Git isn't good for databases or data lakes. The files are huge and typically aren't modified (CSV) or are binary/compressed (Parquet).


👤 d--b
Briefly - because the cons outweigh the pros.

Honestly, what does git buy you compared to saving files with version suffixes?

1. cherrypicking - is that really that useful outside of programming?

2. branching - can be done without git using folders

3. merging - can be done without git using beyond compare

4. distributed fs - can be done with dropbox

5. cleaner than having millions of files around

On the other hand you would need:

1. to go from your comfy folder/file mindset to the difficult commit tree concept

2. to learn git commands - yes it is a pain in the ass, even for seasoned developers. Especially when in conflict land, git is foot shotgun.

3. to setup a git repo somewhere - also pretty difficult for non developers

4. to learn some ui cause yes, the cli is too painful to use


👤 lifeplusplus
Because git UI sucks. I've been using git for 10 years at least tried mastering it 3 times, even now I'm exactly 30% sure what is happening if I'm using a not top 4 command

👤 durnygbur
Because as a community we are highly masochistic and source perverted pleasure from teasing others especially during interviews. Another industry with desperate need for version control is law, instead they use the most hopeless solutions like Word documents and email conversations. Ask any lawyer what version control are they using - they will charge you EUR 100 for the answer and the answer will be "none".

👤 mdrzn
It doesn't seem that user-friendly or easy to get into. But maybe it's just an outsider perspective.

👤 diffeomorphism
> There's essentially nothing about Git's functionality that is specific to code. Git works with text-based file formats, which are very common outside of software engineering, and supports binary files as well.

The problem is that it does only really work well for plain text. So office documents don't work, emails only kinda work (html; and anyways already handled by other apps) and for binary files it provides no real benefit.

> could dramatically improve collaboration, still mostly default to sending versions of documents back and forth by email.

What is the supposed benefit of git for this purpose over dropbox/owncloud/seafile...? For plain text the version history/branching etc are all useful. For binary files or office documents, git just seems much more work for no gain.


👤 nicce
> Yet even highly technical fields like scientific publishing, that already use LaTeX for which Git would be a perfect match and could dramatically improve collaboration, still mostly default to sending versions of documents back and forth by email.

I don’t know how true this is, or how you have concluded this. It feels like people you know don’t use git for this purpose. On the other hand, everybody I know uses git with LaTeX. Where does the border go? It might be dependent on the discipline. Biologists might not even know the existence of git.


👤 unlaxedneurotic
I think it might be due to the compunding factor of multiple people working on multiple files concurrently. Collaboration in research is more limited to sharing information, and when writing does take place at the same time it is only usually a couple people working on it. The frequency of sharing files could also be a factor. Also I don't think anyone wants to learn to use another piece of software among the dozen they already have to use. Emailing a latex file at the end of the day seems much simpler.

👤 vertere
Nobody has mentioned pull requests, content review, managing commit/write privileges. There's a bunch of basic workflow things there that version control systems can facilitate. That doesn't mean you specifically need Git (or even a general VCS) for those things, but there are places where it could beat the status quo significantly.

👤 taubek
I would say that there is not enough use cases that show and say "Look at us - we are using Git". I recently switched from WordPress to GitHub pages. It has all that I need. But then again, I work in IT. I'm not sure who from my friends would trade Wix or WP for Git.

Same goes for Excel, Word, etc.


👤 efortis
SharePoint has versioning. Also, in industry you see on the footer of forms their revision/version number.

In car parts the last letter is the revision.

Electronic boards have revision numbers: https://youtu.be/LBoF1e5YDdQ?t=799


👤 sn1de
If there is a business/domain need for this capability most organizations will go with some kind on content management solution (CMS) of which there are myriad solutions. Git would be considered bare bones and unintuitive compared with the best of these tools.

👤 spansoa
Over the years, I've seen entire books being written on Github, with all the grammar and spelling mistakes, warts and all to be seen in the diff. This is true of documentation & blogposts on Github too. Github is not just about software.

👤 throw_m239339
> I don't buy the explanation that Git is somehow too complex.

Yes it is complex, for non software engineers.

Other professions use different version control systems more adpated to their needs (for instance large files...).


👤 comrad
But people do use version control. On Windows you have access to Shadow Copies and on Mac you have Timemachine.

Excel is binary, because its compressed XML. Not a good fit for Git.


👤 karteum
But git (and more generally diff) is not very efficient for detecting and showing moved text (which it displays as deletion+addition)

👤 jononor
git is commonly used with Latex. Popular online editors like Overleaf have GitHub integration for example. But most Latex users are probably rather close to technical domains like programming.

👤 eternityforest
I suspect the existence of Google Docs is the main reason.

👤 aaaaaaaaata
Not one mention of Fossil source control.