rtens
So I suppose you mean "Things that are easier to understand for novices [...]".
But that's not always the case which is incidentally proven by your examples. Assembly Language is a lot easier to write and understand for novices than machine code. And Fortran even more so. Bret Victor illustrates this very nicely in the video I linked to.
I'm convinced that the power that makes something more concise and at the same time easier to write and understand is abstraction. Or more precisely, the right abstraction, since a bad one can have to opposite effect. So I agree with you that better and more powerful abstractions are always good. Spreadsheets for example are a great abstraction for some problem but terrible for others.
So in order to "leverage powerful concept" and "express complex ideas" you need to be able to create your own abstraction. In this way my proposal is very different from Excel which barely allows to create any new abstractions.
What the manifesto apparently doesn't make clear is that I'm not proposing a new programming language but a programming model. The language part is more like byte-code than Java but it's really a protocol. The result is something that would serve a similar purpose as HTTP but would be vastly more powerful.
I think the mistake that these "language designed for children" that you have in mind is that they add training wheels instead of removing the pedals. The latter manages way better to teach you the basic concepts (steering, balancing) first and once you mastered these, gears and transitions increase your efficiency.
When it comes to software, I would take a similar approach and create a software authoring/execution environment that can be used by novices and experts alike. Novices would learn the concepts (message passing, abstraction) without actually writing code. The coding would then be added to increase the user's efficiency by providing a more concise notation. The actual language used would best be domain-specific to achieve maximum efficiency.
It didn't make me feel that mathematics is somehow limited though. As far as I understand Gödels theorem, all he says is that there is no such thing as a contradiction-free system of axioms a la Principia Mathematica.
But that's fine with me. I keep tons of contradicting believes in my head all the time. And I'm actually not that interested in simulating an entire brain (although that would be very exciting) but the thing I really care about is the ability to express a part of my mind that I care about in software, sort of like expert systems do. And as a software developer, that's exactly what I do everyday with the minds of my clients. That's also the main idea behind DDD in my opinion.
This topic deserves an essay. If I manage to wrap my head around it, I'll publish something on my blog this week.
Your sentiment of "aiming for the future we want" instead of "piling up more stuff on our existing stack" reminded me very much of this talk: https://www.youtube.com/watch?v=gTAghAJcO1o
I started to creat a comparison of other platforms. Let me know what platforms you think are missing or where I am misjudging some. https://cdn.rawgit.com/zells/core/master/comparison.html
That said, I'm highly skeptical towards the "good ideas can be stated in a sentence" heuristic.
What I'm planning to use as information starting point is zells.org but it's all still in an early stage. At the moment I'm working on creating a document that visualizes the "end product" that I have in mind.
The uncomputable real numbers are the irrational ones, no? But those you can compute to an arbitrary precision. It's just for most applications, you don't need much precision. But again, I've not done very much simulation so I might miss something.
Patterns are something I haven't thought about in this context. I'm not entirely sure what kind of patterns you're talking about. I'm guessing software patterns. I was thinking about abstract patterns and had to think of Deep Mind and how it learned to play Go by recognizing patterns.
I stay with my statement about security. I never said that it's sufficient. But necessary. I think a cryptography-enabled capability-based security model could be very interesting.
Will definitely read Aaronson's talk. That's a very interesting subject.
What I meant was that in that virtual world they can be replicated. So the replications would be virtual themselves. I better make that clearer.
But I agree that this is not a software problem but a business model problem. The solution however, can be software.
I agree that most people are not inquisitive but I don't think it's by nature since most children I met were very very inquisitive. So my approach is to make it easy to stay a tinkerer.
But I do very much agree that using a computer should not require any idea about how they function. But that's for using a computer like a tool. For me, computers are not mere tools but a medium. So what you wanna do is to express yourself with computers. And for that you need to know how to do it.
- thanks =)
- I had that same feeling while writing it, constantly balancing my own ignorance with an acceptable level of vagueness
- call me the over-the-top guy. But the way I see, your vision has to be grand, if not megalomaniac if you want the essence to survive the collision with reality
- seamlessly migrating networked objects are one of the lesser over-the-top ideas though
I can very well imagine that a couple of hundred years ago people thought that writing was some niche knowledge and it's perfectly fine to leave that to the monks.
My goal is not to make everybody a professional software engineer just like everybody should not be a professional author. But people should be able to use the medium to discover and understand powerful ideas.
But on the other, for somebody has programmed in the 60s, the computing power and memory we have nowadays probably seem "limitless" in comparison.
DecoPerson and noxToken are right about this being a general statement about computing and not present day technology. Whether or not the human brain can be completely simulated by a machine is still an unanswered question but nothing I came across so far convinced me that it's not possible.
While it's true that not all mathematical problems can be solved algorithmically, that doesn't limit at all the kind of things a computer can simulate. Most physical phenomena don't have a mathematically precise answer and approximations are usually good enough. I hope I understood you correctly there.
If you say "computers can't correctly model everything" then I probably disagree with your definition of a "model". In my understanding of the word the concept of correctness doesn't even make sense. I'm convinced that models should be first and foremost be judged by their "usefulness".
To make this discussion more concrete, it would be very helpful if you could provide an example of something that cannot be modeled with a computer.