4 ms·
> I'm interested why it seems to be getting little attention compared to Go, Rust, & Julia. Rust essentially competes with C and C++ (and maybe D and Nim with
by fluffything 7y ago
> I'm interested why it seems to be getting little attention compared to Go, Rust, & Julia.
Rust essentially competes with C and C++ (and maybe D and Nim without their GCs), and the reason it gets hype is because it brings some unique features for that niche.
Go brought some unique features as well (goroutines done right), and it is pushed by a major player.
In Julia's niche, you only really have Julia and Fortran - sure there are many other languages used in that niche, but there are very very few languages exclusively designed for that niche.
C#, Kotlin and Swift are the system API languages of major platforms (MS, Apple, Android). Javascript is the language for the web.
What's Crystal for?
- gdxhyrd 7y ago> C#, Kotlin and Swift are the system API languages of major platforms (MS, Apple, Android). No, the system API of those systems is exposed in C, ObjC and C respectively. You may be thinking about the most common language in those platforms nowadays (and their respective APIs).
- fluffything 7y ago> No, the system API of those systems is exposed in C, ObjC and C respectively. This is incorrect. Microsoft doesn't have a C compiler, only a C++ compiler, so the lower level language on Windows is C++. Yet for application development, the application language is C#. On Apple, the lowest level language is ObjC, and the application language is Swift. And on Android, its C + Kotlin. Doing application development on, e.g., Android, using the C NDK, is pretty much unsupported, since the NDK is mostly undocumented, and changes often. The only stable API for application development is Java, or Kotlin.
- LessDmesg 7y agoIt's still C all the way down, even in 2019. Amazing how far crappy, badly thought out, ubiquitous, low entry barrier languages can go. More than 40 years of memory errors, out of bounds errors, broken metaprogramming, undefined behavior, lack of error handling, type safety, abstractions and intelligent design in general, all served under the clunky syntax sauce. And it still powers our world. Worse is better, indeed.
- LASR 7y agoIt's not the question of what's better or worse. It's about what's already there. Within any large enough network where some level of consensus is able to be formed, you will see conventions start to form. Once these conventions form, they are almost undefeatable. But the most intersting thing is that they are undefeatable, even if there is complete consensus that they should be. Take for example, the imperial units. I think the vast majority of American engineers would agree about its shortcomings. But it can't go, simply because it's already there. C is the same. Look at any modern natively compiled language. They will always come with some easy ways to bind to C. Because to not do so would be a stillborn language. So even in tech, where things evolve extremely rapidly - compute power/$ has improved a million x since the days of C, C still lives, and is the underlying basis of everything. Because conventions.
- gdxhyrd 7y ago> crappy, badly thought out, ubiquitous, low entry barrier languages It is easy to criticize designs that are 47 years old in today's context. I am betting you wouldn't have done a better job half a century ago either.
- mapcars 7y ago>Go brought some unique features as well (goroutines done right), Why Erlang processes are not right?
- elchupanebre 7y agoErlang is just too different from the C-like languages that everyone is accustomed to.
- dleslie 7y agoCrystal _could be_ for game developers; there's large green pastures left almost entirely untouched for a language to disrupt it. You see a few niche languages make inroads, like Haxe, but I expect something could really effect change. The key is to be as fast as possible, as memory light as possible, and able to produce and speak to C ABI.
- s_y_n_t_a_x 7y agoNim and Lua are in that pasture. Being fast, memory light, and the C interop are the key features of Lua.
- dleslie 7y agoLua yes, and since the 90s, but Nim? I've not seen that yet. What games use it?
- s_y_n_t_a_x 7y agoThere's integration in Unreal Engine for Nim. I'm not saying it's widespread, but the language features put it in that field.
- _pmf_ 7y agoJon Blow's (developer of "The Witness") Jai is worth mentioning in that context (not released, though).