Smart Contract programming language solidity
Solidity is the first language to describe smart contracts. Currently is the most popular language, so there are also the most examples, documentation, and tutorials. You should learn this, unless you have to learn other reasons.
You can use the browser-based remix IDE for quick validation.
The following is a solidity contract:
pragma solidity^0.4.11;Contract Basictoken{ Mapping(Address=uint256) Balances; function Transfer(Address _to,uint256 _value)returns(){balances[msg.Sender]=balances[msg.Sender]-_value;BALANCES[_TO]=BALANCES[_TO]+_value; } function balanceof(address _owner) constantreturns(uint256 balance){ returnBalances[_owner]; }}
LLL
LLL is a LISP-style underlying programming language, as the language name sees it. Although the Ethereum authorities did not use it as a major need to support the language, it continues to be updated and is in the same repository as the solidity.
This is a contract for a ERC20 token written in LLL language, Link: https://github.com/benjaminion/LLL_erc20/blob/ 1c659e890e2b30408555b9467a8dfd8988211b3b/erc20.lll
If you are learning, it may not be easy to get used to the LLL language.
Serpent
Serpent is a high-level language of the Python class and will eventually be compiled into the EVM bytecode. It is mainly used by the augur team.
But recently Zeppelin solution team found that its compiler has a serious bug, Link: https://blog.zeppelin.solutions/ serpent-compiler-audit-3095d1257929 is not recommended for continued use until this issue is fixed.
If you are interested in how augur solves these vulnerabilities, you can read this article Zeppelin solution. Links: https://blog.zeppelin.solutions/augur-rep-token-critical-vulnerability-disclosure-3d8bdffd79d2
Serpent's contract looks like this:
def register(key, value): # Key not yet claimed if notself.storage[key]: self.storage[key] = value return(1) else: return(0) # Key already claimeddef ask(key): return(self.storage[key])
What are the development languages involved in ethereum programming?