<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto">RPC predates NSProxy. The "type-safe" version of RPC was CORBA: anybody here use that? <div><br></div><div>Then there was XML-RPC and then SOAP. </div><div><br></div><div>The most popular version of RPC is HTTP + JSON, because http isn't blocked at network boundaries and because JSON was friendly to JavaScript in the browser.</div><div><br></div><div>So... Typesafe lost, stringly-typed won.<br><br><div id="AppleMailSignature"><span style="background-color: rgba(255, 255, 255, 0);">--<br>C. Keith Ray</span><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">* <a href="https://leanpub.com/wepntk">https://leanpub.com/wepntk</a> <- buy my book?<br>* </span><a href="http://www.thirdfoundationsw.com/keith_ray_resume_2014_long.pdf">http://www.thirdfoundationsw.com/keith_ray_resume_2014_long.pdf</a><span style="background-color: rgba(255, 255, 255, 0);"><br>* <a href="http://agilesolutionspace.blogspot.com/">http://agilesolutionspace.blogspot.com/</a></span></div></div><div><br>On Dec 7, 2017, at 7:39 AM, Gwendal Roué <<a href="mailto:gwendal.roue@gmail.com">gwendal.roue@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><br class=""><div><blockquote type="cite" class=""><div class="">Le 7 déc. 2017 à 16:33, C. Keith Ray via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Let's see what disasters were created by people abusing NSProxy, the ObjC moral equivalent of a dynamic member lookup type.</span><div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">I'm not aware of anything.<br class=""></div></div></blockquote></div><div class=""><br class=""></div><div class="">I'm sure you are ;-)</div><br class=""><div class="">I'm not expert at all of early ObjC... But wasn't NSProxy the base of good-old-times RPC?</div><div class=""><br class=""></div><div class="">OK, in 2017 we know that RPC is dangerous. For example, when `() -> Int` relies on a network call, it's almost impossible to handle errors.</div><div class=""><br class=""></div><div class="">But still, is it because an API can be used for bad things that an API is bad?</div><div class=""><br class=""></div><div class="">Gwendal</div><div class=""><br class=""></div></div></blockquote></div></body></html>