3 ms·
Yes, Cristal looks like a very clean and well designed language... The problem is that being an impressive language is not enough these days. First, tooling i
by piokoch 5y ago
Yes, Cristal looks like a very clean and well designed language...
The problem is that being an impressive language is not enough these days.
First, tooling is needed, especially good IDE. Nobody is going to memorize names of all the methods in 100K code base and do refactoring by hand or using "find and replace". And debugging story, yes, one can use gdb, but it is not really very convenient. If I were Crystal creator I would concentrate on a well featured IntelliJ plugin.
Secondly, integrations and support for ecosystem - databases drivers (looking on the docs there are only for MySQL, Postgres and SQlite), that's definitely not enough. Caches (like Redis), message brokers (traditional and log base like Kafka, etc.). In the real live application those are important points. I guess one can use some C/C++ bindings, but, again, this is not convenient.
"A Crystal program executes in a single operating system thread"
I guess this could be performance issue if someone wants to write server in Crystal.
Developers are "spoiled", having cool type system would not make language popular.
That's kind of egg and chicken problem for each new language. It is hard to start from building large ecosystem for an almost unknown language. Hard to afford this. That's why Go or Kotlin got popular - Go had a huge Google backing and funding, Kotlin found a good niche (better Java for Android phones), has a dev tooling company behind it and has all the Java ecosystem as a backup.
Ruby, on the other hand, got at some point "killer application" - Rails that solved big pains of web development.
I don't see how Crystal can fit any of those success scenarios.
- regularfry 5y agoAll that means is that it's not (yet) going to be a mass-market language. That's fine, not everything needs to be. Ruby wasn't mass-market until, like you said, it got a killer application. All Crystal needs to do is prove itself useful to people long enough for a killer application to emerge, and the rest sorts itself out. You're strongly overplaying the importance of having an IDE; neither node.js nor Ruby had a strong contender there when they became popular, and I'd argue Python didn't either - at least not one successful enough that you could point to it as unblocking a popularity bottleneck. Integrations: it's got an FFI system and a dependency management system (in Shards); again, those will sort themselves out if they haven't already. Not everyone has to go through the hassle of wrapping a C library, it's enough for one person to do it and publish their work. Although for some reason our corporate network seems to blanket-block the TLD, so I can't check out how good the crystalshards.xyz selection actually is. The reasons why some things become popular and others don't are complicated and usually not what people think, and the route one language took to popularity isn't necessarily the only one. But then again, mass-market popularity isn't the only worthwhile goal.
- southerntofu 5y ago> First, tooling is needed, especially good IDE. Nobody is going to memorize names of all the methods As an occasional, non-professional programmer, I used to agree. But now that i started with Rust, i realized good docs are just as good (for me) as a full-fledged IDE, easier to implement, and more portable (i can read HTML docs from any computer). I really love how `cargo doc` for rust programs allows you to generate offline docs (with search index/bar) for your current project and all dependencies.
- lkuty 5y agoConcerning the IDE, I am using a text editor without all the auto-completion stuff activated but I use Dash under macOS and I find it very convenient to use and a must-have. And indeed enough for my use cases.
- jeltz 5y agoDidn't most languages become popular long before they got a good IDE? Ruby, Rust, Go, Python, Node, etc. There are some exceptions like Kotlin but in general IDE support does not seem very relevant for popularity.
- lamontcg 5y agoI think these days things have changed and a language server and a VSCode plugin are probably minimum table stakes.
- amw-zero 5y agoNode isn’t a language, and these are the most recent wave of popular programming languages. C++ went hand in hand with a great IDE (Visual Studio). Java was always used with Eclipse (not good, but ubiquitous).
- pjmlp 5y agoBefore Visual Studio there was many others, e.g. Borland, Symantec, Visual Age, Watcom, Before Eclipse Java had Visual Cafe, Visual Age for Java (which got rebooted as Eclipse), Visual J++ and J#.