Beta IDE editing experience is bad (for me)

Sorry for the rant, but lately I have become very annoyed with the beta IDE. When it just came out I was pleasantly surprised by quite a bit of new functionality. Sure, there were some rough edges, but is was beta after all.
But now, a few months in, I have become aware that there is a lot in the IDE that gives a lot more friction than a regular editor like PyCharm.
On my 24" screen at work, admittedly not very big, there is hardly any room for code editing left:


Of course I can close the app console, but I have to do that every time I run my app.
Every time I click on a UI element to get to the event handler, the IDE goes into split mode. I understand why, but it is just annoying to have to close split mode every time.
The ironically named invisible components pane is a complete waste of space. Furthermore, it prevents me from adding additional comps at the bottom of the form.
The run button won’t remember my previous choice, so it will go to split view, bad.
The IDE can be very slow at days.
In the past I could use Safari for 99% of my IDE work (I know, I know, it is not officially supported), and I preferred it over Chrome. Recently the IDE has become unusable in Safari.

This post is not just to vent, because I still like a lot about the Anvil environment. And I’m the Anvil team is working on a lot of new features.
But as it stands, if I would have the choice, I’d switch to another editor.

I’d be interested in hearing other people’s experiences.

My monitor is a 40" tv, I see 73 lines in the editor, and the two things I miss are being able to keep two editors side by side and keyboard shortcuts.

When I work with PyCharm I always have 2, 4 or more editors visible side by side or one above the other, and I would love to be able to do the same with Anvil.

I miss shortcuts to fold/unfold, alt+J and ctrl+W to select (and unselect with shift) based on current selection (I keep accidentally closing the Anvil tab when I press ctrl+W to select the current expression, then I press ctrl+shift+T to reopen the tab).

I often help a friend that is working on his app. I can see his screen using Google Duo. He says he loves his big wide curved monitor, but I hate it because I keep asking him (I can’t have remote control) to scroll up and down because I can only see just a few lines in the editor. I see him continuously closing and opening panels, and doing it with the mouse because there are no keyboard shortcut, and it’s painful.

I can see how the ide forces you to have too much when your monitor is small, but the problems I used to have with my large monitor have mostly been addressed and I’m happy. Sure, if they added side by side editors, shortcuts for existing features like folding and for new features like selecting expressions, I would love it, but, considering I have a tall 40"monitor, I can’t complain.

Thanks for your views.
I can imagine that a bigger screen than the small one I have now (24") circumvents many of the niggles I mentioned. OTOH more control over pane (automatic) opening/closing would, even with a larger screen be helpful.

I’ve used even smaller monitors (notebooks). What makes things work, for me, in such cases, is the willingness to use smaller fonts, and to minimize panes that I’m not using, while I’m not using them, or size them to fit what fractions that I am using.

I can’t read human minds, so I don’t expect the IDE to read my mind, either, about what I want to see now, or next, or ever. It’s a program. I expect to command it.

That said, a big monitor is certainly a breath of fresh air, because I don’t have to tweak the UI as often. And I can bring in Notepad++ on the side, to look at related code, and to source/sink copy/paste operations.

Where a big monitor is not feasible, a second monitor usually is. Thrift stores around here have them in stock every day.

Anvil took a lot on when they decided to write their own browser based editor. It is an incredible achievement, but in editor-years it is also very young. It’s going to get a lot better for sure, but it will take time.

Whilst it is possible to use a local editor for client & server side code (syncing with git but sacrificing some code completion) I doubt Anvil will produce anything that allows WYSIWYG form design and therefore complete local development as it is a monetisation path for them.

I do wish they would fix some of the UI issues (such as the one you mention about invisible components blocking the addition of new components to a form) rather than expose some obscure meta class thing that, by their own admission, most people won’t understand or use. But that’s their choice, and there may be good reasons for that.

Despite my gripes and some irritations, I still develop a good 99% of all my apps in it :slight_smile:

Currently you can do

Ctrl-Shift-[ (Cmd-Alt-[ on macOS): foldCode.
Ctrl-Shift-] (Cmd-Alt-] on macOS): unfoldCode.
Ctrl-Alt-[: foldAll.
Ctrl-Alt-]: unfoldAll.
2 Likes

edit - re-reading my post it sounds a bit snarky which I really didn’t mean for it to be. I am a vocal advocate for Anvil to everyone who asks me what I develop with, unless they’re my competition in which case I keep shtum to maintain my considerable commercial advantage …

1 Like

Unfortunately bigger monitors are not always an option (company policy, laptops) and smaller fonts neither (older eyes). My point was that the Anvil IDE does (much) worse on the same screen than say PyCharm.
I don’t expect mind reading program editors, but I don’t expect compulsive behaviour neither, like always opening the split editor, or always opening the app console, or never closing the invisible components. This would seem so easy to fix.

Not snarky at all (to my non native ears).
I think I’d prefer PyCharm with a little less code completion. Some code completion should be possible. They do something similar with MicroPython: code runs on a device, but code completion is provided through stubs (I think). I would even forsake the Anvil graphical editor.

Just curious, you provide commercial apps with Anvil? I find Anvil very useful for smallish internal apps, sacrificing app speed and polished UI for speed of development and ease of deployment. But I would hesitate to use it for commercial apps.
Are apps on the business plan faster? Or do you run Anvil yourself?
If you don’t want to answer these questions, I can understand.

Hi All!
Just to throw in my ten cents here as well.

We are a team of 5 developers coding a SaaS for point of sale and erp systems with hundreds of users and thousands of files over all applications.

  1. Anvil in general:
    → 1.1 No customer cares about your framework
    → 1.2 We can ship features twice as fast → i.e half the cost.
    (And this settles the whole discussion from a commercial standpoint pretty much)

  2. Editor:
    → The Beta Editor lacks two essentials things IMHO (Community Extension Sys, Speed & polishing)
    → Long term I think their own editor is a smart move that will especially pay off if anvil gets REAL tracktion and tens of thousands of users. (Think about its AndroidStudio, XCode, VS Code all ship their own editor to their framework)

  1. App Speed
    → I think almost all speed issues are related to: no persistent server and using the build in data tables.
    → We use client side Firestore wich elimates the need for server calls and using anvil data tables and you can build real time apps in no time.
    → We are currently even devloping a serverless anvil app, and I feel for larger projects this enables anvil to be even more productive.

But of course every use-case is different and this is my personal opintion afer several thousand hours of anvil coding :wink:

1 Like

Yes, I have a couple of key apps which are commercial. I use the Anvil servers (meaning I don’t yet host the runtime myself) but I make good use of the Uplink mechanism for a couple of reasons :

  1. I crunch a lot of data, millions of rows can get added in a day and I have to query and compare data that is years old from the front end. Doing this on a server I control works better for me as I can employ various caching & aggregating techniques

  2. I control real time telephony systems. This is easier to do if the server side software runs on the same box.

I don’t suffer from app speed issues, so I can’t really comment on those. I do recommend using @stucork’s Tabulator control over the inbuilt data grid, and I almost never use the built in data tables because of the sheer size of my data, but that’s just my experience.

All my apps are in an admin panel style. I don’t do anything radical with design so my idea of polish might not be the same as yours, but the apps look as my customers expect them to look. Speed to market for me is essential, as is rapidly changing an app to comply with regulations or to compete with someone.

I guess you have to evaluate Anvil for your needs, and I always say evaluate on what features you can use today and not what’s coming. For me, it’s bang on target.

@mark.breuss Interesting that you don’t use Data tables.

@david.wylie Yes, Tabulator is great and I use it instead of the Anvil comps. Are your apps on the Business or Dedicated tier perhaps, making them faster?

Thank you both for the business perspectives.

I’m on the professional plan. What makes my apps fast is that I do the right work in the right place. My front ends are concerned merely with sending requests to the back end and then displaying the results. My back ends are fairly well optimised (for instance I do a lot of Redis data caching to avoid always having to lookup data in a database).

My dev. process is - get it working, then speed it up if someone complains. If they don’t, then I don’t presume that it’s too slow for them even if it would be for me. I’ve learnt not to project my wants onto my customers because, believe me, they’ll tell you if they don’t like something :slight_smile:

It’s a similar philosophy to avoiding premature optimisation & scaling. You may never need to.

1 Like

I understand I’m the exception, it is almost impossible to find a 40" monitor today.

I recently got a new laptop and I wanted also a new 40" monitor, but I couldn’t find it. I could only find 43" or 32" monitors, or ultra wide monitors. The ultra wide and the 32" are too small vertically. The 43" is too large and I end up not using the real estate at the corners. For me and 10+ of my colleagues that 40" is a magic size that works perfectly.

I think the monitor market went the wrong direction with ultra wide curved monitors. Think about an ultra wide monitor with a Word document open: the ribbon at the top, the command bar at the bottom (on Windows 11 you can’t move it to the side) and the gray rectangles on each side take 80% of the real estate, and only half page of your document is visible at the center. That’s just plain dumb!

But nobody cares about my rants, today most monitors are not tall and, yes, perhaps Anvil should take a note and try to make the life easier for people that can’t use 40" monitors.

Our apps are mostly for internal use, some are open to the outside world.
They are not polished, but they look professional.
App speed has never been a problem.

I have a dedicated server. I think it’s slightly faster than lower plans, but I’m sure that is not what makes the difference. A sloppy app can be 100 times slower than the same app after some love and care. I don’t think changing your plan will improve the speed of a factor of 2.

I always thought Data tables would be a big limitation for me, but having a dedicated plan with access to SQL has removed all barriers and I never felt the need to use another database.


I loved Anvil from day one because it allowed to make an app on day one.

But after working on it for a few years, and especially after teaching and helping other people using it, I realize that the app you make in day one and the app you make after a few years are two completely different beasts.

All my apps use the following tools and more:

  • routing module from Anvil Extras (which you can’t use if you haven’t first played around with other navigation techniques)
  • HeaderWithLogin to manage user permissions
  • Validator to validate input
  • InputBox to replace alert and small forms
  • DataGridJson to do quick data grid rendering
  • StandardTheme to copy the theme folder from
  • AutoScroll to allow dynamic scrolling of long repeating panels
  • DragAndDrop to manage drag and drop from and to repeating panels and other containers

The new apps I create today all look consistent, have more features and have fewer forms (using InputBox and DataGridJson you can go from 100 forms down to 20).

When I help other people with their new apps, I constantly want to say use this or that, but I realize I can’t because they first need to be familiar with Anvil bare bones, then they can graduate to pimped up Anvil.

So… after working with Anvil a few years, I realize that the learning curve and experience, while not required to start working and getting your first app, still make a huge difference, just like with other frameworks.
Please do not read this as “Anvil is not that helpful and the learning curve is long”!
I still strongly believe that the advantages of using Anvil over any other tool/framework are huge!

1 Like

I use a 32in curved 2K, and a floating mount smaller monitor. (23 at the office, 27 at home)

With the floating monitor I can “zen mode” by flipping it 90 degrees and setting it to portrait mode in the display settings, this gives me 70-93 lines in 1080p in VS code.

(I got the idea from seeing copy editors do it to write articles/speeches)

The way I think about all of these add-ons, its like anvil itself, when you get to the point where you know you need something, you may know how to build it but you know doing it all yourself from scratch would be a ton of work. Then you check and find out the anvilistas did all the heavy lifting and you have access to nice polished tools! :slightly_smiling_face:

1 Like

Well, if we’re sharing desktops…

Personally, I think the ide is a stunning piece of work but I also think a web based editor will never be as good as something dedicated to that job, so I use both.

2 Likes

That’s an elite setup :drooling_face:

1 Like