3 ms·
What Next? A Few Remaining Problems in Information Technology (1998) [pdf]
- amelius 12y agoMy biggest concern: currently, programming is 10% thinking and 90% plumbing. Most applications, even in the distributed web-service age, are just about sending data from A to B. Or updating results based on changes of inputs. If we cannot solve these problems in a simple and generic way, then most of our intellectual capacity is lost to basic plumbing work. And unfortunately, new programming languages and frameworks are not making the tasks fundamentally simpler, only superficially (like reducing the required number of lines-of-code by merely a constant factor). Another problem I see is that functionality is often duplicated among multiple languages. For example, there's a library for doing computational geometry, written in Python, in C++, in Haskell, in Javascript, etc. This is of course enormously wasteful, and the only thing necessary to solve this is a decent mapping between languages. In other words, we need better tools to get ourselves out of this mess.
- protomyth 12y agoI earned a pretty good living for 10 years taking data in form A and turning it into form B. It still amazes me with all the programming and reporting tools that this is still a thing. On languages, I wonder if language designers would in addition to a standard library provide a standard set of templates for common needs (e.g. representing a person). It would save a lot of the plumbing time to get a template that has had some thought and best practices added.
- deleted 12y ago[deleted]
- javajosh 12y agoThis is covered on page 43. It's too bad the OP is off the front-page already - this is the best thing I've seen on HN in about 6mo. But you're right - we still need better ways of thinking about application design. Bret Victor gets it, because it's a visualization problem, and a pedagogy problem, and a tooling problem, not really a "computer science problem" (a la Scott Aaronson). This paper ignores "application construction" as a problem, but the existence of Light Table, Swift, Go, React, and so forth underscore the need for better developer tools. (React is particularly interesting as I don't know of anything that good even outside of the web. It's interesting that app design in the browser is eclipsing traditional methods in many ways! I think that's cool.)