Crystal

pjmlp pjmlp at progtools.org
Thu Feb 28 13:18:31 PST 2013


On Thursday, 28 February 2013 at 08:22:45 UTC, thedeemon wrote:
> On Sunday, 17 February 2013 at 06:28:09 UTC, Ary Borenszweig 
> wrote:
>> One time I asked in this newsgroup if it was possible to have 
>> an "auto" keyword for function/method arguments. And... why 
>> not make all functions/methods be templates on the type of its 
>> arguments?
>>
>> I think nobody liked this idea. I said "Ruby is like this: you 
>> never specify types in method definitions".
>>
>> I started thinking about this idea: a compiled language that 
>> looked like a dynamic language. Is it possible?
>
> I think everyone who wants to create languages should first 
> familiarize himself with ML family of languages and especially 
> OCaml. It's got global type inference done right, you can write 
> big programs never specifying types of arguments of functions, 
> they all got inferred, and not just to first occurrence but to 
> most general (polymorphic) form. The compiler is incredibly 
> fast and generated code is pretty fast too (approximately as 
> fast as Java).
>
> Things to learn: Damas-Hindley-Milner, structural typing, row 
> polymorphism.
>
> So your questions are already answered ages ago: yes, it is 
> possible to have static typing with conciseness of dynamic 
> languages, speed of static languages and a fast compiler which 
> inferences types.
>
> Also, knowing OCaml will make your life much easier as a 
> compiler developer. Writing compilers is much much easier and 
> more convenient in ML than in Ruby, I know it from first-hand 
> experience, I did both in the past.

My university degree had a strong focus in programming languages. 
We were not allowed to use ML, Lisp or Prolog for compiler design 
classes because it would make the project too easy. :)

--
Paulo


More information about the Digitalmars-d-announce mailing list