I don't know it is only me or its apply to others too, My own field is OS and I love it. But recently I am literally fascinated by whats going on in "Programming Language" field. Rust, Go, Nim, Julia, Haskell, Ocaml, Racket, Clojure etc (though these are not scientific research in PL community, but we can claim these are mostly result of scientific research). I wasn't aware of crystal . I literally Love them all and if I were going to an abandoned island for rest of my life , my only wish would have been : "let me play with all of these for rest of my life"<p>BTW : I looked at crystal syntax (I am talking about only syntax). Syntax designed extremely clear. I would say (my opinion, in short time I had to investigate crystal) maybe clear'er that python.
The real reason they couldn't find anything when Googling the language in the future is because of the inconvenient naming. Every time I search for Crystal, I have to pick out the results from SAP Crystal Reports.<p>I wish more people took this aspect of their projects seriously. You don't need a short domain name, but your project does at least need to be Googlable.
If you're a web dev and want to build an API be sure to check out Kemal: <a href="http://serdardogruyol.com/kemal/" rel="nofollow">http://serdardogruyol.com/kemal/</a>
> Note that the above “if” starts with “if instance variables types remain the same”. But how can we know that? The problem is that the compiler determines their<p>> type by traversing the program, instantiating methods, and checking what gets assigned to them. So we can’t really reuse the cache because we can’t know the final<p>> types until we type the whole program! It’s a chicken and egg problem."<p>Maybe I'm oversimplifying it, but suppose you compiled a statement like...<p>a++<p>...into something like...<p>if a is an integer (which would presumably be something fast like "CMP [RAX],123; JNZ NotAnInteger") do "INC [RAX+8]", otherwise do more expensive stuff to look up the actual type and a function to use as a ++ operator?<p>As long as the programmer sticks to the same type, the compiled expression runs fast, and if they switch types midstream, it still runs, albeit with a performance hit.
Taken from Github on the "why?"<p>We love Ruby's efficiency for writing code.<p>We love C's efficiency for running code.<p>We want the best of both worlds.<p>We want the compiler to understand what we mean without having to specify types everywhere.<p>We want full OOP.