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

Reply via email to