New AEstudio - Editor for Sophia Smart Contracts on the Web

Hello @nikitafuchs.chain, the migrate from FireEditor to AEstuido alongside the recent update is really awesome. There seems to be an issue while connecting to GitHub on https://studio.aepps.com. I guess the callback URL is wrong or something.

3 Likes

Hey, thanks for pointing out, I will fix it tomorrow !

2 Likes

It’s fixed !

6 Likes

Fantastic job Nikita!

3 Likes

After all the updates, we have a contribution from @VitalJeevanjot : Now you can quickly copy your active address to your clipboard :slight_smile: (button on the right and dropdown entry for smaller displays / responsive design)

2 Likes

@nikitafuchs.chain
AEStudio Currently there is only web version, but eth developer’s development tools have native development tools for MAC or Windown system. Can we upgrade it? Native development is a much better experience.

1 Like

Hey, thanks for your opinion ! Why would you prefer something local instead of in-browser ?

4 Likes

just to give some outlook and opinions from my side here:

  • we have currently AEproject for local development which uses docker under the hood and allows contract testing using javascript (should work for mac, linux & windows as far as I know)
    • generally speaking for windows it is always recommended to run e.g. Ubuntu with WSL (Windows Subsystem Linux)
  • we still have the problem that even the local node which needs to run for executing tests relies on mining and this leads to extremely long delays in tests

we have some thoughts about how to maybe get rid of AEproject or at least provide an alternative.

there will probably be a simple template-repo introduced which provides all instructions needed to get started quickly without relying on AEproject at all. it will probably also use the standard aesophia-cli for compiling the contracts locally. but it will probably still have the dependency to docker because it just simplifies certain things

4 Likes

https://www.obsidians.io/

Look at this
If it’s a MAC or Windows installation. It will automatically associate and download related resources using Docker. The user experience is very good. If AEStudio is also upgraded in this way, I think it is better than ETH in combining development tools with functional programming language. Now, AEStudio is a very useful tool for AE development contract, but there is still a certain gap compared with ETH.

4 Likes

it’s true that there is lot’s of room for improvements on that side. but we need to “fix” or let’s better say improve all the basics first before we tackle this (IMO) bigger topic.

but it’s always good to hear your opinions about the tooling in general. we will get more active about that in the near future and also have open discussions for that kind of things.

to be clear:

  • if possible everybody would want to see the thing you mentioned above immediately!
  • we just need to get there step by step
2 Likes

Yes, some public chains copy ETH codes. AE is self-developed. So the cycle is very long, looking forward to exceed ETH one day :+1:t2:

3 Likes

Exactly. Still a long way to go. Also depends on organic growth and community builders out there.

Other chains just re-use the EVM and all the tooling around that. That’s not that difficult. And you know what? Just open Metamask, put in custom chain-data and that’s it xD

We know that Sophia is better than Solidity and we know that FATEVM is by far better than the EVM. But the tooling currently lacks and this needs to be improved, sure. But this needs to be done step by step. We cannot risk a big step without going through small steps having nothing in the end.

For now it’s quite “ok” having AEstudio and AEproject. You can at least achieve almost anything if you really want to.

4 Likes

I agree, technologically AE is way more advanced than Ethereum for a long time already.

From what I see there, their approaches are everything else than light weight, but maybe that comes with certain features you might feel missing right now in AE / AEstudio ? Regardless of browser or local, is there anything you feel currently missing in AEstudio that you would really like to see , @Baixin.chain ?

3 Likes

Now AEStudio is very good. It can meet the development function of smart contract on AE. However, some user experiences can be enhanced, such as the introduction of multiple files to contracts, or the ability to debug contracts. We can slowly add these features to make AEStudio even better

3 Likes

Indeed. For debugging: Currently compiled contracts are heavily optimised so they can’t be debugged like it’s known in solidity. That would be a thing for the todo list, for many layers though, as running unoptimized contracts would blow gas limits right away. But as the sandbox/dev mode is worked on soon, things could be realised in there more easily.

For the inheritance: Currently the inheritance is taken care of in a way that i don’t really favour to be honest, and including it in the editor will require heavy refactoring - but that’s okay, it can be done. Thanks for the suggestion, let me tackle this.

4 Likes

Update: The accumulated tech debt is being taken care of. In order to update the the Editor to the newest SDK and proceed with necessary developer features, the editor itself was updated to angular 16. The same is being done with necessary components like the VScode library and the semanticUI library. The latter requires manual work by me, as it is not maintained by the original author and other alternatives just do not work. This is almost done. In the next release, contract sharing will be disabled for now, until we provide a suitable API, ideally via AEscan. Logging in will be disabled for now, as it’s not necessary. A switch to another implementation of the VScode library might eventually be necessary, too, as the original package isn’t maintained anymore either, but might keep working anyway.

Further down the line comes the implementation of the debugger and the devmode.

After the tech debt is taken care of in a few days the long awaited updates will be rolled out. Stay tuned.

2 Likes

Update: I upgraded the UI Library to the latest version of Angular as the last missing blocking piece to completing the Upgrade of aestsudio to Angular 16. The codebase of aestudio is now upgraded to aestudio 16, too. Other blocking dependencies could be replaced with forks which have been upgraded to more recent angular versions by other people, fortunately. After this maintenance is done, we can finally easily update the SDK and now and work on the implementation of our other devtools. :partying_face:

4 Likes

Hello, updates !

Aestudio is now fully migrated to the very latest SDK version, the last one was very outdated. This means that a big part of the editor code was refactored in its way how it interacts with the SDK and which functions it calls how. Also, some code was cleaned up and a bit more typescript was introduced. A major cleanup has to be done some time soon still, the focus is on the development of features though.

New feature I did not mention yet: You may have seen that the console has a tab called REPL. It allows you to execute sophia code in FATE VM, the virtual machine that powers aeternity. That includes running and debugging your contracts. I’ve implemented a UI for this that closely resembles the experience of a terminal, you can also use your up and down arrow keys to scroll in your command history. For now, the interaction with the REPL takes place though command line, you can find information for that In the REPL/Debugger Thread. Note: It’s very much work in progress right now, but the next step will be having a simple UI for all of this.

Most important: AEstudio is now working with the latest Sophia version so you have all the latest feature at your disposal.

Currently work in progress is a visual debugger like you know from your favourite IDE, with breakpoints and everything. Much work on the UI is being done for that currently, which is way more tricky than I though it would be. The issue is the very same that is quoted in the bottom right corner of Aestudio: Complicated is easy, but simple is hard. We need tools that everyone can use.

EDIT: Here is a sneak-peek of a tiny part of what is to come !
breakpoints

3 Likes

Updates !

Due to the recent switch to a new aarm64 mac I took the time to do some homework and assure our components are actually properly running on modern day developer machines. Turned out we had to catch up here and there. This small detour was necessary to assure the proper functioning of state channels, as I’ve put some focus on this due to ongoing work on the repl/debugger and the devmode which the overall progress is depending on. We’re putting effort into having fully featured and simple to use components for building great apps on aeternity, putting one brick into place after the other. As many components depend on each other, improvements can only be done asynchronically some times, but the progress is sustainable: As we saw some recent activity in state channel usage, major fixes for the middleware/aescan were put in place, too, for a more stable suport of these types of transactions.
For family reasons, the month of December was a bit shorter for me personally and a few days my son will be born, but nevertheless I’m expecting to release the debugger for aestudio in january and move on to the devmode in February.

1 Like

Over the last weeks we put heavy focus on the planning of the next working packages with heavy focus on updates and developer tooling. This is crucial to ensure the smooth operation of state channels, particularly given my focus on enhancing the repl/debugger and devmode, which are pivotal for our overall developer adaption progress. You know what I am about: We are always committed to delivering fully-featured, user-friendly components for building exceptional apps on aeternity, laying the groundwork for a wider adaption. Given the interdependence of many components, enhancements often occur asynchronously; however, our progress remains steady. A testing ground for our work was and will always be hackathons, gaining first-hand feedback from developers on our tools! In this month, my family grew by one member! But the most exciting things in the pipeline I cannot share updates on unfortunately, as they are not announced yet, I guess? The testing succeeded excitingly well though, so stay tuned for more things to come.