We want to make your life easier and give you more power. Tell us how! Share your feedback either as comments to this thread, or in the Discord #product-feedback channel, or reach out directly to @algoanne on Discord.
Some questions you could think about:
what’s your favorite
thing about developing on Algorand?
if you could wave a magic wand and add one feature or tool to Algorand, what would it be?
what’s the most frustrating part of your development workflow?
what hacks have you put together that you wish had a simpler/safer solution?
if you write PyTeal, what specific piece of code was annoying to write?
when you were learning how to develop on Algorand, what was most difficult to master?
As much as possible, fully explain your specific use cases! Feel free to comment on any Algorand-developed tools, including: the AVM, TEAL, PyTeal, goal, the official SDK’s, sandbox, the indexer, tealdbg, etc.
Alex from Algodex suggested this a while back: “smart ASAs”. Basically, ASAs with some unique Teal code attached to it, and can only be transferred to another account when the Teal code is satisfied (returns a positive integer). This would simplify a lot of logic, specifically for royalties/commissions. ARC-18 kind of addresses this with default frozen turned on but “smart ASAs” would be a cleaner solution imo.
More storage in Smart Contracts: I am aware “box storage” is in progress so that is nice to hear.
More Youtube tutorials on PyTeal and Teal would also be nice.
Cloud sandbox with screens to “goal-lessly” inspect and manipulate accounts, debug teal, all to speed iteration.
I’ve been thinking about writing an article on all the techniques required to do an end-to-end solution, such as (1) integration with wallets (2) integration with AWS lambda (3) serializing transactions on server to be (4) signed on client etc. etc. - all without using a framework (like React) - just the bare minimum code to grasp all the bits and pieces and plumbing to pull off a deployable solution.
Also, the cost of a smart contract audit is out of reach for an indie developer, some assistance with a review or (automated) process to poke holes in a smart contract would be useful … as a sanity check, before unleashing a solution on the world!
1- Better Algorand Dev Tooling and ENVs
2- State proofs fully supported
3- Indexer to break free from RDBMS
4- Many code snippets and examples are only in one language or using one language SDK. I wish to have snippets for all ENVs.
5- The most frustrating part is getting up and running a full archival node and full sync and cloud nodes are very expensive.
6- If I could wave a magic wand I would ask for rapid installation and running of full archival nodes at reasonable expense.
Favorite thing about developing on Algorand is the supportive community in the Forum, especially working with or getting help from @fabrice! I also really like the SDKs, I think they make working on Algorand widely accessible.
It would be a web IDE like Remix. This is Ethereum’s main technical advantage over Algorand because building with Remix is a lot faster and easier than having to work through setting up a node and running code from the command line to access the AVM.
The setup is probably the most frustrating thing. Having to re-create my coding environment slows things down. Also, TEAL and PyTeal have been extremely frustrating to work with. I think generally there needs to be simpler and easier examples and documentation for these languages. It doesn’t seem there is even a consensus among Algorand developers on what TEAL does - whether it is a transaction approval language or a smart contract language. Most developers have an opinion on it, but regardless it is very difficult to work with especially for problem oriented programming. I think another great option would be to make a Solidity-SDK for Algorand.
One hack I put together was solidifying the basic network connection requirements.
I think this was helpful because it is really difficult to distill all the code and tutorials to fundemental principles and discern the basic requirements for network connection. I still think this could be a lot simpler, despite coming up with this simpler code block, there is still a need for good definitions for these variables, why they exist, or what their respective functions are on the blockchain.
Here is an example of a PyTeal script I wrote while working on the TEAL badge. I think the whole of it is very difficult to understand and probably the most difficult part was figuring out what the end product is supposed to be. For example, the example rendered this TEAL script, but I was never able to debug the TEAL enough to make use of it. I haven’t been able to find good documentation on how to actually deploy TEAL to the blockchain or how to structure TEAL code algorithmically. I actually posted an Issue on this on the Algorand Dev Rel GitHub over a year ago, but haven’t been able to solve it.
The most difficult thing to master was the network connection. Most of my time was spent hacking, debugging, and trying to connect to the network. Another huge issue was the lack of effective documentation on nodes and how to properly work with and interact with Algorand nodes.