![]() ![]() Many people, including myself, would consider Lisp to be profoundly beautiful, for example, perhaps even on multiple levels. I'm thinking of things like universal Turing machines, the lambda calculi, type theory, the structured programming theorem, theories of concurrent, parallel, and/or distributed computation, automata theory, computability theory, complexity/tractability, universal/abstract algebra, relational algebra, unification, etc., but the elegance doesn't end where the theory ends. Computing is underpinned by lines of theory whose fundamentals can legitimately be described as elegant or even beautiful. Even Berkeley sockets were once introduced by an OS that was already old enough to be licensed to drive.Īlso, I disagree that all of computing is built upon nothing but hacks. ![]() I also don't think stable software is prohibited from continued evolution-obvious examples include the common open-source Unix-like OSs, many of which have been stable for years, yet have continued to evolve new features like loadable kernel modules, direct rendering interfaces, network firewalls, containers/jails/zones, nifty file system improvements, etc. Something can be 30 years old yet still be better than any of its alternatives, even in our field where obsolescence is a fact of life. Even if there had been major advances, I don't see anything inherently bad or wrong about oldness conversely, I don't see anything inherently good about newness. Our field is young, and there haven't been any major advances in the way programming is done for the last 25 years or so. I don't have any problem using old stuff that worked 10 years ago. The current solution provides a nicer out of the box API, but supporting it outside of the browser is hard. Anybody who would have needed it could still be able to implement streams and multiplexing on top of it on server and client(JS) side. I think the situation might be different if WebRTC data channels would only have standardized a UDP or possibly encrypted UDP. For the latter one the performance might even reach WebRTC data channel performance if QUIC gets standardized and widely deployed. Therefore getting this to work is a serious effort, and anybody who approaches it must ask himself if the effort is justified or if Websockets and HTTP streaming are not good enough. Imho neither of those even support the required DTLS encryption in the (extended) standard libraries, and there are also no libraries for SCTP on top of UDP around. However for this most of the required subcomponents are missing. The alternative solution would be to develop a pure Go/.NET core/Java/etc. The other downside is that it's not only big but a native dependency, which I and other people want to avoid wherever possible in non C/C++ land. However one downside is that it's a big dependency with which a lot of people might be uncomfortable bringing in (although you say you are working on making it smaller). The most reasonable way to get WebRTC support seems like integrating Googles native WebRTC library. It's not something you want to implement or understand fully on your own within a reasonable amount of time (like you could do with WebSockets). However from the pure engineering side things don't look so great for the reasons Matheus28 already mentioned: WebRTC (even data channels only) is a big stack of massive complexity. From a system design perspective it looks good, since it can provide lots of concurrent flow controlled streams (like HTTP/2) with a potentially lower latency. I also played with the idea of using WebRTC data channels for client server applications. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |