On Fri, Dec 05 2014, Páll Haraldsson <[email protected]> wrote:
> On Friday, December 5, 2014 8:54:26 AM UTC, Tamas Papp wrote: >> >> I find your aversion to femtolisp difficult to understand, probably >> because I tend to think of Julia as a Lisp with the following key >> features: >> > > I don't really have an aversion to femtolisp. I understand it's an awesome > implementation of Scheme. > > If you "think of Julia as a Lisp" (including Scheme, right?) then when > would you prefer Lisp (or Scheme) for new things after Julia came along? Sorry, but did you read my e-mail? As I said, Julia is much more optimizable with its richer type system, which is a great advantage for me. Common Lisp is remarkably nice, but even nontrivial numeric code ends up being 1) non-optimized, 2) peppered with type declarations, specialized for a specific application, 3) wrapped in a fragile and complicated mess of template macrology. The kind people who designed Julia essentially took care of (3) for me -- how could I not like it? :D >> But given these two (very important) differences > > Why "very important"? I understand there is a difference in the syntax, is > it important as in better *fro something*? Or just different. Personally, I like S-expressions too, but many people prefer M-expressions, especially for math (they are indeed more compact). > What I thought. What I'm getting at, if Julia is better at somethings (e.g. > the above) must it then be worse for other things? > > The core of Julia is generic enough to be a potential substitute for all >> dynamic languages in the long run, as the language matures. > > Not already? Then some dynamic language should currently be better, I would > like to know why. > >> I am not so >> sure that current technology allows a single language to be good at >> everything, languages like C seem to be difficult to replace with >> dynamic languages in some situations. These are very abstract points, and I am not sure that discussing them as such is very productive. As many have remarked in this thread, languages are tools, designed for a given prupose. Is a hammer better than a screwdriver? Etc. > Why? For C, Julia seems already better for almost all users. If "languages > like C" means C++, I could see all new code in Julia and C++ as legacy. > What other "like C" do you mean? Again, I am wondering if you actually read the replies to your questions. Many have remarked on these issues in their replies to you, eg dynamic vs manual memory allocation, etc. C, C++, and Fortran are fundamentally different from Julia at the moment. Whether, in the long run, Julia will have features that dominate these in some markets remains to be seen, but at the moment this would be nothing more than idle speculation. In any case, history of computer languages teaches us that rich languages, especially in the Lisp family (where I include Julia) have features that interact in a manner that is difficult to describe and design in advance. If these are constraining, either the language is extended or a new one is introduced. But a priori it is nearly impossible to say what happens, so I think the best thing for stakeholders at this point is to work in Julia and see where it is going, and possibly try to shape its development, either directly or by helping to discover where it could be improved. Frankly, I don't understand your decision problem -- are you trying to decide whether to invest learning in Julia vs some other language? Even though that question does not have a well-defined answer either, it is possible that you would get more useful advice. Best, Tamas
