logoalt Hacker News

anonymousiamyesterday at 7:41 PM1 replyview on HN

I lived in both worlds (hardware/software) throughout my career. In school, I learned (in order): Analog electronics (including RF), Digital electronics, Microprocessors, Software, Systems. I've always thought that it's strange how few software people know hardware, and vice versa. In the software domain, when I began referencing hardware elements while explaining something, the software audience would usually just glaze over and act like they were incapable of understanding. Same goes for the hardware people when I would reference software elements.

I learned Ada sometime around 1991. Counting assembly for various platforms, I had already learned about a dozen other languages by then, and would later learn many more.

Sometime around 2000 I learned VHDL. In all of the material (two textbooks and numerous handouts) there was no mention of the obvious similarities to Ada. I wish somebody had just produced a textbook describing the additional features and nomenclatures that VHDL added to Ada -- That would have made learning it even easier. The obvious reason that nobody had done that is that I was among a very small minority of hardware people who already knew Ada, and it just wouldn't be useful to most people.

In all of my work, but especially in systems integration work, I've found that my knowledge of multiple domains has really helped me outperform my peers. Having an understanding of what the computer is doing at the machine level, as well as what the software is doing (or trying to do) can make the integration work easy.

More on-topic: I think it would be a great improvement to add some basic hardware elements to CS software courses, and to add some basic CS elements to EE courses. It would benefit everyone.


Replies

musicaletoday at 5:30 AM

> In all of the material (two textbooks and numerous handouts) there was no mention of the obvious similarities to Ada

Really? That's kind of the point of VHDL, isn't it? (vs. Verilog's unholy combination of C-like syntax with begin/end blocks, etc.)

VHDL also inherits Ada's module style, designed to have different implementations of the same thing (and verbosity, where it seems like you often have to say the same thing repeatedly, for better or for worse - more type checking at the expense of more typing at the keyboard.)