News for hackers. Stuff that matters.
Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @03:36AM (#41960532)
> it’s just a standard s-expression syntax

I.e. they are correct that it is arcane. What percentage of programmers today do you think have ever seen code written in any Lisp dialect, let alone understand it?

Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @04:11AM (#41960701)
I wonder what the response would've been if I had left the WAT source code out and just claimed, "this WASM binary was built with a compiler", and not specified the language.
Re:Should JavaScript be split into two languages? Google pro... by em-bee on Sunday October 27, 2024 @06:53AM (#41961489)
i would have liked to see the source. how would the example look like when written in python for example? and how would it compare with non-wasm javascript?
Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @03:23PM (#41964928)
> how would the example look like when written in python for example?

That seems like an easy question, but there a lot of choices which complicate it. I'm sure people have compiled CPython to WebAssembly, but I think you only get the WebAssembly imports they (or Emscripten) have chosen for you. I can't use that as an example of what I was trying to show.

It looks like py2wasm is aiming for a true Python to WASM compiler, rather than compiling an interpreter. However, I don't think it supports user-defined imports/exports yet. There's a recent issue thread about this (https://github.com/wasmerio/py2wasm/issues/5).

> how would it compare with non-wasm javascript?

I'm not sure I understand the question. If you're just using JavaScript, it just looks like JavaScript.

Re:Should JavaScript be split into two languages? Google pro... by em-bee on Sunday October 27, 2024 @04:00PM (#41965185)
so does that mean accessing the DOM from python is not possible yet?

for the second question the example you gave is equivalent to what in plain html/js?

Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @04:24PM (#41965366)
> so does that mean accessing the DOM from python is not possible yet?

No. It means you only get what the person who ported CPython or py2wasm gave you. It's not a limitation in WebAssembly, and maybe they have some other (hopefully better) API than the `easy(123)` example I was trying to show.

> for the second question the example you gave is equivalent to what in plain html/js?

If I understand what you're asking, it's just:

    <!doctype html><title>plain jane</title>
    <script type="module">

    function easy(arg) { 
        const div = document.createElement("div"); 
        div.textContent = "DOM this: " + String(arg); 
        document.body.appendChild(div); 
    }

    easy(123);
    easy(456);

    </script>
Re:Should JavaScript be split into two languages? Google pro... by em-bee on Sunday October 27, 2024 @05:03PM (#41965656)
It means you only get what the person who ported CPython or py2wasm gave you

that's what i meant. it's not possible until someone adds the necessary features to the wasm port of the language. makes sense of course, like any feature of a new architecture.

If I understand what you're asking

exactly that, thank you. it is easier to understand the example if there is no doubt as to what is the js part and what is wasm (it also didn't help that the code was not easy to read on a phone)

Re:Should JavaScript be split into two languages? Google pro... by foldr on Sunday October 27, 2024 @06:43AM (#41961437)
The point is that anyone who's distracted by the arcanity of Web Assembly Text Format obviously doesn't understand the first thing about WASM or its potential use cases. The poster could just have easily have used a regular programming language and compiled that down to a WASM binary. However, for the purposes of a minimal example to be pasted in a text box, this might have led to a much larger Uint8Array.
Re:Should JavaScript be split into two languages? Google pro... by DonHopkins on Sunday October 27, 2024 @08:03AM (#41961905)
What percentage of programmers on Hacker News haven't?

Flaunting your ignorant anti-intellectualism isn't a good look.

You do know this is 2024, you have Internet access, and you can just look shit up or ask ChatGPT to learn new things, instead of cultivating ignorance and pointlessly criticising programmers trying to raise awareness and educate themselves and other people.

In case you didn't realize it, JavaScript is essentially a dialect of Lisp, and LOTS of people know it.

Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @09:18AM (#41962423)
My point is that if someone says something is arcane, “it’s not, it’s just [something that you’ve potentially never heard of and almost definitely don’t understand even if you have heard of it]” doesn’t help your case. They could look it up, but the fact that they would have to do so proves the commenter’s point - relatively few programmers understand Lisp syntax, i.e. it is arcane.

If you’re trying to raise awareness of something, don’t act like the reader is stupid if they don’t already understand. Insisting that something is obvious, especially when it is not, means any reader who does not understand it will likely perceive the comment as snobby. As does including snide remarks such as “in case you’ve been living under a rock”.

> Flaunting your ignorant anti-intellectualism isn’t a good look.

Why do you assume that I personally don’t know what s-expressions are just because I agree that they’re arcane? Labelling someone as an ignorant anti-intellectual just because they disagree with something you said isn’t a good look either.

Re:Should JavaScript be split into two languages? Google pro... by hu3 on Sunday October 27, 2024 @12:18PM (#41963653)
Exactly.

I, like most devs, know what Lisp is.

I, like most devs, just don't care.

Re:Should JavaScript be split into two languages? Google pro... by DonHopkins on Sunday October 27, 2024 @01:26PM (#41964128)
And that proves my point that you're flaunting your ignorance and your anti-intellectualism. But you be you.

There's no point in trying to make other people stop talking about Lisp by complaining about how proudly ignorant you are, and how you want to remain that way, so you don't want anyone else to talk about it. This really isn't the place for that, since you always have the option of not reading, shutting up, and not replying and interrupting and derailing the discussion, so other more knowledgeable and curious people can have interesting discussions without you purposefully harassing them like a childish troll.

Re:Should JavaScript be split into two languages? Google pro... by hu3 on Sunday October 27, 2024 @04:33PM (#41965440)
Sorry to bust your minuscule lisp bubble but just because someone ignored your favorite niche language in an educated career choice, it doesn't mean they are ignorant.

Infantile language tribalism though, have no place in engineering and is blatant ignorance when coming from a supposed adult.

Re:Should JavaScript be split into two languages? Google pro... by kazinator on Sunday October 27, 2024 @05:56PM (#41966001)
Lisp is a family of languages, most of which are suited for many purposes.

Implementations of Lisp are no more niche than other languages with managed run-times.

Lisp has been used for even operating system development: Lisp code taking interrupts, and driving ethernet cards and disks and so on.

Which member of the Lisp family are you talking about, and what do you think is the niche?

Re:Should JavaScript be split into two languages? Google pro... by hu3 on Tuesday October 29, 2024 @09:12AM (#41983512)
> Implementations of Lisp are no more niche than other languages with managed run-times."

No more niche than Java, C# .NET and Python? Right...

> Which member of the Lisp family are you talking about, and what do you think is the niche?

You can combine all of the Lisp family together and still it wouldn't scratch the popularity, demand or job positions of any of the top languages.

Look, nobody denies Lisp'like languages are being used. Just like Fortran. :)

Re:Should JavaScript be split into two languages? Google pro... by kazinator on Tuesday October 29, 2024 @12:17PM (#41985862)
So what you mean by niche is actually popularity, and not a specific application area?

Fortran has a niche: numeric computing in scientific areas. However, even Fortran is not your grandfather's Fortran 66 or 77 any more. I had a semester of the latter once, as part of an engineering curriculum before switching to CS.

It supposedly has OOP programming in it, and operator overloading and such.

I don't know modern Fortran, so I wouldn't want to look ignorant spreading decades-old misinformation about Fortran.

Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @04:47PM (#41965541)
If it's about career choices, people skills and charisma will get you further than any technical decisions you might make.
Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @04:57PM (#41965609)
> There's no point in trying to make other people stop talking about Lisp

Nobody is trying to make you stop talking about it. We’re trying to make you understand that the way you’re talking about it is elitist. When someone said they were confused by the syntax, you could have just explained it without judgement. Instead, you felt compelled to flaunt your membership of the in-group who understands Lisp, and try to make others feel stupid by implying that people who don’t understand it aren’t good programmers, or are anti-intellectual.

You’re doubling down on it in this comment, too, still insistent on making people feel like they’re “less than” because they don’t know Lisp:

> so other more knowledgeable and curious people

If I didn’t know Lisp, and my first exposure to it was from someone who sees this kind of toxicity as a reasonable way to speak to people, would I want to join their community?

Re:Should JavaScript be split into two languages? Google pro... by kazinator on Sunday October 27, 2024 @05:49PM (#41965959)
> If I didn’t know Lisp, and my first exposure to it was from someone who sees this kind of toxicity as a reasonable way to speak to people, would I want to join their community?

Wouldn't (didn't!) faze me. Every community has it. The most popular languages, platforms and tools in fact bring out unbridled hostility. Probably, hostility finds a peak in the second most popular camps. :)

We have already lost people who are influenced by this sort of fluff, because those people will be turned away from Lisp by the anti-Lisp trolling about parentheses, niches and slow processing over everything being a list, and so on. There aren't enough Lisp people around to counter it.

Re:Should JavaScript be split into two languages? Google pro... by kazinator on Sunday October 27, 2024 @06:10PM (#41966079)
I had a basic idea of what Lisp was before getting into it some 25 years ago. It soon became obvious that, no, I actually had no idea. It's not that what I thought had been wrong, but it had no content.

I knew Lisp the way I know that that guy walking down the street is my neighbor Bob. But since I've never had a conversation with Bob, I actually have no idea who he is.

When I see Korean writing in hangeul, I know it is Korean writing, but can't read a letter of it (nor speak a word of Korean).

These examples are like knowing what Lisp is.

The thing I had not expected was how the knowledge in the Lisp world and its perspectives are very informative about a whole lot of non-Lisp!

Re:Should JavaScript be split into two languages? Google pro... by DonHopkins on Sunday October 27, 2024 @01:41PM (#41964223)
There's nothing "arcane" about WebAssembly Text format. The fact that you don't recognize it just means you don't know much about WebAssembly, which is fine, but you're whining, lashing out, and attacking people who are trying to explain it, and trying to police and derail discussions between other people who are more knowledgeable and interested in it, which makes you a rude anti-intellectual asshole.

Why don't you just go away and let other people have their interesting discussions without you, instead of bitterly complaining about things you purposefully know nothing about and refuse to learn? How does it hurt your delicate feelings to just shut up and not bitch and whine about discussions you're not interested in?

Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @04:42PM (#41965512)
> you’re whining, lashing out, and attacking people who are trying to explain it

I think you’re assuming that all of the comments you’re talking about are written by the same person, when they’re not. I haven’t been attacking anyone, and I don’t think I’ve replied to anyone who’s tried to explain it.

> things you purposefully know nothing about and refuse to learn

Why do you still assume I don’t know what they are? I’ve already pointed out that my belief that s-expressions are arcane doesn’t mean I don’t know what they are.

As another illustration of my point, I just stumbled across this comment on another post:

> But maybe the whole "ease of use" budget is blown by using a Lisp in the first place.[0]

The fact is that Lisp syntax is understood by relatively few programmers, which meets the definition of arcane. You immediately flying off the handle when someone calmly points this out will not help your goal.

[0] https://news.ycombinator.com/item?id=41965178

Re:Should JavaScript be split into two languages? Google pro... by hu3 on Sunday October 27, 2024 @12:17PM (#41963648)
Most devs do know what Lisp'ish languages are because you just can't forget how weird a bunch of nested parenthesis look.

They just don't care enough to invest time in it because it is niche. And proponents tend to tirelessly spam about it from their ivory towers like it's flawless and everyone who didn't learn it is somehow inferior, somehow justifying personal attacks like yours. Classy as usual.

Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @02:23PM (#41964500)
Look, it's pretty clear I stepped on some insecurity. That wasn't my intent, but it happens, and I should be more careful. Then your "is this sarcasm ..." reply pissed me off. You were childish and aggravating, and after trying to put together a short/ergonomic runnable example in response to your supposedly earnest question, you aggravated me. So I was childish and tried to be aggravating in return. I should know better.

Online discussions always fall apart this way, and it sucks. Having had some time to think, I'm sorry for my part of it.

However, the interesting thing to me, and maybe to you is that you can create a WebAssembly binary in a lot of different programming languages. I don't know what languages you like, but Rust has a more conventional syntax, and comparable code could've looked like this:

    #[wasm_bindgen]
    extern {
        fn easy(s: &i32);
    }

    #[wasm_bindgen]
    pub fn run() {
        easy(123);
        easy(456);
    }
Short examples like this always leave something out. The easy() function isn't very interesting, but it does "manipulate the DOM" by creating a new DIV and appending it to the body. Also, languages like C and Rust have a "shadow stack" and memory allocators, so dealing with memory isn't shown here.

The point I was trying to make was that WebAssembly can easily cause changes to the DOM by calling imported functions. That leaves a lot of freedom to design functions that do what you want. You could make your own graphics library, audio library, text output, DOM manipulation, and so on... And it all works today. The downside is that you do need to make your own set of functions, and designing good APIs is hard. Clearly the easy() function is not a good API.

When people complain about WebAssembly not having direct access to the DOM, I'm not even sure what they mean. Most things in the DOM are done by assigning attributes or creating elements. Would having `getElementByName()`, `createElement()` and `setAttribute()` functions scratch the itch? Because you could do that today (with some clever glue code in JavaScript). What do they (you) actually want?

People can argue about how fast the transitions are between WebAssembly and the JavaScript functions, but you can work around that by packing more work per call and passing large data or strings in or out of the memory.

ps: WebAssembly's Text format (WAT) is also a bit arcane to me, not because of the Lisp syntax, but because there are multiple ways to do almost anything, and it's hard to find good examples which do things cleanly. Even since writing that post last night, DonHopkins' comments on WAForth showed me that I could've written it like this:

        (module
            (import "env" "easy" (func $easy (param i32)))
            (func (export "run") (param) (result)
                (call $easy (i32.const 123))
                (call $easy (i32.const 456))
            )
            (memory (export "mem") 1)
        )
Which is nearly the same thing as the Rust snippet above.
Re:Should JavaScript be split into two languages? Google pro... by hu3 on Sunday October 27, 2024 @04:26PM (#41965390)
If you think people who chose not to learn a language you like are insecure it tells more about you than about them.
[dead]
Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @06:50PM (#41966340)
> people who become hostile when you try to talk about something interesting

We’re becoming annoyed not because people are trying to talk about something interesting, but because they are being intentionally insulting and condescending and then using bad faith arguments like this one when they’re called out on it.

Which of these quotes represent the commenter “trying to talk about something interesting”?

> flaunting your ignorance and your anti-intellectualism

> The point is that anyone who's distracted by the arcanity of Web Assembly Text Format obviously doesn't understand the first thing about WASM

> You do know this is 2024, you have Internet access, and you can just look shit up

> In case you've been living under a rock and didn't realize it

> but you're whining, lashing out, and attacking people who are trying to explain it, and trying to police and derail discussions between other people who are more knowledgeable and interested in it, which makes you a rude anti-intellectual asshole… Why don't you just go away and let other people have their interesting discussions without you, instead of bitterly complaining about things you purposefully know nothing about and refuse to learn? How does it hurt your delicate feelings to just shut up and not bitch and whine about discussions you're not interested in?

> And that proves my point that you're flaunting your ignorance and your anti-intellectualism. But you be you. There's no point in trying to make other people stop talking about Lisp by complaining about how proudly ignorant you are, and how you want to remain that way, so you don't want anyone else to talk about it. This really isn't the place for that, since you always have the option of not reading, shutting up, and not replying and interrupting and derailing the discussion, so other more knowledgeable and curious people can have interesting discussions without you purposefully harassing them like a childish troll.

> Look, it's pretty clear I stepped on some insecurity.

Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @07:36PM (#41966562)
Are you replying to the correct person(s)? :-)

Only the last quote is mine, and I stand by it.

Re:Should JavaScript be split into two languages? Google pro... by reshlo on Sunday October 27, 2024 @09:59PM (#41967186)
I listed those quotes to rebut your assertions that we’re being hostile towards a group of people who are merely trying to talk about something interesting, not to imply attribution of all of the quotes to you. I chose the general phrase “the commenter” because it would not have been correct to say “you”, as I was aware you were not the source of many of them.
Re:Should JavaScript be split into two languages? Google pro... by xscott on Sunday October 27, 2024 @10:22PM (#41967267)
I can see where you're coming from, but my intent was to talk about the very first interaction that started all of this nonsense:

- I said WebAssembly can already manipulate the DOM with functions.

- He asked for an ergonomic example because StackOverflow told him it can't be done. The "we can have DOM access at home" bit seems like the start of things to come.

- I provided a concise example, and expressed skepticism that this would settle the discussion.

- He responded with sarcasm, and weirdly accused me of sarcasm.

- I reacted poorly to his bitchy and ungrateful reply.

My best guess is that the WAT format confused him. He didn't know it was a programming language, and he didn't know you could do it with other programming languages, so he got insecure and lashed out.

Do you have a better explanation for the weird transition from technical discussion to flame war and hurt feelings?