ari roponen researching the evolution of gnu emacs text editor

Download Ari Roponen Researching the evolution of GNU Emacs text editor

Post on 31-Dec-2015




6 download

Embed Size (px)


  • Ari RoponenResearching the evolution of GNU Emacs text editor

  • ContentsAbout MyselfMaintainabilitySoftware EvolutionFLOSS (Free/Libre/Open Source Software)GNU EmacsAim of My ResearchCurrent Status

  • About MyselfAri Roponen

    B.Eng. 2003, Jyvskyl PolytechnicBachelors thesis: Design and Implementation of a Route-Information SystemM.Sc. 2007, University of JyvskylMasters thesis: Open Source Version Control SystemsGNU Emacs user since 2001

  • MaintainabilityMaintenance means modifying software after it is publishedFix bugsImprove performanceAdapt to environment changesMaintainability = how well software can be maintainedUnderstandabilityModularity

  • Software EvolutionSoftware Evolution Laws (M. Lehman)Continuing ChangeIncreasing ComplexitySelf RegulationConservation of Organizational StabilityConservation of FamiliarityContinuous GrowthDeclining QualityFeedback SystemConclusion: Continuous maintenance is needed to keep software functional in the changing environment

  • FLOSS (Free/Libre/Open Source Software)Free SoftwareRichard StallmanFree as in freedomGNU, GPL, GCC, Emacs, ...Open Source SoftwareEric S. Raymond, Linus TorvaldsOSS is a marketing name for FSLinux-kernel, Firefox

    Is it important to separate FS from OSS?Free/Libre/Open Source Software

  • GNU EmacsEmacs is the extensible, customizable, self-documenting real-time display editor.

    Richard Stallman wrote the first EMACS in 1976GNU Emacs in 1984

  • Wow! How do you do that?First, write a Tetris-clone, then a shell, then a web browser, then ...

    Start the project, let others use it, integrate their changes, repeat at step 2, ...

    There must be some kind of a development process...... a good one

  • Aim of My Research (1/4)Find out how FLOSS projects can get so old and still be up-to-date

    Does FLOSS development differ from other software development?GNU Emacs is 25 years oldLinux-kernel is 19 years old

  • Aim of My Research (2/4)Detect common properties of FLOSS projects development models

    Goal definitionCode writingDocumentationTestingMaintenanceRelease cycle

  • Aim of My Research (3/4)Maybe invent a model for characterising used development processes

    Software changes by patchingTesting by developers/users/pretestersReleasing early/late/neverAttracting new users/developers

  • Aim of My Research (4/4)Find new software evolution laws

    Linux-kernel seems to grow faster than expected why?Do Lehmans laws apply to FLOSS projects?

  • Current Status (1/4)How to keep software lifetime longPersonal characteristicsBe interested in what you doMake your work useful for othersBe friendly to new usersDont neglect old usersProcess characteristicsUse suitable (public) development modelAim for good, not bestDesign with extensibility in mind

  • Current Status (2/4)Common properties of old FLOSS projectsChanges reviewed by communityExisting coding standardsMany old users (including original authors)Good documentationNo specific goals

  • Current Status (3/4)A model for FLOSS developmentSoftware changes by patchingWhat is a patchHow changes get acceptedProperties of a good patch

  • Current Status (4/4)New evolution lawsNone (yet)Existing laws seem to apply quite well

  • Questions?

  • AnswersGNU Emacs is available at, let me put it this way...

    Thank You!


View more >