Live data from Hacker News

What will programming look like in 2020? (2012)

lambda-the-ultimate.org

91–100 of 151 posts

Re: What will programming look like in 2020? (2012)

#91

Earlier quoted context omitted.

I wouldn't call a "mutability first" language which relies mostly on side-effects "functional".

Rust’s type system is very close to Haskell’s and takes a lot of inspiration from functional programming. I’m not sure I’d call Rust mutable-first either. As for side-effects, I suspect the next leap in PL development will be an efficient algebraic-effects system with a good dev experience (or at least a trade-off so appealing it overcomes the necessary friction).

> Rust’s type system is very close to Haskell’s and takes a lot of inspiration from functional programming.

Well… No.

It misses some landmark features like HKTs, and it likely never won't get them.

Inspiration? Sure. But what lang today doesn't take that?

> I’m not sure I’d call Rust mutable-first either.

So what do the affine types track? ;-)

> As for side-effects, I suspect the next leap in PL development will be an efficient algebraic-effects system with a good dev experience (or at least a trade-off so appealing it overcomes the necessary friction).

Let's make "some effect system" out of it and I'm with you.

But it likely won't be Rust getting such features in the near or midterm future (no clue about such a possibility in the far future, though).

Other languages are almost there on the other hand side. Scala for example will get "ability tracking" real soon™ now.

Rust may seem a little bit like a FP lang at frist if you're coming form one. But after writing some code you going to realize that Rust's philosophy is quite different form a FP lang: Rust embraces mutability and side-effects at its core! It "just" tries to make that more safe.

Re: What will programming look like in 2020? (2012)

#92

Earlier quoted context omitted.

> Kotlin on the other hand is only a significant trend in Android development, and it will get dropped like a hot potato in favor of Dart as soon as Fuchsia arrives as Android successor, I guess. Do you have any idea just how much there's Android/Java/Kotlin code now? > Kotlin has a problem: It tries to be "the better Java", but Java is picking up (slowly) all the features. 2016 called. Wants your opinion back. Kotli…

> Do you have any idea just how much there's Android/Java/Kotlin code now? Does Google care? Ever had a look at their graveyard? The rest sounds just like the usual marketing yada-yada and doesn't stand reality…

> Does Google care? Ever had a look at their graveyard?

Please, Google graveyard meme here?

Name at least one DEVELOPMENT project that was killed by them. Even the infamous GWT is still alive on life support.

In case you're serious, it seems you don't understand or know the scale of Android project. Android is one of the most important projects of Google, it rivals Chrome and YouTube.

> The rest sound just like the usual marketing yada-yada and doesn't stand reality…

Please, launch your Java application on Node.js or in a browser, or on iOS, on Android for that matter. Or create modern client-side application that runs on all major platforms.

And no, Codename One/Gluon/JavaFX don't count. Even worst of the worst Ionic runs better than those.

Re: What will programming look like in 2020? (2012)

#93

> how the hardware will evolve: several (4-16) heterogeneous(not all with the same performance, some with specialized function unit) CPUs Isn’t this basically the architecture of the Apple M1 chips? They’ve got efficient cores and high-power cores.

ARM big little (which the M1 is at least somewhat based on) was announced the year before the prediction.

Re: What will programming look like in 2020? (2012)

#94
post #15

http://lambda-the-ultimate.org/node/4655#comment-73772 > ... the beginnings of intelligent ... assistants in our IDEs ... specialize (sic) in ... C/C++, Java, Mobile. They will have intimate knowledge of common APIs ... trained on tens of thousands of code projects pulled from the open repositories across the web (google code, github, bitbucket,...). In addition to having 'read' more orders of magnitude more code the…

Does anyone actually use Copilot day to day? How much time does it actually save?

I do, it's helpful most of the time, mostly because it behaves like intelligent text expander, and couple of times a day I'm consciously aware how it helped me in even more "intelligent" way. There were also situations when it was distracting/confusing, but I can deal with it. I'm working as web dev, with TS, JS and PHP, and in my case there is no place for some great solutions that I wouldn't thought about myself (less than 5 times I've used something generated with comment), it's simply predicting what I want to do next in the line and instead of writing 50 chars to end that, I can hit tab. Honestly, I don't want to work without it anymore.

EDIT. regarding these situations when it doesn't predict what I wanted, I feel that my brain is getting better at not focusing at that and moving on. At first it was distracting, now I subconsciously know that the provided solution might be wrong and I'm deciding faster if it's something I should choose or skip. Your tool is adapting to you and you're adapting to your tool to find the right balance :)

Re: What will programming look like in 2020? (2012)

#95
I had a play around with Logo the other day. In the end I decided to dive too deeply into it, but I came away thinking that there is basically nothing wrong with the language. It was invented in 1967. 1965! Yet it has everything "there". I think there's even a university professor who teaches Logo to undergraduates, too, claiming it is much better than Pascal.

Pascal. That could be used as a systems programming language. Maybe it's not perfect - C++ wins when it comes to resource management - but that doesn't mean it's unfixable. Just fix the bits you don't like. Sorted.

I could go on: Dylan, Ada, even Basic. They all "work". We've been inventing language after language after language, and yet all the key ideas were already there.

Now, it's true, many are lacking the kinds of libraries we want. And most of these languages don't receive the love they need to smooth over the rough edges that have programmers reaching for the more popular languages.

Let us now consider programming languages that can be programmed graphically. These kinds of tools get announced with great hype, only to be ignored when everyone realises that it's more fuss that it's worth.

And yet, it's maybe not a complete wash. NodeRed looked practical, and Scratch seemed to have a place. In principle, the whole idea that a program can be viewed as a schematic has appeal.

Then there's the "MX" tool for STM32 MCUs (microcontrollers). It can used to configure the pins and peripherals of your MCU. I hated it at first, but now I'm seeing its advantage at simplifying configuration, even if it does spew out a ton of stuff.

One thing about MX is that it "understands" the chip, so it knows about conflicts of pins and the limitations of the chip. The key thing here is that it's a metatool, a kind of Domain Specific "Language" (although it's actually graphical). It can achieve something that general-purpose languages can't. There's no magic here, of course, the MX only understands the chips because it has been programmed to.

MX is completely useless for making things like database applications, for example.

So DSLs /can/ work - maybe - but they tend to suffer from the same problems as graphical programming tools. They are also niche products, so they don't tend to get much interest. They also tend to suffer from the problem of "walled gardens" - whereby anticipated things are trivial, but unanticipated things are impossible.

One of my own ideas is a kind of "compilation language". It would be a language, possibly a subset of a larger language, in which you could give developers something that "understands" their problem domain. I'm thinking something along the lines of C++'s notion of "constexpr all the things". Perhaps we could push this idea so far that we could build a set of libraries that the compiler itself executes and can validate other developer code.

Re: What will programming look like in 2020? (2012)

#96

Earlier quoted context omitted.

> Do you have any idea just how much there's Android/Java/Kotlin code now? Does Google care? Ever had a look at their graveyard? The rest sounds just like the usual marketing yada-yada and doesn't stand reality…

> Does Google care? Ever had a look at their graveyard? Please, Google graveyard meme here? Name at least one DEVELOPMENT project that was killed by them. Even the infamous GWT is still alive on life support. In case you're serious, it seems you don't understand or know the scale of Android project. Android is one of the most important projects of Google, it rivals Chrome and YouTube. > The rest sound just like the u…

That's why you're using a throwaway account?

Codename One works as well as Ionic when used by the right developer.

Re: What will programming look like in 2020? (2012)

#97
post #6

The “ Some safe and some bold predictions” comment is almost exactly my view on how programming should evolve. (functional, reactive, going toward dependent types etc ) Interesting how in 2012 it was already so clear! I think mostly we do have gone in that direction, even if probably even slower than the (already cautious) commenter predicted. Honest question: why are we as a community so slow at evolving a good, sol…

> The “ Some safe and some bold predictions” comment is almost exactly my view on how programming should evolve. (functional, reactive, going toward dependent types etc ) Interesting how in 2012 it was already so clear! Given that languages used broadly in the industry are lacking behind research 20+ years that's not a good prediction. It's just the way things are going. BTW: There's still no mainstream language with…

> 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.

Re: What will programming look like in 2020? (2012)

#98

Earlier quoted context omitted.

> Does Google care? Ever had a look at their graveyard? Please, Google graveyard meme here? Name at least one DEVELOPMENT project that was killed by them. Even the infamous GWT is still alive on life support. In case you're serious, it seems you don't understand or know the scale of Android project. Android is one of the most important projects of Google, it rivals Chrome and YouTube. > The rest sound just like the u…

That's why you're using a throwaway account? Codename One works as well as Ionic when used by the right developer.

> Codename One works as well as Ionic when used by the right developer.

Oh I'm sure it is. Both of them are awfully terrible compared to even React Native/Flutter, let alone native.

Re: What will programming look like in 2020? (2012)

#99
post #8

For a mere 8 year timeframe, the predictions seem rather poor. It feels like there was such a push among people to have the forward thinking ideas that they overestimated how much would change. Looking back, the biggest changes between now and 2012 are: * Git (and github) took over the world in the version control. Git was already the leader in 2012, but mercurial was doing ok and svn was still around to a much great…

I agree with your summary, but predictions are very hard (especially about the future).

Except for the perpetual no-code and DSL memes, whether git would dominate as much as it did was pretty much up in the air in 2012. Same with functional languages. In 2012 the mainstream was what, Java 1.6? ML/Haskell was like a breath of fresh air, it's hard to understate how pure OOP a la early Java sucks. The fact that some functional features would become mainstream wasn't a given back then, if anything, that is the surprising turn of events.

Re: What will programming look like in 2020? (2012)

#100

Earlier quoted context omitted.

That's why you're using a throwaway account? Codename One works as well as Ionic when used by the right developer.

> Codename One works as well as Ionic when used by the right developer. Oh I'm sure it is. Both of them are awfully terrible compared to even React Native/Flutter, let alone native.

It's also as good as Flutter. It's a matter of developer skill. Not the tool. Flutter has better default look and feel, that's about it. React native isn't a write once run anywhere tool. As a result it has a lot of different problems which imo make it way worse than all of the above.
Post reply on HN