• 0 Posts
  • 13 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle






  • It’s also a fallacy that rust code is memory safe. I audited a couple of large rust projects and found that they both had tens of unsafe constructs. I presume other projects are similar.

    You can’t use “unsafe” and then claim that your program’s memory safe. It may be “somewhat safe-ish” but claiming that your code is safe because you carefully reviewed your unsafe sections leaves you on the same shaky ground as c++, where they also claim that they carefully review their code.






  • I think the timeline’s a bit off here.

    OP describes how primitive computing was in the 80s and 90s, and speaks of a number of developments which appeared “leading up to the year 2000”. Let me give examples of all of these developments which were actually from the 1970s or earlier:

    • The VAX-11/780 was introduced in 1977, pretty much introduced the concept of a modern MMU and memory model - although there were plenty of precursors. They were very popular and widespread.
    • Lisp’s been around since 1958. It (and other languages) used memory managed runtimes similar in concept to today’s ones.
    • IBM’s VM/370 OS introduced virtual machines on IBM mainframes in 1972. They were an integral part of the OS and CPU architecture, probably more so than current VMs which are kind of tacked on as an afterthought.
    • Modular programming languages were a big topic in this era. One that comes to mind is Modula-2 which was first introduced in 1977, but much programming language development at the time was focused on modularity and code reuse.
    • And JITs date back to 1960.

    My point is that I think these advancements were made a lot earlier than OP’s saying. Sure, some of them took a while to spread but we pretty much started the 80s with all of this already in place.