4 ms·
No it doesn't. A large stdlib solves the problems the language is focused on. For C# and Go that is web hosts. Try using them outside that scope and the depe
by athrowaway3z 1y ago
No it doesn't.
A large stdlib solves the problems the language is focused on. For C# and Go that is web hosts.
Try using them outside that scope and the dependencies start to pile in (Games, Desktop) or they are essentially unused (embedded, phones, wasm)
- merb 1y agoactually dotnet also does not need too many dependencies for games and desktop apps.
- Ygg2 1y agoSo it comes out of box with good renderers, physics engines, localization, input controllers and in-game GUIs?
- 7bit 1y agoThose are extremely specialized dependencies. Whereas in Rust, we talk about e.g. serde, which is included in the std libs for many major languages Are you really trying to compare serde to rendering engines?
- cyber_kinetist 1y agoTo be fair, there is no language that has a framework that contains all of these things... unless you're using one of the game engines like Unity/Unreal. If you're willing to constrain yourself to 2D games, and exclude physics engines (assume you just use one of the Box2D bindings) and also UI (2D gamedevs tend to make their own UI systems anyway)... Then your best bet in the C# world is Monogame (https://monogame.net/ https://monogame.net/), which has lots of successful titles shipped on desktop and console (Stardew Valley, Celeste)
- Ygg2 1y ago> To be fair, there is no language that has a framework that contains all of these things. Depends. There is Godot Script. Seeing how it comes with a game engine. But original claim was > actually dotnet also does not need too many dependencies for games and desktop apps. If you're including languages with big game engines. It's a tautology. Languages with good game engines, have good game engines. But general purpose programming language has very little to gain from including a niche library even if it's the best in business. Imagine if C++ shipped with Unreal.
- Const-me 1y agoThe libraries you listed are too specialized. And they require integration with asset pipeline which is well outside of scope of a programming language. As for the generic things, I think C# is the only mainstream language which has small vectors, 3x2 and 4x4 matrices, and quaternions in the standard library.
- bob1029 1y ago> I think C# is the only mainstream language which has small vectors, 3x2 and 4x4 matrices, and quaternions in the standard library. They've got SIMD-accelerated methods for calculating 3d projection matrices. No other ecosystem is even close once you start digging into the details.
- dgb23 1y ago“Web server” is a pretty big use case though. But I agree that graphics is often overlooked in std libs. However that’s a bit of a different beast. Std libs typically deal with what the OS provides. Graphics is its own world so to speak. As for Wasm: first, that’s a runtime issue and not a language issue. I think GC is on the roadmap for Wasm. Second, Go and C# obviously predate Wasm. In the end, not every language should be concerned with every use case. The bigger question is whether it provides a std lib for the category of programs it targets. To take a specific example: JS isn’t great at efficiently and conveniently generating dynamic HTML. You can go far without (or minimal) dependencies and some clever patterns. But a lot of pain and work hours would have been saved if it had something that people want to use out of the box.
- ffsm8 1y ago> “Web server” is a pretty big use case though. You don't consider games, desktop and mobile applications big use cases, each being multi billion industries? I don't know man, I feel like you're arguing in bad faith and are intentionally ignoring what the athrowaway3z said: it works there because they're essentially languages specifically made to enable web development . That's why their standard lib is plenty for this domain. I can understand that web development might be the only thing you care about though, it's definitely a large industry - but the thesis of a large standard lib solving the dependency issue really isnt true, as (almost) every other usecase beyond web development shows.
- nicce 1y agoWeb is likely bigger than all of those together. And large part of mobile and desktop apps depends on the web tech these days.
- galangalalgol 1y agoSpecifically those languages are back end focused so about 28% of developers. 55 focus on front end. If you add up games desktop and mobile, oddly you get 28% as well. So not bigger but the same size good intuition! That leaves out embedded 8% and systems (8-12%). Which are probably more what rust is used for. There is obviously overlap and we haven't mentioned database or scientific programming at 12 and 5 percent respectively. Edit: after rereading this I feel like I may have come across sarcastic, I was legitimately impressed a guess without looking it up would peg the ratio that closely. It was off topic as a response too. So I'll add that rust never would have an asynch as good as tokio, or been able to have asynch in embedded as with embassy, if it hadn't opted for batteries excluded. I think this was the right call given its initial focus as a desktop/systems language. And it is what allowed it to be more than that as people added things. Use cargo-deny, pin the oldest version that does what you need and doesn't fail cargo deny. There are several hundred crates brought in by just the rust lang repo, if you only vet things not in that list, you can save some time too.
- Xeoncross 1y ago> A large stdlib solves the problems the language is focused on That's part of it, but it also solves the problem of vetting. When I use a Go stdlib I don't have to personally spend time to vet it like it do when looking at a crate or npm package. In general, Go & Rust packages on github are high quality to begin with, but there is still a pronounced difference between OS packages and what is approved to be part of the language's own stdlib. It's nice to know thousands of different companies already found the issues for me or objected to them in reviews before the library was published.
- canadianfella 1y ago[dead]