daltonb
11/02/2021, 12:04 AM“New” is not what I look for. “Ideas that make a qualitative difference over past techniques” are what I’d like to see.
Years ago, I’m fairly sure I was aware of pretty much everything regarding computing that was going on in the world. Today, I’m definitely not aware of everything, so it’s reasonably likely that if there was something really great being done somewhere that I wouldn’t know about it.
I would be most interested in learning about “qualitatively more expressive” programming that is more in line with top-level engineering practices of the CAD<->SIM->FAB systems found in serious engineering of large complex systems in the physical worlds of civil, electrical, automotive, aeronautical, biological, etc. engineering.
In the CAD<->SIM part I’d like to see the designs understandable at the level of visualizable semantic requirements and specifications that can be automatically simulated (on supercomputers if necessary) in real-time, and then safely optimized in various ways for many targets.
Isolating semantics in the CAD<->SIM part implies that what is represented here is a felicitous combination of “compact and understandable”.
The FAB-part pragmatics are very interesting in their own right, and besides efficiencies, should be able to deal with enormous scaling and various kinds of latencies and errors, etc.
The above would be the minimal visions and goals that I think systems designers within computing and software engineering should be aiming for.
I’m not aware of something like this being worked on at present, but these days this could be just because I haven’t come across it.
ibdknox
11/02/2021, 1:29 AMibdknox
11/02/2021, 1:30 AMibdknox
11/02/2021, 1:30 AMdaltonb
11/02/2021, 2:00 AMdaltonb
11/02/2021, 2:02 AMKartik Agaram
daltonb
11/04/2021, 3:22 PMDuncan Cragg
11/04/2021, 4:40 PMdaltonb
11/04/2021, 5:58 PMDuncan Cragg
11/04/2021, 9:51 PMshalabh
11/09/2021, 7:23 PMengineering as ‘a process for implementing rules (science) in order to achieve desired world states (design) based on current world states (science).’You could have engineering without science, based purely on empirical data, no? Talking about models, you might find this write-up interesting: https://blog.khinsen.net/posts/2020/12/10/the-structure-and-interpretation-of-scientific-models/. It talks about empirical vs explanatory models.
shalabh
11/09/2021, 7:27 PMdesign as ‘a process for defining models of how we want the world to be,’Do you mean something like "designing a car" or "designing a language/medium". One slippery thing about models is that the model definition language (~medium) is also designed.
Daniel Krasner
11/09/2021, 9:48 PMdaltonb
11/10/2021, 7:49 PMshalabh
11/10/2021, 8:14 PMthat’s indeed the crux of a lot of the confusion in our tools, and part of why this feels like an important thing to focus onI agree. When programming, I'm not sure I can clearly distinguish between "using a modelling language to create a model" and "creating a new model definition language". If we consider a programming language or system as a model definition language, any library or framework written in that system now is a new model definition language. It shares some aspect with the underlying language, but introduces new abstract concepts that can be instantiated to express a new kind of model. You don't even need a rich library for this. A trivial example is if I implement a Graph class in any OO language, and express various concepts in my programs as graphs, I've now created an ad-hoc modeling language where "graphs" can be expressed and processed. So, in any final system that exhibits behavior, where is the boundary between creation of models vs creation of new modelling languages? Hard to tell. Is it possible that in other fields of science and engineering, we don't usually create model definition languages so easily? Maybe. I agree 💯 on your original point that coding is not about data and functions. It's really about crafting systems via representations (~models). I'm not a fan of even the usual connotations of a program where you write it then run it. Rather, there are other ways to think about the system-representation correspondence that we should explore. On the topic of modelling, another paper I really like is Winograd's Beyond Programming Languages in which he talks about the "Three Domains of Description" - essentially three perspectives of such representations that are desirable. https://john.cs.olemiss.edu/~dwilkins/Seminar/S05/winogradPL.pdf
Daniel Krasner
11/10/2021, 9:59 PMBreck Yunits
11/11/2021, 12:54 AMDaniel Krasner
11/11/2021, 1:01 AMKonrad Hinsen
11/11/2021, 8:19 AMKonrad Hinsen
11/11/2021, 8:27 AM