<br><div class="gmail_quote">2011/2/5 Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sat, 5 Feb 2011, Igor Stasenko wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 5 February 2011 00:53, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Sat, 5 Feb 2011, Igor Stasenko wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 5 February 2011 00:12, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Fri, 4 Feb 2011, Luc Fabresse wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yes, but hopefully we will be SocketPlugin free.<br>
</blockquote>
<br>
Is SocketPlugin buggy?<br>
If yes, where&#39;s the bug report?<br>
If not, what&#39;s the problem with it?<br>
<br>
</blockquote>
Just one: it is highly resistant to evolution and changes. As well as<br>
everything else in VM.<br>
</blockquote>
<br>
Does the Socket API change often? No. I&#39;m sure all my 10 years old network<br>
code (written in C) would compile and run on the first try.<br>
<br>
</blockquote>
<br>
I can tell you more:<br>
Does C syntax changes often? No. So, then why there so many silly<br>
people wasting their time writing own compilers for it?<br>
Or why people inventing new languages? Isn&#39;t C enough? :)<br>
</blockquote>
<br></div>
Why do you compare APIs wrapping the OS&#39;s socket API to programming languages? I don&#39;t see how is the two similar at all.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Levente, when is the last time you checked the meaning of word<br>
&#39;development&#39; in dictionary?<br>
</blockquote>
<br></div>
I can tell you what&#39;s not developement: Throwing away working solutions without a reason, then writing something similar. That&#39;s reinventing the wheel + optional NIH syndrome.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
At the end, &quot;There can be only one&quot; (FFI or Alien or NB or a better one)<br>
;-)<br>
IMHO, plugins are a pain to understand, maintain, integrate in the<br>
latest<br>
VM...<br>
so let&#39;s kill them as much as possible.<br>
</blockquote>
<br>
Maintaining SocketPlugin (or reimplementing for a new plaform) is a lot<br>
easier than doing the same with FFI or Alien.<br>
</blockquote>
<br>
I wouldn&#39;t say so.<br>
</blockquote>
<br>
Why?<br>
<br>
</blockquote>
<br>
Because coding in smalltalk much easier than in C.<br>
Including cases, when you need to communicate with external library using C ABI.<br>
<br>
Otherwise, why would i be sitting here? And why VM written in<br>
smalltalk?.. For same reason, bro :)<br>
</blockquote>
<br></div>
That&#39;s not an anwser to my question, but I see your point.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Couldn&#39;t you reimplement SocketPlugin from scratch without looking at the<br>
current implementation in at most a few days? I could, so I&#39;m sure you could<br>
do that too. The same is not true for FFI or Alien (at least not for me).<br>
<br>
</blockquote>
<br>
So you have something to learn left in this world :)<br>
</blockquote>
<br></div>
Lol...<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Eliot&#39;s threaded FFI plugin is<br>
very complex compared to (the pretty simple) SocketPlugin.<br>
<br>
<br>
</blockquote>
It could be simple too. But just not fast enough :)<br>
There&#39;s always a lot of tradeoffs to consider.<br>
</blockquote>
<br>
It could be, but it&#39;s not.<br>
<br>
</blockquote>
<br>
You will never know if you don&#39;t try.<br>
</blockquote>
<br></div>
I&#39;m talking about Eliot&#39;s FFI implementation, while you&#39;re talking about something else.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
And besides, what is your point?<br>
People learning network by implementing own network layer. Exploring<br>
something new and trying to adopt design<br>
to their own vision/mindset.<br>
</blockquote>
<br></div>
There&#39;s nothing wrong with that, until they don&#39;t start saying that the plugin sucks without telling what&#39;s the problem with it.</blockquote><div><br></div><div><br></div><div>Hi Levente,</div><div><br></div>
<div> Why I am doing Ocean  with Noury is:</div><div><br></div><div> 1) Network never worked fine for me (NetNameResolver ,...). The API (Image side) is not OO (All concerns in Socket: IPV4, IPV6, TCD, UDP, ...). </div><div>
We first try to write unit tests and then we planned to redesign the API. But it implies to understand well the primitives and it is not EASY at all. Some are said old in comments (IPV4 primitives?), some are new  (IPV6?),... So it is a too HARD to understand this code without doc or  explanations (and you are right I am also a poor newbie).</div>
<div><br></div><div> 2)  I do not want to hear this sentence anymore: &quot;Oh yes, you use a VM with an old version of the socket plugin. You should recompile the VM.&quot; </div><div>NO! I CAN&#39;T DO THAT BECAUSE (until recently) RECOMPILING THE VM REQUIRE DEEP KNOWLEDGE AND SOME BLACK MAGIC. (Thanks to Igor, Esteban and all others to prepare a simple process for newbies like me such as checkout and compile).  </div>
<div><br></div><div> 3) Ocean idea: pull up the network stuff on the image side. use an FFI to call OS libs. With this approach I am able to: load new versions of the network without changing the VM, in the future directly call the new OS API (Grand Central on OSX for asynchronous sockets, --yes network libs evolve--...), write more high level code and it is  a little bit easier to debug it.    </div>
<div><br></div><div> Ocean is our vision, perhaps it is wrong but I can not do better.</div><div> It is not as complete as the plugin yet. </div><div> We also plan to use either Alien+OS lib or the plugin as a backend for Ocean so the plugin will still be there at the end for those who want it.</div>
<div> And for this last part, we will certainly need some explanations on the primitives in SocketPlugin code. So if you know it well, feel free to educate me.</div><div><br></div><div>#Luc</div><div><br></div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Now you came and saying &quot;you are on the losing side, because A, B, C&quot;..<br>
Do, you think people should learn SocketPlugin instead? Been there did<br>
that. Frankly, don&#39;t want to touch it again or teach people about it.<br>
I seen much more cleaner and robust socket library OO wrappers. Not in<br>
smalltalk though.<br>
</blockquote>
<br></div>
And you&#39;re doing the same now. You say it sucks, but you don&#39;t tell what&#39;s wrong with it.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
P.S. Don&#39;t take me wrong. Yes there is a lot to learn from<br>
SocketPlugin. But you would better spend time learning/reading other<br>
</blockquote>
<br></div>
I didn&#39;t say that anyone should learn from SocketPlugin. Forget the plugin. People should learn how the API works that SocketPlugin provides. Not many people know how to use it according to my earlier discussions on this list about networking.<div class="im">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
well written and well documented multithreaded library for serving<br>
socket connections.<br>
</blockquote>
<br></div>
Without pointing to those better libraries and the things they do better than the current solution, this is just an empty phrase.<br><font color="#888888">
<br>
<br>
Levente</font><div><div></div><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Levente<br>
<br>
</blockquote>
<br>
<br>
-- <br>
Best regards,<br>
Igor Stasenko AKA sig.<br>
<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br>