4 ms·
I saw a keynote by Bill Dally when he was promoting the then-new CUDA framework/language. His message was that if you want a new language to be adopted it needs
by theaeolist 5y ago
I saw a keynote by Bill Dally when he was promoting the then-new CUDA framework/language. His message was that if you want a new language to be adopted it needs to do something (something reasonably important) 10x better than the competition. Even 2x better is not enough to motivate the disruption of changing languages.
- api 5y agoThe 10X rule of thumb holds in many areas where you have to overcome existing sunk cost, large market inertia, or a network effect. I’d say it also holds for operating systems, network protocols, core tooling, etc. The thing improved 10X might vary though, and for any niche there may be more than one thing that can be improved. Linux for instance displaced Windows NT by being both cheaper (technically free) and radically more flexible.
- michaelcampbell 5y agoI wonder if this metric would be expressed as 12x better if we'd had 6 fingers. Not that it matters, just idle mindless rumination.
- tlrss 5y agoIt would probably still be written "10x", just in base-twelve!
- pjmlp 5y agoWith the help from IBM, Dell and Oracle's money. And even it now sees competition from other POSIX platforms for IoT, with more business friendly licensing. It isn't going away, but now there is more free beer alternatives for UNIX folks that don't want GPL kernels.
- lifthrasiir 5y agoAnd that should be a single visible something that has 10x improvement. 1.1^25 exceeds 10, but a new language (or really anything) that is 10% better in 25 different aspects probably wouldn't make the cut.
- ModernMech 5y agoEven this doesn't really capture how much better it has to be, because there are so many dimensions to a PL. You have to not only be 10x better than the competition in some dimension, but you also have to be competitive in all other dimensions. Let's say your language X is 10x faster than language P. Or it compiles 10x faster. Or you can write programs 10x faster. That's not enough. You also need: - a complete compiler and debugger toolchain - a complete language server implementation, and language modes for all popular IDEs - a package manager with a large package ecosystem - a community with live chat support and a Stack Overflow presence - robust documentation with copious examples, tutorials, guides, and technical info. These days even a multi-hundred page book with professional editing available for free is expected. - you have to be responsive to bugs and provide patches promptly - your language is expected to have undergone a full independent security audit, and to be up-to-date on the latest security issues - you have to manage the community and deal with petty interpersonal conflicts or else word gets out that your language has a "toxic community" - support for all major operating systems and hardware architectures - support for the web through wasm, so you need experts at that as well as x86 and ARM platforms now. - And on top of all that, your project needs to be completely open source, with a free and open license that permits royalty free, patent free, commercial use. Oh, and your users both corporate and personal expect your work to be completely free as in beer. They won't pay anything for it. Not even a dollar. And if you ask them to pay something they don't weigh the value of your product versus the competition, they balk immediately and don't even consider it. It's been a non-starter to ask for money for a PL for decades. So even if your language is 10x better in some way, it's not going to be 10x better in all ways. In fact, it needs to be at least as competitive as other languages in the above (and many other) dimensions to gain traction outside of enthusiasts. This is why it's so hard to gain traction in the PL field, and why most of the top new languages to emerge over the last decade or so (Rust, Go, Swift) came from patrons with deep pockets. The only exception I can think of is Zig, and even that's in a minor league compared to the ones listed.
- open-source-ux 5y agoThe Julia programming language is an interesting example of a language addressing a niche. It originally focused on scientific computing - the ease of a scripting language (like Python) and the speed of a C or C++ program. More recently, Julia promotes itself as a general-purpose language suitable for non-scientific domains too. However, the association with scientifc computing remains strong. It's too early to say if that perception among developers will change over time.
- Zababa 5y ago> More recently, Julia promotes itself as a general-purpose language suitable for non-scientific domains too. Julia looks cool, but I do mostly web development, and I don't see how I would benefit from it.
- ModernMech 5y agoJulia is one of those products that is not only 10x better in one dimension, but is also at least marginally better in most other dimensions compared to Matlab. I think they have a bright future. Julia is lucky because they are targeting not just a niche but a userbase that has been amassed already. Really what they're doing is directly taking on Matlab it seems, where Matlab users have gotten frustrated with how stale and expensive the language is. Julia has the fortunate task of convincing unsatisfied people who are paying a shit ton of money for an inferior product to try a superior product for free.