This is a collection of ideas for Emacs features which could be implemented with crowdfunding.



= Why crowdfunding? =

Currently, Emacs is developed in a volunteer model: people work in their freetime on features and they are not paid for their work. This model works, Emacs is being developed. The problem is some features are not implemented in this model, because they either take too much time or effort to implement properly, so it's not enough to work on them in one's free time.

The solution is crowdfunding. A developer proposes to implement a feature, describes what he wants to implement, how much time he needs and how much compensation he requires to do it in order to make a living while he's working on the feature. The users who are interested in the feature and want it to be implemented pledge money for the cause if they trust the developer (so the developer is better be somebody who can show some credentials, previous projects to prove he can do the job). If enough money is pledged and the funding goal is met then the developer can start working on the feature preferably with regular updates to let the users know about the progress of the project. If not enough money is pledged then the money is refunded to the users.

Emacs has lots of users and there are missing features which lots of users would love to see implemented, so this development model may work for Emacs too. For a discussion of this model see [http://thread.gmane.org/gmane.emacs.devel/149738 this thread] and  [http://thread.gmane.org/gmane.emacs.devel/149916 this one].


= What are these crowdfunding sites? =


There are several:

* [http://www.kickstarter.com/ Kickstarter] (the best known)
* [http://www.indiegogo.com/ IndieGogo]
* and [http://en.wikipedia.org/wiki/Category:Crowd_funding others] (feel free to list other sites here if you know about them).



= What are those missing features which people want? =


Is there something you miss from Emacs? Then feel free to list it here, so potential developers have a list of wanted features to choose from.  The main criteria for such a feature that it should be wanted by lots of people, so a crowdfunding project for the feature can be successful.

The list below is only an example. Add your own features and add subfeatures to the existing ones if you have more/better ideas. You can also pick suitable candidates from the WishList and put them here.

== Coding support ==

=== Java ===
* Eclipse-like [http://goo.gl/mJf7o QuickAssist].
* Eclipse-like [http://goo.gl/tYnc1 QuickFix]
* Eclipse-like [http://goo.gl/9k3ld overriding/implementing methods]
* Make java-mode aware of generics for syntax highlighting

=== Common Lisp ===

* Completely rewrite Emacs in Common Lisp instead of C+Elisp.


=== Guile ===

* Get Emacs to run on the Guile VM +1
** This would speed up Emacs Lisp and allow other languages to be used instead of Emacs Lisp. How can we get this costed out, or otherwise get an estimate on how much we would need to raise to "Kickstart" this project?
* [http://kck.st/IY0Bau Emacsy is a kickstarter project] for a Guile library that provides Emacs-like facilities--keymaps, minibuffer, tab completion, recordable macros, and major/minor modes--for applications natively.     

=== FFI ===

* Provide a FFI so that we can use external libraries from lisp without having to patch the C code.  Notice: if rewritten in Common Lisp then we don't need this item since it comes for free with CL implementations.

=== Graphics ===

* Provide a more versatile emacs windowing system, including interactive graphical windows.  This would allow us to implement modes managing windows like in http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/.  Notice: if rewritten in Common Lisp then we could implement it in CL, without having to write low-level graphic and windowing primitives in C.

=== Org Mode ===

* Reliable Google Calendar/caldav sync support
* Export to Microsoft Word

This is already possible.  

First you export the Orgfile to OpenDocument format (This is the native format used by LibreOffice).  Then you use LibreOffice to convert it to doc or docx format.  See http://orgmode.org/manual/ODT-export-commands.html and http://orgmode.org/manual/Extending-ODT-export.html#x-export-to-other-formats.

This feature is available as part of Emacs-24.1.

=== Terminal Emulation ===

* More work on EShell or better terminal emulation.

== add more features here ==

* Regular Expressions: provide Perl regex syntax, possibly migrating/interfacing to CL-PPCRE (http://weitz.de/cl-ppcre)
** A possible solution for this one is here: https://github.com/joddie/pcre2el 

* turn emacs into full fledged web browser using webkit.

* log all emacs command invocations to a file or sql database - for life metrics/analysis purposes - to create predictive ai assistant
** There is command-frequency.el and keyfreq.el.  They are both on marmalade.

* Fix the slowness with subprocesses on OS X.

* Better PDF support - e.g. copy text, highlighting text - would be really useful for research scientists.
