3 ms·
Tends to take 12 years for a programming language with traction to really take hold. Maybe 4-6 years for the language to reach maturity so long as it was well-d
by mrdoops 8y ago
Tends to take 12 years for a programming language with traction to really take hold. Maybe 4-6 years for the language to reach maturity so long as it was well-designed and implemented; given early adopter feedback is present. Smart Contracts are best served with a well-typed, highly safe, and formally verifiable language feature set. You need confidence that the smart contract will operate without error once deployed. Implementation-wise I expect the ideal smart contract language will have a robust typing system with functional programming defaults where state is largely immutable and highly explicit. Probably some variation of an ML language.
- xiphias2 8y agoCurrently the main contender for replacing Bitcoin Script / adding a new option is Simplicity (https://blockstream.com/simplicity.pdf https://blockstream.com/simplicity.pdf). Simplicity is a typed, combinator-based, functional language without loops and recursion, designed to be used for crypto-currencies and blockchain applications. It aims to improve upon existing crypto-currency languages, such as Bitcoin Script and Ethereum’s EVM, while avoiding some of the problems they face. Simplicity comes with formal denotational semantics defined in Coq, a popular, general purpose software proof assistant. Simplicity also includes operational semantics that are defined with an abstract machine that we call the Bit Machine. The Bit Machine is used as a tool for measuring the computational space and time resources needed to evaluate Simplicity programs. Owing to its Turing incompleteness, Simplicity is amenable to static analysis that can be used to derive upper bounds on the computational resources needed, prior to execution. While Turing incomplete, Simplicity can express any finitary function, which we believe is enough to build useful “smart contracts” for blockchain applications.
- root_axis 8y agoSuch languages won't make it far because the software they produce isn't really useful in industry or business. Whether or not there may be some future application for "dApps", currently none exist so there isn't much incentive for learning a dApp language (except pure curiosity about the platform) when you could learn a language that can produce useful software (e.g. Kotlin, Rust, Golang, C# etc)
- mrdoops 8y agoI disagree a smart contract language is without value to business - but I agree it's speculative and unclear at the moment. The best we can do is look at cloud platform and programming language maturation/adoption to get a feel for what a decentralized app platform will take in time and engineering effort. The idea being we're a few years at least before language and infrastructure can be mature enough to have value for most users beyond earliest of adopters. The other languages you've mentioned are much further along than any "dApp" platform at what they do. Decentralized application platforms like Ethereum are a new space with new requirements but, as far as I can tell, necessitate a new language to satisfy unique requirements. The hot-take is that Solidity is probably going to take some big changes to make it much further. I've not been impressed with it.
- root_axis 8y agoIt is useless at this time. There are no legal businesses that are now possible that weren't before the advent of cryptocurrency and criminal businesses still existed in the cash-only world (although they are easier to facilitate with cryptocurrency). > we're a few years at least before language and infrastructure can be mature enough to have value for most users beyond earliest of adopters There isn't really a clear explanation of why that would be the case. The bottom line is that smart contracts require a trusted oracle to feed data into the system, at that point, the advantages over a centralized system are essentially zero. There is no reason why anyone except enthusiasts, tinkerers and criminals would get involved.