Live data from Hacker News

$20k bounty was claimed

prettier.io

301–310 of 345 posts

Re: $20k bounty was claimed

#301

Earlier quoted context omitted.

> many things are more expensive when you don't work at a company - for example the health care for a marginal employee at GE is a lot cheaper than you'll get for yourself. This is less true following the Affordable Care Act than it used to be. The unsubsidised marketplace rate for my Kaiser health insurance seems fairly close to what I pay for COBRA from my former big tech employer.

Interesting. My Kaiser almost doubled from COBRA and coverage went from better-than-platinum to high deductible gold. Google / SF market.

I have Google COBRA in SF too and when I last looked a year or so ago it was about $100/year more on the marketplace for the KP platinum plan.

Age makes a huge difference to the marketplace premiums though.

Re: $20k bounty was claimed

#302
post #76

"This means that we can now focus on the next important aspect: Performance. Prettier has never been fast per se, but fast enough for most use cases. This has always felt unsatisfying so we wanted to do something about it. What better way than a friendly competition. On November 9th, we put up a $10k bounty for any project written in Rust that would pass 95% of Prettier test suite." I don't see how better performance…

Here is the answer I got from vjeux: > There's a lot of fast web tooling being written in rust those days. https://twitter.com/Vjeux/status/1722769322299609565 I don't buy it. I think vjeux is riding the hype.

To be fair compiled languages are just faster than interpreted (in most cases, and as others have pointed out especially with strings)

Re: $20k bounty was claimed

#303
post #142

Earlier quoted context omitted.

Most of my git repos are things where I'm happy if someone finds something useful, but for several of them I'm very explicit that there are a whole lot of things I will plain refuse to merge not because I think they're not great or useful, but because I don't want my packages to be everything for everyone - I'd rather people took my stuff and built a "competing" solution with different tradeoffs if they have differen…

Projects would do well to adopt your views, I believe that always leads to a better product. Age for example always has someone complaining about a feature they want - the refusal to oblige is exactly why it's a better product than gpg.

I never heard of "Age" before this post. Thank you to share. If others are interested to learn more, here are two other interesting posts about Age:

https://github.com/FiloSottile/age/discussions/432

https://words.filippo.io/dispatches/age-authentication/

Re: $20k bounty was claimed

#304

Earlier quoted context omitted.

To use the Go language's formatter and a saying, "Gofmt's style is no one's favorite, yet gofmt is everyone's favorite." That is, you may not like the style, but it's preferable over having no tool ensuring consistent style.

Agreed, but that's a different conversation because gofmt is a lot less opinionated than prettier. Prettier goes well beyond style issues, and messes with semantics - it will add or remove parentheses in math expressions, add or remove linebreaks within lines of code, etc. If prettier worked more like gofmt I'd probably love it and have no complaints!

> and messes with semantics - it will add or remove parentheses in math expressions

Wait, so prettier rewrites code incorrectly? Aka, it’s buggy?

Re: $20k bounty was claimed

#305
post #24

I'm still salty that all my eslint plugins decided to remove perfectly fine linters in lieu of Prettier. I find Prettier to be way too heavy handed and hard to reason about, and yet another tool that I never asked for...

> I find Prettier to be way too heavy handed But that's the purpose of such tools: to stop endless debates about style.

Sure, but the issue with prettier is that it goes beyond style and also mangles semantic details. That's their explicit design choice - they feel that conforming formatting in all cases is more important than preserving semantic information about code, and that devs should add "// prettier-ignore" comments to every line of code with semantic details that prettier would throw away.

Re: $20k bounty was claimed

#306
post #8

> One question you are probably wondering is why would the Prettier team fund another project!? In practice, Prettier has been the dominant code formatter for JavaScript and as a result of a lack of competition, there has been little incentive to push on performance and fix various edge cases. I was indeed wondering that but the answer doesn't really answer the question for me. Why not set a bounty to improve Prettie…

Sorry for being late to the party. What I really care about is that we have fast code formatting in the industry.

But performance is a field that's really hard to accurately measure as there are so many variables, machines, benchmarks... You can see this in the JavaScript ecosystem where every project says that they are faster than the other one and they are in practice all right depending on which benchmarks they use.

So, creating a big bounty with something that's very hard to accurately measure is likely not going to work out very well.

In practice in the ecosystem, the Rust community really cares about performance. So it feels that this is the right audience to build something really fast. But, so far, none of the Rust-based printers were even close to outputting the same thing as prettier. They all decided to implement a different set of options, made different design decisions...

So every time somebody mentioned using one of those, I was getting annoyed that I would --love-- to recommend them, but it wasn't going to be the same. And I believe from experience that one of the main reason Prettier has been so successful is because of this --very very very very-- laborious last few percent of edge cases.

So goal #1 is to convince at least one of those projects to start being compatible with Prettier so that we had a viable alternative. In practice, there was no way I could talk to them directly and convince them to align with Prettier. So the idea of the bounty came to be, if I made a bounty big enough, it would be a way to convince them to do so (and it worked!).

The bounty to work needs to be very easy to test (percentage of tests that pass is very easy to test), cannot easily be cheated (unless you run prettier itself, you need to go through the laborious work of doing the same logic) and cover real world use case (all the tests were added over time based on using it in prod). It also mentioned a "project" and not a "person" to encourage collaboration.

It's a bit unorthodox but I've learned my lesson with code formatting that people are obsessed about discussing this topic so you need to find alternative ways to convince them.

Now, going back to Prettier, I've been very annoyed that nobody had looked at performance of the project since after I stopped working on the project. For example, I wrote a way to keep the prettier process alive for editor integration instead of paying for the startup cost every single time https://github.com/prettier/prettier-rpc and nobody used it. I needed to find a way to convince people that prettier's performance actually matters.

One of the most powerful way to get people to improve performance is to have two competing offerings battling against each others. We've seen this very successful between JS engines, JS frameworks... But, due to the success of prettier, there was no competition, the JS Survey admins even stopped asking about it because it was the only choice.

So having a proper competitor which is faster and uses a relatively controversial language, was a good setup to get a competition going. And it also worked, since the bounty was announced, Fabio Spampinato got nerd snipped thinking he can make the JS version faster than Rust and has been working every day profiling and rewriting the Prettier CLI to be orders of magnitude faster. We are using the open collective money to contract him to work on this.

Outside of performance, by having another group of people work on the same tests, they uncovered a lot of broken behaviors and edge cases on prettier that should be fixed.

Last but not least, having a bounty incentivizing another project was intriguing enough to generate a lot of discussion and therefore receive a lot more coverage than just asking people to work on your project.

----

So, overall, it achieved all the outcomes I wanted: by the end of the year, prettier itself is going to be a lot faster, and we actually have -less- fragmentation in the space where the other big project is now aligned in terms of the way code is formatted.

Would have I been able to spend $10k more effectively, I can't think of how. But I'm pretty sure I'm missing some better strats!

Re: $20k bounty was claimed

#307
post #244

Earlier quoted context omitted.

Is the 2.50:1 just a broad estimate or based on something? When I was doing pricing for service contracts it was usually around 1.50:1 burdened billing rate vs direct labor (income)

how did you factor in when you can't work (sickness, holiday, increasing your skill, finding the next job etc)?

2088 potential work hours in a year Less 88 hours holiday Less 80 hours vacation Less 56 hours sick =1864 hours (these are federal guidelines under the Service Contract Act regs)

232/1864 is a base increase of 12.5% for PTO

Payroll taxes, Medical, workers comp, etc add about 30% - though medical is flat so at higher wages like discussed here the % increase it represents goes down further

I did not have to factor in increasing skill on the job or time between jobs - but I did have to account for overhead and g&a which would be similar to time between jobs since those would be for bills

Big companies would have a lot of markup on OH/g&a/fee, but a software dev working remote for themselves on contract could competitively go down to 5-10% or less here to simply cover the minor added burden to bills.

That totals up to about a 50% increase on the salary rate. You can't outright bill someone for time you spend looking for a new job or improving your skills. You may charge a premium that you use to do such things but that would have to go under fee which tends to top out at 15% with the government, not something that can be expected to be accounted for. In my experience at least.

Again though, this was for service contracts - particularly with the US government, subject to certified cost and pricing data disclosures.

I was genuinely curious about the 2.5 number though, as i have spent a lot of time dealing with market rates in various conditions I was interested to know the context. I could see a few ways that could happen, but I wouldn't want to speculate too much

Re: $20k bounty was claimed

#308
post #220

Earlier quoted context omitted.

I’ll second this that even in Canada, which has quite low tech pay, the lower end of quality dev work is $180/hr. Most of us managing contractors wouldn’t blink twice at $200/hr. Many of the bills are much higher.

where are you finding these rates at? i have rarely seen anything even passing $100/hr in canada, contract or not

Dude I got $1000 a day in Canada in the early 90s. You just need the right skills and contacts.

Re: $20k bounty was claimed

#309
post #171
post #152

Earlier quoted context omitted.

>Great programmer who has the skill to answer this bounty get paid at least $200 an hour (extremely conservative estimate) Dang! What do you base this estimate on? The Rust aspect, or parsing aspect, or intersection of both?

Keep in mind as a freelancer you have to make about for $2.50 for every $1 a salaried person makes, as you're on the hook for 100% of taxes, health care, business expenses, etc.

That sounds about right. On the other hand it does mean that you are producing this kind of work for big FAANG companies you should expect to earn $80/hour. This is around the low end of a senior software engineer or the higher end of a junior software engineer.

Re: $20k bounty was claimed

#310

Speed is always welcome, but I just wish prettier was a little less opinionated. Specifically around line length, it will just not leave my formatting alone. I find prettier formatted code much less readable than unformatted code, and this isn't a problem I have with other code formatters like rustfmt.

There's a more insidious side effect to prettier related to the line length thing which I'm not sure other commenters touched upon, and the reason I avoid opinionated formatters. Prettier will affect your diff in ways you didn't intend to. Remove a member from a destructuring assignment that brings it below the line length limit, and suddenly your diff is +1/-5 instead of 0/-1, making it slightly more difficult for y…

Reformatting in precommit is destructive.
Post reply on HN