Crypto Wallet Passphrases — Balancing Security and Freedom

Do repost and rate:

Yesterday, I decided that I should actually teach myself Solidity as an introduction to blockchain development. This is despite the fact that I'm not a fan of Ethereum (ETH) and ERC-20s. However, about ten minutes into the tutorial, it immediately became apparent to me that Solidity is not a language for me. Here's why:

contract ExampleContract   function exampleFunctionstring memory

It's immediately apparent to me that the language is unnecessarily verbose, when there are two extra keywords ( in just a function definition, before getting into other aspects). Why would you do that, making a developer do more work than is strictly necessary, particularly in a language based on C/C++? It makes no sense to me and my reaction is "eww, no"! Here's what I think it should look like, based on my experience with other languages based on C/C++ (chiefly Nim, which I love because it allows me to write less code and transpiles to C/C++ and probably Rust):

ExampleContract  proc ExampleFunction0 OR   proc ExampleFunction1

If you really want to make it clear that ExampleContract is a Contract, make it implement a contract interface or extend a base class, rather than add unnecessary keywords:

class ExampleContract impl IContract:

class ExampleContract::  Contract:

Already, that's eight (8) lines of code reduced to three (3) and definitely far fewer characters to type. As someone who has done software development professionally for over a decade, that (not deviating too much from what already exists or getting wordy) matters to me. I don't like overly-verbose and overly-engineered languages. Java is a case in point. C is elegant in its simplicity, despite its complexity. The further away from that languages go, the more they seem to lose sight of that and add cruft. Nim seems to intentionally keep that to a minimum, as part of its motto/ideology: "Efficient, expressive and elegant". (It also takes inspiration from Python and Rust.)

Why I'm Choosing Solana (and Rust) as a Starting Point

The Solana Ecosystem (Copyright solana.com/ecosystem)

  • Solana is a cryptocurrency project I like. That's partly because it is intended to be an "Ethereum killer", according to Oscar Wei on medium. It's also partly because it aims to be carbon-neutral. It does this by being more efficient (faster and using less energy per transaction) than ETH.
  • Solana costs less to use than ETH (typically less than $0.01 USD).
  • It's based on Rust (or provides a crate for it), which I want to learn anyway. I can potentially use Rust for projects outside blockchain development.
  • Solana has it's own Stack Exchange (SE) Q&A site.
  • Zcash, another project I like, also uses Rust. That means that the learning curve for transitioning to that will likely not be as steep since I'll have common base knowledge.
  • Rust is (mostly) developed by Mozilla, which is a foundation/organisation I like and respect.
  • Rust is based on C/C++. I like strongly-typed languages that build on with what I'm already familiar. (I know C#, Java and PHP.)
  • I need a good/motivating reason to learn C and C++ (which I've wanted to learn for a long time, despite being put off by how difficult it is for me to understand pointers).
  • Rust can bind to C (and C to it) through the use of a foreign function interface (FFI).
  • There are at least two books on Rust, by members of the development team, available for free from the documentation subdomain of the project's Website.

There does seem to be two disadvantage, however:

  • Rust is not intended for use in Web development, being more a back-end and/or systems language. However, there are libraries (crates, to use Rust's terminology) that apparently help to make this possible (although not necessarily easy). In the worst case scenario, I could probably figure out how to leverage FFI to use Rust with Nim through C.
  • The Solana network does have a worrying tendency to go down like a $5 whore.

Update, as of 2023-04-20

Owing to the popularity/success of this post, it is also available as an NFT on Mirror. I intend to look through my rating spreadsheet and repost those posts that have done well on Pub0x to Mirror for the purpose of selling them as NFts.

Regulation and Society adoption

Events&meetings

Ждем новостей

Нет новых страниц

Следующая новость