TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

E Programming Language

113 pointsby greencorealmost 6 years ago

14 comments

kentonvalmost 6 years ago
I&#x27;m always astounded by the depth to which Mark has explored this space. On more than a few occasions, I&#x27;ve come up with an interesting idea for a new protocol or programming language feature or piece of distributed systems infrastructure and told Mark about it, only to find he had already thought of that problem and discovered and solved several issues I hadn&#x27;t even thought about yet.<p>Cap&#x27;n Proto RPC (<a href="https:&#x2F;&#x2F;capnproto.org&#x2F;rpc.html" rel="nofollow">https:&#x2F;&#x2F;capnproto.org&#x2F;rpc.html</a>) is based on E&#x27;s network protocol, CapTP, e.g. utilizing The Four Tables:<p><a href="http:&#x2F;&#x2F;erights.org&#x2F;elib&#x2F;distrib&#x2F;captp&#x2F;4tables.html" rel="nofollow">http:&#x2F;&#x2F;erights.org&#x2F;elib&#x2F;distrib&#x2F;captp&#x2F;4tables.html</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;capnproto&#x2F;capnproto&#x2F;blob&#x2F;master&#x2F;c++&#x2F;src&#x2F;capnp&#x2F;rpc.capnp#L116" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;capnproto&#x2F;capnproto&#x2F;blob&#x2F;master&#x2F;c++&#x2F;src&#x2F;c...</a><p>(You can think of this design as an extension of the file descriptor table concept in Unix, except that both sides may export descriptors to the other side (so that calls can flow either way), and either side can be responsible for assigning the numeric descriptor value for any particular description (which makes it easier to compensate for a high-latency transport).)<p>When I first told Mark I was working on an object-oriented RPC protocol, he insisted I visit him and listen while he explained all this to me, and boy am I glad he did... would have taken a lot longer for me to figure it out myself.<p>It&#x27;s crazy that most of the content of erights.org was written over 10 years ago -- I think some of it goes back to the 90&#x27;s, even.
评论 #19987915 未加载
abecedariusalmost 6 years ago
There&#x27;s an active remake of E with a different syntax and new implementation: <a href="https:&#x2F;&#x2F;monte.readthedocs.io&#x2F;en&#x2F;latest&#x2F;" rel="nofollow">https:&#x2F;&#x2F;monte.readthedocs.io&#x2F;en&#x2F;latest&#x2F;</a> (I guess it&#x27;ll have other language changes too -- that was just what I took away from my read over the docs.)
评论 #19988179 未加载
评论 #19987779 未加载
评论 #19987123 未加载
joe_the_useralmost 6 years ago
&quot;A smart contract is written in program code, in which the logic of the program&#x27;s execution enforce the terms of the contract. Smart contracts reduce costs by orders of magnitude, leading to a more cooperative world.&quot;<p>A. Most written and oral contracts aren&#x27;t terrible expensive, especially when there is no disagreement between parties. I want to rent a property, I sign a lease and obey its terms. There&#x27;s no extra cost unless there&#x27;s some disagreement.<p>B. The situation where there is disagreement between parties is where things can get sticky. But with &quot;smart contracts&quot; being just <i>automatically executing contracts</i>, I can&#x27;t see any way they really solve the problem. A smart contract can&#x27;t by itself verify that goods are delivered, that the landlord has maintained a habitable space or that I am not destroying the property - except with third parties, who may be reliable but aren&#x27;t automatically reliable and are something an ordinary contract can employ.<p>C. The legal system now actually takes into account the degree of sophistication of the parties involved in a contract. Contracts that tend to effect legally naive, average people generally don&#x27;t allow <i>unconsciable</i> terms[1]. On the other hand, in most sophisticated markets nearly everything can be up for grabs. Which is to say the legal system provides a significant umbrella of protection for most people. Contracts that automatically execute would rip that away - except they wouldn&#x27;t, because the legal system isn&#x27;t going away any time soon. A person&#x27;s ability to create and enforce a &quot;smart contract&quot;, an automatically executing financial effect, is limited to what is ... legal. However automatic your effect is, you will find lawyers involved if your effect also isn&#x27;t legal.<p>[1] <a href="https:&#x2F;&#x2F;legal-dictionary.thefreedictionary.com&#x2F;unconscionable" rel="nofollow">https:&#x2F;&#x2F;legal-dictionary.thefreedictionary.com&#x2F;unconscionabl...</a>
评论 #19989958 未加载
infomineralmost 6 years ago
Related resources:<p>Lambda-the-Ultimate: &quot;A Next Generation Smart Contract and Decentralized Application Platform&quot;, Vitalik Buterin. - <a href="http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;node&#x2F;5003#comment-94645" rel="nofollow">http:&#x2F;&#x2F;lambda-the-ultimate.org&#x2F;node&#x2F;5003#comment-94645</a><p>Mark Miller: Agoric and the Decades-Long Quest for Secure Smart Contracts. <a href="https:&#x2F;&#x2F;letstalkbitcoin.com&#x2F;blog&#x2F;post&#x2F;epicenter-mark-miller-agoric-and-the-decadeslong-quest-for-secure-smart-contracts" rel="nofollow">https:&#x2F;&#x2F;letstalkbitcoin.com&#x2F;blog&#x2F;post&#x2F;epicenter-mark-miller-...</a><p><a href="https:&#x2F;&#x2F;agoric.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;agoric.com&#x2F;</a><p><a href="https:&#x2F;&#x2F;infominer.id&#x2F;bitcoin-history&#x2F;smart-contracts&#x2F;" rel="nofollow">https:&#x2F;&#x2F;infominer.id&#x2F;bitcoin-history&#x2F;smart-contracts&#x2F;</a>
7373737373almost 6 years ago
Modern smart contract systems should learn a lesson or five from it, most importantly, (object) capability security.<p>Why? Because it lets programs handle permissions like other objects, keeping them apart and thus reducing the attack surface and preventing Confused Deputy [0] attacks.<p><a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Confused_deputy_problem" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Confused_deputy_problem</a>
xtagonalmost 6 years ago
Not being too familiar with Smart Contracts, it was nice to see the simple summary included.<p>&gt;A contract is a mutually agreeable arrangement of rules among mutually suspicious parties so they may cooperate with limited risks to each other&#x27;s mischief. It is a game both are willing to play because both expect to win. &gt; &gt;A conventional contract is passive paper interpreted at great expense by lawyers and courts. &gt; &gt;A smart contract is written in program code, in which the logic of the program&#x27;s execution enforce the terms of the contract. Smart contracts reduce costs by orders of magnitude, leading to a more cooperative world.<p>Can anyone recommend a good link to start learning more about smart contacts and how they are used in specific real-world examples? Most of what I&#x27;m finding reads as very general&#x2F;theoretical.
评论 #19990063 未加载
评论 #19987631 未加载
azhenleyalmost 6 years ago
Their domain name is listed for sale for $1,000,000 according to the link at the bottom of the page. Does that mean this project is dead or are they just amenable to changing the project&#x27;s domain?<p>I would imagine at that price point that <i>any</i> domain is at least negotiable, so why list it?
评论 #19986092 未加载
评论 #19987680 未加载
ghosthamletalmost 6 years ago
The E on Common Lisp Project website is down, code on github: <a href="https:&#x2F;&#x2F;github.com&#x2F;kpreid&#x2F;e-on-cl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kpreid&#x2F;e-on-cl</a><p>e-on-javascript: <a href="https:&#x2F;&#x2F;github.com&#x2F;kpreid&#x2F;e-on-javascript" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kpreid&#x2F;e-on-javascript</a>
anaphoralmost 6 years ago
If you&#x27;re interested in E and Object Capabilities (ocaps) in general, I <i>highly</i> recommend reading this essay:<p><a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20190423063056&#x2F;http:&#x2F;&#x2F;habitatchronicles.com&#x2F;2017&#x2F;05&#x2F;what-are-capabilities&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20190423063056&#x2F;http:&#x2F;&#x2F;habitatchr...</a><p>I found it really enlightening, and it isn&#x27;t an exaggeration to say that learning about ocaps kind of changed the entire way I look at building or using software.<p>To my knowledge, E (and similar languages like Monte and Pony), are basically the embodiment of what Object-Oriented Programming was <i>supposed to be</i>.<p>You may have heard about how the actor model is really OOP in its purest form, because it&#x27;s really all about passing messages between isolated objects or processes. The creator of Erlang (Joe Armstrong) even said something about how Erlang was at its heart really object-oriented[1].<p>This is what languages like E, Monte, and Pony are trying to encapsulate and design the entire language around. This idea of isolating everything, and controlling access purely by controlling how references to other pieces of data are shared amongst said isolated processes.<p>Why is this so important?<p>Because we&#x27;re building programs more and more to be distributed. Users expect that they will be able to easily and securely share things with each other, and be able to collaborate in a distributed way. This is exactly what tools like google drive, slack, twitter, and so on are all trying to do, and most of them do it badly in my humble opinion. Nobody wants to spend hours managing permissions and access roles on a whole suite of services.<p>The model that languages like E are built on solves that problem and makes it trivial to manage access and permissions at a ridiculously fine-grained level.<p>[1] <a href="https:&#x2F;&#x2F;www.infoq.com&#x2F;interviews&#x2F;johnson-armstrong-oop&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.infoq.com&#x2F;interviews&#x2F;johnson-armstrong-oop&#x2F;</a><p>Salient quote from above<p>&gt; Then, my thesis supervisor said &quot;But you&#x27;re wrong, Erlang is extremely object oriented&quot;. He said object oriented languages aren&#x27;t object oriented. I might think, though I&#x27;m not quite sure if I believe this or not, but Erlang might be the only object oriented language because the 3 tenets of object oriented programming are that it&#x27;s based on message passing, that you have isolation between objects and have polymorphism.
评论 #19988448 未加载
blackflame7000almost 6 years ago
Could someone explain the difference between a programming language and a framework? I’m confused how a programming language can be implemented in java or lisp. Doesn’t that just make it a java&#x2F;lisp framework?
评论 #19986074 未加载
评论 #19986259 未加载
评论 #19986084 未加载
评论 #19986005 未加载
评论 #19986185 未加载
SergeAxalmost 6 years ago
List of available letters for programming languages: H, U, V, W, Y<p>Tenatively available: G - because of G-code and Go, I - because of Io, L - because of LLL, N - because of Nu, O - because of Oz<p>edit: formatting
amaialmost 6 years ago
Anyone remembers <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Amiga_E" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Amiga_E</a> ?
评论 #19992024 未加载
ineedasernamealmost 6 years ago
We got as far as S, then it took a step backwards to R. Now back to E? It seems like language Z is perpetually ten years away, and always will be.
评论 #19987539 未加载
hosejaalmost 6 years ago
So, a general Stacksort? <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;1185&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;1185&#x2F;</a>