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. >>> >>> >>> >>>
