Blockchain is more than just a media buzzword, and if you’re a developer who takes your career seriously you’ve hopefully at least dabbled in blockchain tech by this point. The industry surrounding blockchains is massive (possible $12.4 billion by 2022), and unlike other developer industries it isn’t saturated.
Going into 2019 there are five key concepts every modern blockchain smart contract developer should have an understanding of, even if they just want to be able to sound smart in a meeting with their boss. So let’s discuss these core concepts and showcase how they’re being used in the top smart contract languages.
1. Static vs. Dynamic Typing
Typing (as in type, not the process of pressing keys) decides both when and how types are checked in code. Static typing variables are known at compile time, while dynamic typing variables are tied to run-time variables. The major benefit of using static typing as opposed to dynamic is that static typing languages tend to catch the majority of errors during compile time, as opposed to during run-time execution.
Smart contracts are run using community resources (nodes) instead of local resources (RAM/CPU/SSD), therefore they cost money to compile and execute. By catching errors earlier on in static typing a programmer can not only reduce the overall cost of their contract, but they can ensure that complex run-time errors will not incur unexpected costs after a smart contract has been launched.
2. Lazy vs. Strict Evaluation
These opposite evaluation types come into play when a compiler encounters an expression and decides to evaluate it; the difference between the two is WHEN the compiler takes on the task.