Live data from Hacker News

Niklaus Wirth has died

twitter.com

311–320 of 412 posts

Re: Niklaus Wirth has died

#311
post #298

Earlier quoted context omitted.

Supported cooperative multitasking won in the end. It just renamed itself to asynchronous programing. That's quite literally what an 'await' is.

Not in Java, .NET and C++ case, as it is mapped to tasks, managed by threads, and you can even write your own scheduler if so inclined.

Also (AFAIK) not in JavaScript. An essential property of cooperative multitasking is that you can say “if you feel like it, pause me and run some other code for a while now” to the OS.

Async only allows you to say “run foo now until it has data” to the JavaScript runtime.

IMO, async/await in JavaScript are more like one shot coroutines, not cooperative multitasking.

Having said that, the JavaScript event loop is doing cooperative multitasking (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Even...)

Re: Niklaus Wirth has died

#312
post #256

Earlier quoted context omitted.

i keep hoping that one day i'll understand j or k well enough that it won't take me hours to decipher a few lines of it; but today i am less optimistic about this, because earlier tonight, i had a hard time figuring out what these array-oriented lines of code did in order to explain them to someone else textb = 'What hath the Flying Spaghetti Monster wrought?' bits = (right_shift.outer(array([ord(c) for c in textb]),…

The k solution is ,/+|(8#2)\textb k doesn't have a right shift operator, but you don't need that, you can use the base encoding operator instead Personally I think this is clearer than both the array-ish python and the list comp. https://ngn.codeberg.page/k/#eJwrSa0oSbJSCs9ILFEA4gyFkoxUBbe...

I'm sitting here with the K reference manual, and I still can't decode this.

I'm wildly guessing that your approach somehow ends doing something closer to this:

    textb.bytes.flat_map{_1.digits(2)}
Which I must admit it took me embarrassingly long to think of.

Re: Niklaus Wirth has died

#313

Besides his contribution to language design, he authored one of the best puns ever. His last name is properly pronounced something like "Virt" but in the US everyone calls him by "Worth". That led him to quip, "In Europe I'm called by name, but in the US I'm called by value."

The joke really only works if you use his first name! The complete joke is that "by value" means pronouncing first and last name to sound like "Nickles Worth".

I always (and still) undestood it to just need the surname.

Re: Niklaus Wirth has died

#315
post #138

Earlier quoted context omitted.

It is a good paper, and I give much respect for ACM opening up their paywall of old papers. They even stopped rate limiting downloads. I'd like to think my incessant whining about this had some effect. :) It is such a wonderful thing for curious people everywhere to be able to read these papers. I haven't reimplemented meta-ii, I will. You might like https://old.reddit.com/r/rust/comments/18wnqqt/piccolo_stack... And…

thanks! i like lua a lot despite its flaws; that's what i wrote my own literate programming system in. lua's 'bytecode' is actually a wordcode (a compilation approach which i think wirth's euler paper was perhaps the first published example of) and quite similar in some ways to wirth's risc-1/2/3/4/5 hardware architecture family i hope they do go to open access; these papers are too valuable to be lost to future acm…

Are you familiar with the 'Leo' editor? It is the one that comes closest to what I consider to be a practically useful literate programming environment. If you haven't looked at it yet I'd love it if you could give it a spin and let me know what you make of it.

https://leo-editor.github.io/leo-editor/

Re: Niklaus Wirth has died

#316
post #309

Earlier quoted context omitted.

The k solution is ,/+|(8#2)\textb k doesn't have a right shift operator, but you don't need that, you can use the base encoding operator instead Personally I think this is clearer than both the array-ish python and the list comp. https://ngn.codeberg.page/k/#eJwrSa0oSbJSCs9ILFEA4gyFkoxUBbe...

thank you very much! which k implementation does this page use? oh, apparently a new one called ngn/k: https://codeberg.org/ngn/k

As much as it's a struggle to read, you got to love the people implementing this are dedicated enough to write their C as if it was K.

Re: Niklaus Wirth has died

#317
post #299

Earlier quoted context omitted.

In .NET and C++ asynchronous programming is not cooperative, it hides the machinery of a state machine mapping tasks into threads, it gets prempted and you can write your own scheduler.

But, isn't the separation of the control-flow into chunks, either separated by async/await or by sepration between call and callback, a form of cooperative thread yielding on top of preemptive threads? If that isn't true for .NET, then I'd really interested to understand what else it is doing.

No, it is a state machine that generates an instace of a Task from Task Parallel Library, and automates the Run()/Get() invocations from it.

Assuming your type isn't an Awaitable, with magic methods to influence how the compiler actually generates the state machine.

Re: Niklaus Wirth has died

#318
post #280

Earlier quoted context omitted.

It's a shame that Pascal was largely abandoned (except for Delphi, which lived on for a while); I believe several Pascal compilers supported array bounds checking, and strings with a length field. In the 1980s this may have been considered overly costly (and perhaps it is considered so today as well), but the alternative that the computing field and industry picked was C, where unbounded arrays and strings were a com…

Delphi still lives on, to the extent that there is enough people to sell conference tickets in Germany, and a new release came out last month.

My father celebrated 60 two weeks back and told me he bought license for new Delphi and loves it, I was quite surprised with the development he described.

I considered telling him that he could get most of the things (he also buys various components) for free today, but then.. he is about 5 years before retirement and won't relearn all his craft now.

Myself, I am not sure whether its nostalgia but I miss the experience of Delphi 7 I started with 20 years back. In many ways, the simplicity of VLC and the interface is still unbeaten.

Re: Niklaus Wirth has died

#319

Besides his contribution to language design, he authored one of the best puns ever. His last name is properly pronounced something like "Virt" but in the US everyone calls him by "Worth". That led him to quip, "In Europe I'm called by name, but in the US I'm called by value."

The joke really only works if you use his first name! The complete joke is that "by value" means pronouncing first and last name to sound like "Nickles Worth".

The way I understand it, it doesn't -- by name (aka by reference) vs by value, as in function arguments.

Re: Niklaus Wirth has died

#320
post #312

Earlier quoted context omitted.

The k solution is ,/+|(8#2)\textb k doesn't have a right shift operator, but you don't need that, you can use the base encoding operator instead Personally I think this is clearer than both the array-ish python and the list comp. https://ngn.codeberg.page/k/#eJwrSa0oSbJSCs9ILFEA4gyFkoxUBbe...

I'm sitting here with the K reference manual, and I still can't decode this. I'm wildly guessing that your approach somehow ends doing something closer to this: textb.bytes.flat_map{_1.digits(2)} Which I must admit it took me embarrassingly long to think of.

i can't decode it either but i think you're right. note that this probably gives the bits in big-endian order rather than little-endian order like my original, but for my purposes in that notebook either one would be fine as long as i'm consistent encoding and decoding
Post reply on HN