166 karma · joined September 25, 2009
Thank goodness!
1) Polymorphism is NOT functional programming. Using function pointers, which you seem to detest, is one aspect of functional programming. If you've only used C++, then you don't know what you're missing from languages like Lisp or JavaScript. (I should know. I was once like that.)
2) I seriously doubt the Linux kernel avoids function pointers. Ever heard of dispatch tables? Good C hackers know that smarter data structures make for simpler code.
3) Any feature that can go horribly wrong will go horribly wrong when you have a large project with lots of contributors. Everybody who successfully uses C++ on a large project has a huge "coding standards" document to keep the project from crashing and burning. I know Google has it, and I've seen others, too. Even I have it for my own personal C++ projects!
4) What Linus meant by "context dependency" is that you have to know the object's type in order to know what the function will do and you even have to figure out which version of the function will be called, based on the arguments. This is hell when you get a small patch in the middle of a larger function.
No matter what you do, you end up forcing a lot of people to learn to work the way the app wants them to. The best you can hope for is to build an app where, once it's explained, most users first go "Oh, ok, that makes sense." and then actually remember it later. If you're really good, the users will even say, "Wow! That's much better than the app I used before."
> This is nonsense
This didn't apply to the entire framework, only to the invention of a new documentation generator. davebalmer and I simply disagree on this issue.
OK, that makes sense. This explains the use of non-standard tags, too. Progressive enhancement and using a standard DOCTYPE aren't a big issue for apps.
No comparison to jQuery or YUI 3. The documentation suggests jo has a lot of catching up to do.
> If you're using jo to create all the UI for your application, you won't need any content or tags in your index.html file.
Apparently completely ignorant of progressive enhancement: deliver the markup and CSS and then enhance with JavaScript.
> Often, important information that needs to be documented just doesn't fit into a neat, tidy spot.
This is nonsense: you put it in the overall description of the class. But based on this nonsense, jo invents its own, based on markdown. So you get a plain HTML page for each class instead of something similar to javadoc.
Sure does: Keep the UI out of the kernel :)