Obsidian: A safer blockchain programming language
obsidian-lang.com
obsidian-lang.com
What you are looking for is not in scope for this publication. Keep in mind that this is an academic project.
main contract Policy {
state Offered {
int cost ;
int expirationTime ;
}
state Active {}
state Expired {}
Policy@Offered ( int c , int expTime ) {
-> Offered ( cost = c , expirationTime = expTime );
}
transaction activate ( Policy@Offered >> Active this ) {
-> Active ;
}
transaction expire ( Policy@Offered >> Expired this ) {
-> Expired ;
}
}The big 4 public dapp blockchains use C++, Solidity and JavaScript. I can't imagine C++ and Solidity is okay. IOST went with JavaScript and the V8 engine for it's smart contracts. That seems the most reasonable as they can leverage a massive amount of JavaScript code.
Will be interesting once people realize they have a way to monetize webapps with a browser extension/wallet. Just think about all the web based JavaScript games that died because no way to monetize. Someone should be porting those over.
Plus, it took IOST only 8 weeks to passed up ETH in total number of blockchain transactions. ETH was launched back in June 2015. IOST has a fast ass blockchain.
Also see a draft paper: http://obsidian-lang.com/obsidian-oopsla-19-submitted.pdf
On the other hand, three things make this hard for me to dig into and get a real opinion: no sample code, so I have no idea if I like the way the authors are going at it, no argument as to why this is not just a solidity extension, and the compiler seems to need java.
It’s my day job to track stuff like this, but I will probably pass until one of those three improves
Looks like it's written in Scala, which is in the realm of ML and quite nice for compilers.
Maybe they could compile w/Scala Native to get rid of the Java dependency? I am not up to speed w/the status of Scala Native or if this project has JVM-specific dependencies though - just a thought :)
How bout you recognize customers entitlement to what's left of their deposits?
You are garbage made flesh.
The last line was unnecessary to get your point across and against HN guidelines.
"We will target business students and business analysts with limited programming experience, in order to collect data from the intended user base of Obsidian." http://www.cs.cmu.edu/~NatProg/papers/barnaby17%20-%20Obsidi...
In another paper they reveal they're also writing an IDE for this, overseen by some PhDs in 'human-computer interaction' so it should be simple to use though I find piles of complexity added by classes/methods the exact opposite of simple.
I mean, the model of your objects calling methods on other objects (that you don’t control)—and having your methods called by those same objects in turn—is inherent in the abstract machine being programmed for. You don’t have to use express the internals of your program as classes and methods, but that’s how people are going to see your contract “from the outside”, and that’s also how you’re going to have to interact with other contracts.