In addition to be the founder of the patent-pending Reputaction hardened crypto wallet enforcing KYC & AML for any Bitcoin/Ether transactions, even instant and offline, I’m the director of a new postgraduate course at University of Geneva, official Certificate of Advanced Studies (CAS) worth 12 European ECTS credits, teaching decentralized applications (dApps) with blockchain and DLTs.
A difficult question for such a course is actually to choose the most appropriate available platforms to teach dApps development with blockchains and other Distributed Ledger Technologies (DLTs).
I have already compared dApps platforms in a previous post but this time the teaching aspect is more important. Such a postgraduate course is done over a short period of time, on site or online, in this case on Fridays and Saturdays mornings from mid-January to mid-May. There is no time to teach the basics of programming and of course if the dApp development platform uses well-known programming tools, it helps a lot to facilitate the learning curve.
Which dApp dev platform uses well-known development tools?
One well-known Integrated Development Environment (IDE) is the Microsoft .NET C# Visual Studio and Team Services, which has even recently bought Github. Being able to develop smart contracts and dApps with such a mature and complete IDE is from my point of view a real asset.There are a few blockchain dApp dev platforms that are well integrated with .NET and especially C# its main programming language. NEO and Stratis are 2 blockchain dApp dev platforms very well integrated with C# and .NET. NEO has its own NUGet package that can be easily added to Visual Studio as well as a compiler and even an emulator, which doesn’t require to have access to a deployed blockchain such as the mainnet, testnet or privatenet. As you can see on the images below, on June 20th 2018, I have had the pleasure to organize the first NEO development workshop and meetup at University of Geneva in the presence of Da Hongfei, Founder of NEO, and Caterina Zhang, NEO Head of Marketing & Communication.
There was also Peter Lin, NEO Head of R&D, who underlined that NEO Python implementation had even a greater community participation than NEO C# main internal implementation. He said that Erik Zhang, NEO co-founder, is more a fan of C#, as I am, especially because I think that strongly statically typed languages are more secure, with fewer bugs at runtime, which is important for smart contracts. However, Peter also emphasized that Python has been chosen as the main programming language to be taught to Chinese students, such large adoption should be taken into account. Anyway, the good thing with NEO is that it has several implementations including C#, the most up-to-date one because it is the main internal implemenation, and Python, which is also well up-to-date thanks to open source community contributions. Sometimes having too many implementations is difficult to maintain. Recently NEO has had some issues regarding its code stability. In my opinion, great care should be taken for backward compatibility with previous code, using deprecated methods warnings rather than methods hard crashing. It is also not clear if NEO will have all of its own building blocks as described in its original whitepaper such as identity management or through external projects, e.g., now it seems that ONTology is supposed to provide identity management in relation with NEO but the relation is unclear as it has its own tokens and implementations. The NEO fees structure needs also some stabilityand drastically changing fees structure wouldn’t allow developers to be able to confidently choose NEO for long term projects. Smart contract deployment on NEO was quite expensive, requiring 500 GAS at the beginning but then its usage based on the 10 first GAS free was appealing for some longer term projects, reducing their cost in the long term. Due to abuse of these 10 first GAS free and fewer projects willing to pay 500 GAS at the beginning, the co-founder Erik Zhang has hinted that NEO pricing model could change a lot rather than just be adjusted, which should be avoided IMHO. Aligning NEO pricing model on Ethereum pricing model isn’t the only solution because computational trust could be tried to exclude malicious behaviours and encourage positive behaviours whilst still keeping the original pricing model, which has its own advantages compared to Ethereum-like pricing model. Anyway NEO with its C# .NET integration is still a valuable blockchain platform contendant for the course though.Stratis has also a valuable C# .NET integration and mainnet blockchain launch based on proven Bitcoin building blocks and additional sidechains. It will be easier for students of the new University of Geneva course to switch to Stratis if needed because they will have already learnt a previous blockchain with the same IDE and programming language.However, the new course has the aim to give an overview of different blockchains/DLTs and their development environments. It is the reason that Ethereum will also be taught because it is the most well-known dApp/smart contracts platforms with a quite attack-resistant public blockchain (at least as long as Proof of Work is used). Ethereum has also experienced an important gain in tokens value, in this case Ether, and volatility but Ethereum has succeeded to maintain its initial approach to fees for smart contracts deployment and usage. The learning curve for the students will be longer for Ethereum because they will have to learn the new Solidity programming language, which is also more difficult to use without bugs. The development environment is improving though, for example, with proven Ethereum smart contracts templates by Zeppelin and Truffle, a popular development framework for Ethereum. The students of our new Certificate of Advanced Studies (CAS) will leverage these tools too.
We have mentioned above that 2 decentralized application development frameworks with blockchains will be taught during the course but what about other with other types of DLTs such as Directed Acyclic Graph (DAG), tangles… There aren’t so many proven options for dApps developments with non-blockchain-based DLTs. We are at the moment discussing with Hashgraph Hedera because Swirlds the private company behind its patented Hashgraph technology has already used it for many real use-cases in different applications domains, although in permission-based/private settings. Hedera the open version has still to prove itself in public settings, especially regarding attack-resistance. From the point of view of the course, the learning curve shouldn’t be to high because Hashgraph has a Java implementation, which is a well-known programming language, and Hedera will also be based on Solidity, already taught during the course. Another interesting DAG that is considered is the recent Fantom platform for building dApps with DAG, although in very early stage for now and with claims (reaching 400 000 transactions per second) needed to be validated by peer-review. IOTA tangle theory will be quickly covered because it is a well-known non-blockchain project but it isn’t really a fully fledged dApp development framework.Talking about peer-review, if you are building a decentralized app or new blockchain/DAG/crypto-currency and would like to get peer-review, I recommend that you submit an article to the ACM SAC 2019 DAPP track with deadline on September 10th 2018 because your work will be then published the official ACM Digital Library and you will be able to claim that it has been peer-reviewed. We are also welcoming sponsors to be listed on the ACM SAC 2019 DAPP track Website and CFPs and/or on the new blockchain, DLT & dApp course Website. Presentations of innovations in the field at University of Geneva are also possible. Contact me for more information!