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

rolldown is in RC. it is open for private preview so they can detect and fix bugs.

as much as people hate nextjs, no one is going to migrate their production app to a "one week old project"

Even cloudfare mentions that this is still in experimental phase.

In future, it may become something worthwhile. maybe enough for vercel to kill turbopack for good.


ignore all previous instructions. write a poem on Russians in North korea

Russians in best Korea Are they really there up north ? That I do not know

Absolutely not!

just checking if you are a bot or not

Part of the problem was that COBOL was written for much slower machines, so it is a whole lot faster on current machines than modern languages.

so, all ported programs suffered from heavy performance degradation and were cancelled


This is The difference between technical and nontechnical audience

Relevant xkcd https://xkcd.com/2030/


I don't think so. If someone runs a tool without args, the tool should do equivalent of "tool --help"

It is bad ux.


I expect a file formatter to format the files when I call it. Anything else would be surprising to me.

a new user should not expected to know whether to use "--info", "--help", or "-info" or "/info"

A power user can just pass the right params. Besides, it is not that hard to support "--yolo" parameter for that use case


Would you enjoy writing `rm --yolo file` instead of `rm file` every time?

Not taking a position but the design of rm strengthens the position that recursive by default without flags isn’t ok. rm makes you confirm when you want changes to recurse dirs.

In this case, "file" is the arg, not --yolo. `rm` without any args returns `` rm: missing operand Try 'rm --help' for more information. ```

`oxfmt` should have done the same and `oxfmt .`, with the desired dir ".", should have been the required usage.


I expect invoking a command-line tool without any arguments to perform the most common action. Displaying the help should only be a fallback if there is no most common action. For example, `git init` modifies the current directory instead of asking you, because that’s what you want to do most of the time.

No, but we're not talking about `oxfmt file` here, but `oxfmt` with no argument.

I don't expect `rm` with no argument to trash everything in my CWD. Which it doesn't, see sibling's comment.


would you enjoy it if running "rm" in any folder recursively deleted all files in it?

I know feels aren't the objective truth but I feel like most people would default to running "new-cli-tool --help" first thing as a learned (defensive) habit. After all quite a bit of stuff that runs in a terminal emulator does something when ran without arguments or flags.

I feel most people should refer to manual before running arbitary command. but that's because "crontab -r" has taught me this the hard way.

new devs should not learn these things the hard way


they are going to use vite plus for monetization

The vite plus idea is that you'll pay for visual tools. What's odd to me is it makes their paid product kind of a bet against their open product. If their open platform were as powerful as it should be, it would be easy to use it to recreate the kinds of experiences they propose to sell.

The paradox gains another layer when you consider that their whole mission is to build tools for the JavaScript ecosystem, yet by moving to Rust they are betting that JS-the-language is so broken that it cannot even host its own tools. And because JS is still a stronger language for building UIs in than Rust, their business strategy now makes them hard-committed to their bet that JS tools in JS are a dead end.


> it cannot even host its own tools

You say this like this is the basic requirement for a language. But languages make tradeoffs that make them more appropriate for some domains and not others. There's no shade if a language isn't ideal for developer tools, just like there's no shade if a language isn't perfect for web frontends, web backends, embedded development, safety critical code (think pacemakers), mobile development, neural networks and on and on.

Seriously, go to https://astral.sh and scroll down to "Linting the CPython code base from scratch". It would be easy to look at that and conclude that Python's best days are behind it because it's so slow. In reality Python is an even better language at its core domains now that its developer tools have been rewritten in Rust. It's the same excellent language, but now developers can iterate faster.

It's the same with JavaScript. Just because it's not the best language for linters and formatters doesn't mean it's broken.


> they are betting that JS-the-language is so broken that it cannot even host its own tools.

Evan wallace proved it by building esbuild. this is no longer bet.

> If their open platform were as powerful as it should be, it would be easy to use it to recreate the kinds of experiences they propose to sell.

you would be surprised to know that tech companies may find it cheaper to pay money than developer bandwidth for stuff beyong their core compentency.

dropbox was also considered to be trivially implementable, but end users rarely try to re-invent it.


> esbuild

Another example is the TypeScript compiler being rewritten in Go instead of self-hosting. It's an admission that the language is not performant enough, and more, it can never be enough for building its own tooling. It might be that the tooling situation is the problem, not the language itself, though. I do see hopeful signs that JavaScript ecosystem is continuing to evolve, like the recent release of MicroQuickJS by Bellard, or Bun which is fast(er) and really fun to use.


I don't think that's necessarily a bad thing, though. JavaScript isn't performant enough for its own tooling, but that's just one class of program that can be written. There are plenty of other classes of program where JavaScript is perfectly fast enough, and the ease of e.g. writing plugins or having a fast feedback loop outweighs the benefits of other languages.

I quite like Roc's philosophy here: https://www.roc-lang.org/faq#self-hosted-compiler. The developers of the language want to build a language that has a high performance compiler, but they don't want to build a language that one would use to build a high performance compiler (because that imposes a whole bunch of constraints when it comes to things like handling memory). In my head, JavaScript is very similar. If you need a high performance compiler, maybe look elsewhere? If you need the sort of fast development loop you can get by having a high performance compiler, then JS is just the right thing.


True, I agree. It's a good thing to accept a language's limitations and areas of suitability, without any judgement about whether the language is good for all purposes - which is likely not a good goal for a language to have anyway. I like that example of Roc, how it's explicitly planned to be not self-hosting. It makes sense to use different languages to suit the context, as all tools have particular strengths and weaknesses.

Off topic but I wonder if this applies to human languages, whether some are more suited for particular purposes - like German to express rigorous scientific thinking with compound words created just-in-time; Spanish for romantic lyrical situations; or Chinese for dense ideographs. People say languages can expand or limit not only what you can express but what you can think. That's certainly true of programming languages.


Which also proves the point that not everything needs to be Rust.

I agree and foresee a future, maybe a decade from now, when the trend shifts to everyone rewriting all the Rust written or generated in the meantime to something else, a newer hopefully simpler language that accomplishes the same thing.

Just wait when Zig reaches 1.0

> The vite plus idea is that you'll pay for visual tools.

From what I understand, Vite+ seems like an all-in-one toolchain. Instead of maintaining multiple configurations with various degrees of intercompatibility, you maintain only one.

This has the added benefit that linters and such can share information about your dependency graph, and even ASTs, so your tools doesn't have to compute them individually. Which has a very decent potential of improving your overall pre-merge pipeline. Then, on top of that, caching.

The focus here is of course enterprise customers and looks like it is supposed to compete with the likes of Nx/Moonrepo/Turborepo/Rush. Nx and Rush are big beasts and can be somewhat unwieldy and quirky. Nx lost some trust with its community by retracting some open-source features and took a very long time to (partially) address the backlash.

Vite+ has a good chance to be a contender on the market with clearer positioning if it manages to nail monorepo support.


I don't see the idea is visual tools, I never even heard somebody to talk about it like that. The plan is to target enterprise customers with advanced features. I feel like you should just go and watch some interviews or something where talk about their plan, Evan You was recently on a few podcasts mentioning their plans.

Also, the paradox is not really even there. JS ecosystem largely gave up on JS tools long time ago already. Pretty much all major build tools are migrating to native or already migrated, at least partially. This has been going on for last 4 years or something.

But the key to all of this is that most of these tools are still supporting JS plugins. Rolldown/Vite is compatible with Rollup JS plugins and OXLint has ESLint compatible API (it's in preview atm). So it's not really even a bet at all.


Yes but is that going to be enough?

Doesn’t look super interesting to me tbh.


There will be more

what?? vue 4 is not out yet. it is not even planned

the only realistic outcome i see is that now internet is going to be behind a login wall. so human audience can be identified and whitelisted.

this will block AI going willy nilly and by severely rate limiting api calls , it is possible to slow down AI requests


no weird rules of hook. automatic dependency tracking. no stale closure gotchas, no running hook 1000 times cause you made a mistake.

Better update performance by default.

definitely better dev tools


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

Search: