I can see how closures would take some work. Thanks.
There's evidence garbage collection was not the desired solution but a plan B. McCarthy writes the reason reference counting was not implemented was a hardware limitation [1]:
"Since there were only six bits left in a word, and these were in separated parts of the word, reference counts seemed infeasible without a drastic change in the way list structures were represented. (A list handling scheme using reference counts was later used by Collins (1960) on a 48 bit CDC computer).
(thank you for the willingness to write such a detailed response)
There exists a point on the memory management continuum where management starts being more automatic (gc) than manual (malloc/free). I would like to understand the forces surrounding this specific point, right before the scale tips towards automatic.
If you tried to build a dynamic language without automatic management, what would break and why?
There have been a lot of posts related to garbage collection lately but none of them touched upon what I see as a crucial issue: why is garbage collection needed to begin with?
Could you do without it? What is the key point that made it necessary?
I'm aware of it being introduced by McCarthy in the original Lisp paper in 1960 of course. But I suspect what McCarthy originally meant is not what garbage collection turned out to be. What I suspect he meant was that there needs to be a way for memory to be managed. malloc/free offer a way for memory to be managed, and presumably they weren't invented until C was nine years later. What McCarthy might have meant is what became malloc/free in C, which doesn't need garbage collection.
C isn't the only flag here. Was there any OS on the IBM 704 used to implement the original Lisp? Did the OS support multiprocessing? Because if it didn't (UNIX wasn't invented until 1969 either) it would make sense for memory to be available for a single process. And it would mean when people said garbage collection they were envisioning malloc/free.
(Also, databases and operating systems can live without whatever makes garbage collection necessary, since they don't use it, and those are pretty complex and fast pieces of software.)
So, what makes garbage collection different than malloc/free, and why is it necessary? I'd love to learn more about that.
This might be a silly thing to ask, but why don't they save their data in flat files on a shared filesystem?
They wouldn't need Memcached, since the OS caches files anyway; replication with rsync becomes easy; they don't need transactions anyway; and they wouldn't have so much software to manage.
Many jobs are crappy because companies want guarantees. They would rather have peace of mind that things are moving at a known rate compared to any risk of uncertainty.
The jobs are not necessarily crappy because companies are interested in keeping wages down. Companies are more interested in boosting profits compared to keeping wages down.
The humorous part is so many jobs continue to remain crappy even when you make a boss look good by generating orders of magnitude more value than he bargained for when hiring you.
Even if you explained to the boss how you could generate such value at the time of hire, they still wouldn't be able to assimilate it's possible. They don't see how one can generate such much value, even when you present plans on how it can be done.
It's as if the boss is trying hard not to let you generate more value than expected.
Perhaps unbeknownst to you, you suggested that languages can be ranked, and that one of them stands out on top as best.
You are almost right. There is one language that is the best, though it's so young it doesn't stand out yet. This might be the only time in history people still have the chance to contribute to the best language.
I have a question about it: can anyone tell how it deals with redundancy?
It seems to be distributed. If you are running Plan 9 on 3 machines, and one goes down, what happens to the rest of the system. Does it become unavailable?
Catering to people with special needs like the deaf & blind has to be one of the most untapped opportunities for a startup.
The angle in is to build something the blind can use that frees them from the difficulty of browsing company websites. Maybe a meta-browser. Maybe something else.
There's evidence garbage collection was not the desired solution but a plan B. McCarthy writes the reason reference counting was not implemented was a hardware limitation [1]:
"Since there were only six bits left in a word, and these were in separated parts of the word, reference counts seemed infeasible without a drastic change in the way list structures were represented. (A list handling scheme using reference counts was later used by Collins (1960) on a 48 bit CDC computer).
The second alternative is garbage collection..."
[1] - http://www-formal.stanford.edu/jmc/history/lisp/node3.html#S...