Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2015-05-10 Thread Scott Jones
I actually don't think it is really that hard... for the most part, Julia 
needs better performance and better compatibility in some areas, that 
haven't received as much attention as of yet... (strings, decimal floats, 
database access).  None of these things will take anything away from what 
what the core team wants to achieve for their target audience, and they 
can get unpaid (by them) help willing to work hard on improving those 
areas... (it's called enlightened self-interest ;-) ).

On Sunday, May 10, 2015 at 6:55:58 PM UTC-4, ele...@gmail.com wrote:

 There is a very long list of interesting possibilities in this thread, but 
 Julia does have a current target audience which it supports with a set of 
 features that increase their utility.  It is going to be tricky for those 
 guiding Julia to ensure that things like more generality don't reduce the 
 utility to that initial target audience.  It will be interesting to see how 
 that is managed.

 (No I don't know how to do it, thats why it will be interesting :)

 Cheers
 Lex



Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2015-05-10 Thread elextr
There is a very long list of interesting possibilities in this thread, but 
Julia does have a current target audience which it supports with a set of 
features that increase their utility.  It is going to be tricky for those 
guiding Julia to ensure that things like more generality don't reduce the 
utility to that initial target audience.  It will be interesting to see how 
that is managed.

(No I don't know how to do it, thats why it will be interesting :)

Cheers
Lex


Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2015-05-10 Thread Scott Jones


On Thursday, December 4, 2014 at 5:24:18 PM UTC-5, Simon Danisch wrote:

 Actually, I opened this thread: 
 https://groups.google.com/forum/?fromgroups=#!topic/julia-users/IjG2ERHVjz0
 when I needed to revisit prolog and first order logic for my AI exam...
 I think Julia can be great for DSLs!
 The current downside of Julia being very young and not having any 
 established IDE can turn into an upside, if we use this to make a deeper 
 connection between the parser and the IDE. This way we could offer correct 
 syntax highlighting and parsing for any user defined DSL, if they use the 
 same interfaces.
 I imagine that Julia might become a nice hub for other languages, with its 
 low overhead for calling functions from other languages. 
 If other languages can be integrated as nicely as Keno has done it with 
 his Cxx package, together with good IDE support, this could be huge. 


This is part of why I (and the people at the startup where I'm consulting) 
are so interested in Julia... it seems like a much better glue than 
anything else we've seen... we won't lose performance by using Julia to tie 
together our C / C++ etc. modules with a number of third party open source 
packages that have nice C interfaces...
 

 Deciding to use Julia wouldn't mean to decide against using other 
 languages.


Even though removing the *necessity* to use multiple languages is, I think, 
core to Jeff Bezanson's PhD thesis, Julia does a wonderful job of just 
that, allowing you to keep your old C code or libraries, and write new 
interesting stuff in Julia.

(As much as I like to believe that Julia could be the one and only 
 language, this is still very powerful)


Even I wouldn't say it would be the one and only language, but it could 
replace a raft of other languages, IMO.

Scott

Julia - one language to rule them all, and in the brightness bind them!


Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Tamas Papp
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:

1) a focus on being heavily optimizable,
2) infix/M-expression-like surface syntax.

But given these two (very important) differences, I find Julia very,
very similar to, say, Common Lisp (subset of CLOS, DSL for AST
manipulation).

Modern CL implementations can be very fast, but it turns out that the
type system of CL is not rich enough to allow optimizations necessary
for generic numerical code (at least without a lot of biolerplate).

Infix vs prefix can seem like a matter of personal preference, but infix
clearly makes macros easier because the AST is much cleaner. However,
apparently a lot of thought went into designing the Julia surface
syntax, and it turns out to be remarkably macro-friendly. I am not so
sure about the mandatory macro prefix, but time will tell.

The core of Julia is generic enough to be a potential substitute for all
dynamic languages in the long run, as the language matures. 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.

Best,

Tamas

On Thu, Dec 04 2014, Páll Haraldsson pall.haralds...@gmail.com wrote:

 Hi,

 This is my first post here and since I've gotten your attention, my answer: 
 Julia is (or seems to be) good at everything.[*] But I'm just not sure.. 
 [You could stop reading here.]

 I think Julia could be the last language people need to learn (and should 
 be the first).[*] Maybe I'm being incredibly naive thinking no *better* 
 language will come along and I need to qualify that[*] but it seems people 
 here, when saying the Wired article has it wrong (e.g. Bezanson), are being 
 modest (or know better than I do). Maybe I just do not have enough 
 perspective on languages/paradigms out there. I'm probably ignorant on 
 (new) language/paradigm research..

 Is Julia ready for prime time (0.3.3 considered stable)? I see some talk of 
 breaking changes (Array nirvana and staged functions (for C++) will 
 they break anything?). I already recommend Julia for technical computing 
 (quant/financial) at least (to learn/try); there may be issues (especially 
 for those doing non-technical) - for now. That seems to be changing fast.

 I would be preaching to the choir saying Julia is great for its target 
 audience. But why do you just want to unify all of technical computing in 
 one language and not all of computing? A fresh approach to technical 
 computing might stop other people from considering Julia. I guess it's 
 good to have a niche but I hope other people do not get scared away.

 What is needed is to support all the important platforms so that people 
 will not overlook Julia as it doesn't support my work or run on my 
 platform. This means the web (JavaScript as an assembly language 
 target), Android (and iOS..).


 At least Bezanson seems to like (love?) Scheme (femtolisp). I wander if 
 Scheme/Lisp (or any language) is *clearly* better than Julia for anything? 
 Or would he stop using Scheme except to maintain Julia's core.. [Maybe 
 femtolisp should be removed from Julia (e.g. to bootstrap Julia)..]

 While functional style is getting more popular, people seem to like 
 imperative and Julia isn't either or. Can/should !-functions be enforced? 
 It is only a recommendation?

 I know Lisp-syntax is simple. Maybe non-infix notation is better in a 
 language but only for the interpreter it seems; or in regular math, had it 
 been used first/what people are used to. I and most people just don't see 
 it. I wander if there is anything to this other than preference. The 
 S-expressions that come with Lisp and infix, do they have an inherent 
 advantage that Julia can't match? In other words, I think that means, are 
 Julia's Lisp-like macros and its homoiconicity as powerful as Lisp's?

 As for the (linked) lists (L in Lisp), of course we need lists (and trees) 
 sometimes and Julia has them, but as a basic data structure of a language, 
 seems to me to be a performance killer. I do not see caches (locality of 
 reference) going away any time soon..


 As all (Turing-complete) languages are equivalent in a sense, one can't be 
 more powerful than another; C can implement Lisp, but without that 
 exception (Greenspunning), programming a new runtime, languages with real 
 macros can be more powerful. I used to associate macros with Lisp, are 
 there (m)any other ALGOL-like/non-S-expression/not-list-based languages 
 with real macros? Is Julia a first? I understand macros are the key to 
 Lisp's power and Lisp is said to be the most powerful language.


 In short is there any area where another language (which one and for what) 
 would be (*clearly*) better (not just slightly, see my metric below)? Maybe 
 I'm not asking the right people.. I can assume people here have language 
 theory 

Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Tamas Papp

On Fri, Dec 05 2014, Páll Haraldsson pall.haralds...@gmail.com 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


Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Páll Haraldsson


On Friday, December 5, 2014 11:34:46 AM UTC, Tamas Papp wrote:


 On Fri, Dec 05 2014, Páll Haraldsson pall.ha...@gmail.com javascript: 
 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


Yes I did read it. Note, I meant would you still recommend (Common) Lisp 
for anything, you seem to argue well for Julia (and against 
Lisp/S-expressions while you're at it?). Note also, I said would you 
prefer Lisp (or Scheme). I know Scheme is a dialect of Lisp and Racket of 
Scheme, but am not expert on the differences. I may be grouping all the 
Lisps together unfairly. Your objections to Common Lisp may not generalize 
to them all.

Personally, I like S-expressions too, but many people prefer 
 M-expressions, especially for math (they are indeed more compact). 


Is there a good way to call any (or all) of the S-expressions languages 
from Julia? I'm not even sure it's important too, there could be lots of 
useful preexisting code.
 

  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.


Libraries are also tools, I'm just not at all convinced we need many 
languages (for different purposes, maybe with very few limited 
exceptions) rather than just new libraries. That seems to be a failure of 
computer science.


  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.


I read all the replies (might have missed some). I already mentioned 
dynamic memory allocation in my first post as a temporary limitation 
(currently would be a problem for very few users/uses). Never programmed in 
Fortran but think it also uses manual memory allocation. While Julia uses 
those languages in part I think manual is not the reason for their (or 
Julia's) speed; in general that they are fundamentally different in a 
better way or others. Garbage collection can be hard real-time and fast 
(and Julia - the core language wouldn't need changes that break 
compatibility). 

or by 
 helping to discover where it could be improved. 

 Partly why I'm writing this. I want to know what needs improving or if 
something can't be improved, unless breaking things in a minor way or 
fundamentally that Julia can't work.
 

 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.


Yes, I'm not too worried about me. I don't think I'm wasting time learning 
(more about) Julia, I just do not want to point people to it if there are 
even better languages available or if there is some defect in Julia I'm 
missing. It seems to be a good first language to learn, not just for 
matrix methods (is that all the Universities have started teaching with 
Julia?).

Best regards,
Palli.



Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Tim Holy
I'm glad you're enthusiastic about Julia. If you're looking to pitch in, one 
good place to look is the list of open issues:
https://github.com/JuliaLang/julia/issues
If you're most interested in features, filtering on the up for grabs label 
might be a good start.

Best,
--Tim

On Friday, December 05, 2014 06:00:31 AM Páll Haraldsson wrote:
 On Friday, December 5, 2014 11:34:46 AM UTC, Tamas Papp wrote:
  On Fri, Dec 05 2014, Páll Haraldsson pall.ha...@gmail.com javascript:
  
  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
 
 Yes I did read it. Note, I meant would you still recommend (Common) Lisp
 for anything, you seem to argue well for Julia (and against
 Lisp/S-expressions while you're at it?). Note also, I said would you
 prefer Lisp (or Scheme). I know Scheme is a dialect of Lisp and Racket of
 Scheme, but am not expert on the differences. I may be grouping all the
 Lisps together unfairly. Your objections to Common Lisp may not generalize
 to them all.
 
 Personally, I like S-expressions too, but many people prefer
 
  M-expressions, especially for math (they are indeed more compact).
 
 Is there a good way to call any (or all) of the S-expressions languages
 from Julia? I'm not even sure it's important too, there could be lots of
 useful preexisting code.
 
   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.
 
 Libraries are also tools, I'm just not at all convinced we need many
 languages (for different purposes, maybe with very few limited
 exceptions) rather than just new libraries. That seems to be a failure of
 computer science.
 
   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.
 
 I read all the replies (might have missed some). I already mentioned
 dynamic memory allocation in my first post as a temporary limitation
 (currently would be a problem for very few users/uses). Never programmed in
 Fortran but think it also uses manual memory allocation. While Julia uses
 those languages in part I think manual is not the reason for their (or
 Julia's) speed; in general that they are fundamentally different in a
 better way or others. Garbage collection can be hard real-time and fast
 (and Julia - the core language wouldn't need changes that break
 compatibility).
 
 or by
 
  helping to discover where it could be improved.
  
  Partly why I'm writing this. I want to know what needs improving or if
 
 something can't be improved, unless breaking things in a minor way or
 fundamentally that Julia can't work.
 
  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.
 
 Yes, I'm not too worried about me. I don't think I'm wasting time learning
 (more about) Julia, I just do not want to point people to it if there are
 even better languages available or if there is some defect in Julia I'm
 missing. It seems to be a good first language to learn, not just for
 matrix methods (is that all the Universities have started teaching with
 Julia?).
 
 Best regards,
 Palli.



Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Páll Haraldsson


On Friday, December 5, 2014 2:39:11 PM UTC, Tim Holy wrote:

 I'm glad you're enthusiastic about Julia. If you're looking to pitch in, 
 one 
 good place to look is the list of open issues: 
 https://github.com/JuliaLang/julia/issues 
 If you're most interested in features, filtering on the up for grabs 
 label 
 might be a good start.


I did.. The issue was closed and I was pointed to the groups. Anyway I 
noted the Prolog answer in this thread. I have my forth issue comming but 
think I'll post in julia-dev for discussion first as not really a bug..


 Best, 
 --Tim 

 On Friday, December 05, 2014 06:00:31 AM Páll Haraldsson wrote: 
  On Friday, December 5, 2014 11:34:46 AM UTC, Tamas Papp wrote: 
   On Fri, Dec 05 2014, Páll Haraldsson pall.ha...@gmail.com 
 javascript: 
   
   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 
  
  Yes I did read it. Note, I meant would you still recommend (Common) Lisp 
  for anything, you seem to argue well for Julia (and against 
  Lisp/S-expressions while you're at it?). Note also, I said would you 
  prefer Lisp (or Scheme). I know Scheme is a dialect of Lisp and Racket 
 of 
  Scheme, but am not expert on the differences. I may be grouping all the 
  Lisps together unfairly. Your objections to Common Lisp may not 
 generalize 
  to them all. 
  
  Personally, I like S-expressions too, but many people prefer 
  
   M-expressions, especially for math (they are indeed more compact). 
  
  Is there a good way to call any (or all) of the S-expressions languages 
  from Julia? I'm not even sure it's important too, there could be lots of 
  useful preexisting code. 
  
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. 
  
  Libraries are also tools, I'm just not at all convinced we need many 
  languages (for different purposes, maybe with very few limited 
  exceptions) rather than just new libraries. That seems to be a failure 
 of 
  computer science. 
  
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. 
  
  I read all the replies (might have missed some). I already mentioned 
  dynamic memory allocation in my first post as a temporary limitation 
  (currently would be a problem for very few users/uses). Never programmed 
 in 
  Fortran but think it also uses manual memory allocation. While Julia 
 uses 
  those languages in part I think manual is not the reason for their (or 
  Julia's) speed; in general that they are fundamentally different in a 
  better way or others. Garbage collection can be hard real-time and fast 
  (and Julia - the core language wouldn't need changes that break 
  compatibility). 
  
  or by 
  
   helping to discover where it could be improved. 
   
   Partly why I'm writing this. I want to know what needs improving or if 
  
  something can't be improved, unless breaking things in a minor way or 
  fundamentally that Julia can't work. 
  
   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. 
  
  Yes, I'm not too worried about me. I don't think I'm wasting time 
 learning 
  (more about) Julia, I just do not want to point people to it if there 
 are 
  even better languages available or if there is some defect in Julia I'm 
  missing. It seems to be a good first language to learn, not just for 
  matrix methods (is that all the 

Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Mike Innes
I suspect Tim's idea was to help out by closing issues, not by opening them.

On 5 December 2014 at 15:36, Páll Haraldsson pall.haralds...@gmail.com
wrote:



 On Friday, December 5, 2014 2:39:11 PM UTC, Tim Holy wrote:

 I'm glad you're enthusiastic about Julia. If you're looking to pitch in,
 one
 good place to look is the list of open issues:
 https://github.com/JuliaLang/julia/issues
 If you're most interested in features, filtering on the up for grabs
 label
 might be a good start.


 I did.. The issue was closed and I was pointed to the groups. Anyway I
 noted the Prolog answer in this thread. I have my forth issue comming but
 think I'll post in julia-dev for discussion first as not really a bug..


 Best,
 --Tim

 On Friday, December 05, 2014 06:00:31 AM Páll Haraldsson wrote:
  On Friday, December 5, 2014 11:34:46 AM UTC, Tamas Papp wrote:
   On Fri, Dec 05 2014, Páll Haraldsson pall.ha...@gmail.com
 javascript:
  
   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
 
  Yes I did read it. Note, I meant would you still recommend (Common)
 Lisp
  for anything, you seem to argue well for Julia (and against
  Lisp/S-expressions while you're at it?). Note also, I said would you
  prefer Lisp (or Scheme). I know Scheme is a dialect of Lisp and Racket
 of
  Scheme, but am not expert on the differences. I may be grouping all the
  Lisps together unfairly. Your objections to Common Lisp may not
 generalize
  to them all.
 
  Personally, I like S-expressions too, but many people prefer
 
   M-expressions, especially for math (they are indeed more compact).
 
  Is there a good way to call any (or all) of the S-expressions languages
  from Julia? I'm not even sure it's important too, there could be lots
 of
  useful preexisting code.
 
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.
 
  Libraries are also tools, I'm just not at all convinced we need many
  languages (for different purposes, maybe with very few limited
  exceptions) rather than just new libraries. That seems to be a failure
 of
  computer science.
 
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.
 
  I read all the replies (might have missed some). I already mentioned
  dynamic memory allocation in my first post as a temporary limitation
  (currently would be a problem for very few users/uses). Never
 programmed in
  Fortran but think it also uses manual memory allocation. While Julia
 uses
  those languages in part I think manual is not the reason for their (or
  Julia's) speed; in general that they are fundamentally different in a
  better way or others. Garbage collection can be hard real-time and fast
  (and Julia - the core language wouldn't need changes that break
  compatibility).
 
  or by
 
   helping to discover where it could be improved.
  
   Partly why I'm writing this. I want to know what needs improving or
 if
 
  something can't be improved, unless breaking things in a minor way or
  fundamentally that Julia can't work.
 
   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.
 
  Yes, I'm not too worried about me. I don't think I'm wasting time
 learning
  (more about) Julia, I just do not want to point people to it if there
 are
  even better languages available or if there is some defect in Julia I'm
  missing. It seems to be a good first language to 

Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-05 Thread Páll Haraldsson


On Friday, December 5, 2014 4:58:44 PM UTC, Mike Innes wrote:

 I suspect Tim's idea was to help out by closing issues, not by opening 
 them.


I guess :)

I took a look and there were pages of issues (including the PhD one.. :) 
You seem to have succeeded in making an awesome language. I'm mainly 
interested in the less math-heavy issues to enable Julia use for mere 
mortals/non-typical uses. See my post in julia-dev.

Best regards,
Palli.



Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-04 Thread Páll Haraldsson


On Thursday, December 4, 2014 7:21:21 PM UTC, Isaiah wrote:

 Please: consider the advice given on the issue tracker and try to ask a 
 small number of specific questions. Also, please search the issue tracker 
 and mailing list (e.g., the question about assembly language has been 
 discussed several times).


Sorry about that, I went a little overboard with side-questions. About the 
assembly language, I think it is not in, but it's probably least important 
of everything I had to say.
 


 In general, asking questions like what is the best language ever is not 
 going to lead to a very productive discussion. Programming languages are 
 tools, not belief systems. Different tools are most appropriate for 
 different purposes.


I was trying not to ask what is the best language ever, but would like to 
know if there are better available, at least for most uses.

Yes, they are tools, I believe we have more than we need (thousands), much 
more than the different purposes. I can see why Julia is good (made) for 
technical (e.g. speed) but it seems a good fit for lots of other uses 
that use inferior languages.


 In general, the answer to the question should I use Julia in production 
 is right now going to be no. Or more specifically: if it is necessary to 
 ask, then the default answer is no. There are certainly people using 
 Julia in production already, for some definitions of production 
 (possibly even with money on the line). But these people usually have the 
 experience to evaluate the trade-offs, and the wherewithal to implement 
 whatever they need.

 Julia lacks certain language features by choice. For example: it is not 
 designed to write an OS kernel and is unlikely to be a good choice for hard 
 realtime, microcontrollers, or other such uses in the near future


I would think Julia could work for microcontrollers right now even (or with 
little changes).. I was surprised to see Python proposed for such use using 
modified but stil simple GC (not Pythons reference counting) and still work 
for hard real-time. This is from memory.

You would be crazy to start building a new OS from scratch. Only sane way 
would be to use Linux and C (GCCism but now also compiles with LLVM) and 
I'm not saying Linus would go with it, but Julia could be embedded in its C 
code.. :)

  (maybe in a few years there will be cross-compilers for a subset of the 
 language). Julia is not specifically designed for logic programming or 
 theorem proving; certainly those things are possible given enough work, but 
 there is probably a better language available (Coq or various Haskell 
 flavors, for example).


I was going to write a separate post on logic 
programming/Prolog/declarative..

Prolog is mindblowing for what it's good for. I wouldn't touch it for 
anything else. Racket supports Prolog (and ALGOL) using its macrosystem. It 
feels like cheating if you say you support declarative programming with an 
alternative syntax.. Couldn't Julia do the same? Or just embed a C Prolog 
runtime? Or just implement the backtracking in a library and not use Prolog 
syntax for Horn-clauses? Is declarative used really for anything else 
(besides SQL)?
 


 In other cases, the lacking areas are due to prioritization and the still 
 relatively-small resources available to fully implement desired features. 
 For example, debugging, improved allocation and garbage collection (but, 
 these are in progress!), as well as many library areas.


PL/1 (Programming Language number 1) was also a langage so much better 
than anything previously invented ok.. people I worked with used it in 
1996, was this a popular opinion when it first came out?

Best regards,
Palli.


Re: [julia-users] What is Julia bad for - currently? Practically (or theoretically) - any other language more powerful?

2014-12-04 Thread Simon Danisch
Actually, I opened this thread:
https://groups.google.com/forum/?fromgroups=#!topic/julia-users/IjG2ERHVjz0
when I needed to revisit prolog and first order logic for my AI exam...
I think Julia can be great for DSLs!
The current downside of Julia being very young and not having any
established IDE can turn into an upside, if we use this to make a deeper
connection between the parser and the IDE. This way we could offer correct
syntax highlighting and parsing for any user defined DSL, if they use the
same interfaces.
I imagine that Julia might become a nice hub for other languages, with its
low overhead for calling functions from other languages.
If other languages can be integrated as nicely as Keno has done it with his
Cxx package, together with good IDE support, this could be huge.
Deciding to use Julia wouldn't mean to decide against using other languages.
(As much as I like to believe that Julia could be the one and only
language, this is still very powerful)




2014-12-04 23:07 GMT+01:00 Páll Haraldsson pall.haralds...@gmail.com:



 On Thursday, December 4, 2014 7:21:21 PM UTC, Isaiah wrote:

 Please: consider the advice given on the issue tracker and try to ask a
 small number of specific questions. Also, please search the issue tracker
 and mailing list (e.g., the question about assembly language has been
 discussed several times).


 Sorry about that, I went a little overboard with side-questions. About the
 assembly language, I think it is not in, but it's probably least important
 of everything I had to say.



 In general, asking questions like what is the best language ever is not
 going to lead to a very productive discussion. Programming languages are
 tools, not belief systems. Different tools are most appropriate for
 different purposes.


 I was trying not to ask what is the best language ever, but would like to
 know if there are better available, at least for most uses.

 Yes, they are tools, I believe we have more than we need (thousands), much
 more than the different purposes. I can see why Julia is good (made) for
 technical (e.g. speed) but it seems a good fit for lots of other uses
 that use inferior languages.


 In general, the answer to the question should I use Julia in production
 is right now going to be no. Or more specifically: if it is necessary to
 ask, then the default answer is no. There are certainly people using
 Julia in production already, for some definitions of production
 (possibly even with money on the line). But these people usually have the
 experience to evaluate the trade-offs, and the wherewithal to implement
 whatever they need.

 Julia lacks certain language features by choice. For example: it is not
 designed to write an OS kernel and is unlikely to be a good choice for hard
 realtime, microcontrollers, or other such uses in the near future


 I would think Julia could work for microcontrollers right now even (or
 with little changes).. I was surprised to see Python proposed for such use
 using modified but stil simple GC (not Pythons reference counting) and
 still work for hard real-time. This is from memory.

 You would be crazy to start building a new OS from scratch. Only sane way
 would be to use Linux and C (GCCism but now also compiles with LLVM) and
 I'm not saying Linus would go with it, but Julia could be embedded in its C
 code.. :)

   (maybe in a few years there will be cross-compilers for a subset of the
 language). Julia is not specifically designed for logic programming or
 theorem proving; certainly those things are possible given enough work, but
 there is probably a better language available (Coq or various Haskell
 flavors, for example).


 I was going to write a separate post on logic
 programming/Prolog/declarative..

 Prolog is mindblowing for what it's good for. I wouldn't touch it for
 anything else. Racket supports Prolog (and ALGOL) using its macrosystem. It
 feels like cheating if you say you support declarative programming with an
 alternative syntax.. Couldn't Julia do the same? Or just embed a C Prolog
 runtime? Or just implement the backtracking in a library and not use Prolog
 syntax for Horn-clauses? Is declarative used really for anything else
 (besides SQL)?



 In other cases, the lacking areas are due to prioritization and the still
 relatively-small resources available to fully implement desired features.
 For example, debugging, improved allocation and garbage collection (but,
 these are in progress!), as well as many library areas.


 PL/1 (Programming Language number 1) was also a langage so much better
 than anything previously invented ok.. people I worked with used it in
 1996, was this a popular opinion when it first came out?

 Best regards,
 Palli.