5 ms·
There's more to a language than the syntax. The libraries, tools, and the ecosystem of developers, documentation, support, etc. are much more important. There a
by jillesvangurp 2mo ago
There's more to a language than the syntax. The libraries, tools, and the ecosystem of developers, documentation, support, etc. are much more important. There are quite a few academic languages that are interesting to people that never really gain much traction because the people behind them just never commit to proper ecosystem building.
Switching languages is a big time commitment. Or at least it used to be. I find myself more open to that now that I can hit the ground running with AI coding tools in most languages. But still, it's a time investment to learn a language, its idioms, its way of doing things, all the tools, libraries, and frameworks, etc. It's not something you do an in afternoon. And certainly not mid project.
The languages that people gravitate to are the ones that look like they are safe, future proof bets. If you are going to spend all this energy learning one, you want to know it's a good investment. Successful languages have lots of users, decent tools, good libraries, etc. Or at least they look like there are serious people behind them. Many people make these bets early in their careers and then stick to them as well. I meet a fair share of people my age that are still sticking to Java. Because that's what they learned when they were in their twenties. I'm 51 now.
Rust is a good example of a language that's hard to learn but managed to get off the ground because of the solid people behind it. It wasn't just an academic exercise: Mozilla was trying to solve a real problem and they managed to get a nice community behind the language and it grew from there. This is not something that happens a lot. People create new languages all the time. But many stay very niche and the projects around them tend to go stale very quickly if they fail to attract a community of users.
- purplemoonx 2mo ago[flagged]
- citelao 2mo agoI think the more appropriate analogy is there's more to a drill than the drill. When you buy a Milwaukee drill, because it shares a battery with other Milwaukee parts, it's easier to buy more Milwaukee tools. So it helps to choose a drill brand with the ecosystem you like, not just one that's a serviceable drill. (Or you could argue that a language's ecosystem is part of the dang language. Which I agree with).
- purplemoonx 2mo agoFair points, but those preferences seem more grounded in reality than the abstract reasons people say they love a language beyond its interface
- oblio 2mo agoLibraries and frameworks and package management absolutely matter. They're not some abstract thing, they could be the difference between something being done in 6 months or in 2 years. Why do you think people put up with Spring?
- purplemoonx 2mo ago1000% that's why I said "Fair points" I consider npm to be part of "the interface of JavaScript" and to your point it's one of the strongest reasons beyond performance to use Node over some other dynamic language like Ruby or PHP. Python earned its keep mainly because of its library ecosystem (again to your point) but also due to its simple, teachable syntax. My point is that Python is not used because it's highly performant - it's basically the slowest language there is. But because people like the syntax and the library ecosystem (AKA the interface to the language)
- giancarlostoro 2mo agoI still attribute a rich OOTB standard library for Go’s success. You have an OOTB production capable web HTTP server baked into the standard library since practically day 1?
- purplemoonx 2mo agoHave you never heard of Node.js where they got the idea from
- giancarlostoro 2mo agoThey were made roughly around the same time to be fair, but Go's standard library was richer at the time I thought? Even so, JavaScript hate it or love it (I both hate and love it) is massive by virtue of being the primary scripting language for front-end web. I am fully aware of its backend capabilities, but Go gave us: C-like syntax, natively compiled, and a rich OOTB standard library that Google uses in production. Even YouTube adopted Go early on and made Vitess which was a "middle-man" for MySQL which helped YouTube with their back-end starting in 2010, it would help with query routing and sharding, connection pooling, query safety and even optimizing queries before they got to MySQL, as well as row-level caching. Honestly I'm not trying to downplay Node, I respect Node for what it was and is, but Go punched above its weight early on too. I think the industry was starved for a back-end language that was simple, compiled natively (removing a lot of environmental setup overhead) and was production ready out of the box.
- zaphar 2mo agoComparing a languages syntax to a saw blade is a bad analogy. A saw is a complete tool. Syntax is more like the teeth on the saw blade. The quality of the saw is not just about the teeth. It's also about the size and spacing of those teeth, the strength of the blade those teeth are on, the shape of the saw blade itself, the hardness of the metal, as well as the shape of the handle. If you are just building a table then hopefully you are not trying to do the whole thing with a keyhole saw.
- benj111 2mo agoSo 2 languages are the same if they have the same syntax but 1 is interpreted, and not safe, whereas the other is compiled and safe? Where one has a large library and runs on many platforms, and the other doesn't? Where one behaves like PHP with respect to equality, and the other doesn't? The closer metaphor is the handle. A saw handle may be ergonomic, that doesn't mean the quality of the blade is good, or even suitable for what you're trying to cut.
- purplemoonx 2mo ago> compiled vs interpreted Best rebuttal here - yeah didn't think of that obvious one! I had a larger point about language idealism / putting code on a pedestal vs getting the job done but yeah, this crowd can't handle that lmao
- CodesInChaos 2mo agoEven if you only consider the language itself, semantics, especially the type system, are more important than syntax.
- inigyou 2mo agoArguable. Both are really important. We all know the most run-down-looking restaurants have the best food, but we still go to the ones that look clean and tidy anyway.
- jillesvangurp 2mo agoMany people don't really understand the languages they learn until well after they are done mastering them. And some never really pick the deep detail there is to semantics and type theory. If it is done right, the language might feel nice to use or elegant but users might not articulate why that is. That can be a key selling point. And of course there are a lot of languages where the type system was a bit of an afterthought that got popular anyway. Javascript and other dynamically typed languages comes to mind. Rust kind of sits on the other end of the spectrum. And it has a deserved reputation for being a bit hard to learn because of it.
- nylonstrung 2mo agoI'd argue Rust is one of the most "unfun" languages in terms of syntax but it's offset by the crates ecosystem and cargo toolchain being easily the most pleasant within systems programming No matter if C or C++ was more "fun", CMake is not and I think the the "fun" parts of coding are worse with Rust but the particularly unpleasant ones are relatively good. In that sense Rust's success might be due to it being more or a "pain pill" than a "vitamin" Michael Hashimoto has made comments to the effect that Zig is attractive to him relative to Rust simply because it's more enjoyable to write but I think there's very few people for whom that could outweigh the lack of ecosystem
- ch4s3 2mo agoAgreed, rust is SUPER not fun IMHO but I use it a lot via FFI for things I wouldn't do in Elixir which I prefer to write/read. The broad array of well built tools on cargo is just so hard to compete with, and cargo as a tool beats any language tooling for any language with similar breadth. The JVM has every tool imaginable but I'd rather built it myself than tangle with JVM tooling.
- asa400 2mo agoI'm fluent in Rust and I find it quite enjoyable to read and write, more so than almost any other language I know. But, that's a subjective opinion, I wouldn't expect others to feel the same. Rust probably has more to learn and is indeed probably _more difficult to learn_ than Zig in that it's simply a bigger language (which is quantifiable, even if only approximately) but difficultly of learning vs. enjoyment of reading/writing/speaking are different questions. It's a bit like saying German is unfun to read and write. To who? To Germans?
- wduquette 2mo agoThe ecosystem makes it feasible to use the language or not. For my personal projects, I won't use a language that doesn't provide some kind of straightforward cross-platform GUI toolkit (nearly) out of the box—which narrows the field enormously. But it's the syntax and semantics what determine whether I'd want to use the language to begin with, and how maintainable the resulting code is.
- m463 2mo agoI liked perl, and later python. Python was harder to write - it was less expressive to me than perl, which could say stuff like "unless <bleh>" while python would require "if not <bleh>" it was more regular, more compact and was visually easier to read but it was the python standard library that kept me going back, because I could solve lots of problems without reinventing the wheel, or becoming a sysadmin to install a package my lowly script required.