Live data from Hacker News

Niklaus Wirth has died

twitter.com

301–310 of 412 posts

Re: Niklaus Wirth has died

#301
post #193

Earlier quoted context omitted.

to quote gp, "beautiful software is still being made today". It's not a competition.

you don't get to be described as an 'apostle of simplicity' just because you like simplicity. you have to actually change the world by creating simplicity. devine and rek are still a long way from a turing award

From your Wikipedia link about the meaning of the Word Apostle:

“The term [Apostle] is also used to refer to someone who is a strong supporter of something.[5][6]“

So I would call many people and myself (as someone who started studying Computer Science with Assembler and Modula-2) Apostle of simplicity.

No need for techno-classism.

Re: Niklaus Wirth has died

#302
post #299

Earlier quoted context omitted.

In the last 15 to 20 years asynchronous programming --- as a form of cooperative multi-tasking [1] --- did gain lot's of popularity. That was mainly because of non-scalable threads implementations in most language runtimes, e.g. the JVM. At the same time the JS ecosystem needed to have some support for concurrency. Since threads weren't even an option the community settled first on callback-hell and then on async/awa…

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.

Re: Niklaus Wirth has died

#303

Earlier quoted context omitted.

Modula2 was available and got used on Amiga. Silly teenager me found such high level languages "cheating" at the time.

Lords of the Rising Sun was written in Modula2 on the Amiga https://www.google.com/search?q=lords+of+the+rising+sun My understanding (please correct me) is that Turbo Pascal on PC was actually Modula2 ?

No, Borland did have a Modula-2 compiler (where actually Martin Odersky of Scala fame worked on), but they decided to focus on Turbo Pascal and sold it.

Re: Niklaus Wirth has died

#304
post #75

I'm a former student of his. He was one of the people that made me from a teenager that hacked on his keyboard to get something to run to a seasoned programmer that thinks before he codes. Even before I met him at the university I was programming in Oberon because there was a big crowd of programmers doing Wirth languages on the Amiga. He will be missed.

Yes, the Amiga was one of the platforms where Modula-2 had quite a crowd, more so than on the PC, as we got spoiled with Turbo Pascal instead.

Re: Niklaus Wirth has died

#306
post #167

Earlier quoted context omitted.

I still wonder what the tech world would’ve been like today if Wirth had had the marketing sense to call Modula “Pascal 2”

…also if he hadn’t insisted on uppercase keywords.

That wasn't the issue many make it up to be, thanks to programmer editors.

We already had autoformatting tools in the early 1990's, Go did not invent them.

Re: Niklaus Wirth has died

#307
post #294
post #288

Earlier quoted context omitted.

I think the K would likely be both simpler and harder than your first example by reading very straightforwardly in a single direction but with operators reading like line noise. In your case, my Numpy is rusty, but I think this is the Ruby equivalent of what you were doing? textb = 'What hath the Flying Spaghetti Monster wrought?' p textb.bytes.product((0...8).to_a).map{_1>>_2}.map{_1 & 1} Or with some abominable mon…

that all seems correct; the issue i had was not that python is less flexible than ruby (though it is!) but that it required a lot of mental effort to map back from the set of point-free array operations to my original intent. this makes me think that my trouble with j and k is not the syntax at all. but conceivably if i study the apl idiom list or something i could get better at that kind of thinking?

I think you could twist Python into getting something similarly concise one way or other ;) It might not be the Python way, though. I agree it often is painful to map. I think in particular the issue for me is visualizing the effects once you're working with a multi-dimensional set of arrays. E.g. I know what outer/product does logically, but I have to think through the effects in a way I don't need to do with a straightforward linear map(). I think I'd have been more likely to have ended up with something like this if I started from scratch even if it's not as elegant.

    p textb.bytes.map{|b| (0...8).map{|i| (b>>i) & 1} }.flatten
EDIT: This is kind of embarrassing, but we can of course do just this:

    textb.bytes.flat_map{_1.digits(2)}
But I think the general discussion still applies, and it's quite interesting how many twists and turns it took to arrive at that

Re: Niklaus Wirth has died

#308
post #197

I just needed a feature of Pascal yesterday in one of my Rust libraries: ranged integers. I know, you can go about it in different ways, like structs with private fields and custom constructors, or just with a new generic type. But, having the ability to specify that some integer can only be between 15..25 built-in is a fantastic language feature. That's even so with runtime bounds checking disabled because the compi…

Not only did Pascal (TP more precisely) taught me about systems programming with a safer language, it was also my first foray into type driven programming, learning to use the type system to express conditions not bound to happen.

Ranged numerics and enumerations were part of that.

Re: Niklaus Wirth has died

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

thank you very much! which k implementation does this page use?

oh, apparently a new one called ngn/k: https://codeberg.org/ngn/k

Re: Niklaus Wirth has died

#310
post #285

After having read some of the comments on Pascal here -- fellow HNers, what's your view on Pascal as a teaching/introductory language in 2023, for children aged 10+? Mostly thinking of FreePascal, but TurboPascal in DOSBox/FreeDOS/SvarDOS is also a possibility. I'm also thankful for references to "timeless" Pascal books or online teaching materials that would be accessible for a 10+ year old kid who is fine with read…

Niklaus Wirth is most famous for Pascal but the best language is his last, namely Oberon which is both smaller and more capable than Pascal. If you are interested in a freestanding compiler (separate from the operating system Oberon), have a look at OBNC.

https://miasap.se/obnc/

Post reply on HN