On Wed, May 20, 2009 at 19:30, Michael Schuerig <[email protected]> wrote:

> Hold your horses. Rails having no public API is a mis-statement of a
> very real shortcoming. As you point out, a public Application PI is
> there indeed. What's missing is a defined interface for people extending
> or otherwise hacking Rails.


There are two ways of thinking about what's an API:

   1. bunch of methods declared `public` which have some RDoc documentation
   so they appear on api.rubyonrails.org;
   2. an interface with strong conventions and multiple layers where each
   layer corresponds to one field of usage (Rails users, framework
   plugins/extensions, and component internals) and where there's some
   guarantee that some API will exist at least until version X.Y.

The problem with Rails versions up to now is there was no guarantee.
Versions 2.0 -> 2.1 -> 2.2 -> 2.3 have given and taken methods away
mercilessly, and people who wrote ActionPack hacks or ActiveRecord
associations plugins felt that hard. Yehuda Katz once said that Rails
thought in the old days that they don't need no extensions API, everyone can
monkeypatch everything. Time has shown that this is not true; you cannot
inject a feature with a monkeypatch if a target method is gone/renamed/moved
in the next release.

So this is what I think activists are talking about when they say "public
API": guarantee. Some level of security.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to