5 ms·
Here's six things for the next 100 years: 1. A visual programming language. In 2122 you'll be able to use 2D or 3D space for your program, not just a 1D charac
by GMoromisato 4y ago
Here's six things for the next 100 years:
1. A visual programming language. In 2122 you'll be able to use 2D or 3D space for your program, not just a 1D character stream.
2. A natural language programming language. In 2122 you will no longer have to learn to program.
3. A simple parallel programming language. In 2122 a program for 1,000 cores is as easy as a single-threaded program.
4. A universal optimizing compiler. In 2122, all languages will be as fast as machine code.
5. A 1000x lossless compression algorithm. In 2122 diskspace and bandwidth are no longer constraints on anything.
6. A solution to the "Mythical Man Month" problem. In 2122, adding more programmers to a project will actually make it go faster.
We've been dreaming about these "breakthroughs" ever since the beginning. They are no more likely to happen in 2122 than perpetual motion or the philosopher's stone.
- zirgs 4y agoVisual programming languages already exist.
- bawolff 4y agoThe breakthrough would be making one that professional programmers actually like.
- captaincaveman 4y agoyeah it could use something like pictorial writing, lets call it hieroglyphics or better still a logogram language where each symbol means a thing like Chinese, hmm or maybe we could create an alphabet of characters where on there own they don't mean anything but with a simple small set we could combine create as many words as we want and we could program with ... half joking I don't really know much about languages, I just don't see how a graphical programming model would be better than a text based one in expressiveness or compactness?
- bawolff 4y agoPeople have tried that with APL actually. But yeah, i tend to doubt as well, but i still think its an interesting direction for programming language research.
- zirgs 4y agoUnreal Engine built-in visual scripting language is pretty good. Plenty of professional programmers use it. And the only programming languages that nobody complains about are those that nobody uses.
- fooker 4y agoGood one! I think the optimizing compiler one might actually work out. However, I guess there might be some goalpost shifting around what compilers are expected to do.
- weakfortress 4y ago(6) is already solved. Unfortunately, I believe you are correct. It will take another 100 years for the industry to fire 99% of PMs, dumb agile and "professional agile consultants", put biz dev in an anechoic chamber, and use the money saved by getting rid of the navel gazers to pay engineers and hire more.
- winstonprivacy 4y ago> 5. A 1000x lossless compression algorithm. In 2122 diskspace and bandwidth are no longer constraints on anything. This seems that it would violate a fundamental law of information theory in that a data stream can only be compressed to the minimum number of bits necessary to communicate non-random information present within it. To state it another way, let us suppose that an excellent compression ratio in 2022 is ~70% (an oversimplification, as the ratio varies wildly based on the source data). 100Mb of data thus compresses down to 30Mb. But with a 1000x compression ratio, that same 100Mb would compress down to just 100kb. I am not aware of any data streams that carry so little information where such a ratio could be achievable.
- mikewarot 4y ago>1. A visual programming language. In 2122 you'll be able to use 2D or 3D space for your program, not just a 1D character stream. We program in 2d character pages already. Visual Basic and Delphi were mainstream GUI builders in 1997, a quarter century ago. We have the Unity engine if you want 3D. >2. A natural language programming language. In 2122 you will no longer have to learn to program. VisiCalc, Lotus 123, then Excel made declarative programming usable by most people in the 1980s. >3. A simple parallel programming language. In 2122 a program for 1,000 cores is as easy as a single-threaded program. Multithreading is tricky, because it rewrites the physics of programming. Causality generally goes out the window, unless you use locks, which defeat the threading by bottlenecking it. Systems that refactor into immutable data don't have to use locks. >4. A universal optimizing compiler. In 2122, all languages will be as fast as machine code. LLVM, a universal backend to compilers, is being used on a wider basis almost every day. >5. A 1000x lossless compression algorithm. In 2122 diskspace and bandwidth are no longer constraints on anything. The laws of physics make this level of compression impossible. However, disk space and bandwidth are much, MUCH cheaper than they were in the days of 300 Baud dialup with acoustic couplers.