logoalt Hacker News

ux266478yesterday at 3:21 PM1 replyview on HN

Because 'engineering' is a different field, with a different software ecosystem? What's fascinating about it? It's pretty blatantly obvious, engineers pay Dassault through the nose for Solidworks because there are no real alternatives. The same is not true for programming.

If there was a high quality CAD server that was interfaced via plugins for programmable 3D editing software like Blender, then we can start making comparisons. Fact of the matter is that this isn't the case, not like what programmers have gotten in the last 20 years. It's absolutely not impossible for such a thing to exist, it just doesn't. Building things like high quality heuristics for the topological naming problem is quite hard.

It doesn't help that almost every IDE in existence these days is also not a real IDE. Visual Studio, Xcode, Jetbrains, etc. are just a more rigid programmable text editor, they lack the "I", and quite a bit of the "E". Compare them with things like LispWorks and Delphi, and the difference is stark. For the former category of "DE"s, there are often tools which are just as high quality, if not higher quality, elsewhere. Speaking as someone that uses a very wide variety of tools, including the ones mentioned, there's really not a lot of point to them unless you just really like their specific UI/UX.


Replies

inigyouyesterday at 3:43 PM

I remember when I moved from netbeans to eclipse and the speed of compilation was amazing. For the uninitiated, Netbeans uses a traditional "compile and run" button, but Eclipse does incremental compilation as you type (and actually wrote its own Java compiler for this purpose, which almost exactly matches the Oracle compiler). You get real errors as you type, and when you press run the program instantly runs.

Didn't Donald Knuth or someone of that era write about this effect in Pascal IDEs?

(The best feature though is that you can run a program containing semantic errors or even minor syntax errors; the body of any function that doesn't compile gets compiled as a throw-exception statement, so you don't have to comment it out when you're working on another part of the code)