
Programming in a Mad Max Wasteland - necrodome
http://devblog.avdi.org/2015/10/11/programming-in-a-mad-max-wasteland/
======
thristian
See also the Gary Bernhardt talk, Capability vs. Suitability:

[https://www.youtube.com/watch?v=NftT6HWFgq0](https://www.youtube.com/watch?v=NftT6HWFgq0)

Some technologies are radical new developments designed to give people some
new capability they never had before. Other technologies are refinements of
some previous capability technology, restricting the capabilities but more
suitable for some particular problem-space or setting. It's not necessarily
"nobody has big ideas anymore", it's just a natural cycle.

On the other hand, if you want a less-charitable view, consider this:
programming in the 1980s was dominated by ideas from C, a language developed
in the 1970s. Programming in the 1990s brought the influence of Smalltalk, a
language developed in the 1970s. The 2000s saw the introduction of functional
programming ideas from Lisp, a language developed in the 1970s. These days,
the hot new programming language features are being taken from Standard ML, a
language developed in the 1970s. Someday the 1970s will be mined out, and then
we can start coming up with new ideas again.

~~~
i_feel_great
Great. I can't wait for Forth to happen again.

~~~
kjs3
Forth never went away. It's the same tiny pack of fanatics impotently shaking
their collective fists at the rest of the world and proclaiming everyone else
is just not smart enough to 'get' Forth.

------
lordlarm
Maybe it's just a sign of todays technology reaching some sort of early
maturity?

You don't see many new revolutionary cars around either - or at least they all
conform to the same idea having four equally sized wheels, 5 seats and a round
steering wheel. I'm guessing 100 years ago you saw many alternative
"paradigms" in the car making domain too, before our society settled on
something that worked for the majority of us.

~~~
seanmcdirmid
We are seeing revolutionary cars now, though...who would ever thought that
they would begin driving themselves?

Likewise, some more self driving in PL would be nice, it is way too hard and
tedious today then it probably needs to be, suggesting there is still a lot of
room for improvement.

~~~
venomsnake
> who would ever thought that they would begin driving themselves?

Any sci fi author since the 50-s?

~~~
seanmcdirmid
Surely it was conceived of, but did we think it would happen in our lifetime?
There are still people out there who won't think it will happen.

~~~
kedean
I mean, it's been in the works publicly for quite some time. I remember
watching documentaries about efforts on self-driving cars in an 'exploring
tech' class back in 2002.

------
jerf
In order to see genuinely new developments, you need to be in an environment
where something genuinely new is happening. Most modern languages are some
combination of decades old, or semantically essentially identical to languages
decades old. If it seems like we're mostly shuffling the same basic ideas
around and recombining them in those environments, well, yes, we absolutely
are.

This is not as bad as it seems. There is something to be said with engineering
with time-tested and well-established components. Even imperfect components
with well-understood imperfections may be preferable to things that aren't
well-understood, but some guy somewhere says may be theoretically perfect. But
the flip side of the landscape being well-explored is that there is little new
stuff to discover.

Two major places where you can see legitimately new stuff come to mind. First,
Haskell. By being seriously, no foolin' concerned about purity and
immutability, there's been a lot of work done in Haskell that in any other
language, even those that sort of came close, was done by simply doing
something impure and calling it a day.

Second, Rust. At the moment my perception of the community is that it is very
young, the language is still changing significantly, and the concern right now
is more about making new things work at all in the new paradigm than about the
best way to do them. There's a big influx right now of the very new
programmers who will later be doing new experiments, but they're still
learning. Such exploration is absolutely necessary. But in the next year or
two I bet we start to see a transition to more genuinely new things as the
capabilities start to sink in, and the feedback loop between the real programs
people are writing and what features the language grows develops.

(Personally, if you're really _interested_ in new things, I'd stay here rather
than go to the really academic languages. It is my perception that the
academic languages often have serious problems because they've cut themselves
off from the practical world and severed themselves from an incredibly
valuable feedback loop, the one that Haskell has used to propel itself to what
success it has by actually letting real programmers into the sandbox to try to
do real work. Academia is, in its own way, stuck in a rut right now at the
limit, IMHO, where it all sort of looks very same-y to me.)

~~~
kibwen

      > the language is still changing significantly
    

Rust itself isn't changing these days (except for once-in-a-while adding new
features backwards-compatibly), we're on to the next stage of maturity where
only the libraries are rapidly changing and the prevailing idioms are still
shaking out. :P

------
erikb
Often when a community gets bigger, the cool "garage band" type of things
still happen. Its just that they are drowned by the pop culture in the media.
You need to look in specific corners.

For programming languages I know the google term "conlangs" and I know that
there is a scientific lang development place called "lambda the ultimate". If
you want to see and use the cool stuff, look for that.

------
ilaksh
Its not possible to do anything really new and still qualify as 'programming'.
The sad reality is that programmers write cryptic mainly textual code using
complex tools. If you invent something better it must be for 'users'. No self-
respecting programmer would be caught using a tool for users.

Its pretty dumb, but then again, programmers are pretty dumb since they're
people.

------
moomin
It's happening right now in Haskell. The question is which ideas will filter
down and when.

------
lmm
Anything truly innovative is likely to be on the impractical side, whether
academic or otherwise.

But if you're looking for technology that's just making the transition from
academic to practical, check out Idris, as one of the comments suggests.

------
adwn
Well, at some point you actually have to gather some good, proven ideas and
use them to build a tool to solve real, everyday problems.

Radically new, exciting languages exist, but they're not yet practical.

------
verroq
>I haven't see it, therefore it doesn't exist

------
mizchief2
Would love to see a post-apocalypse style series where hackers are heavily
involved using old smart phones, wifi routers etc. to cobble together
technological solutions for survival

