4 ms·
"In this paper we discussed the large shortcomings in today’s programming practices to support the growing need of harnessing data and software components found
by andor 12y ago
"In this paper we discussed the large shortcomings in today’s
programming practices to support the growing need of harnessing data and software components found on the Internet.
The tasks of discovery and ensuring compatibility between
components are for the most part done manually, making existing systems hard-to-manage and fragile and building new
systems a real challenge."
If a developer wants to understand his/her system as a whole, it's a
requirement to understand all included libraries as well. Automatic checks
can help a lot, but they must work really well before they can replace
manual work. Their work, in particular, adds another language for metadata on
top of the existing code, which was self-describing in the first place.
When changing the actual code, the metadata description must be changed
as well. How do you ensure that the description is accurate? Use yet another
specification language and model to check it?
- tree_of_item 12y agoHow was the existing code "self describing"? That sounds like what people who don't want to write comments or documentation say, that their code is magically "self describing".
- andor 12y agoThe code is self-describing because it's written in a formal language with precisely defined semantics. By reading it, you should be able to understand what it does. Here's an "obfuscated" version of the code in from the paper: a = { b: function() { return Math.floor(new Date().getTime()/1000); } }; This function takes the number of milliseconds since 1970, divides it by 1000 to get the number of seconds, and rounds that value down. There is need for an additional explanation of what the function is doing. Granted, this is a toy example, and I'm certainly not against comments that describe what the next x lines of complex code are doing. But the paper is about using metadata to help a computer, not a person, to understand what's going on.