SlideShare uma empresa Scribd logo
1 de 19
Sustainability and Bit-rot
          Kiran Jonnalagadda, HasGeek
    JStor Workshop, Bangalore, December 2010
Building Websites

Write a spec

Define a budget

Raise money

Hire a team

Build!
Maintaining Websites
Maintenance Problems

1. Team has changed

    Original developers not available

    New developers don’t understand the code

    Rewriting easier than documenting and fixing old code

2. Software has to be upgraded

    Software is not compatible; bit-rot has set in
What is bit-rot?
Software rot, also known as code rot or software
erosion or software decay or software entropy, is a
type of bit rot. It describes the perceived slow
deterioration of software over time that will
eventually lead to it becoming faulty, unusable, or
otherwise in need of maintenance. This is not a
physical phenomenon: the software does not
actually decay, but rather suffers from a lack of
being updated with respect to the changing
environment in which it resides. —Wikipedia
Old: Working on the metal
New: Software ecosystem
Beware of Forks:
You are alone on the path
“Functionality is an asset, but
code is a liability. I will say this
until you like it.” —Ted Dziuba
Pattern: Custom Fork
You want a website            Your custom feature is a
                              popular request, so the
You found a CMS that has
                              CMS also adds it and
most of the wanted features
                              releases an update
Developer says he can add
                              Your custom version
the additional features you
                              implemented it differently,
want, so you commission it
                              so you can’t upgrade: you
Developer hands you code      will lose data if you do
and moves on
What you should do
Never implement a custom     Make it open source and
feature for yourself; the    encourage adoption by
maintenance is also yours    others; open source is
                             useless without adoption
When you get some
software written, give the   Open source is a
developer an incentive to    mechanism for distributing
maintain it without you      the cost of maintenance to a
having to pay for it         large number of others

Let the developer own it     This is hard
It’s not just you
 Software developers reinvent the wheel all the time, only to
 regret it later; the itch to reinvent never goes away

 “The shock of recognition came to me when I was sitting on
 the bus and reading the RFC for NFS, intending to write an
 NFS server on top of the ZODB so we could use grep and
 CVS. Suddenly I sat up and thought ‘I have an object
 database on top of a filesystem, and now I want to emulate a
 filesystem on top of it. What am I doing? Why not just use a
 filesystem in the first place?’” —A. M. Kuchling, April 2001
Software Upgrades

All major software systems evolve coping mechanisms

Windows DLL hell in the 3.x and Windows 95 era

Ubuntu 6-month upgrades

Preferences for any software application

Web app customization: themes, plugins, standard config
File Formats
PDF and HTML are stable;
files from 10 years ago still
open

PDF is not re-flowable;
suitable only for archiving
paper layouts

Archivability is still a
concern
Raw HTML is tedious
<h3>
  What is HTML5?
</h3>
<p>
  The term HTML5 has come to represent not just the new
  version of hypertext markup language, but a suite of related
  technologies and proposed standards. These include:
</p>
<ul>
  <li>CSS3, Geo-location, Web Sockets, Canvas, Client Storage,
  Audio and Video.</li>
  <li>Rich Internet Apps enabled by Advanced JavaScript
  Engines and Mobile Browsers.</li>
</ul>
Plain text markup
                                               Markdown
### What is HTML5

The term HTML5 has come to represent not just the new
version of hypertext markup language, but a suite of
related technologies and proposed standards. These
include:

* CSS3, Geo-location, Web Sockets, Canvas, Client
Storage, Audio and Video.

* Rich Internet Apps enabled by Advanced JavaScript
Engines and Mobilewsers.
Plain text markup
                                               MediaWiki
=== What is HTML5 ===

The term HTML5 has come to represent not just the new
version of hypertext markup language, but a suite of
related technologies and proposed standards. These
include:

* CSS3, Geo-location, Web Sockets, Canvas, Client
Storage, Audio and Video.

* Rich Internet Apps enabled by Advanced JavaScript
Engines and Mobilewsers.
Plain text markup
BBCode             Each of these converts
                   easily readable plain text
Markdown
                   into HTML
MediaWiki
                   The original plain text
Textile            should be archivable, but
                   each convertor is also
WikiCreole
                   subject to bit-rot
ReStructuredText
                   There’s safety in numbers;
And many more...   how many use them?
Published text: ePub
Reflowable content; no fixed
paper size

Single archive file contains
everything

The most promising archive
format

Two incompatible sub-formats:
XHTML and DTBook
Image credits



Haulin’ rust, macro rust on a micro bus, thumbs up, thumbs
down, fork in the road

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
Introduction to webpack and babel
Introduction to webpack and babelIntroduction to webpack and babel
Introduction to webpack and babel
 
Best PHP Frameworks
Best PHP FrameworksBest PHP Frameworks
Best PHP Frameworks
 
What is dotnet (.NET) ?
What is dotnet (.NET) ?What is dotnet (.NET) ?
What is dotnet (.NET) ?
 
Engage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPagesEngage 2019 - De04. Java with Domino After XPages
Engage 2019 - De04. Java with Domino After XPages
 
Developing multi-platform microservices using .NET core
 Developing multi-platform microservices using .NET core Developing multi-platform microservices using .NET core
Developing multi-platform microservices using .NET core
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
 
Harnessing the power of aws using dot net
Harnessing the power of aws using dot netHarnessing the power of aws using dot net
Harnessing the power of aws using dot net
 
Continuous Integration from server to cloud
Continuous Integration from server to cloudContinuous Integration from server to cloud
Continuous Integration from server to cloud
 
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web componentsBoston, MA Developer Group 2/7/2019 - Introduction to lightning web components
Boston, MA Developer Group 2/7/2019 - Introduction to lightning web components
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
DEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaCDEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaC
 
No backend
No backendNo backend
No backend
 
Academy PRO: .NET Core intro
Academy PRO: .NET Core introAcademy PRO: .NET Core intro
Academy PRO: .NET Core intro
 

Semelhante a Sustainability and bit-rot

An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
S. M. Hossein Hamidi
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
Yesu Raj
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
Yesu Raj
 

Semelhante a Sustainability and bit-rot (20)

Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021Top 10 IDEs for React.js Developers in 2021
Top 10 IDEs for React.js Developers in 2021
 
Web Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User ExperienceWeb Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User Experience
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
 
Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
 
30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer30 Skills to Master to Become a Senior Software Engineer
30 Skills to Master to Become a Senior Software Engineer
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 
HTML 5 - A developers perspective
HTML 5 - A developers perspectiveHTML 5 - A developers perspective
HTML 5 - A developers perspective
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Build a chatroom!
Build a chatroom!Build a chatroom!
Build a chatroom!
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Online advertising management system
Online advertising management systemOnline advertising management system
Online advertising management system
 
Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10Workshop Trends In Open Source Tech 1 20 10
Workshop Trends In Open Source Tech 1 20 10
 
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem. SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
 
Tech Stack - Angular
Tech Stack - AngularTech Stack - Angular
Tech Stack - Angular
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142
 
HTML5, How to rethink your web strategy
HTML5, How to rethink your web strategyHTML5, How to rethink your web strategy
HTML5, How to rethink your web strategy
 

Mais de Kiran Jonnalagadda

Mais de Kiran Jonnalagadda (17)

AirJaldi photo rout (April 2008)
AirJaldi photo rout (April 2008)AirJaldi photo rout (April 2008)
AirJaldi photo rout (April 2008)
 
The medium without the message (April 2008)
The medium without the message (April 2008)The medium without the message (April 2008)
The medium without the message (April 2008)
 
Understanding technology in e-governance (December 2007)
Understanding technology in e-governance (December 2007)Understanding technology in e-governance (December 2007)
Understanding technology in e-governance (December 2007)
 
Namma service cash tracking system (January 2007)
Namma service cash tracking system (January 2007)Namma service cash tracking system (January 2007)
Namma service cash tracking system (January 2007)
 
What ails the Sarai Reader List? (August 2005)
What ails the Sarai Reader List? (August 2005)What ails the Sarai Reader List? (August 2005)
What ails the Sarai Reader List? (August 2005)
 
On blogging as a career (June 2005)
On blogging as a career (June 2005)On blogging as a career (June 2005)
On blogging as a career (June 2005)
 
Python's dynamic nature (rough slides, November 2004)
Python's dynamic nature (rough slides, November 2004)Python's dynamic nature (rough slides, November 2004)
Python's dynamic nature (rough slides, November 2004)
 
Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)
 
Human database relations (March 2004)
Human database relations (March 2004)Human database relations (March 2004)
Human database relations (March 2004)
 
The technology of the Human Protein Reference Database (draft, 2003)
The technology of the Human Protein Reference Database (draft, 2003)The technology of the Human Protein Reference Database (draft, 2003)
The technology of the Human Protein Reference Database (draft, 2003)
 
Introduction to Plone (November 2003)
Introduction to Plone (November 2003)Introduction to Plone (November 2003)
Introduction to Plone (November 2003)
 
ZODB, the Zope Object Database (May 2003)
ZODB, the Zope Object Database (May 2003)ZODB, the Zope Object Database (May 2003)
ZODB, the Zope Object Database (May 2003)
 
XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)XML-RPC and SOAP (April 2003)
XML-RPC and SOAP (April 2003)
 
Some dope on Zope (Jan 2002, Bangalore LUG)
Some dope on Zope (Jan 2002, Bangalore LUG)Some dope on Zope (Jan 2002, Bangalore LUG)
Some dope on Zope (Jan 2002, Bangalore LUG)
 
User Management with LastUser
User Management with LastUserUser Management with LastUser
User Management with LastUser
 
e-Governance in Karnataka: An introduction
e-Governance in Karnataka: An introductione-Governance in Karnataka: An introduction
e-Governance in Karnataka: An introduction
 
Cyberpunk Sci-Fi
Cyberpunk Sci-FiCyberpunk Sci-Fi
Cyberpunk Sci-Fi
 

Último

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Sustainability and bit-rot

  • 1. Sustainability and Bit-rot Kiran Jonnalagadda, HasGeek JStor Workshop, Bangalore, December 2010
  • 2. Building Websites Write a spec Define a budget Raise money Hire a team Build!
  • 4. Maintenance Problems 1. Team has changed Original developers not available New developers don’t understand the code Rewriting easier than documenting and fixing old code 2. Software has to be upgraded Software is not compatible; bit-rot has set in
  • 5. What is bit-rot? Software rot, also known as code rot or software erosion or software decay or software entropy, is a type of bit rot. It describes the perceived slow deterioration of software over time that will eventually lead to it becoming faulty, unusable, or otherwise in need of maintenance. This is not a physical phenomenon: the software does not actually decay, but rather suffers from a lack of being updated with respect to the changing environment in which it resides. —Wikipedia
  • 6. Old: Working on the metal New: Software ecosystem
  • 7. Beware of Forks: You are alone on the path
  • 8. “Functionality is an asset, but code is a liability. I will say this until you like it.” —Ted Dziuba
  • 9. Pattern: Custom Fork You want a website Your custom feature is a popular request, so the You found a CMS that has CMS also adds it and most of the wanted features releases an update Developer says he can add Your custom version the additional features you implemented it differently, want, so you commission it so you can’t upgrade: you Developer hands you code will lose data if you do and moves on
  • 10. What you should do Never implement a custom Make it open source and feature for yourself; the encourage adoption by maintenance is also yours others; open source is useless without adoption When you get some software written, give the Open source is a developer an incentive to mechanism for distributing maintain it without you the cost of maintenance to a having to pay for it large number of others Let the developer own it This is hard
  • 11. It’s not just you Software developers reinvent the wheel all the time, only to regret it later; the itch to reinvent never goes away “The shock of recognition came to me when I was sitting on the bus and reading the RFC for NFS, intending to write an NFS server on top of the ZODB so we could use grep and CVS. Suddenly I sat up and thought ‘I have an object database on top of a filesystem, and now I want to emulate a filesystem on top of it. What am I doing? Why not just use a filesystem in the first place?’” —A. M. Kuchling, April 2001
  • 12. Software Upgrades All major software systems evolve coping mechanisms Windows DLL hell in the 3.x and Windows 95 era Ubuntu 6-month upgrades Preferences for any software application Web app customization: themes, plugins, standard config
  • 13. File Formats PDF and HTML are stable; files from 10 years ago still open PDF is not re-flowable; suitable only for archiving paper layouts Archivability is still a concern
  • 14. Raw HTML is tedious <h3> What is HTML5? </h3> <p> The term HTML5 has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: </p> <ul> <li>CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video.</li> <li>Rich Internet Apps enabled by Advanced JavaScript Engines and Mobile Browsers.</li> </ul>
  • 15. Plain text markup Markdown ### What is HTML5 The term HTML5 has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: * CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video. * Rich Internet Apps enabled by Advanced JavaScript Engines and Mobilewsers.
  • 16. Plain text markup MediaWiki === What is HTML5 === The term HTML5 has come to represent not just the new version of hypertext markup language, but a suite of related technologies and proposed standards. These include: * CSS3, Geo-location, Web Sockets, Canvas, Client Storage, Audio and Video. * Rich Internet Apps enabled by Advanced JavaScript Engines and Mobilewsers.
  • 17. Plain text markup BBCode Each of these converts easily readable plain text Markdown into HTML MediaWiki The original plain text Textile should be archivable, but each convertor is also WikiCreole subject to bit-rot ReStructuredText There’s safety in numbers; And many more... how many use them?
  • 18. Published text: ePub Reflowable content; no fixed paper size Single archive file contains everything The most promising archive format Two incompatible sub-formats: XHTML and DTBook
  • 19. Image credits Haulin’ rust, macro rust on a micro bus, thumbs up, thumbs down, fork in the road

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. Developers don&amp;#x2019;t care about sustainability. It shows all the time.\nWe&amp;#x2019;re going to focus on the second.\n
  6. \n
  7. Nobody works solo anymore. All software depends on some other software, maintained by someone else.\n
  8. The cost of forking is high: maintenance is yours alone\n
  9. \n
  10. \n
  11. \n
  12. ZODB is the database of Plone. AMK highlighted the problem in 2001, but as late as 2010 we use Plone and then suffer database upgrade problems.\n
  13. \n
  14. HTML has too much gunk in it: text, markup, presentation, scripts, external resources, external links. Not all of it will survive forever. Some of it will (a) disappear or (b) become incompatible (mostly JS).\n
  15. WYSIWYG editors produce garbage, so plain text markup formats are preferred.\n
  16. \n
  17. \n
  18. ReST is incredibly powerful, but the only parser implementation is in Python, unlike Markdown which has an implementation in every major language.\n
  19. The reflowable feature is a problem for fixed-layout content such as comics\n
  20. \n