| ▲ | andai 11 hours ago |
| Great article, but I think these are all marginal. The main cause of bloat is not polyfills or atomic packages. The cause of bloat is bloat! I love this quote by Antoine de Saint-Exupéry (author of the Little Prince): "Perfection is achieved, not when there is nothing left to add, but nothing to take away." Most software is not written like that. It's not asking "how can we make this more elegant?" It's asking "what's the easiest way to add more stuff?" The answer is `npm i more-stuff`. |
|
| ▲ | cwnyth 10 hours ago | parent | next [-] |
| Cf. Vonnegut's rule #4 of good writing: > Every sentence must do one of two things—reveal character or advance the action. Or Quintilian's praise of Demosthenes and Cicero: "To Demosthenes nothing can be added, but from Cicero nothing can be taken away." |
| |
| ▲ | Defenestresque 3 hours ago | parent | next [-] | | For the curious, the rest of the types: Use the time of a total stranger in such a way that he or she will not feel the time was wasted. Give the reader at least one character he or she can root for. Every character should want something, even if it is only a glass of water. Every sentence must do one of two things—reveal character or advance the action. Start as close to the end as possible. Be a sadist. No matter how sweet and innocent your leading characters, make awful things happen to them—in order that the reader may see what they are made of. Write to please just one person. If you open a window and make love to the world, so to speak, your story will get pneumonia. Give your readers as much information as possible as soon as possible. To heck with suspense. Readers should have such complete understanding of what is going on, where and why, that they could finish the story themselves, should cockroaches eat the last few pages. The greatest American short story writer of my generation was Flannery O'Connor (1925-1964). She broke practically every one of my rules but the first. Great writers tend to do that. | | |
| ▲ | assimpleaspossi an hour ago | parent | next [-] | | >>Write to please just one person. If you open a window and make love to the world, so to speak, your story will get pneumonia. This, too, is the problem with movies and TV shows today. They worry so much about offending anyone they lose the interest of everyone. When was the last time you laughed hard and out loud? | |
| ▲ | thunky 2 hours ago | parent | prev [-] | | > Give the reader at least one character he or she can root for. I've been noticing for a while now this is missing in most modern tv shows. It makes the show feel pointless. |
| |
| ▲ | cobbzilla 10 hours ago | parent | prev [-] | | Is there no room for describing the setting? Must every utterance that sets the atmosphere also advance the plot or reveal character? Is there no room for mood? | | |
| ▲ | nkrisc 2 hours ago | parent | next [-] | | What is the purpose of the setting if not to reveal character or advance the plot? I don’t need to know the color of the walls if it does neither. | | |
| ▲ | root_axis 38 minutes ago | parent [-] | | Framed that way you could characterize anything as ultimately serving the characters or plot. | | |
| ▲ | nkrisc 28 minutes ago | parent [-] | | Not really. There are infinite insignificant details that could be included that should not be included because they do neither in any meaningful way. |
|
| |
| ▲ | alt187 4 hours ago | parent | prev | next [-] | | describing the setting should (ideally) be done through a character's interaction with the setting. if you're developing some sort of dystopia where everyone is heavily medicated, better to show a character casually take the medication rather than describe it. of course, that's not a rule set in stone. you can do whatever the fuck you want. | |
| ▲ | hombre_fatal 10 hours ago | parent | prev | next [-] | | > Is there no room for describing the setting? Is there no room for mood? You mean the character of a place? | | |
| ▲ | cobbzilla 9 hours ago | parent [-] | | sure, setting and character are the same thing | | |
| ▲ | bryanrasmussen 7 hours ago | parent [-] | | the implication is that if mood is the character of the place then those sentences that set mood are advancing character. | | |
| ▲ | josephg 4 hours ago | parent [-] | | Some authors rarely describe a place objectively. We see a space through the eyes of the characters - and in doing so, we learn about our characters as we learn about the space they inhabit. | | |
| ▲ | bryanrasmussen an hour ago | parent [-] | | sure, if a character is in some narrative role; however I would argue that no author ever describes a place objectively, especially not a completely fictional place. The question really is if the unobjective description serves a coherent narrative purpose. |
|
|
|
| |
| ▲ | IsTom 6 hours ago | parent | prev | next [-] | | He's very efficient with prose and I find it a joy to read (well, given what he's writing about it's not always joy, but still). I'm not sure he's following that rule 100% of the time, but it's close. Depending on the setting, you can often describe it through characters' actions or how it shapes them. | |
| ▲ | righthand 4 hours ago | parent | prev | next [-] | | The “mood” should reflect the character not the author’s desire to detail out the room. | |
| ▲ | brigandish 6 hours ago | parent | prev [-] | | Setting would provide the context for action or characterisation to occur in a meaningful way, or provoke it, so it is necessary part of both (if done for either of those purposes). Given that, the charitable interpretation would be to only provide enough description of the setting for that. |
|
|
|
| ▲ | sheept 8 hours ago | parent | prev [-] |
| All software has bloat, but npm packages and web apps are notorious for it.
Do you think it could be inherent to the language? JavaScript seems to be unique in that you want your code to work in browsers of the past and future—so a lot of bloat could come from compatibility, as mentioned in the article—and it's a language for UIs, so a lot of bloat in apps and frameworks could come from support for accessibility, internationalization, mobile, etc. |
| |
| ▲ | guax 7 hours ago | parent | next [-] | | The problem JS development is facing is the same most languages might go through. The "Magic" that solves all problems, frameworks and solutions that solve small issues at a great cost. Lots of developers don't even say they are JS devs but React devs or something. This is normal given that the bandwidth and power of targets are so large nowadays. Software is like a gas, it will fill all the space you can give it since there is no reason to optimize anything if it runs ok. I've spent countless hours optimising javascript and css to work across devices that were slow and outdated but still relevant (IE7, 8 and 9 were rough years). Cleverness breads in restrictive environments where you want to get the most out of it. Modern computers are so large that its hard for you to hit the walls when doing normal work. | |
| ▲ | socalgal2 7 hours ago | parent | prev | next [-] | | Every cargo install (rust) I've down downloads 300 to 700 packages Every C++ app I install in linux requires 250 packages Every python app I install and then pip install requirements uses 150 packages. | | |
| ▲ | stingraycharles 5 hours ago | parent | next [-] | | This is not true at all. | |
| ▲ | Tade0 5 hours ago | parent | prev | next [-] | | A while ago I started a game project in Rust using one of the popular engines. 10GB of build artifacts for the debug target. | | |
| ▲ | embedding-shape 5 hours ago | parent [-] | | You should give it a try to compile other game engines, and compare them, Unreal Engine is a fun one with the source available, take a look how big their artifacts are :) With that said, there are plenty of small game engines out there, but couple Rust's somewhat slow compile times with the ecosystems preferences for "many crates" over "one big crate", and yeah, even medium-scale game engines like Bevy take a bunch of time and space to compile. But it is a whole game engine after all, maybe not representative of general development in the community. |
| |
| ▲ | IshKebab 5 hours ago | parent | prev [-] | | I wouldn't say every Rust app does, but I do think it has become more normal for Rust apps to have 200-600 dependencies. However when I look at the list, they usually all make sense, unlike with NPM. There are rarely any one-line crates. Actually I haven't seen any yet (except joke ones of course). There's no way the average C++ app uses 250 packages though. It's usually more like 5. C++ packaging is a huge pain so people tend to use them only when absolutely necessary, and you get huge libraries like Boost primarily because of the packaging difficulty. I would say Python varies but 150 sounds high. Something more like 50-100 is typical in my experience. |
| |
| ▲ | lukan 7 hours ago | parent | prev | next [-] | | "Do you think it could be inherent to the language?" Not to the language but its users. Not to bash them, but most of them did not study IT on a university, did not learn about the KISS principle etc. They just followed some tutorials to hack together stuff, now automated via LLM's. So in a way the cause is the language as it is so easy to use. And the ecosystem grew organically from users like this - and yes, the ecosystem is full of bloat. (I think claude nowdays is a bit smarter, but when building standalone html files without agents, I remember having to always tell chatgpt to explicitely NOT pull in yet another libary, but use plain vanilla js for a standard task, which usually works better and cleaner with the same lines of code or maybe 2 or 3 more for most cases. The standard was to use libaries for every new functionality ) | |
| ▲ | bigstrat2003 7 hours ago | parent | prev [-] | | > All software has bloat, but npm packages and web apps are notorious for it. Do you think it could be inherent to the language? It sure seems like it is because JS devs, by and large, suck at programming. C has a pretty sparse standard library, but you don't see C programmers creating shared libraries to determine if a number is odd, or to add whitespace to a string. | | |
| ▲ | qayxc 6 hours ago | parent [-] | | > you don't see C programmers creating shared libraries to determine if a number is odd, or to add whitespace to a string. Believe me, if C had a way to seamlessly share libraries across architectures, OSes, and compiler versions, something similar would have happened. Instead you get a situation where every reasonably big modern C project starts by implementing their own version of string libraries, dynamic arrays, maps (aka dictionaries), etc. Not much different really. |
|
|