← Back to context

Comment by wslh

3 years ago

If we try to predict the future instead of reviewing the past I speculate that in the future (complex) programming languages will not be necessary since a big amount of code written in the world is redundant. So minimum declarative stuff will be enough to create the amount of software now built by lot of engineers.

On the other hand, it is interesting to discuss what will happen with low level programming such as writing drivers, operating systems, and browsers. Some of these could be generated from an spec. I remember HN posts such as "A full TCP/IP stack in under 200 LoC (and the power of DSLs)" [1] that sounds like a toy now but hope to see in the near future to build complete stacks and just fill the spaces between.

[1] https://news.ycombinator.com/item?id=846028

> programming languages will not be necessary since a big amount of code written in the world is redundant. So minimum declarative stuff will be enough to create the amount of software now built by lot of engineers.

I am not hopeful about that. As a counter example look at parsing. We have studied this for over 50 years. We have really good theory. We even have a good way to do specifications (EBNF). And we even have parser generators such as yacc.

Yet despite this, for reasons of flexibility, performance, and/or good errors, pretty much every production compiler is using a hand written recursive decent parser.

Most problems in computing don’t have nearly the formal theory and study that parsing does. If we can’t make parsing work in the real world, I am not hopeful about the other stuff.

I mean as a field we love to reinvent the wheel over and over again, even in the same language if it's not in the stdlib (or even if it is) it's not uncommon to find multiple versions of the same thing. Take for example SQL database drivers in python, I have at various companies worked with at least 4 of them. They all do virtually the same thing with some minor differences.

So I don't think we will ever land in a situation where everyone uses the same thing.

> So minimum declarative stuff will be enough to create the amount of software now built by lot of engineers.

That idea is the nuclear fusion of software development, it's always just 15 years away, even 50 years ago ;)

  • Do you believe it would happen?

    • In the early 2000s we had a Prof. for a course called "Hardware Technology". He really wanted us to get into electrical engineering and hardware focussed low level development, because according to him "SW development is dead, software can be created from specs and flowcharts by now". Great course, we learned about FPGAs and VHDL, but that advice really didn't stand the test of time.

    • Only in some niches, mostly related to data management, e.g. the same places where declarative programming already succeeds.

      I do agree though that the programming world is currently completely overstaffed, and that this has a bad overall effect on quality and progress, but this has 'business reasons', not 'rational reasons' and technological magic bullets are not the solution ;)