3 ms·
> Given that languages used broadly in the industry are lacking behind research 20+ years This is obviously true in abstract, but the real breakthrough happens
by qsort 5y ago
> Given that languages used broadly in the industry are lacking behind research 20+ years
This is obviously true in abstract, but the real breakthrough happens when you make those concepts ergonomic for the working developer. The theory behind dependent types is well established, but I can't really write my next project in Idris, can I?
Similarly, there was a time when C was the only sensible choice to write anything non-academic, non-toy. It's not like people didn't know about OOP or functional programming back then, but it wasn't a realistic possibility.
Or parametric subtype polymorphism, also known by its common name "generics". The concept has been around at least since the 70s, C++ templates weren't widely used before what, 1990?
> My guess for the future is more that we will see a kind of split between a big group of people using advanced low-code like tools for programming day to day things
This has arguably already happened, we call them data scientists. Many of them are technical and have some light scripting skills but they couldn't be put to work on, say, your average backend project. Obviously this is a gross generalization, titles mean literally nothing, I'm pretty sure there exist data scientists that kick ass at coding.
- still_grokking 5y ago> > Given that languages used broadly in the industry are lacking behind research 20+ years > This is obviously true in abstract, but the real breakthrough happens when you make those concepts ergonomic for the working developer. That's of course correct. That's actually why we're lacking behind research by such a long distance. It's not only type-systems. The "20 year lack to research" seems to be a quite general phenomena in IT. I'm not judging. It's an observation. > This has arguably already happened, we call them data scientists. I think this is only a facet of what I had in mind. I guess it will become more ubiquitous to use some "coding related" tools in a lot of places! But it won't be for sure software engineering what those people will do. I was thinking more in the direction of e.g. MS PowerApps. Or something on the spectrum between such thing and Jupyter notebooks.
- still_grokking 5y ago> Similarly, there was a time when C was the only sensible choice to write anything non-academic, non-toy. It's not like people didn't know about OOP or functional programming back then, but it wasn't a realistic possibility. But the elephant in the room? What about LISP? To try to answer that by myself: My guess is that (too?) "advanced" technology (at some point in time) doesn't get any traction on the mass market. That's another reason mainstream languages and tools lack significantly behind academia in my opinion. If something is called "academic" that implies "not pragmatic enough for use" for a lot of people, I suspect. (The LISP story has more to it but this would be largely off-topic so not going into that).
- qsort 5y ago> But the elephant in the room? What about LISP? My input on lisp: I think as far as "practical" programming is concerned, lisp kind of missed the critical window. There have been three phenomena occuring simultaneously: - Computers become so powerful that it's now justifiable to use inefficient languages. Ecosystem develops around said languages (perl, ruby, python...) - The web becomes the primary way to ship software. The OS C API isn't something you necessarily have to keep in mind at all times. - Mainstream languages incorporate 'academic' features. The combination of 1 and 2 made it so that up until the turn of the century (and realistically well into the 00s) C and to an extent C++ were first class citizens, and everything else was at most ancillary. The most efficient Lisp compilers out there produce code that's within a factor of 3 of C++. That's amazing by today's standards, but if you're programming Pentiums (and earlier 486s, 386s) you don't really have a factor of 3 to spare. As for the capabilites of the language itself, even around 2000, lisp really was secret alien technology. But by the time you could actually either afford the performance penalty on the desktop or to be web-based, the "inefficient" bunch is now also an option, offering more expressivity than C/C++ and better libraries/batteries than lisps. > My guess is that (too?) "advanced" technology (at some point in time) doesn't get any traction on the mass market. The point here is, IMO, that IT in general and programming languages in particular are very hard to innovate. PL innovations by definition don't offer more features than the status quo ante. Once you have a programming language that's sufficiently high level and with a sufficiently efficient compiler (in our timeline that was C), programming languages are effectively "feature-complete", there's never going to be a language with a feature that can't be replicated in C. In other words, the leap from ASM to C (or Fortran, Cobol, whatever, I'm using C for the sake of argument) is a 10x improvement, but everything after that has significantly diminishing returns. What you're really doing is improving developer productivity: not every project needs C, so maybe write Python and be done in a tenth of the time, with a tenth of the bugs and without buffer overruns. However what the market is after is "total" productivity: if my codebase is already in C, it's a huge productivity loss if we move to $NEW_LANGUAGE, regardless of the new features, and because language innovations has diminishing returns, it becomes increasingly difficult to justify switching. > If something is called "academic" that implies "not pragmatic enough for use" for a lot of people, I suspect. With that said, you are correct that there is sometimes a knee-jerk reaction. See for example the unreasonable pretense that "monad" is some kind of black magic.