Skip to content

Instantly share code, notes, and snippets.

@cmdcolin
Last active May 26, 2025 14:06
Show Gist options
  • Save cmdcolin/59469fb235d71b0c2878602b195c3ede to your computer and use it in GitHub Desktop.
Save cmdcolin/59469fb235d71b0c2878602b195c3ede to your computer and use it in GitHub Desktop.
Examples of rifts in software ecosystems

GTF to GFF conversion in bioinformatics

These are two very similar formats. But some people are still just very stuck on GTF, despite being less well defined than GFF.

CJS (commonjs) to ESM (ecmascript modules) in javascript

Just replace your require with import right? Sometimes it works, sometimes it doesn't. There is a lot of insanity that goes on, and it is really hard to do a proper technical analysis because ESM is pretty strict while CJS and the ecosystem around it is comapratively a bit loose, and some tools that use ESM use techniques to smooth over the strictness of ESM, allowing loosey-goosey stuff in the ESM ecosystem that shouldn't be allowed really.

Python 2 to Python 3

I know less about this but it seems tricky. Just change print "hello" to print("Hello") right?

Well, turns out you explode millions of lines of code

TensorFlow to PyTorch and others

Changing from one library to another is less of a rift, but this one seemed particularly odd because TensorFlow, a previously popular (machine learning library) got pretty messed up, entire versions of TensorFlow were pulled from PyPI making older packages hard to install, and people have to pin to older versions of python 3 and other such things

Scala 2 to Scala 3

E.g. https://blog.pierre-ricadat.com/scala-3-migration-report-from-the-field

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment