The post is about how a programmer thinks that there is a lot of things that are more complicated than those should be; and even use web development as an example. PHP is a programming language with a lot of native functions to do things in the web that would be a lot harder otherwise...
So, what is the trolling here? The lack of serious tone in the comment?
I was trying to illustrate that telling someone to google for references when they already indicated that it was unsuccessful, is not likely to be successful.
Indeed. Lisp is a simple language that can be completely defined in half a page. A naive implementation takes less than a thousand lines of code. The language is homoiconic, i.e, there's no difference between programs and data -- everything is a list. This enables programmers to perform complex transformations on code using macros. Lisp compilers such as SBCL generate code that is almost as fast as C++. Oh, and the original Lisp as described by McCarthy is strictly rooted in mathematics. If you limit yourself to writing only a subset of Common Lisp/Scheme -- one that emphasizes immutability and recursive functions on lists of symbols -- it is possible to use formal methods to prove the correctness of your code.
None of that is true for JS. I don't think Crockford thought his remark through.
If it ain't got macros, then it ain't a Lisp. Javascript is definitely no Lisp, but I really like that it allows function composition, which is somehow reminiscent of a Lisp.
f(g(h(x))); instead of (f (g (h x)))
You're right. I meant to say passing first-class functions as arguments, rather than pointers to functions as you would in C or an object method as you would in Java.
This is brilliant in its simplicity. It would be very feasible to implement on a single web server, but what are some ways to extend it into a protocol?
If multiple servers mirror an email thread, how does one edit what he has already sent/posted? I think this can be done by using a public key encryption scheme, so that only the person who published it with their key can edit it on the multitude of servers that share this new email protocol.
Because in DRM is security through obscurity. The data/programme/file is encrypted to hide from the user, but must also decrypt it from the user, and the user has full technically and legal rights to that code.
If you have a DRMed music file, and (say) an open source music player can play it, then the file is encrypted and the encyrption key is kept with/in the file. You can just look at the source code of the music player and see it extracts the key from the file (or from your master key file), and see how it decrypts the file. You can then decrypt the file yourself. ergo drm breaking.
DRM can also force restrictions like "Only allow person with account id X from opening this programme", that could be implemented in the code as a function that says "doesUserHavePermission()". If the code is open source, then you just change that function to always return true, and to always allow everyone to use it. (Since it's an open source programme, you can then distribute your code with your 'fix' applied)
You can just look at the source code of the music player and see it extracts the key from the file
To be fair, we can also do that without source code. It only (yet again) proves DRM is pointless against technical people that are determined to break it.
Non-technical people or people that do want to play "by the rules" won't do that. Also, the vendor could do things such as embed the name of the buyer inside the downloaded executable/data, to discourage sharing...
To be fair, we can also do that without source code
You can, but it's not the same.
With an open source programme:
* it's much easier to find & disable the DRM checks
* I can (legally) distribute a version with DRM disabled
* I can legally distribute a (probably small) patch that disabled the DRM, it's much easier for someone else to verify that my patch disabled the DRM, and doesn't have a trojan than if I give a binary diff.
* With open source programmes, I could submit my patched version (that disables the DRM) to a very freedom loving distro (like debian), and campaign for it's acceptance into the package index (making all Debian users not have DRM, etc.)
These things are technically possible with propriaty software, but you don't have the advantages above.
Most people just browse to web. If you want a shell, it's way easier to use a linux thinkpad that has a proper keyboard and proper OS, as opposed to an iPad. But that's not to say that an iPad is not good for some things.
I'll second that. Strang's book is by far my favorite introductory math book. He addresses fundamentals quite well, and gives good treatment to applications such as linear programming and game theory.