Live data from Hacker News

What's wrong with Software nowadays and how we can fix it

github.com

131–140 of 147 posts

Re: What's wrong with Software nowadays and how we can fix it

#131
post #117

Earlier quoted context omitted.

> It looks more like Smalltalk, which actually isn't known for being easy to read. That's sort of one of my points though. They're going to come up with basically one of two things: A) Something that's conceptually simple (so the average person can understand it without needing to take a bunch of programming classes) but which leads to most programs being very hard to read because they have to implement all the compl…

There is a ton of low-hanging fruit in just making the basic logistical details of programming more accessible. (Try to imagine explaining npm to the average Excel user.) Now this project may go after that and produce an incremental improvement that finds a niche in education or wherever, or it may pursue a re-invent computer science, boil the oceans strategy and end up with a smoldering heap of nothing after much ef…

Well now you're talking about something else. If they just want to put some better tooling around an existing language (or maybe apply a slight tweak to one) that would be great, more power to them, although that's not at all what their manifesto seems to be talking about. That said for the love of Turing please don't put yet another build system on node. Haven't we poured enough effort into the garbage fire that is Javascript yet?

Re: What's wrong with Software nowadays and how we can fix it

#132
post #130
post #94

Earlier quoted context omitted.

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.

> Software is fundamentally broken. It's limited, never quite works the way we want it to, but it can't be changed, can't be combined and can't be trusted. In general, this level of hyperbole puts me off. Besides anything else, this sentence is outright false, since much software can be changed, combined, and trusted. I know it's a manifesto, but still, this kind of rhetoric is unlikely to persuade people who don't a…

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

Re: What's wrong with Software nowadays and how we can fix it

#133
post #122
post #109

Earlier quoted context omitted.

On the contrary, I want programming to be easier where possible, but the goals of this manifesto (and all the similar ones before it) are trying to fix the wrong thing. Better and more powerful abstractions are always good, I'll always welcome a new tool that makes my job easier. However the goal of this project is to make a tool that's explicitly designed to make code that's easier to read for the average person, no…

> Do we really want to start trying to write applications in Excel? Can you imagine the horrible spaghetti code that would result in? Imagine how much code you're going to have to write to express even mildly complicated concepts? Imagine trying to maintain one of these beasts. Have you not worked in business much? Or software development (or b2b software development, or vertical integration software development, or.…

Sadly yes, yes I have. One of the very first professional projects I worked on was a system to replace an Excel spreadsheet because they were having issues with locks when trying to concurrently modify it on their network share. The project requirements where literally "implement what Excel does", and the answer to any question about the program behavior was "What does Excel do? Do that". On the one hand it was wonderfully simple and a great opportunity to play around with Backus-Nauer forms and the guts of an interpreter. On the other hand spending months re-implementing Excel rather than solving the actual problem was rather soul destroying.

Re: What's wrong with Software nowadays and how we can fix it

#134
post #8

Earlier quoted context omitted.

The problem with computers (abstracting from accidental complexity) is, that they do what you tell them to do , not what you think you told them to do . You cannot somehow make an agreement or solve it, how it is solved with humans - by communicating. You must formulate your thought exactly. And that's what most people have a problem with - except for some hard sciences, they never needed to formulate their thought t…

Not to be rude, but how often do you interact with other human beings? Communication is a huge problem in everyday life. Anyone who has ever had even a short term SO (longer than a one night stand/few dates) has learned that it is important to be careful in how you phrase things and to understand that people may not understand what you were trying to say.

But it is rude. An important part of a civil and substantive discussion is not personally insulting other users. Please don't do this.

https://news.ycombinator.com/newsguidelines.html

Re: What's wrong with Software nowadays and how we can fix it

#135
post #106

Yet another "If only Hypercard had been the future" dream. I agree it would have been nice if it had been. But there are Reasons it didn't work out that way, and probably isn't gonna go there.

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.

It's too hard/expensive to make that kind of abstracted GUI that lets you make real software, and too hard to keep it updated as the environments/contexts change, as in your example of networking became important, and it wasn't part of hypercard, and would have taken a lot of time and skill to make it so in a useful way.

It's just too hard. You can make that kind of layer for a special special purpose domain (say, making simple games, or sound engineering, or what have you), but it's hard even to do that right, let alone a general purpose universal environment. Software is expensive enough to develop with quality the 'ordinary way', let alone trying to develop and maintain some kind of layer on top that let's people do it without.... without what? Without knowing what they're doing? At some point, if you are able to make it actually powerful enough, it's going to be just as 'hard' as anything else, isn't it?

Re: What's wrong with Software nowadays and how we can fix it

#136

>To fix this, we need to increase the currently tiny number of people who are able to write, modify, combine and share software. We need a tool that makes writing software easy and fun, and accessible to everyone. A tool that enables software literacy. Global access to niche knowledge doesn't seem like an effective use of the world's time to me. Let's look at this same idea, but replace "develop software" with "perfo…

I disagree with your analogy. In my opinion, programming is more analogous to composition. Most courses of study require at least one composition course, because no matter what discipline you're studying, it's important that you be able to organize your thoughts and express them clearly as well as understand the formal expressions of others. I personally experience a huge overlap between ordering my thoughts for writ…

This was an insightful and thought-provoking response. Thank you for taking the time to write it. Given how much a word processor's spelling and grammar checking improves my own writing, I can definitely see how an equivalent assisted-programming tool could help people.

Re: What's wrong with Software nowadays and how we can fix it

#137
post #131

Earlier quoted context omitted.

There is a ton of low-hanging fruit in just making the basic logistical details of programming more accessible. (Try to imagine explaining npm to the average Excel user.) Now this project may go after that and produce an incremental improvement that finds a niche in education or wherever, or it may pursue a re-invent computer science, boil the oceans strategy and end up with a smoldering heap of nothing after much ef…

Well now you're talking about something else. If they just want to put some better tooling around an existing language (or maybe apply a slight tweak to one) that would be great, more power to them, although that's not at all what their manifesto seems to be talking about. That said for the love of Turing please don't put yet another build system on node. Haven't we poured enough effort into the garbage fire that is…

What I mean is that the best way to encourage software literacy is probably not going to start by designing a totally new language and development environment.

(Also, the hate JS gets is unfair and diminishes your point.)

Re: What's wrong with Software nowadays and how we can fix it

#138
post #106

Earlier quoted context omitted.

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.

It's too hard/expensive to make that kind of abstracted GUI that lets you make real software, and too hard to keep it updated as the environments/contexts change, as in your example of networking became important, and it wasn't part of hypercard, and would have taken a lot of time and skill to make it so in a useful way. It's just too hard. You can make that kind of layer for a special special purpose domain (say, ma…

HyperCard failed, but not necessarily for technical reasons.

It might be worth making some hypotheses and testable predictions here about how much complexity is needed for various tasks, and how well current tools are doing at avoiding unnecessary complexity.

I think surveying the current landscape and past efforts, and getting a dialog going along the way, would be a lot more valuable than immediately starting to design a solution.

I'm very confident there are opportunities here, but not so confident about the chances of any particular approach.

Re: What's wrong with Software nowadays and how we can fix it

#139

I haven't read the paper yet but the idea looks promising. I've had this itch myself for a long time. I can't quite put my finger on it but we really need something like a high level assembly language. One that incorporates high level concepts like networked computers, cryptographic identites for users, access to a global, shared pool of data and algorithmic primitives regardless of which application they were origin…

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

Re: What's wrong with Software nowadays and how we can fix it

#140
post #128

Earlier quoted context omitted.

I disagree with your analogy. In my opinion, programming is more analogous to composition. Most courses of study require at least one composition course, because no matter what discipline you're studying, it's important that you be able to organize your thoughts and express them clearly as well as understand the formal expressions of others. I personally experience a huge overlap between ordering my thoughts for writ…

We have pretty good static analysis tools now which warn the user of common mistakes at the code construction level. But at the architecture and design levels I don't think there is much that tools can do short of AGI.

There is plenty a tool could do to aid software design. You might sit down to plan a new program and launch your programming assistance tool. It might ask questions like what platform your program should run on, what time or storage constraints it must run under, whether it's a server or intended for users, and so on. As you go, it creates a project scaffold for you to build on and makes recommendations: to consider .NET since you're targeting Windows, to follow this security tutorial since you'll be using a database for persistence, to use a particular pattern for the application's core responsibility, etc.
Post reply on HN