Most active commenters
  • alankay1(6)
  • alankay(3)
  • discreteevent(3)

←back to thread

1401 points alankay | 15 comments | | HN request time: 0.001s | source | bottom

This request originated via recent discussions on HN, and the forming of HARC! at YC Research. I'll be around for most of the day today (though the early evening).
Show context
discreteevent ◴[] No.11940642[source]
Hi Alan,

A lot of the VPRI work involved inventing new languages (DSLs). The results were extremely impressive but there were some extremely impressive people inventing the languages. Do you think this is a practical approach for everyday programmers? You have also recommended before that there should be clear separation between meta model and model. Should there be something similar to discipline a codebase where people are inventing their own languages? Or should just e.g. OS writers invent the languages and everyone else use a lingua franca?

replies(1): >>11941154 #
1. alankay ◴[] No.11941154[source]
Tricky question. One answer would be to ask whether there is an intrinsic difference between "computer science" and (say) physics? Or are the differences just that computing is where science was in the Middle Ages?
replies(3): >>11941209 #>>11942139 #>>11942510 #
2. Natanael_L ◴[] No.11941209[source]
Computer science is defined by information theory, and we already have mathematical proofs binding together information theory with the laws of quantum physics (such as the example of the minimum energy needed to erase one bit of entropy from memory, something which is bounded by the ambient temperature).
replies(2): >>11941638 #>>11941876 #
3. nickpsecurity ◴[] No.11941638[source]
Sort of. There's quite a few theories operating on computer science as we know it today. Especially in software and hardware. Examples include model-driven development, flow-based programming, lambda calculus, state machines, logic-oriented systems, and so on. The mathematical models involved underlying structuring and verification of anything built in these can be quite different although often with some overlapping techniques or principles. There's also been lots of work in high-assurance systems going from requirements and design specifications in a rigorous, mathematical (even mechanical) way down to an implementation in HW, SW, or both. None of them cite information theory. Heck, the analog computers might be outside of it entirely given they implement specific, mathematical functions with continuous operation on reals. I know Shannon had a separate model for them.

So, given I don't study it or read on it, I'm actually curious if you or anyone else has references on where information theory impacts real software development over the years. I study lots of formal methods & synthesis research but never even see the phrase mentioned. I've been imagining it's in its own little field working at a strongly theoretical level making abstract or concrete observations about computers. Just don't see them outside some cryptography stuff I've read.

EDIT to add example below where Bertrand Meyer presents a Theory of Programs that ties it all to basic, set theory.

https://bertrandmeyer.com/2015/07/06/new-paper-theory-of-pro...

4. alankay1 ◴[] No.11941876[source]
Respectfully ... I think you missed the point of my answer.
replies(1): >>11941908 #
5. Natanael_L ◴[] No.11941908{3}[source]
Did you intend to compare the progress and formalization of the fields? Didn't pick up on that
replies(1): >>11942469 #
6. discreteevent ◴[] No.11942139[source]
Thanks. I've been thinking about your questions. I might be misreading you but I think that the answer is probably yes to both. So we should try to get out of the middle ages by inventing new theories and criticising and testing them like physics. But maybe just the physicists should do that. In the meantime the engineers should focus on being able to communicate clearly with the best tools that are currently available.(part of which is restricting their desire to invent)
replies(1): >>11945187 #
7. alankay1 ◴[] No.11942469{4}[source]
Yes, that was what I was driving at. Anyone could do physics in the Middle Ages -- they just had to get a pointy hat. A few centuries later after Newton, one suddenly had to learn a lot of tough stuff, but it was worth it because the results more than paid for the new levels of effort.
8. panic ◴[] No.11942510[source]
In physics, you can tell you're making progress because you can explain more things that happen in nature. How can you tell when you're making progress in computer science?

To me it seems like "computer science" lumps together too many different goals. It's like if we had a field called "word science" that covered story-writing, linguistics, scientific publication, typesetting, etc.

replies(1): >>11942569 #
9. alankay1 ◴[] No.11942569[source]
This is a terrific question, and I'll try to do it justice tomorrow morning.
replies(1): >>11945243 #
10. alankay1 ◴[] No.11945187[source]
Engineering is wonderful -- but think of what happened after real science got invented!

Today's "computer science" is much more like "library science" than it should be on the one hand, and too much coincident with engineering on the other (and usually not great engineering at that).

It's way past time for our not-quite-a-field to grow up more in important ways.

replies(1): >>11948863 #
11. alankay ◴[] No.11945243{3}[source]
Now that it is "morning", I'm not sure that I can do justice to this question here...

But certainly we have to take back the term "computer science" and try to give it real meaning as to what might constitute an actual science here. As Herb Simon pointed out, it's a "science of the artificial", meaning that it is a study of what can be made and what has been made.

Science tries to understand phenomena by making models and assessing their powers. Nature provides phenomena, but so do engineers e.g. by making a bridge in any way they can. Like most things in early engineering, bridge-lore was put in "cookbooks of practice". After science got invented, scientist-engineers could use existing bridges as phenomena to be studied, and now develop models/theories of bridges. This got very powerful rather recently (the Tacoma Narrows bridge went down just a few months after I was born!).

When the first Turing Award winner -- Al Perlis -- was asked in the 60s "What is Computer Science?", he said "It is the science of processes!". He meant all processes including those on computers, but also in Biology, society, etc.

His idea was that computing formed a wonderful facility for making better models of pretty much everything, especially dynamic things (which everything actually is), and that it was also the kind of thing that could really be understood much better by using it to make models of itself.

Today, we could still take this as a starting place for "getting 'Computer Science' back from where it was banished".

In any case, this point of view is very different from engineering. A fun thing in any "science of the artificial" is that you have to make artifacts for both phenomena and models.

(And just to confuse things here, note how much engineering practice is really required to make a good theory in a science!)

replies(1): >>11945916 #
12. panic ◴[] No.11945916{4}[source]
Thanks for the answer! It seems like there's a distinction here between exploring how models can/should be built (a mathematical/philosophical task), helping people create and understand these models with computers (a design/engineering task), and using these models to formulate and test hypotheses about ourselves and the world (a scientific task). Maybe the lack of science is because we haven't figured out the math/philosophy/design/engineering parts yet!
replies(1): >>11946542 #
13. alankay1 ◴[] No.11946542{5}[source]
The lack of science is because most people are not only not interested in science, but really don't understand what it is.
14. discreteevent ◴[] No.11948863{3}[source]
Agreed. It's really motivating to have someone who has shown a few times what can be done continuing to push for better. It's also helpful for you call a spade a spade when you talk of reinventing the flat tire. If more people would recognise both of these then maybe we could have a better future and more stable engineering present (rather than framework/language of the week!)
replies(1): >>11948942 #
15. alankay1 ◴[] No.11948942{4}[source]
It would be very good if we starting to do real engineering and real science wrt software and most design ...