413 karma · joined July 14, 2014
If people join after high-school, how does that work?
If you connect billions of switches in the right pattern you get a computer. Billions of little switches clicking on and off, no more, no less. No pixies or magic dust involved.
Although I know it's not directly comparable, I was at an ST event recently, and the representative said they were making one million STM32 ARM microcontrollers per day.
To the best of my knowledge, it includes a small (I think fixed) amount of structural unemployment but anything else is assumed to be transient. We might have some unemployment now, but it's always assumed to right itself after a few years.
Another example is instead of shuffling a bunch of bare UUID objects around (or strings, for that matter) in a system where lots of different things have a UUID, I can make a simple reference type for the IDs of different entities. This way, calling a function that takes the UUID of one type of entity with that of another can be a type error that's caught by the compiler instead of a logic error that's caught by a unit test. This is cumbersome at best to do in Java or C, and obviously impossible in Python or Ruby, but in ML-inspired languages it's simply the most natural way to work.
They're both statically typed, but the type systems obviously aren't equal. I would argue that stricter types are in fact one of the main things that helps me be more productive in languages with MLish type systems compared to C which lacks e.g. generics and proper sum types.
That said, I find Elixir very interesting for the exact reasons you said.
How much of my private information, as kept by government or private organizations, are stored in Oracle databases that are less secure because of their boneheaded stance on this?
People have all sorts of reasons for choosing Oracle solutions. I am not in a position to influence all those people, even when their choices affect me directly.
I also use it remotely on a server, but it's just as important locally.
Email is open. For some reason people think of email as different. GMail could've provided the exact same conditions and experience when they launched, but only enabled GMail-GMail communications. It would never have got to where it is, never.
And there's obviously no technical reason instant messaging, social networking, etc., should work any different, but for some reason it's perceived as different.
Also, being written in assembler means it could become self-hosting. I think it's a very interesting project for it and have been looking for things to do with it for a while.
The outer function (cons) is a class constructor. It returns an object, which is a function of one argument, where the argument is equivalent to the name of a method. In this case, the methods are getters, so they evaluate to values. You could just as easily have stored more procedures in the object returned by the constructor.
In this case, numbers where chosen as method names and sugary procedures defined outside the object itself. You could have used symbols:
(define (cons x y)
(lambda (method)
(cond ((eq? method 'car) x)
((eq? method 'cdr) y)
(else (error "unknown method")))))
In which case what you have more closely resembles OO: # (define p (cons 1 2))
# (p 'car)
1
# (p 'cdr)
2