Here I am, at the end of my E-journey. What have I learned? The existance of great ideas. I don’t really like E’s syntax but the ideas behind and beyond this language are great. The capability security model is stupid-proof and 100% secure. It’s a pity nobody uses it. As far as I know Palladium is [...]
Filed in Uncategorized
|
Also tagged
|
Capabilities E uses capability based security to supply both strong security and broad flexibility without incurring performance penalties. Capabilities might be thought of as the programming equivalent of physical keys E makes use of the Principle of Least Authority (POLA) to ensure that it gives no more authority that the other part needs. In the [...]
Filed in Uncategorized
|
Also tagged security
|
E programs never block. They never just sit and wait around for results. It this just a dream ?
Filed in Uncategorized
|
Also tagged
|
A promise is the result of an eventual send to an object: [code lang="javascript"] def carVow := makeCar <- ("Mercedes") carVow <- moveTo(2,3) [/code] “<-” is the eventual send operator. Now you can start making eventual sends to the promise as if it were the object itself. The “when-catch” clause is used to wait for [...]
Filed in Uncategorized
|
Also tagged
|
Friday, February 17, 2006
There’s no much to write about E’s concurrency model after you read this enlightment (from E in a Walnut): Multiple threads form the basis of conventional models of concurrent programming. Remarkably, human beings engage in concurrent distributed computing every day even though people are generally single threaded ([...]). How do we simple creatures pull off [...]
Filed in Uncategorized
|
Also tagged
|
Saturday, February 11, 2006
Since E sits on top of the JVM is capable of using quite everything the Java world exposes. Package access We can import a class from the underlying Java virtual machine with the import statement, and speak to the Java object much as we would speak to an E object [code lang="javascript"] create a single [...]
Filed in Uncategorized
|
Also tagged
|
Friday, February 10, 2006
E has three built-in data structures: lists, maps (hashtables) and sets. Each one comes in two flavors. Immutable (Const) and Mutable (Flex). Lists Lists are 0-indexed. You can use “+” for concatenation or the size() method to know the number of elements in the list. Keep in mind that the E String type is a [...]
Filed in Uncategorized
|
Also tagged
|
Tuesday, February 7, 2006
There’s nothing much to say about E’s input output. Since E sits on top of Java it uses the underline classes (mostly java.io.File) to do I/O. Insted of Java, E has a more human interface to the underline file system. [code lang="javascript"] file objects for hardwired files: def file1 := def file2 := [/code] In [...]
Filed in Uncategorized
|
Also tagged
|
Tuesday, February 7, 2006
Functions This is a basic recursive function: [code lang="javascript"] def factorial(n) { if (n == 0) { return 1 } else { return n * factorial(n-1) } } [/code] What I noticed (and found wierd) is that [code lang="javascript"] if (blah blah) {} else {} [/code] is a syntax error Remember to put the else [...]
Filed in Uncategorized
|
Also tagged
|
E ships with a command line interpreter, named rune useful to test scripts and examples. The configuration file also has the capability to save trace log where you want useful to examine errors separately to not clog the terminal window everytime. Basics E has variables (declared with var statement) and constants (declared with def). The [...]
Filed in Uncategorized
|
Also tagged
|