News for hackers. Stuff that matters.
Re:Can Programming Be Liberated from the von Neumann Style? ... by coldtea on Tuesday September 08, 2015 @07:27AM (#10185035)
>Programming languages are also part of the problem. We've wasted so much time reinventing the wheel, over and over again

That's a good thing.

If we didn't we'd still use stone or wooden wheels -- like in ancient times.

People say "reinventing the wheel" when in actuality it's "improving the wheel".

CL is not 60's LISP, Rust is not C, C is not Algol, Haskell is not ML, and Go..., ok, Go is like Algol 68.

>I don't know what form the next computing architecture will take, but I do know there will come a time when the notion of using a 'programming language' to get things done will seem quaint.

This I feel is too hand-wavy ("there must be a better way").

Programming language is sort of like math -- logical instructions.

The scientific underpinning of programming is algorithms. And those are expressed by programming languages.

We cannot really replace algorithms with anything else, like we cannot get rid of equations in math.

We might abstract them more ("robot, write a program to do X for me") or less (some "visual programming" thing), but in the end, programming and algorithms are part and partcel with solving problems.

Re:Can Programming Be Liberated from the von Neumann Style? ... by easter6 on Tuesday September 08, 2015 @05:02PM (#10188190)
Wheels are the most effective way to transport things on land. So of course it's in our best interests to keep improving that wheel.

Certainly, language is useful when hashing out a problem on paper (be it pseudocode or math equation or whatever). The abstraction is convenient. But programming languages are not a requirement for computers to do their work. Languages exist for our benefit, not the machine's. One can use software to do work on a computing architecture, or that same algorithm can be implemented in hardware and run a hell of a lot faster.

The problem is that, while we can come up with all kinds of algorithms, we can't seem to agree on what programming language to use when implementing those algorithms. I guess I'm arguing that the languages are getting in the way of the algorithm, and it would be nice if there were a way to achieve something closer to a 1:1 relationship between algorithm and implementation. We're always going to be inventing new programming languages because we can't reach a consensus on what is the 'best' abstraction. It's become ridiculous at this point.

Algorithms are currently expressed by programming languages because they have to run on general purpose, programmable von Neumann architectures. I mean, yeah we could skip the language and just input machine code, but that would of course be ridiculous. That's why we use compilers.

If there were an easy way to implement algorithms directly in hardware, why would we bother with programming languages?

Take, for example, a supercomputer. If the kinds of work a supercomputer does could be implemented directly in hardware, I think it would be safe to assume that researchers would be all over that. The gains would be enormous.

If there were a hardware-only 'Travelling Salesman' algorithm that showed astronomical gains in efficiency compared to the conventional software implementation, don't you think that would be important and useful?