ScalaJulia is a skunkworks project Martin and I have been working on for a
while now. The hardest part so far has been deciding between whether to
call it ScalaJulia or JuliaScala. Other names we considered: Julala, Scalia.

On Tuesday, October 20, 2015, Sisyphuss <[email protected]> wrote:

> I'm sorry, but I didn't find the ScalaJulia project as you mentioned.
>
>
> On Monday, October 19, 2015 at 7:39:04 PM UTC+2, [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');> wrote:
>>
>> I am confident that a new OOP language *ScalaJulia *is possible
>> integrating syntax of both functional languages Scala and Julia.
>> Thanks,
>> SS
>>
>> On Sunday, October 18, 2015 at 5:41:58 AM UTC-7, Sisyphuss wrote:
>>>
>>> When I'm learning Julia, I am always thinking what is the correct way to
>>> do OOP in this language. It seems to me that what I learned in C++ does not
>>> apply in Julia.
>>>
>>> It took me long to realize that the equivalent of Class of C++ in Julia
>>> is not Type, but Module. Module is the basic function unit in Julia.
>>>
>>> Thus, a Class in Julia is like
>>> module ClassName         # class Name {
>>> using                    #     include<>         // should be outside
>>> import                   #     include<>
>>> export  function         #     public  function;
>>> var = 1                  #     private static var;
>>> end                      # }
>>> This provides the same structure as C++.
>>>
>>> However, this design has two issues:
>>> 1) The visit control is not as fine-grained as in C++, the encapsulation
>>> is not strict;
>>> 2) Variables at the top level of a module are global variables.
>>>
>>> These two points are closely correlated. If we let module have private
>>> variables, then they are not too different from local variables, ans thus
>>> can be type inferred.
>>> I think this is a natural way to do OOP with Julia.
>>>
>>>
>>>
>>>

Reply via email to