Can we be a little scientific about this discussion? Roy stipulates [1] the derivation of REST as:
Style = nil Style += Client/Server Style += Stateless Style += Caching (optional) Style += Uniform Interface Style += Layered System Style += Code on Demand (optional) So long as the architecture of your system falls within these constraints, your system can be considered RESTful. If your system breaches a constraint, it is isn't RESTful. There is no such thing as 'partially' RESTful [2] which doesn't mean that you can't relax the constraints [3] just don't call the resulting system RESTful. In my experience, the most frequently breached constraint in non-trivial systems is statelessness. The next most-often breached constraint is the uniform interface. This is entirely anecdotal. I don't have any numbers, but what is needed to clarify this discussion is an estimate of the number of systems without breached constraints. I have no idea which side of the current discussion this assists (if any). Regards, Alan Dean [1] http://tinyurl.com/56nrp8 (slide 40 onwards) [2] http://tinyurl.com/5e4ghv [3] http://tinyurl.com/6kojzx [see also] http://tinyurl.com/6qgcat [see also] http://delicious.com/alan.dean/rest+roy.fielding On Wed, Dec 3, 2008 at 8:32 PM, Steve Jones <[EMAIL PROTECTED]> wrote: > 2008/12/3 Nick Gall <[EMAIL PROTECTED]>: > >> On Wed, Dec 3, 2008 at 3:50 AM, Steve Jones <[EMAIL PROTECTED]> >> wrote: >>> Firstly I didn't write that slide (a chap at work called Ben Scowen >>> did) because I wanted to make sure I got a REST fan writing stuff >>> rather than a REST cynic, I'll pass on your comments. >> >> Somehow I had a feeling that someone other than you wrote that bullet. >> >>> Secondly the WWW is the biggest RESTful system out there... BUT as I >>> said in the voice over the majority of the Web _isn't_ implemented as >>> a REST. In theory WWW is _all_ RESTful but in practice it isn't (e.g. >>> >>> >>> http://www.heartratemonitor.co.uk/hrmselector/comparisontable_search_form4.php >>> should be a straight parametrised GET but is a POST and the "Search >>> Again" doesn't include the previously selected elements). >> >> I wholeheartedly agree that most websites that comprise the WWW aren't >> implemented in a fully RESTful way. We can leave the debate regarding what >> percentage for another day. My point is that even if the "vast vast >> majority" of websites aren't fully RESTful, that still means that >> some (perhaps tiny) percentage of websites are fully RESTful, and a >> somewhat >> greater percentage (but perhaps still a small minority) are at least >> partially RESTful. I think we agree on this (see below). >>> My point in the discussion with Mark is that most people (the vast >>> vast majority) do not implement Websites in a RESTful way, even though >>> WWW is inherently RESTful by its Fielding definition. >> Again, no need to quibble about percentages, for the sake of the point >> I'll >> make below, let's agree that the "vast vast majority" of people do NOT >> implement websites in a fully RESTful way. But let's also agree that at >> least some tiny percentage DO implement websites in a substantially or >> wholly RESTful way. >>> Not really a contradiction its a question of theory v practice, in >>> theory Mark is right, in practice I am ;) >> >> Ahhh... but there still is a bit of contradiction left. Though we all now >> roughly agree that the websites that compose the WWW mostly fall short of >> full REST compliance, and that most of those that fall short fall WAY >> short, >> this still means that a small, but significant set of websites do >> exemplify >> the REST style. But that's not what you said in the post I quoted: >>> > 'Your references are about purely websites, this has NOTHING to do with >>> > proving your statement on REST adoption being in the "millions".' >> >> My problem with this statement is your use of all caps "NOTHING" in your >> assertion. If you had said, "almost nothing", or "virtually nothing", or >> "very little", etc. there wouldn't be a contradiction. Maybe its just me, >> but when I read "NOTHING" in all caps, I take that to mean absolutely, >> positively, CATEGORICALLY nothing with no exceptions or degrees >> whatsoever. > > The context here was the Mark said this this was "all" the evidence he > needed in terms of REST adoption. That reference has NOTHING to do > with proving the statement in the millions its like a Chinese > Economist piece..... more on that concept in a bit. > >> But given our agreement that at least some websites of the WWW are >> substantially or wholly RESTful, this means that Mark's reference to >> "purely >> websites" has at least something to do with "REST adoption being in the >> 'millions'". That was my point in my email raising the issue. >> Now this is not to say that the fact that SOME websites are RESTful makes >> Mark's case that REST has been adopted by "millions". We'd have to go out >> and count the number of websites we considered RESTful enough to count. >> But, >> it does mean that your claim that such websites have "NOTHING" to do with >> REST adoption cannot be reconciled with your apparent admission that at >> least some websites are implemented RESTfully. >> I say apparent because you never come out and directly state this. > > I'm sure lots do, not sure how many are 100% compliant with everything > though (e.g. the Yahoo and Google APIs have been said by some to be > not 100% RESTful). Hell we've got some pretty massive REST stuff on > the Webside at work (and I mean MASSIVE). > >> You >> simply said things such as "most people (the vast vast majority) do not >> implement Websites in a RESTful way". This implies that you agree that at >> least a minority DO implement Websites in a RESTful way." >> So Mark's counting of such websites towards his goal of "millions" of >> RESTful developers did indeed have SOMETHING to do with the issue of how >> many RESTful developers there are in the world. > > But from a statistics point of view this is just Chinese Economics. > This is the argument that says "there are billions of people in China > and some must do X therefore given its from a billion its must be > millions". > > Statistically the concept that "millions of developers" do REST > (specifically the Hypermedia...engine....state bit) can NOT be > inferred from the statement that SOME people who have created SOME of > the pages have done it that way. Its statistically a completely and > utterly pointless thing to claim as you cannot in any way shape or > form get between the pages and the developers and certainly not to the > numbers of developers. > >> Accordingly, to >> categorically exclude (via the use of "NOTHING") such RESTful websites >> from >> attempts to estimate the number of RESTful developers is wrong. > > It is absolutely and utterly wrong to do that from a statistical > perspective, the two sets of data (Pages and developers) are disjoint > and there is no defined overlap between them that enables you to reach > any meaningful conclusions especially at the level of "millions" > (which given that Java often claims "only" 3-5 million developers is a > ruddy big number). > > It was just as wrong as the ridiculous use of "number of HTTP > requests" to indicate REST usage. This would be like measuring the > number of characters on the web and using that to indicate the number > of people who speak in an obscure regional dialect that happens to use > the standard ASCII character set is in the "millions". Its like > saying that as there are Billions of Muslims in the world and that > _some_ of them are terrorists that therefore there are millions of > terrorists. > > If he'd done something like taking a reference set of developers and > said that x% of them had done proper REST and then scaled that by the > number of global developers it would at least have been a reasonable > way of sampling the population. > > Its bad stats, its even bad set theory, its plain bad maths. > >> I hope you agree that if and when we ever do get around to estimating the >> number of RESTful designers/developers we can justifiably include in that >> count some number of website designers, not just >> application-to-application >> interface designers. > > We can, with the proviso that they aren't of course fulling doing REST > as they can't do PUT or DELETE from the browser. I've fairly regularly > said that for the Website interaction side that I get the REST point, > its always been on the A2A/B2B that I've had the issue and its there > that I tend to find myself most of my working life. > > Steve > > Steve > >> -- Nick >>> 2008/12/2 Nick Gall <[EMAIL PROTECTED]>: >>> >>> > On Tue, Dec 2, 2008 at 7:02 AM, Gervas Douglas >>> > <[EMAIL PROTECTED]> >>> > wrote: >>> >> >>> >> <<So last week at AdobeMAX I did my first public presentation on doing >>> >> REST and SOA together. Thanks to Duane for that and to the person who >>> >> dropped out leaving me with the baby :) >>> > >>> > Steve, I'm going through the slides right now. So far they are >>> > excellent. >>> > This particular bullet on slide 22 caught my eye: >>> > "The World Wide Web is therefore inherently RESTful and the largest >>> > example >>> > of a REST based system." >>> > Amen to that brother! That reminded me of the debate Steve and Mark had >>> > back >>> > in early November. In one post >>> > ( >>> > >>> > http://tech.groups.yahoo.com/group/service-orientated-architecture/message/11892 >>> > ), >>> > Steve asserted: >>> > 'Your references are about purely websites, this has NOTHING to do >>> > with proving your statement on REST adoption being in the "millions".' >>> > In my mind, saying the WWW is inherently RESTful and is the largest >>> > example >>> > of a REST-based system strongly implies that Mark's references to >>> > websites, >>> > which are what make up the WWW after all, has at least SOMETHING to do >>> > with >>> > REST adoption. >>> > How could all these web site designers/developers have contributed to >>> > the >>> > emergence of the WWW -- the largest example of a REST-based system -- >>> > without in some way "adopting" or implementing REST? It seems quite >>> > strange >>> > to say that all the world's web site designers/developers were ignoring >>> > REST >>> > yet from all these ignorant efforts the WWW emerged as "inherently >>> > RESTful." >>> > Steve, could you please reconcile these two statement? >>> > -- Nick >>> > >>> >>> >> >> >> -- >> Nick Gall >> Phone: +1.781.608.5871 >> AOL IM: Nicholas Gall >> Yahoo IM: nick_gall_1117 >> MSN IM: (same as email) >> Google Talk: (same as email) >> Email: nick.gall AT-SIGN gmail DOT com >> Weblog: http://ironick.typepad.com/ironick/ >> > >
