HNHacker News
TopNewBestAskShowJobs

rtens

48 karma · joined November 15, 2016

rtens.org
submissionscomments
rtens··on What's wrong with Software nowadays and how we can fix it
If I understand you correctly you're probably thinking about how more concise notation systems make things easier for experts but harder for novices, e.g. maths and music scores, and probably Haskell as well.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
Nice to meet ya as well! Your material looks very exciting. I'll drop you an email once I've digested it all.
rtens··on What's wrong with Software nowadays and how we can fix it
That's one of my all-time favourite books so if I hadn't read it I'd be eternally thankful to you for pointing me to it =) It definitely blew my mind.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
Wow that's exactly how I feel. I couldn't even formulate it that well. But I'm very happy to know that other people feel this itch as well.

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

rtens··on What's wrong with Software nowadays and how we can fix it
Sorry that the style puts you off. I wanted to make a strong statement that people either strongly agree or disagree with or maybe find ridicoulous. But if it helps me finding peopoe who already agree with me I'd say mission accomplished. The rothers I'll try to persuade with the implementation of those ideas.

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

rtens··on What's wrong with Software nowadays and how we can fix it
I want to "increase the number of people who are able to write, modify, combine and share software by building a tool that makes writing software easy and fun, and accessible to everyone." I even have a slogan. I call it "Enabling Software Literacy"

That said, I'm highly skeptical towards the "good ideas can be stated in a sentence" heuristic.

rtens··on What's wrong with Software nowadays and how we can fix it
That's probably the biggest weakpoint of the manifesto but also kinda on purpose. While the thesis was all about "let's build something" the manifesto is a fresh start trying to answer the question "what is the problem?". The thesis is still relevant but a bit outdated and I'll probably rewrite it in multiple blog articles.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
I must admit that I have only very limited understanding of numeric and cryptography. But I do find these very interesting discussion points.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
Ah words. That might be the wrong one indeed. I guess I always assume the benevolence of the reader while I'm writing. But precision is important.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
What do you think those reasons are? In case of HyperCard I think it's that there wasn't any inter-stack-linking let alone networking. What I'm crying about is that Smalltalk was not the future.
rtens··on What's wrong with Software nowadays and how we can fix it
Why are computers not trustworthy nor ever will be?
rtens··on What's wrong with Software nowadays and how we can fix it
That's great. What's your target group?
rtens··on What's wrong with Software nowadays and how we can fix it
They might not be as benign as you think: https://www.youtube.com/watch?v=CAeHuDcy_bY

But I agree that this is not a software problem but a business model problem. The solution however, can be software.

rtens··on What's wrong with Software nowadays and how we can fix it
What should be the punishment for premature optimization?
rtens··on What's wrong with Software nowadays and how we can fix it
The thesis mentioned elsewhere contains some concrete examples but my goal with the manifesto was to get to the root of the problem I'm trying to solve which is quite abstract indeed. I do not have a document yet that visualizes what I want to build but I'm working on that. I'll post updates on twitter.
rtens··on What's wrong with Software nowadays and how we can fix it
https://youtu.be/8pTEmbeENF4?t=93
rtens··on What's wrong with Software nowadays and how we can fix it
That's a nice example since nobody can explain how gravity works. It's the least understood force in the universe =)

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.

rtens··on What's wrong with Software nowadays and how we can fix it
In the (proximate) words of Alan Kay: "Giving people what they want is marketing, given them what they need is education." I'm more interested in the latter.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
That's unfortunate since I put a lot of work in these paragraphs. I'd love to know what you think would make a better case for improving software literacy.
rtens··on What's wrong with Software nowadays and how we can fix it
- that's exactly what it is. And the way I see it, actors are an implementation of OOP (in it's original meaning) so I would stick with "everything in an object"

- 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

rtens··on What's wrong with Software nowadays and how we can fix it
Since you're 100% right I wouldn't call that cynical. It is indeed another approach to create a unified messaging standard. And yeah there are plenty and I haven't even looked at every single one in detail to be able to reject them. But that's definitely an exercise I will try soon.
rtens··on What's wrong with Software nowadays and how we can fix it
I don't like the car analogy too much since a car is basically a tool while computers are a medium. I agree with you that programming languages on the other hand, definitely are tools.
rtens··on What's wrong with Software nowadays and how we can fix it
That's an awesome list, thanks. There seem to be two concept intermingled here though. First is decentralization which I'm a big fan of not only for social and humanitarian reason but also because I'm convinced that it's the better design. And while there are many problems still unsolved, there are also very promising approaches. The other one is trust which is required in centralized and decentralized networks but has a very different taste in both and I think it might be actually easier so solve in an open, decentralized environment. Lastly, I wanted to point out that while all cells exist in a single address space, that doesn't mean that every cell is accessible to everyone.
rtens··on What's wrong with Software nowadays and how we can fix it
That's definitely an approach we should keep trying. But it hasn't worked out very well so far and I'm convinced that it's impossible to create an application that fits 100% of the needs of 100% of its users. I would definitely buy a car that allows me and maybe even makes it easy to tweak it. But I wouldn't want one that requires me to do so.
rtens··on What's wrong with Software nowadays and how we can fix it
I thought long and hard about a apt analogy and decided on "literacy" because I'm hoping that using computers as a medium for formulating and exchanging ideas would have a similar effect as reading and writing had.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
Wow that's depressing. I suddenly feel the impulse to give you a hug and tell you that it's gonna be alright. I wish I was more sure that it actually will be.
rtens··on What's wrong with Software nowadays and how we can fix it
One really nice thing about academia is that "unlimited resources" are indeed a valid premise while you are in design space. It's only when you start implementing your idea that you have to face a limited universe.

But on the other, for somebody has programmed in the 60s, the computing power and memory we have nowadays probably seem "limitless" in comparison.

rtens··on What's wrong with Software nowadays and how we can fix it
I remember a draft of the manifesto that had indeed way more classifiers in it. I guess removing almost all of them for better readability was maybe not the best idea.

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.

rtens··on What's wrong with Software nowadays and how we can fix it
Since this is my first submission on hacker news, I'm a bit overwhelmed by the amount and quality of the responses. I'll try to address critiques individually but in order to not have to repeat myself continuously I wanted to thank everybody for their time and energy this way. Your feedback is much appreciated and I'll use it to debug the idea and the manifesto.