Brainstorming ways to help build the Emacs community

John Wiegley and I had lots of fun brainstorming ways to help move Emacs forward, particularly as I’m carving out more of my time to focus on Emacs. Here’s what we talked about:

A rough outline of things to flesh out into articles/chapters:

  • productivity, org-mode
  • development
    • emacs lisp
    • haskel, rails, java, and other languages…
  • writing
  • e-mail
  • IRC/Twitter/FB
  • web
  • games and diversions
  • documentation
  • learning and discovery

Learning Emacs development:

  • tools
  • cons cells
  • macros, quoting
  • control structures
  • Emacs structures: windows, buffers, text properties, etc.
  • lambdas
  • libraries

Ideas for visualizations:

  • #emacs word cloud or URL frequency/analysis
  • IUseThis for Emacs, maybe with annotations

Cookbook:

  • PLEAC for Emacs? Emacs Lisp cookbook?
  • Coding patterns

IDE challenges:

  • IntelliSense
  • Excellent project browsing
  • Refactoring
  • Integrated test harnesses
  • Asynchronous operation
  • Performance (especially of code analysis and navigation tools)

Target communities/audiences?

  • Emacs beginners: getting more into Emacs, learning more about packages, customizing Emacs; learning path through packages, maybe with time estimates?
  • Emacs intermediate: tweaking Emacs, getting into Emacs Lisp, contributing upstream; need to update Writing GNU Emacs Extensions
  • Keyboard enthusiasts: keyboard shortcuts, customizability
  • Non-developers (writers, scientists, mathematicians, etc.): Context-specific functionality, starter kits, easy installs, articles, screencasts – learn from Aquamacs, Ready Lisp. Pre-built Org starter kits? screencasts, interactive tutorials, games as introductions
  • Users of defunct editors: migrated features, migration guides
  • IDE users: integration with other parts of life
  • Vim users: configurability envy, migration/emulation

Emacs performance: elp, memory-use-counts, garbage collection, algorithms, cookbook, core work

Discovery:

  • packages: popularity, reverse dependency graph, URL log for #emacs, 24 packages for Christmas and other blog series, IUseThis, reminders to be lazier / stories for inspiration
  • EmacsWiki: guided tour, CSS design

Imagining awesomeness in 5 years: Responsive editor that’s easy to set up; SEO so that people can find useful resources; context/goal-specific documentation; regular virtual show&tell

Imagining nonawesomeness: Weak async; marginal/niche; people moving away to other editors because of growing gaps; performance issues; unmaintained code; developer burnout

EmacsConf: mailing list for next year, venue?

 

Here’s what I’m looking forward to devoting some of my time to:

Write and draw

  • EmacsWiki page updates
  • Guided tours
  • Emacs Lisp cookbook
  • Package reviews
  • Interviews with people so that they can share their tips (incl. screencast and transcript)

Analyze

  • Package use
  • Performance
  • Logs

Learn

  • Performance optimization (Emacs Lisp and core)
  • Package descriptions and use

Code

  • Issues
  • Feature requests
  • Integration
  • New code

Lots of possibilities!

  • http://twitter.com/ecocode Erik Colson

    Cool stuff to do !
    but I think you miss ‘version control’ somewhere in this post.

  • Isaac Xin Pei

    I am thinking we need a ‘tool/site’ to (maybe that site is emacswiki, but we need to put data there programmingly, not human edit):

    1. analyze the contents (all related to emacs) and present the data of overrall emacs trend : from emacs wiki, emacs news, blogs, packages etc. (Currently this is done per human reviews, but if we have a tool to aggregate all these, make data available to public, it will be awesome.

    2. an interactive process to develop new packages: meaning with (1)’s overview, we may know what type of functionality is lacking (or existing) in current packages, code bases, where we can develop new packages/functionality (or improve existing packages/speed) in a collaborative way/ real time reponses to what the data show us (from 1.).

    3. improve emacs lisp speed!!! why don’t we make it lightening fast?

    • JC

      Really fast lisps require complicated JITs like those in Clozure or SBCL. I don’t think anyone is willing to write a new one just for emacs.

      • Jonathan Magen

        Yeah but I’d like to see Emacs ported to CL…I know this has been pretty controversial in the past but I also know others share this dream.

        • Isaac Xin Pei

          don’t know if someone can make faster lisp in emacs … but one possibility might be simply call lua (lua script) directly from emacs, especially luajit has FFI. I have been contemplating this for a while, will definately give it a try … unless someone else have tried.

        • jasonm23github

          It’s being ported to Guile (another Lisp) this is a reasonably high priority GNU activity.

  • http://twitter.com/emisshula Evan Misshula

    Thank you this would be great. Don’t take the whole project on yourself. Start a repository and let us all submit pull requests. I would love to contribute what I can.

  • François-Xavier Bois

    It would great to have access to more “chrome” in the UI.
    A file browser should not be inside a buffer but in a real “chrome” widget.
    It would be great to have access to UI around the main buffer (to, left, right, bellow) window to put widgets, tabs, icons, file browser etc.

  • surio

    FWIW, I am getting crashes everytime I run the latest emacs on Win 7? Did you encounter this yourself?

    http://superuser.com/questions/576512/emacs-24-3-on-windows-7-does-not-close-properly

  • http://twitter.com/RaymondZeitler Raymond Zeitler

    I know I suggested this before: A Tip-of-the-Day mode for both Emacs and eLisp would be awesome. One for each major mode might be nice, too.

    If the scope is to look ahead five years, a mobile Emacs needs to be considered. I have the Emacs android app and Hacker’s keyboard, but I haven’t even started them up yet. I still regard the tablet as more of a recreational device, whereas Emacs is a productivity tool that I need for work. It’s somewhat confusing to use Emacs now on a laptop with a touchpad instead of mouse. I can’t imagine how a tablet version would work. Perhaps voice command (speech-to-text) will be the enabling mode to a widely-adopted mobile Emacs.

    I have my own story of how I came to adopt Emacs. I’ll add that to my Emacs Wiki page when I get a chance. That page needs an update since I’m using version 24.1.1, and I’ve drifted away from org-mode.

    • Isaac Xin Pei

      tip of the day is a great idea!

  • dodgethesteamroller

    The most recent O’Reilly book on Emacs was the 3rd edition of _Learning Gnu Emacs_, which came out in 2004, and so much has changed since then. With the new resurgence of interest in Emacs over the past couple of years, I bet there’s a market for an Emacs Cookbook. This would overlap with much of the material on the Emacs Wiki, but since the latter is so disorganized and contains so much that is out of date, it’d be worth reorganizing and reediting it. Sacha, I think that sounds like a great job for you… why not send O’Reilly a book proposal?

    • Jonathan Magen

      I’d love to see an online edition edited by the community (perhaps as org-mode files on github) even if O’Reilly doesn’t want in on it!

      • http://sachachua.com sachac

        I like the idea of pouring most of that writing/editing energy into EmacsWiki or something similar, and then maybe repackaging parts of it as coherent e-books. =)

        • dodgethesteamroller

          No argument here–a greatly improved EmacsWiki would definitely help (both to promote Emacs to new users and to help out current users), as would some e-books on particular topics–but I still think there’s a market for dead trees. (Maybe I’m just old-fashioned.)

          • http://sachachua.com sachac

            Yup, the (as yet unwritten) e-books should be available from print-on-demand-type publishers (or maybe even proper publishers!). We’ll see! Must write first. =)

  • Jonathan Magen

    As a working Rails developer, I’d really love to see more focus on the Ruby/Rails community as Vim has gained plenty of traction there. In a room full of Ruby folks, only a few of them use Emacs but *many* use Vim or Sublime. I will gladly help out with this in any way I can.

    • jasonm23github

      I’d like to see rinari get some additional features (deteting / providing an interface to generators, rake tasks etc. would be pretty awesome)

      Also a few things like best practice patterns as YASnippets would also be cool.

      Note: the ruby-refactor package came out a few days ago on melpa, still need to check that out.