Glossary of Terms
A pragma is a compiler directive that allows you to provide additional information to the compiler.
This information can change compilation details that are not otherwise under your control. For example, the pack pragma affects the layout of data within a structure.
Compiler pragmas are also called directives.
No-code development platforms (NCDPs) allow programmers and non-programmers to create application software through
graphical user interfaces and
configuration instead of traditional computer programming.
No-code development platforms are closely related to
low-code development platforms as both are designed to expedite the application development process.
However, unlike low-code, no-code development platforms require no code writing at all, generally offering prebuilt templates that businesses can build apps with.
These platforms have both increased in popularity as companies deal with the parallel trends of an increasingly mobile workforce and a limited supply of competent software developers.
Smart contracts are digital contracts stored on a blockchain that are automatically executed when predetermined terms and conditions are met.
Smart contracts are simply programs stored on a blockchain that run when predetermined conditions are met. They typically are used to automate the execution of an agreement so that all participants can be immediately certain of the outcome, without any intermediary’s involvement or time loss. They can also automate a workflow, triggering the next action when conditions are met.
A decentralized protocol is a protocol where client and host nodes combine to create a general network. Both the client and hosts nodes must be supported by the software used for the protocol.
The host nodes are connected to form a type of backbone for the network, providing a gateway to the network for client nodes. The host nodes pass messages from client nodes to all other host nodes in the network. Likewise, messages received from other hosts are forwarded to all the client nodes that are supported.
The combination of host nodes and client nodes allow for the creation of client applications that are connected to the network. For example, both Bitcoin and Ethereum have client applications that allow users to download the entire blockchains in order to take part in the node network.
A software widget is a relatively simple and easy-to-use software application or component made for one or more different software platforms.
A desk accessory or applet is an example of a simple, stand-alone user interface, in contrast with a more complex application such as a spreadsheet or word processor. These widgets are typical examples of transient and auxiliary applications that don't monopolize the user's attention.
On the other hand, graphical control elements (GUI "widgets") are examples of reusable modular components that are used together to build a more complex application, allowing programmers to build user interfaces by combining simple, smaller components.
Rapid Application Development (RAD)
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.
RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirements. Graphical user interface builders are often called rapid application development tools. Other approaches to rapid development include the adaptive, agile, spiral, and unified models.
A cryptocurrency wallet is a device, physical medium, program or a service which stores the public and/or private key for cryptocurrency transactions. In addition to this basic function of storing the keys, a cryptocurrency wallet more often also offers the functionality of encrypting and/or signing information.
A Git repository is a virtual storage of your project. It allows you to save versions of your code, which you can access when needed.
GUI (Graphic User Interface)
The GUI graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, instead of text-based UIs, typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of CLIs (command-line interfaces), which require commands to be typed on a computer keyboard.
The actions in a GUI are usually performed through direct manipulation of the graphical elements. Beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices, smartphones and smaller household, office and industrial controls. The term GUI tends not to be applied to other lower-display resolution types of interfaces, such as video games (where HUD (head-up display) is preferred), or not including flat screens like volumetric displays because the term is restricted to the scope of 2D display screens able to describe generic information, in the tradition of the computer science research at the Xerox Palo Alto Research Center.
EVM Ethereum Virtual Machine
Ethereum Virtual Machine (EVM) is a computation engine which acts like a decentralized computer that has millions of executable projects.
It acts as the virtual machine which is the bedrock of Ethereum’s entire operating structure. It is considered to be the part of the Ethereum that runs execution and smart contract deployment.
The role of the EVM is to deploy a number of extra functionalities to the Blockchain to ensure users face limited issues on the distributed ledger.
Every Ethereum node runs on the EVM to maintain consensus across the blockchain.
Ethereum facilitates something called smart contracts, a piece of code that is running on Ethereum.
EVM is completely isolated meaning the code inside the EVM has no access to network, file system or other processes.
Ethereum has two types of accounts: Externally Owned Accounts (EOA) and Contract Accounts, both of which are treated equally under the EVM.
Account abstraction tries to reduce this to just one account meaning both EOAs and Contract Accounts function like each other.
EOAs are controlled by private keys, meanwhile contract accounts are stored in the smart contracts, also known as smart wallets.
A contract which is written in the smart-contract coding is converted into something called a bytecode.
Most of the source code for using smart contracts is done using programming language from Solidity. It is then converted into opcodes for the EVM to interpret.
The EVM then uses the operation codes in order to complete certain tasks.
So, the EVM works like a large decentralized or master computer to complete all types of tasks on the blockchain.
EVM is one of the
biggest projects in the world of cryptocurrencies.
A decentralised application (DApp dApp, Dapp, or dapp) is an application that can operate autonomously, typically through the use of smart contracts, that run on a decentralized computing, blockchain or other distributed ledger system. Like traditional applications, dApps provide some function or utility to its users. However, unlike traditional applications, dApps operate without human intervention and are not owned by any one entity, rather dApps distribute tokens that represent ownership. These tokens are distributed according to a programmed algorithm to the users of the system, diluting ownership and control of the dApp. Without any one entity controlling the system, the application is therefore decentralised.
Decentralised applications have been popularised by distributed ledger technologies (DLT), such as the Ethereum blockchain, on which dApps are built, amongst other public blockchains.
The trustless and transparent nature of dApps have led to greater developments in the utilisation of these features within the decentralized finance (DeFi) space.
dApps are divided into numerous categories: