News for hackers. Stuff that matters.
Re:State of Loom by jayd16 on Saturday May 16, 2020 @11:46AM (#23204357)
You don't. You can call synchronous functions from async functions just fine and vice versa. The syntax isn't identical but I don't understand this split the world meme.
Re:State of Loom by toast0 on Saturday May 16, 2020 @09:30PM (#23208682)
In my experience with C#, I ran into apis I wanted to call that were async. I couldn't call them, even as Result foo = await async_thing(), unless my function was marked as async. I don't remember having a problem calling sync functions from async functions though.
Re:State of Loom by uryga on Saturday May 16, 2020 @10:03PM (#23208843)
afaik sync can call async if the language allows you to make an executor/event-loop. e.g. with python's asyncio it'd be something like

  def sync_foo():
    task = async_bar()
    loop = asyncio.new_event_loop()
    return loop.run_until_complete(task)
after all, unless the loop is built into the language (like JS), you need bootstrap the async code somehow
Re:State of Loom by jayd16 on Saturday May 16, 2020 @11:12PM (#23209249)
You can just use:

    task.RunSynchronously()
mildly annoying but far from impossibly split.
Re:State of Loom by Skinney on Sunday May 17, 2020 @03:34AM (#23210353)
But now you’re blocking the thread, so if this function is being used by an async function higher up in the function chain, it’s no longer async (unless that is changed as well.

There’s a split, because every step of an async process has to be async/await compatible or you lose all benefit. In a small code base, this might not be a big problem. Where I work it will never realisticly be done.

With project loom we won’t have to do anything or learn anything new. Just upgrade the java runtime and everything just works better :)

Re:State of Loom by J-Kuhn on Sunday May 17, 2020 @04:07PM (#23214937)
And use a different executor.

But yeah, the magic is: All code is now implicitly async (except native calls) - as if all code always had async in it's signature. Just - there is no need to now add this to the signature.