Hacker News new | ask | show | jobs
by Jtsummers 671 days ago
To your submission title question:

C is a root, sure, but it was a language designed for the PDP-11 and for single-threaded programs. The original C is unsuitable today for numerous reasons and saw major changes over the decades, not all sufficient, to make it more suitable for newer systems. The original developers of C moved on (to other languages or to move the needle on the C language), why can't the rest of us?

> Why are we looking for new technologies?

Several reasons: they solve a problem; we're curious; for some reason we "have" to use them so obviously we have to look at them.

I'm trying to modernize an old system. To give you context the original version was 12 racks of largely analog equipment for signal processing. Those 12 racks, today, would be maybe 4U of digital equipment (just to provide the original features). If it was Rx only, it can almost be handled by a modest current generation workstation and an RTL-SDR and a couple other pieces of hardware, but it's also Tx and a bunch of other features so it needs a bit more than that. 25ish years ago it was modernized and reduced down to 5 racks with a lot of features added. To cover the newer version, it'll be about 2 racks of equipment. And we'll get more features.

That's why we look at new technology.

Is there value in the old? Absolutely. The lessons, though, are often more valuable than the technology itself.

> Why do we go into software development with the enthusiasm to create something great, but end up in a situation where we are developing some other catalog or some other digital yo-yo to make money?

Speak for yourself. I work on critical communication and safety systems. Go find better jobs and stop asking people to hire you as a catalog maker.

1 comments

Reasonable. Thanks for your answer.

The world is full of possibilities, so for sure it's not true and cannot be true for all of us.

Someone moved from C, others didn't move.

I am trying to point not so on C, but on tendention in general. Capitalistic companies dictate to us what technologies to use. Money became a higher priority than engineering.

Can you say to your boss "No, stack you using sucks, I will use X language and libraries"? I know that someone can for sure, but most of us can't.

> Can you say to your boss "No, stack you using sucks, I will use X language and libraries"? I know that someone can for sure, but most of us can't.

Yes and no. I can say what sucks, and I'm consulted on how to do things, but I don't have authority to unilaterally choose a direction most of the time (on subsystems I have more, maybe even total, freedom, on the whole system I do not). I also don't have the ultimate responsibility for those things that I cannot make the decisions on, which is a good thing since I lack the authority to make those decisions. No responsibility without authority.

> Capitalistic companies dictate to us what technologies to use. Money became a higher priority than engineering.

This is true. If you want it to change, though, it comes at a high cost. To reprioritize engineering you need to shift who holds responsibility for the system and its outcomes. If you want authority, you also need to accept responsibility (possibly even criminal liability, like PEs assume in some of their work). No company (or no competent company) will dole out authority willy-nilly. You want that authority, you need to accept an appropriate level of responsibility and liability.