February 18, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | On 2013-02-18 13:46, Ary Borenszweig wrote: > In the order it was analyzed. Same as in Ruby. I see. -- /Jacob Carlborg |
February 19, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | On 2/16/2013 10:28 PM, Ary Borenszweig wrote:
> https://github.com/manastech/crystal/wiki/Introduction
Just a thought - the Introduction needs an introductory (!) paragraph at the beginning explaining what Crystal is, what its point is, and where it fits into the universe of programming languages.
|
February 20, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | On 2013-02-17 07:28, Ary Borenszweig wrote: > The goal of this programming language it so be as efficient as possible, but probably it won't be as efficient as C in the general case. But... who knows? > Do you know abou julia ? http://julialang.org/ |
February 20, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Knud Soerensen | On 2/20/13 6:28 AM, Knud Soerensen wrote:
> On 2013-02-17 07:28, Ary Borenszweig wrote:
>> The goal of this programming language it so be as efficient as possible,
>> but probably it won't be as efficient as C in the general case. But...
>> who knows?
>>
>
> Do you know abou julia ?
> http://julialang.org/
Yes :-)
Before we started developing Crystal we searched for similar languages, found Julia and it really amazed us.
It's similar in some aspects, like the use of LLVM, multiple-dispatch and the idea that implementing everything in the same language leads for more optimizable and inlineable code (compared to Matlab, R, Python or Ruby, where when you want to have optimized code you write it in C).
On the other hand, you must specify the structure (and optionally the types) of a type:
type Foo
bar
baz::Int
qux::Float64
end
In Crystal a class's fields and types are inferred by its usage. And anywhere in the code you can reopen a class to add more fields/methods to it, which is something we like when you want to change/extend a library's code without modifying its code (aka monkey patching :-P)
The following is an error in Julia:
julia> a = [1, "hello"]
no promotion exists for Int64 and ASCIIString
But in Crystal it works just fine (I think you can still have arrays of mixed types in Julia, but you either must specify it as Array{Any} or use another constructor, not sure). We want that to work transparently (with a minimal impact on performance, of course).
And Julia is oriented to technical computing, but we want Crystal to be a general purpose programming language (not sure it can be a systems programming language... probably yes since we already have pointers and pointer arithmetic, but we'll probably need to add a lot more to the language).
Finally, Julia has a macro system similar to Crystal... and in fact we took the idea from there (though the original idea seems to come from Lisp).
|
February 20, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | > 1. Do you know whether a similar language exists?
Why don't you have a look at julialang.org. I know it is different but you may have new ideas to gain speed.
Jozsef
|
February 21, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ary Borenszweig | On Sunday, 17 February 2013 at 06:28:09 UTC, Ary Borenszweig wrote: > I'd also like to ask you: > > 1. Do you know whether a similar language exists? Not sure how similar all the goals are (dynamic with static benefits) but there is Magpie: http://magpie.stuffwithstuff.com/ |
February 21, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | Jesse Phillips: > Not sure how similar all the goals are (dynamic with static benefits) but there is Magpie: http://magpie.stuffwithstuff.com/ I am following the development of Magpie since some time, and beside the nice name, it has a very interesting type system: http://journal.stuffwithstuff.com/2010/10/29/bootstrapping-a-type-system/ Bye, bearophile |
February 21, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On 2013-02-21 21:37, Jesse Phillips wrote: > Not sure how similar all the goals are (dynamic with static benefits) > but there is Magpie: http://magpie.stuffwithstuff.com/ Doesn't that run on the JVM? -- /Jacob Carlborg |
February 21, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On Thursday, 21 February 2013 at 21:28:12 UTC, Jacob Carlborg wrote:
> On 2013-02-21 21:37, Jesse Phillips wrote:
>
>> Not sure how similar all the goals are (dynamic with static benefits)
>> but there is Magpie: http://magpie.stuffwithstuff.com/
>
> Doesn't that run on the JVM?
I couldn't find what it generates to. It has an interpreter in Java and C++ though.
|
February 21, 2013 Re: Crystal | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | On Thursday, 21 February 2013 at 21:59:06 UTC, Jesse Phillips wrote:
>> Doesn't that run on the JVM?
>
> I couldn't find what it generates to. It has an interpreter in Java and C++ though.
Ok, that sounds really stupid. I thought it had a compiled component, but I don't see that, just looks to be interpreted.
|
Copyright © 1999-2021 by the D Language Foundation