Live data from Hacker News

Things that used to be hard and are now easy

jvns.ca

231–240 of 316 posts

Re: Things that used to be hard and are now easy

#231

> Things that used to be hard and are now easy: > Concurrency, with async/await (in several languages) The number of times I've been bitten by the very specific semantics around async/await in JavaScript makes me wonder if I've hit some kind of a ceiling in trying to grok it. Coming from the world of threads, I've found Kotlin's structured concurrency approach the best of the lot I've used so far, even if it isn't wi…

Oh yes. I hate async/await so much. If I could uninvent one thing in programming it would be async/await. I wrote async/await code in C# for about a year. I did really try to learn it. I invested a lot of time. I did read Stephen Cleary. It often made sense for a split second only to fade away immediately. Usually the software would work, but i didn't understand what was going on in my own code.

And others don't understand it either. Neither my code, nor the async/await concept. Stack overflow is filled with accepted answers that are just doing it wrong. This was part of the frustration. I did know enough to see that proposed idea was wrong, but didn't have a better idea. Most programmers don't even seem to understand that there is a difference between a C# Task and a C++ Future. I do. And it doesn't help one bit.

My lack of understanding is not for lack of trying. I'm interested in different paradigms in programming. I'm eager to learn new things. While I'm programming OOP on the job, i learned Haskell [1], Idris and Prolog on my spare time. I mean, i can actually programm in these. I think esp. learning prolog shows I have some flexibility in thinking when it comes to programming. I would consider myself an above average programmer, compared to my colleges.

But async/await is simply above my mental capacity. After 1 miserable year the of desperation with in C#, I quit my job and started a new C++ job in a new city. Life is good again. When this company adds async/await to their C++ (not yet in the language thankfully) I will quit again.

I can't even describe what i don't understand about this concept, so far out is it. I only remember the purely practical anecdote that i could make a WPF command execute async but it was well-nigh impossible to make canexecute async. While completely absurd, the actually problems where way more conceptual.

[1] Kind of ironic that everything in Haskell in async, i know. But it never got in the way there.

Re: Things that used to be hard and are now easy

#232
post #191

Earlier quoted context omitted.

wikipedia : In economics, the Jevons paradox (/ˈdʒɛvənz/; sometimes Jevons' effect) occurs when technological progress or government policy increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the rate of consumption of that resource rises due to increasing demand. https://en.wikipedia.org/wiki/Jevons_paradox

I would call it just "demand elasticity". Jevons paradox is a subset of demand elasticity where there happens to be some relatively fixed 'resource' like oil. There's no 'resource' equivalent for something like video gaming; it's just demand for writing games is elastic and when a game gets easier to build, people demand more supply, which comes into existence then.

I actually think it's more like "supply elasticity." It gets easier/cheaper to create something and you get more of it--possibly at lower quality (as is generally the case here because there aren't any shortcuts to having good game mechanics).

Demand may or may not go up but, in any case, it's probably harder for the user to find the gems among all the clones and drek (and harder for the gems to gain attention).

Re: Things that used to be hard and are now easy

#233

“Everything” that is easy used to be hard, depending on your time scale. I’m certain that COBOL programmers were raving about the ease with which you could program the computer back in the day. The items on this list sort of happen within a career so an individual had to experience how hard it was before. It probably reads different to someone coding for 5 years vs 30 years.

There is probably a "Law" to the effect of "The complexity of the task increases to the limits of the current tooling."

Re: Things that used to be hard and are now easy

#234
post #231

> Things that used to be hard and are now easy: > Concurrency, with async/await (in several languages) The number of times I've been bitten by the very specific semantics around async/await in JavaScript makes me wonder if I've hit some kind of a ceiling in trying to grok it. Coming from the world of threads, I've found Kotlin's structured concurrency approach the best of the lot I've used so far, even if it isn't wi…

Oh yes. I hate async/await so much. If I could uninvent one thing in programming it would be async/await. I wrote async/await code in C# for about a year. I did really try to learn it. I invested a lot of time. I did read Stephen Cleary. It often made sense for a split second only to fade away immediately. Usually the software would work, but i didn't understand what was going on in my own code. And others don't unde…

I hope someone can reply to this and help me learn more about async/await in c#. I'm finding it confusing too, and I can't put my finger on why.

Re: Things that used to be hard and are now easy

#235
post #87

Earlier quoted context omitted.

That's why Google often prompt you for backup information - backup phone number, email address, which can be used to recover an account if you've lost your phone.

There are ways to provide backup factors without tying them to more personal information, however.

There's always a tradeoff though. With more secure backup factors, the more likely it is that you could end up locked out with no recourse.

Re: Things that used to be hard and are now easy

#236
Developing for mobile is so much easier overall with the Ionic framework.

It's not for every application but I would say most applications it's great for. My first startup we needed iOS, Android, and web teams. For my current startup, we have one frontend team using Ionic/Angular and we just deploy to all 3 places with the same codebase.

Re: Things that used to be hard and are now easy

#237
post #231

> Things that used to be hard and are now easy: > Concurrency, with async/await (in several languages) The number of times I've been bitten by the very specific semantics around async/await in JavaScript makes me wonder if I've hit some kind of a ceiling in trying to grok it. Coming from the world of threads, I've found Kotlin's structured concurrency approach the best of the lot I've used so far, even if it isn't wi…

Oh yes. I hate async/await so much. If I could uninvent one thing in programming it would be async/await. I wrote async/await code in C# for about a year. I did really try to learn it. I invested a lot of time. I did read Stephen Cleary. It often made sense for a split second only to fade away immediately. Usually the software would work, but i didn't understand what was going on in my own code. And others don't unde…

I think async/await is kind of a didactic mistake. It’s marketed as a way to not have to think about the underlying abstraction, but lack of the understanding about how it works under the hood will almost certainly bite you in this ass. This I find to be especially true when people are writing mixed async and sync code. The best way for me to learn was writing all of the code before the async/await sugar existed (scala in my case).

Re: Things that used to be hard and are now easy

#238
post #27

I really like that XKCD comic about identifying birds in a photo, so it's unfortunate that it didn't age that well. How could we rewrite that comic to today's tech? I was thinking something like: A: I want to create an app that scans good feedback of our brand online... B: there's a li rary for that, consider it done A: ... and understand if they are actually being sarcastic. B: I'm gonna need 5 years and a lab of ex…

It aged perfectly IMO. Maybe the timeline was a little bit off, but it did indeed take several years and a huge amount of effort by experts to make object recognition available "off the shelf". And even then, problems can quickly escalate from "any programmer with a little experience can do it" to "we need a team of data scientists and data engineers".

Yeah, and even though Merlin and Google Photos (for a broader set of things) are pretty amazing, a naturalist familiar with the area will probably still blow them with the things they can recognize quickly even without having a great view.

Re: Things that used to be hard and are now easy

#239
post #231

Earlier quoted context omitted.

Oh yes. I hate async/await so much. If I could uninvent one thing in programming it would be async/await. I wrote async/await code in C# for about a year. I did really try to learn it. I invested a lot of time. I did read Stephen Cleary. It often made sense for a split second only to fade away immediately. Usually the software would work, but i didn't understand what was going on in my own code. And others don't unde…

I hope someone can reply to this and help me learn more about async/await in c#. I'm finding it confusing too, and I can't put my finger on why.

The only person that I trust to understand async/await is Stephen Cleary. He has a blog and written a book. Maybe try that. Official MSFT documentation became hand-waving or non-existent very quickly, back when i tried. Back then plenty other blog/tutorial/SO anwser on the internet has had fatal flaws such as making one thread per task or even mixing up the terms.

Re: Things that used to be hard and are now easy

#240

Regarding chocolate quality discussions: when Hersey started up, they couldn't get any European chocolatiers to share their process, so they had to invent one. They used lipolysis, which creates butyric acid, the chemical that gives vomit its distinctive smell and aftertaste. You can definitely taste it if you pay attention, like "yep, that's it, it's that vomit aftertaste." https://www.google.com/search?q=hershey+vo…

Interesting article that suggests the context in which you smell the same scent is almost entirely determinant of your response to it:

Moreover, motivational responses were entirely different as a function of label. For example, when isovaleric + butyric acid was called “parmesan cheese” it inspired participants to say they would like to eat it, while when it was given the negative label (“vomit”) it provoked the wish to escape from it. The effect was so strong for certain odors, that participants could not believe that the same odorant had been presented to them at both sessions

https://web.archive.org/web/20090203043112/http://www.senseo...

Post reply on HN