Hacker Newsnew | past | comments | ask | show | jobs | submit | Kolja's commentslogin

I have no personal experience with Wasmer or the people behind it. But with the things I read about them (e. g. https://mnt.io/2021/10/04/i-leave-wasmer/ crossed my path again a few days ago) would make me, to put it lightly, hesitate before building on it.


This CEO in question also appeared yesterday here and was blocked from ziglang. https://news.ycombinator.com/item?id=37541994


Thanks for providing the link, readers can probably judge for themselves by checking the comments there if blocking someone just for having a different point of view was the right thing to do by the Zig leadership team

Context: https://news.ycombinator.com/item?id=37545192


> […] just for having a different point of view was the right thing to do by the Zig leadership team

From reading these threads it’s less about the opinions you hold and more about how you behaved, no?

Zig leadership asked you to not place bug bounties on issues without their consent. You decided to ignore their request and kept the bounty up by moving it to your own repo. Zig leadership decided you weren’t engaging in a particularly constructive way and decided you were unwelcome.


Is not a bug bounty and the bounty was placed for a feature we needed at Wasmer, it was not required to be merged upstream in Zig so of course we kept the sponsorship for the work up


WASIX relies on way too many forked projects to be maintainable. It's part of the reason that I resigned after only a couple months working for you - what you're trying to do isn't a terrible idea, but it is super poorly executed.

The other part is exactly what yoshuaw described as very disrespectful and immature behavior on your part. I know from my interactions with you that you are extremely argumentative _to a fault_, don't take no for an answer, and always assume you know better than everyone around you. Maybe you're somehow proud of that, but it's not surprising to hear you've been banned from participating in the Zig community.

You should respect the Zig community's wishes and be willing to contract the work out with clear terms, taking on some of the risk that it takes longer than expected yourself.


Please read the comments on other threads https://news.ycombinator.com/item?id=37558807


The "different point of view" here seems like you're determined to interact with their community in a way they've explicitly asked you not to [0]:

> Please don’t use bounties to incentivize Zig development.

They explained their reasoning extensively:

  - Bounties foster competition at the expense of cooperation.
  - Bounties are an utterly simplistic way of dealing with the business management side of creating software:
    - Instead of scouting for a suitable candidate, you’re letting battle royale dynamics pick a winner for you, at the expense of everybody who’s going to lose the competition.
    - Instead of creating a clear contract where you take on some of the risk, you implicitly put the entirety of the risk on the contestants (eg partial solutions don’t get any payout).
    - Instead of allocating time and resources to proper due diligence, you instead penalize any form of thoughtfulness in favor of reckless action (eg a solution just needs to pass a test suite).
    - Instead of planning for the full lifecycle of software, which also includes maintenance, you end up with a quickly bitrotting artifact that is of no practical use to anybody.
    - Instead of spreading unease to all the people involved, it would be preferable you instead learned how to do business properly.
  - On projects less radical than Zig, you might also put pressure on the development team to accept the winning submission, which, given the above, will probably not be the most well-thought-out and maintainable solution.
You responded by moving the request to your own repo, with the following disclaimer [1]:

> Info: while ideally the PR should be merged into Zig master, is not a necessary requirement to receive the bounty. As long as a fork exists that fulfills the requirements laid out before, the bounty will be awarded

To an outsider, this looks like you slapped a new name on the exact thing the Zig team asked you to stop.

Do you feel your new request adaquately addresses the team's issues?

[0] https://ziglang.org/news/bounties-damage-open-source-project...

[1] https://github.com/wasmerio/wasmer/issues/4218


While I respect their point of view, I do not agree that banning bounties in OSS projects is the right way of approaching it, and as such we haven't complied to it. Specially since this is a bounty for a real need that we have at Wasmer.

Furthermore, we also took their post constructively and added two more points on the bounty issue [1] that we believe should solve most of their concerns:

* Wasmer will manage the work and have at most one person or team working on it at a time. Anyone interested on the work should reply here and organization of the work will be done by the Wasmer team

* Partial work that actually works will be rewarded accordingly (for example, the libc layer, or the Zig layer itself)

Of course, the fact that they banned any further conversation from the disagreement doesn't make specially easy to see if such an approach will be sufficient for them or not.

[1] https://github.com/wasmerio/wasmer/issues/4218#issuecomment-...


Isn't that how oss works? You should be able to add bounties to your fork. Then zig team can choose not to merge these if they want.


Clearly, they are not compliant with WASI specifications built by the ByteCode Alliance, creators of WebAssembly. They are making their own web-assembly-thing not compliant with anything.


What do you mean? We are as compliant with WASI as a Wasm runtime can be. We have tests assuring that for each commit on our repo.

As a matter of fact we pass more tests than any runtime created by the BA as reflected here:

https://wasi.fyi/


You forked the WASI Preview 1 and are making your own standards from it, and instead of working with the Bytecode Alliance, you are forcing your own standards.


Where is that clear?

I assumed they were compliant with the WASI specifications.


They are forking from WASI Preview 1, but Bytecode Alliance is working on WASI Preview 2.


I think it's pretty amazing that Valve managed to create something of this type (a store/launcher/software platform), targeted at an easily annoyed[citation needed] group of people (gamers), running for this long, that is mostly used by choice and not universally hated.

That's what happens if the buyer is also the user, I guess.


The fact that they’re a private company helps a lot. There’s less incentive to extract money from customers in new ways that are lucrative in the short term but damaging in the long run.

I think their company structure also helps, where employees generally don’t work on things unless they actually want to. This means that you don’t end up with designers redesigning UIs that don’t actually need it, etc.


I think about this a lot. I don't have _that_ much invested in Steam. (about 30 games) But if they ever go public, it's all over. I can't think of a public tech company that doesn't cannibalize its user base until it becomes unusable garbage. There's also the fact that Valve has done more for Linux gaming than anyone else. If Valve goes public, I'm probably done with PC gaming for the rest of my life.


You are right, Valve being private removes a lot of the incentives to mess with Steam in ways I would consider negative.


Eventually the people that run it now will age and die, and one day the vampires will move in to suck its corpse dry. May not be our problem but will be someone's problem.


    Eventually the people that run it now will age and die, 
    and one day the vampires will move in to suck its corpse dry.
    May not be our problem but will be someone's problem.
There's gotta be a fourth verse here that completes it.


  Anyway, thanks, Past. Signed, The Present...

  P.S. Maybe The Future can stop them?


I offer the classic "This too shall pass."


Why put off today what can be done to stop them?


It's possible that the company could be converted into a worker cooperative, which wouldn't be much of a stretch given their current (largely hierarchyless) company structure. There is no reason it wouldn't work.


They're a storefront that charges ~30% and they're pretty dominant in their market.

They make enough money —they're practically printing it— to never need investment, and they don't seem to piss it away like your FAANGs.

Which is all to say, even down the line, why would they risk it all for more money? Might seem naive but private ownership allows them to maintain this course.


I wonder how much money they have in the bank compared to Nintendo.

Main problem of being too successful is that you can't let money sit in the bank, especially if you are a public company.


On the one hand it will be sad if Steam declines as it is overall a fantastic service for gamers. On the other, they definitely occupy a close-to-monopoly like position in the market so it might be good to have that opened up.


> they definitely occupy a close-to-monopoly

I think this has changed, at least in my view recently. I find a lot more of my time spent on games in Xbox Gamepass than on Steam these days and have a bunch more launchers as publishers have pushed games to their own platforms.


They also mostly tend to do things when the time is right rather than when they think other people think the time is right — they can be quite conservative both in tech and game design but that also means they don't ship broken crap too often which is surprisingly rare in the industry.


Artifact, Steam machines, Steam Link... they have a lot of misses with relatively low quantity output.


Steam controller. I waited for them to release a v2 with embedded battery and better build quality and it never came. I guess the Steamdeck benefitted from it, but I'd still like it as a controller.


Oh, very much so. Because of vision issues, I need to plug my Steam Deck into a monitor to play comfortably, but the USB-C connection isn't reliable enough while actually using the Deck as a controller. I need an external controller for my deck, but one that's as good as the Deck (non-negotiable requirements: gyro, back buttons). I wish I could just order a Steam Controller v2 (with two sticks, just like on the Deck).


I love my steam controller to this day.


Artifact… yeah.

Steam machines… yeah, maybe but no, not really? The first iteration yes, but the steam deck is a very successful handheld steam machine after all.


I remember that, in the beginning, there were some concerns:

- "I need to download a lot of data, I want discs!"

- "I will be forever bound to Valve. What if they go out of business?"

I think the first point got kind of obsolete, because broadband is readily available compared to 20 years ago. And the latter also lost importance, I guess? At least I don't read that any longer.


>And the latter also lost importance, I guess?

It's still a very valid complaint, and will forever be as long as you're tied to Steam's server being up and willing to give you the content you paid for. That may not always be the case, for example if financial embargos prevent Valve from actually providing the service in your country. It's more like you're paying Steam to use their service rather than actually buying the game. Right now people are not worried about Steam exit scamming and thanking us for all the fish, because it's a very solid service that basically has a monopoly on PC digital game sales, plus the Steam Market being a money making machine on its own, plus the Steam Deck providing further leverage on game sales.

But there's a nonzero chance they can just ... close. Which was a very real possibility when they launched. Now, not so much, but the future has always new and exciting ways to fuck it all up at a moment's notice.


My concern is mainly what will happen after Gabe Newell retires or dies.


From the precious little that has been heard about what he’s doing nowadays he’s been quite checked out already for some time.


That's where GoG is still an important alternative... Even though for whatever reason, I don't enjoy its launcher as much. And steam deck has completely changed my weighing between GoG and steam :-(


Lutris really helps in that regard. For very minor additional janitoring, it can recreate much of the same plug-and-play, Windows-on-Linux seamlessness that you get with Steam.


And there's no launcher for Linux :(


> And the latter also lost importance, I guess? At least I don't read that any longer.

People got comfortable, and that comfortability is great. Until it isn't, and then it's a travesty. Then it all repeats again and people never learn not to put all their eggs in one basket.

That's just the result of the flow of time. I remember a little over a decade ago when Blizzard was considered one of the best companies out there and that they always delivered quality titles. Stuff changes (and also, sometimes people can be very fickle).


> "I will be forever bound to Valve. What if they go out of business?"

Not that this isn't a valid concern, it certainly is, but I guess what we've learnt is that you don't need to be bound to Valve for games to be bound to a big corporation.

Look at Minecraft, which was never on Steam. You could've brought that a decade ago, and now you're told you need to bind yourself to Microsoft to continue playing it.


The concerns weren't completely unfounded. My college apartment's internet was so bad I had to return HL2 to the store because it wouldn't decrypt it (the network was swampped with college gnutella traffic and the apartment complex had no idea how to handle it).


Steam shipped a version of counterstrike that glitched a lot less in windows whereas the cd version I got from ATI with my graphics card didn’t even work reliably. That was the gateway game for me.


Even if Valve is alive, there are other risks. Some game may be deleted in the future due to cancelling. Your account is banned for some reason.


I remember having those concerns. And Steam performance did take a few months to solidify if I remember correctly, so not everything was unfounded. Before it, only MMOs had login screens separating gamers from gaming ;-)

Nowadays, the only problems I have with Steam stem from my credit card's security mechanisms.


I do wonder what happens to my library once I die. Can my family inherit it? Is it gone? Is it against the ToS to give my user to my children?


Their biggest achievement was getting other companies to sell through their store. This allowed gamers to build up their back catalogue on Steam. Their launcher has all the problems as the other ones but they're forgiven because most of us have large collections within Steam now. Even when the same game is on sale via Epic for a slightly lower price I'll usually get it on Steam because that's where most of my other games are. It is a choice, but a warped one.

It's kind of like Netflix vs other streaming platforms except Steam has a much better moat.


Really no major complaints, it's an amazing platform and always has been. Imagine if we'd been stuck with a solution made by Microsoft or something.


Big fan of Steam here but I wouldn't say it was _always_ amazing. In the beginning, it was a friends network that was almost always down and a launcher for games I already owned and played without a launcher for years. I hated it for a long time but it is a great platform right now.


Steam was universally hated when it launched, even more than other launchers are hated today (uplay)

The perception changed when Steam started allowing 3rd party games and had cheaper prices (through blink-and-you-miss it discounts of course, so they can still milk launch-day hype) than boxed copies and the indie explosion that digital distribution allowed


> targeted at an easily annoyed[citation needed] group of people (gamers)

It helps that everything else is so much more annoying.


>that is mostly used by choice

Ehh, people use IOS by choice too. An "ethical" walled garden is still just that, walled.

GOG and itch are great platforms as well, so I think people can sometimes miss the trees for the forest and remember the bad experiences.


Stop using the phrase 'walled garden'. Its marketing jargon that promotes anti-consumer behavior while promoting ideas of delicious fruits and beautiful flowers.


>Its marketing jargon that promotes anti-consumer behavior

If consumers choose to stay in it, then that's their choice, no? I see it just as much as a scathing commentary as it is a flowery euphemism. No different from "golden handcuffs".

Regardless, I'm not too interested in going into a rabbit hole of word games. If "closed off software ecosystem storing 3rd party products you purchased" is a preferable terminology, feel free to substitute that phrase in.

>while promoting ideas of delicious fruits and beautiful flowers.

Sounds like a good things to promote.


Also, I can't find any mention of the French having problems cooling down their reactors last year due to drying out rivers.

Nuclear might have been an option fifty years ago, but now it's too late to start, and we should focus on storage and renewables instead, if you ask me.

[edit]: fixed a typo


If you are doing a huge nuclear build out, you should also focus on storage. Nuclear plants are economic to run at peak all the time, even at night when the demand isn’t there. Renewables except reservoir based hydro have the same problem (the reservoir counts as storage for hydro, and anything else if you have can run pumps back up).


I think you are off by at least a decade, MacOS X licenses cost low triple digits (cheaper if upgrading) well into the oughts.


The style, and especially the splotchy background coloring, made Paper[1] (By WeTransfer it seems? When it was released they were called fiftythree.) my first guess.

[1]: https://apps.apple.com/us/app/paper-by-wetransfer/id50600381...


I've repeatedly heard the sentiment from interviewers that it's not worth the time asking questions you know you won't get an answer to. As a sibling noted, both of your questions can reasonably fall into that category.

Not disagreeing, just lamenting the sad state of journalism nowadays, at least as I perceive it.


I’d have to ask why even do the interview at all then. Like I can save everyone involved a lot of time and just imagine the interview if you’re not gonna ask a difficult question.


I assume it is PR. Previously, broadcasters and their journalists held some bargaining power in interviews such that in exchange for being able to access a broad population, the interviewee would be willing to subject themselves to the journalist’s questions.

The internet kind of obviated that role, so now there is no need for an interviewee to subject themselves to questions they do not want, because they can reach everyone they want at no cost by putting up a blog post on their website.


Bingo. Discard this so-called interview as a fluff piece. It provides no signal.


Sometimes the lack of an answer can be just as telling, making it still worth asking even if they won't answer the question directly.


A good interviewer would then ask follow up questions to either get a straight answer or highlight the absence thereof. Unfortunately, much of the mainstream tech "journalism" is just repackaged press releases written by people hoping to get hired by the very same companies that they "report" on. Thence the softball questions and toothless interviews all in an effort to not upset any potential future employers.


This seems to be a weird micro-optimisation. While I agree with some of the goals (classless files, parameterless main exist in Kotlin and are nice to have), they should, in my opinion, not be implemented for the sole purpose of making `main` as minimal as possible.

I don't think you need to understand every single character of your very first program right from the beginning. A few of the concepts can be hand waved away to be explained in a later chapter without impeding the overall understanding of programs once you left the sub-twenty-lines beginner programs.


Extra language specification rules that you need to be aware of for your whole career... in order to make the first 30 seconds easier when looking at hello-world for the first time.


The genius of this proposal is that besides the implicit unnamed class, the other changes are all purely done to the program launcher program, no changes are proposed for the language at all.

And one could argue that quickly writing up some program happens often regardless of skillset (I do make at least two psvm Main classes per month), so the code reduction there is also a welcome change.


> the other changes are all purely done to the program launcher program, no changes are proposed for the language at all

But the behaviour of the launcher is covered by the language spec isn't it? It's the language that specifies how main is selected.

https://docs.oracle.com/javase/specs/jls/se19/html/jls-12.ht...


Well, there is nothing in the spec that says would forbid the JVM loading a ProgramLauncher.class file with a public static void main method, which will look at the program arguments and if it has something ending in .java, it will compile that file, and load the resulting class (current mode of execution).

Also, even if it might become a spec change (a language level one, not a jvm level one), it will be an additive change, at worst some new program won’t run on older JVMs, but all old program will continue to run on new ones.


As I mention on the sibbling comment, C# 10 already went through this.

For me it seems like a reaction to JavaScripts and Pythons of this world, optimizing for Hello World just to win over them on those 30 seconds.

They are going to rewrite their applications anyway, when performance comes knocking on the door.


I think there is more value to a terse declaration of 'main()' than people think. In C#, you can declare a quite functional microservice under 90 lines of code with asp.net core's minimal api format. To this day I think the "enterprise style religious OOP+SOLID Java/C#" is something that has to go - so many applications that take 30 files and 4 projects could've been declared in 3-5 files with the most of core logic being in Program.cs that you can grasp within few seconds of looking at it.


It will never go away, before it was COBOL, xBase, C, C++, Smalltalk.

Tomorrow might be Go, Rust, Zig, or whatever they fancy using.

These are projects at scale of dozens of developers with various skill sets distributed around the world, optimizing for Hello World hardly matters.


It's also a reaction to languages like Kotlin that already have these and run on top of the JVM. With Kotlin these don't apply just to main. IIRC, other JVM languages have similar reductions in boiler-plate compared to Java.


C# just went through this for C# 10, which I find a waste of resources, optmizing for "Hello World" is not what matters in large scale engineering.


Large scale engineering is totally beside the point for this. This is about optimizing for teaching a first language (since many will stick with that).

Read the article, the "static trap" is a real thing for new students (on top of all other ceremony). To solve the issue of main being non-static some students will start to put static everywhere as a 'fix' to their initial issue, a day or two later they'll be asking why every student gets the same name (because they have one static variable to keep the student or name objects).

The verbosity of Java also introduces another more serious problem for learning, not only do the students have problems compiling, they also start putting their mind on focusing on syntax instead of logic once they're past the first few problems. The issue of de-programming students from this affliction is waaay too common to be ignored.


Back when I was a TA, first year students got along just as well with Pascal, Fortran and C++, many of which lacked a programming background.

I wasn't found of minimal APIs, global usings and implicit Program.cs for C# 10, and share a similar opinion in relation to Java.

No need to try to make it look like JavaScript and Python, each language has its place.


Anecdata - I'm self taught. Started my learning on Python.

I wanted to delve into Java. And sure enough, my very first thoughts were "wtf is public static void, why does this even matter, and why is print() so weird and long?"

Shit, I ended up finding it easier to get into F# than Java.

Then I got hired for a Java role, which is proof that the universe has a sense of humour.


And none of the listed languages enforce main to be part of a class, hence the described problem didn't exist for your students.

I've taught C to beginners after the Java class and whilst there are some related problems those students encounter, the extra confusion caused by having main in a class doesn't exist (and doesn't cause as much syntax vs logic confusion later on).


I can assure you they were using OOP in C++, creating their own standard library, leaving behind the ways of C, as any proper C++ course during the ARM C++ days.

The lecture notes that eventually became this book were their path into discovering C++.

https://www.bertrand.pt/livro/programacao-com-classes-em-c-p...


"Top-level statements" in C# is a double edge sword: In a long run it will help make C# a bit more approachable to an absolute beginner to programming by reducing "noise" and cognitive load but right now it tends to confuse the beginner due to countless tutorials, SO answers, books, courses being written using using, namespace, class, Main structure.

Which makes the feature kind of pointless. Especially since all teaching materials (and those who have used them for teaching) were saying to just ignore the rest for now and concentrate on

  Console.WriteLine("Hello World!");
which is, as it's written, confusing to a beginner anyway ("What is Console?") until he learns about classes, after which both namespace and using get clear(er).


It's not optimising for Hello World. It's optimising for a new student's learning experience, so that concepts can be introduced in a more reasonable order.


I beg to differ, as soon as they need a second file, import a dependency or use additional helper methods, they get to face all of it anyway.

And then there is the issue with leaky abstractions when the code that gets compiled interfers with the ideal worlds that the compiler injects, and possible confusing error messages get generated.

Like it happens with all guest languages that target the JVM pretending to be Java, and one gets a confusing stack trace only understandable by those with proper Java background.


> as soon as they need a second file, import a dependency or use additional helper methods, they get to face all of it anyway.

The problem isn't the set of things students will need to learn, but the order in which they encounter them. Students write a one-file program before they write a two-file one, but because Java is optimised for large programs, today they encounter things like accessibility rules -- which exist to serve large programs -- before they even get to write a very small one. That's the idea of the "on-ramp" in the title -- you end up int the same place, but with a smoother ride.

Both students and teachers who prefer Python to Java as a first language mentioned this "on-ramp" problem as one of the reasons. There are others, and they will be addressed by other enhancements.

BTW, importing other packages and using helper methods does not require knowing about accessibility rules.

> Like it happens with all guest languages that target the JVM pretending to be Java, and one gets a confusing stack trace only understandable by those with proper Java background.

But this is not a "guest language" and we'll need to ensure that stack traces -- which we also control -- will not be confusing.


If we're talking beginners / students here couldn't this all be hidden by a specialized IDE? Why the need to put it into "real Java"?


Lets see how much better it gets over C# 10 then.


While I personally am mostly happy with using Exchange via IMAP (through Postbox), and therefore cannot speak to or against it, there is Owl[1]. Have you ever tried that, and if so, what's your experience been like?

[1]: https://www.beonex.com/owl/


I use OWL every day for work email for OWA and it works decently


Not sure if I understand correctly, but wouldn't one of the two "operands" need to be a file in any case (the linked tools would require you to paste two times as well)?

In that case, assuming that one file is OK and only the other text needs to be pasted, you can diff against stdin. On macOS there is `pbpaste`, which prints the contents of the pasteboard to stdout. This allows you to do `pbpaste | diff the-file -`, with `-` being the commonly used "filename" for stdin.


Na one file is not okay. I have clipboard history.


Also, the latest version (>= 2.3.0, released June '19) has a new flag specific to managing dotfiles. When passing `--dotfiles`, stow replaces `dot-` at the beginning of filenames with `.` in the symlinks. The online help does not mention it, but the release notes and man pages do.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: