Glossary

A glossary is a dictionary of terms specific to a certain subject. A biology textbook might have a glossary in the back, so you can quickly look up all those technical words.

Solidity (language)

Updated on 2023-08-29T12:01:36.277223Z

What is the Solidity language?

Solidity is a statistically typed, curly-bracket and object-oriented programming language for developing Ethereum-based smart contracts, which is written directly as a code. This code helps in executing the transaction (buying and selling) and makes them irreversible and trackable.

Solidity is a high-level language written in curly brackets, influenced majorly by several known programming languages. It is highly influenced by the C++ programming language and includes concepts involved in JavaScript, Python, and other programming languages.

Using Solidity, one can create contracts for crowdfunding, multi-signature wallets, voting, etc. It is advisable to use the updated version of the language to enjoy new features and avoid any bug issues.

Who introduced Solidity, and why was it necessary?

Gavin Wood, a computer scientist, introduced the concept of the Solidity programming language in August 2014. Christian Reitwiessner took forward the idea, developed the code with the help of his team, and officially released it in August 2015.  

The Bitcoin network works on a peer-to-peer model and is used to sell and buy Bitcoins. On the other hand, the Ethereum network was created to exchange anything of value, not just the cryptocurrencies.

Summary
  • Solidity language is a statistically typed, curly-bracketed and object-oriented programming language for developing smart contracts on Ethereum.
  • The concept of Solidity was introduced by computer scientist Gavin Wood in 2014.
  • The language is primarily influenced by C++, Python and JavaScript.

Frequently Asked Questions (FAQs)

  1. Which programming languages influenced Solidity?

The Solidity programming language is primarily influenced by C++, JavaScript, and Python.

The structure of the statements (or syntax) for the concept of overloading functions, loops, variable declarations for conversions, and many other details are influenced by the C++ language.

Python’s decorators allow inserting a new functionality in an existing object, which influenced adding a modifier function in Solidity. In addition, general assignment and copy semantics of value, reference types, C3 linearization, ‘super’ keyword, and multiple inheritances are taken from Python.

JavaScript partly influenced Solidity in its early days primarily due to the keyword ‘var’ and function-level scoping of variables. JavaScript’s influence was reduced in Solidity post the release of version 0.4.0. The remaining similarity is the usage of the keyword ‘function’ to define the functions in Solidity.

  1. What can be done using Solidity?
  • Solidity enables the developer to create his/her own decentralized applications (also known as dApps). These applications are just like the ones we use on our smartphones, except for one major difference. The dApps are open-source applications that can be manipulated and changed according to the user’s requirements. Like the applications available in the Apple store are built to run only on iOS devices, similarly, dApps on Ethereum are built to run only on Solidity.
  • There are smart contracts within the decentralized application assisting people in exchanging shares, money, property, etc. It eliminated the requirement of a third party to facilitate the process like a notary.
  1. What are the applications of Solidity?

The solidity programming language can be used for:

  • Crowdfunding:  Crowdfunding is the process of raising funds for a new venture or a project from a large audience and can be done via the internet. This can be done using smart contracts developed using Solidity. The use of smart contracts can eliminate third-party commissions, data management, etc.  
  • Voting: The voting process can be exposed to fraud like data manipulation, manipulation of the voting machines, fake voters, etc. Using smart contracts supported with proper implementations can help in dealing with some of the problems. These contracts can help in automatic vote counting and process transparency.
  • Blind Auctions: On Ethereum, it is simple to create a blind auction contract such that no one can view other bids until the bidding process gets over.
  1. What are the advantages and limitations of Solidity?

Advantages:

  • Solidity includes the inheritance properties in smart contracts. In C++, the inheritance function allows a class to derive the characteristics and properties from another class. It is considered an important attribute of object-oriented programming.
  • The smart contracts written using Solidity provide a secure and easy medium for various sources involving two or more parties in an agreement. 
  • The smart contract supports complex member variables in mapping and structures. A member function in C++ is a function that has its definition or prototype well defined as any other variable.

Limitations:

  • For it to work efficiently, the developer requires data. However, in this case, data comes only through transactions making it difficult to run efficiently.
  • Since Solidity is a new programming language, it does not have an exhaustive library.
  1. State an example of using Ethereum to spread digitalization in the capital market

The lending arm of the European Union, European Investment Bank (EIB), launched its first digital bond on the Ethereum public blockchain on April 27, 2021. EIB collaborated with Santander, Goldman Sachs, and Societe Generale.

EIB took advantage of Ethereum’s distributed ledger technology for the registration and settlement of the digital bond.

According to reports, EIB believes that the digitalization of capital markets can bring the following benefits to the participants and market:

  • Better market transparency by an increased capacity to see trading flows
  • Reductions of intermediaries
  • Reduction of fixed costs
  • Identities of the asset owners will be known
  • A faster settlement process