Heh, as a long time AutoCAD user for a couple years I was hoping AutoDesk would come out with an Altium competitor. AutoCAD still has one of the best ways of taking a sophisticated set of tools and making them incredibly fast and reliable to use IMO, and I would have loved to see a real EDA tool built around a similar UI philosophy. Those hopes were dashed when they bought Eagle, and I don't blame them for trying to buy Altium. It would probably fit nicely into their lineup to have the Fusion 360 w/Eagle tier and then the Inventor/Altium Designer tier.
This. Although I've never used Eagle and have no desire to change after trying it out several times, I usually like Autodesk software. An EDA-software with AutoCAD UX would be something I'd really like to see eventually.
You mean one where you can also type commands?
I happen to have been doing a bit of AutoCAD work these last few days which reminded me that I meant to respond to this.
AutoCAD isn't as good as it is just because it has a command line. For one thing, it has a *REALLY GOOD* command line. All of the most common commands are aliased to short mnemonics, it has autocomplete, it does a surprisingly good job of correctly interpreting mistyped commands, and for a while now they've put the autocomplete and command action/option prompts right at the cursor so you almost never have to look at the actual command line. All of this works especially well because instead of having a ton of specialized commands, most commands have very sensible default behaviors but easily accessible variations/options. Want to draw a circle? Type "C", then pick your center point and radius point. Or "C", pick the center point, then "D" and enter the diameter. Or "C", then "2" for two-point (diametric) mode. Or "C" then "3" for three-point mode. Or "C" then "T" for tangent/tangent/radius mode. Don't remember what the options for a command are? Just look at the command line window, or the prompt that appears at the cursor and hit the down arrow to see the list. This is an incredibly fast way to access a ton of functionality without having to remember a whole lot of arbitrary key combination shortcuts. (For the record, I think Altium's hierarchical single-key method is pretty good too, but AutoCAD's method absolutely gets you more functionality for your effort. Altium also has annoying inconsistencies or...antiparallelisms? in the shortcuts for core commands between sch and pcb. Like, placing text is P,T in sch but P,S in pcb, and making an electrical connection is P,W in sch but P,T in pcb. Those commands are logically related and, IMO, ought to have the same shortcuts, or at least have shortcuts that don't collide with each other.) For bonus points, any UI action in AutoCAD, including clicking on graphical buttons, shows up in the command line, so it's super easy to learn the commands for something by clicking around in the UI. Altium has some of that, but not nearly as much.
Speaking of speed, AutoCAD is fast. It's really, REALLY fast, at least when run on decent hardware. Granted, 2D line drawings aren't generally that computationally heavy, and it CAN take a second to think on some of the more computationally complicated commands, but the user interface itself is almost always super responsive. Altium will occasionally miss the second key in one of the shortcuts, I have NEVER had that problem using the command line in AutoCAD. You would have a really difficult time trying to go faster than it can keep up with except in a few scenarios.
It has an INCREDIBLY good snap/tracking system. It's lightyears better than anything else I've ever seen. It doesn't just track from whatever snap points are nearby--if you want to track from a snap point, you hover the cursor over it for a second to TELL it you want to track from that point. You can choose which types of snap points to allow, which angles they track, and whether those angles are absolute or relative to the last segment. You can change all of those settings right in the middle of a command with no ill effect. You can also set temporary track points mid-command, so if you want to track from the point where the extensions of two lines would intersect, you just type "TT", hover over the two endpoints to activate their tracking, track to the intersection, click there, and then you can resume your command with the ability to track off of where you just clicked. I would pay a significant amount of money just to have this one featureset in Altium instead of the absolute fucking garbage that is its snap/alignment system. I cannot tell you how much I love AutoCAD's snap/tracking, nor how much I hate Altium's shitty half-baked attempt at it.
It has a solid and fast selection/disambiguation method. Click to select, shift+click to unselect, drag right to select enclosed/left to select touching (how recently did Altium add that last one?), escape to unselect all. Altium can sort of be configured to replicate that, but it just doesn't work as well because of other issues with selection. It's often difficult to tell what's going to get selected when you click on something, and trying to deselect one thing often ends up selecting something else. In AutoCAD, objects always highlight when you hover the cursor over them. If the object you want isn't the one that highlights, Shift+Space will cycle through the objects available to click on there, so just tap that until the one you want is highlighted and click. There's no waiting for an object disambiguation window to pop up (which it doesn't always do when it should anyway).
This is a really fundamental thing and I honestly can't believe that it's worth mentioning, but Altium is actually bad at this: In AutoCAD, things go where I want them to. I have to constantly fight stupid little positioning errors in Altium, partly because of shitty snap/tracking, partly because of UI lag that means it doesn't register a click until after I've moved the cursor, but also just....sometimes shit doesn't end up where I clicked. Interactive routing is its own horrible beast in this respect. A lot of these errors are small enough or on sufficiently insensitive geometry that it doesn't REALLY matter, but it's absolutely indicative of fundamental problems not just with the way they've approached the UI, but with the actual math behind the commands. I have seen enough weird tiny little offsets in coordinates show up in layouts that I'm convinced the application has deep and widespread problems with rounding at every level of the CAD stack. That is an ABSURD problem for a CAD program to have*.
There's also just a ton of needless friction in the Altium UI. Just today I was fixing my display modes (because I had to reload my saved preferences because one specific keyboard shortcut just stopped working and that's the only way I could find to fix it), and the transparency matrix requires you to click on a cell in the grid, and then click into the box at the bottom to change its value. There's no multi select, so you have to do that on every. single. cell. you want to change. Who the fuck made that UI decision? Why can't I change the value in the cell itself? Why can't I change multiple values at once? This is hardly an isolated issue, there are needless impediments to being productive all throughout the application.
I could really go on and on about this, but the last think I'll say about the comparison: Altium has a ton of bugs. AutoCAD doesn't. AutoCAD is only three years older than Altium (counting Protel), and while I expect it has a much larger user base, it's been a mature, solid program for a LONG time. Altium has a number of bugs that are still active in bugcrunch because they're still in the application, for over a decade. Now I don't spend as much time in Altium as a lot of people here do, but I've put a fair number of hours into it. I still run into situations where something doesn't work the way I expect, so then I have to play the am-I-being-dumb-or-is-this-a-bug game and most of the time it's a fucking bug. Then I get to decide if I want to take the time to see if it's already in bugcrunch, and if not, spend more time documenting it to add it, and in the process weighing whether THIS bug is going to get enough support from other users, attract the interest of one of the devs, align with the correct phase of the moon, or whatever other factors affect the Ouija board that drives Altium's development planning. It's a deeply frustrating and largely futile time sink, but I usually report bugs because I want Altium to be better. I want it to keep getting better to the point where I feel like it's worth spending any money at all on the annual subscription, let along the two fucking thousand dollars they want for....what? Interactive routing has gotten worse in recent versions! That's like THE THING that Altium is for! How does that happen?! Now granted, Altium is certainly has a larger and more complex data model to deal with, and that's hard, I get that. But the sum total of my experience with it is that Altium, the company, is not really serious about making a good tool. Dave mentioned (in this thread maybe?) that we'd "be surprised" how little effort they're putting into PCB, but at this point I see no evidence that they're putting ANY effort into it. It's not good enough for them to be complacent, they haven't finished the job yet, and parts that they have finished, they've managed to fuck up again.
Phew, that was a long rant. I just finished my AutoCAD project today so I can't wait to start my next project that'll be a few solid days in Altium lol.
* Not quite as absurd as in Haas CNC machines, where I have personally had the control tell me that a memory value it displays as "0.000000" (six decimal places) is not equal to "0". As if writing G-code macros didn't suck enough to begin with.