My mental picture of OOP involves encapsulation and inheritance. Julia has a form of encapsulation in the form of modules, but Julia's abstract vs concrete types explicitly avoids inheritance. This is not a criticism btw! I think Julia's design makes a lot of sense for the problems that Julia wants to solve and I have enjoyed learning new concepts like multiple dispatch.
On Wednesday, 8 January 2014 14:17:20 UTC+1, Stefan Karpinski wrote: > > It's a bit hard to say whether Julia is object-oriented or not. I suspect > that for a lot of people, object-oriented means "do you write `x.f(y)` a > lot?" By that metric, Julia is not very object oriented. On the other hand, > everything you can do with single-dispatch o.o. in C++ or Java, you can > easily simulate with multiple dispatch, but you'll have to get used to > writing `f(x,y)` instead of `x.f(y)`. If your notion of object-orientation > has more to do with encapsulation and/or message passing, then we start to > look pretty non-o.o. again. > > > On Wed, Jan 8, 2014 at 5:25 AM, Matthias BUSSONNIER < > [email protected] <javascript:>> wrote: > >> >> Le 7 janv. 2014 à 21:48, Erik Engheim a écrit : >> >> Thanks for the nice comments all of you. I guess I have to keep writing >> more about my Julia experiences after this ;-) >> >> On Tuesday, January 7, 2014 9:39:05 PM UTC+1, Ivar Nesje wrote: >>> >>> Great post, it sums up very well the things I think is the strengths of >>> Julia. >>> >>> A few notes: >>> Julia does not look up the method at runtime if the types of the >>> arguments to the function can be deduced from the types of the arguments to >>> the surrounding function (but it behaves that way for the user, unless he >>> redefines the method after the function was compiled >>> #265<https://github.com/JuliaLang/julia/issues/265> >>> ). >>> >>>> >>>> >> That is cool I didn't know that. I assume this can make quite a big >> difference in performance for tight inner loops. >> >> >> >> Some misc comment too : >> >> > Julia is not object oriented >> >> Is that True ? From the manual : >> >> > It is multi-paradigm, combining features of imperative, functional, >> and object-oriented programming. >> >> I consider that Julia can be OO, the code just look different than in >> other languages. >> >> >> Typo ? >> > Polymorphis lets you >> Missing m ? >> >> Liked the blog post too otherwise thanks, I would also have >> mentioned code_lowered, code_llvm and code_typed >> not everyone is fluent assembler and those tool are really useful to, >> especially in metaprogramming. >> >> -- >> M >> > >
