Jesse McNelis: “This has nothing to do with language, it has to do with data structures.
Programming languages should be powerful, data structures should be accessible.”
Yes, exactly. The linked article conflates “power” with “data transparency”. There are a LOT of languages which would be called quite not-powerful, but which are also quite data-opaque. For instance, Word 2.0’s BASIC language was, quite undeniably, very very weak. However, if it was displaying a dialog box, do you think any other application would be able to see that data?
In the linked article, the “Principle” is “Powerful languages inhibit information reuse.” However, the body of the article then talks about being able to determine what a program will do via code analysis (“powerful” languages, it is argued, will be harder to decipher in this way and will require running … not sure if I agree with that either.) In other words, the “information reuse” is the algorithm or process, NOT the data.
Fundamentally, I think the article is not allowing for multi-tiered applications at the client (ie, a web service shoots down raw data; the client displays it all prettified (and copy/pasteable). That type of an architecture allows the individual user to get at the data, AND an automated tool to get at the data without having to run the prettifier.
Example: given the raytracer link. Is its data more, or less, accessible (meaning, algorithms, raw data, and produced results) than a similar project in Java or C++? I would guess that the “more powerful” languages might allow for a much more transparent process and results.
IMHO, it all boils down to the simple and well-known law: “Use the right tool for the job.” If you are conveying text information, use a text markup language. If you are performing complex mathematical operations, use a language capable of doing those. If you are dealing with complex data structures, a language with more than laughable support for complex data structures would be advised.
Sorry, Mr Berners-Lee.