For the past few weeks, I've been mulling the problem of how to compare and contrast the various printed circuit board (PCB) tools from the different vendors.
Now, before we plunge into the fray, let's start with a few "weasel words" (disclaimers). Remember the old saying: "Eagles may soar, but weasels rarely get sucked into jet engines!" I'm sure we can all agree that these words are as true today as they were when first intoned by our ancient ancestors deep in the mists of time.
First, what I'm looking to do is consider tools at a high level of abstraction. I'm sure there's a place for a 10,000-line comparison boasting tick marks for every conceivable feature and function. I'm equally certain that I'm not the person who is going to create such a comparison, not the least that features and functions are being added and deleted, and are evolving and mutating on a daily basis.
Also, I'm predominantly thinking about core capabilities here -- specifically, capturing PCB designs and laying out the boards. At the low-end, this may involve a single engineer or a very small team working in isolation. At the high-end, it may involve multiple multi-person teams from different companies located in different geographical locations around the world, thereby mandating the use of sophisticated library management and data management technology.
It may also involve multi-board systems and distributed systems (like the electronics in aircraft), which -- in turn -- requires cables and harnesses to be taken into account. The thing is that I don't want to wander off into the weeds and get sucked into things like thermal analysis and signal integrity analysis and 3D MCAD and suchlike capabilities here -- we'll leave those considerations for another day.
Last but not least, I'm predominantly thinking about professional-grade PCB offerings, such as those from Altium, Cadence, Mentor, and Zuken. Having said this, I'd also like to include certain tools like DesignSpark PCB and EAGLE PCB in the mix to provide a point of reference.
Now, I don't actually want to compare and contrast the various offerings here in this article. The first stage is to choose a framework upon which we can all concur (apart from those who don't agree, but they don't count). For example, one way to describe the PCB tool landscape would be by means of a 2D graph as illustrated below:
The reason I've shown "Enterprise Level" tools as being in the upper-right-hand corner is that we typically wouldn't focus on these tools being used to create simple designs (although they could be), and we certainly wouldn't expect an enterprise-level tool suite being used by a "one-person team."
Now, do you agree with the two main categories of "Desktop Level" and "Enterprise Level," or would you prefer different terms? Do you think that we should add another level above "Enterprise," or is that as high as it gets? Also, do you think there should be an additional category between the "Desktop Level" and the "Enterprise Level" -- in which case, what should this be called? -- or do you think our diagram should reflect a more gradual transition between the two as illustrated below?
Another alternative would be to create a 3D graph, in which the first two dimensions are used to represent "Design Complexity" and "Corporate Complexity" as shown above, while the third dimension is used to reflect additional complexity in both areas, such as multi-board systems and geographically dispersed engineering teams... but you can easily get carried away by this sort of thing. Generally speaking I prefer the KISS Principle ("Keep It Simple, Stupid").
Actually, speaking of the KISS Principle, there are some who might say that even our 2D graphs serve only to confuse the issue. Another representation that finds favor with certain folks would be the dual pyramid approach as illustrated below:
Here, we've divided our tool universe into a "Low-End" and a "High-End." At the lowest of the "Low-End" we have "Basic" offerings (A), from whence we can move up into higher-capacity and higher-speed versions (B). Similarly, in the case of the "High-End," we start with "Mainstream" offerings (C), from whence we can once again move onwards and upwards into higher-capacity and higher-speed versions (D). It's relatively easy to transition from (A) to (B) or from (C) to (D), but migrating from (A) or (B) to (C) or (D) requires an expensive, time-consuming, resource-intensive (learning curve) switch. Once again, do you agree with the terminology used in the above diagram, or would you present this differently in any way.
So, our first step is to agree on one of the above diagrams as the basis for our tool comparisons. Do you like the first 2D representation or the second, or do you prefer the dual pyramid representation? Also, do you agree with the terminology I've used, or would you rephrase things in any way? Once we all agree on a basic representation, our next step is going to be to take existing PCB offerings and plot them on our chart, at which point I think the sparks will really begin to fly.