Stefan, Thanks for the reply. I am happy to see the core team will continue to push the envelope forward for technical computing while keeping an eye on Julia as a general purpose language. It seems like for the time being it is up to the community (nothing wrong this) to promote and develop Julia as a general purpose language. I am up for the challenge!
Another quick comment: You said: "This is a very different problem from writing highly concurrent servers, which Clojure and Go are doing a great job of tackling." They are doing a great job. But, I also believe with the Julia's libuv networking substrate, Julia is in a great position to be pretty darn good at this area too. On Tue, Feb 18, 2014 at 11:41 AM, Stefan Karpinski <[email protected]>wrote: > Julia is definitely a general purpose language - but one that has been > carefully designed to be expressive and efficient enough to be really > excellent for technical computing. This is a surprisingly hard problem, as > evidenced by the large portion of the core specification and code for many > languages that consists of special cases for numbers and arithmetic. This > is true even for "simple" languages like C and Scheme (numerics account for > about 20% of the specification of each). As to the focus on technical > computing, I think it's better to solve one major problem really well > rather than trying to solve all problems at once. Computer science is doing > pretty well at general computing these days, whereas technical computing - > especially at scale - is still a significant challenge area where new > technologies and approaches really stand to improve things. > > Domain-specific languages (DSLs) are in vogue these days, but personally I > believe that we need a few very powerful, general-purpose languages, not a > lot of weak, special-purpose ones. I suspect that what drives the DSL > school of thought is the idea that we've already pushed linguistic > expressiveness and power as far as it can go and it hasn't solved our > problems. This appears to suggest that we need to go in the other direction > and make more limited and specialized languages. But I believe, instead, > that the premise that we've taken programming language expressiveness and > power as far as it can go is incorrect. We need to be pushing linguistic > power even further, rather than restricting it. > > The most obvious deficiencies in the expressiveness of typical languages > lie in the area of numerical work. You can't, for example, define a new > kind of integer in most languages and have it be both efficient and > seamlessly integrated with the rest of the system. In other words, the > built-in numerics are qualitatively superior to anything a user can define > for themselves. One of the major driving goals behind Julia's design was > that user-defined numerical types be just as good as the built-in ones. We > took that to its logical conclusion and made Julia's built-in numeric types > like Int and Float64 just user-defined types that happen to be defined > before your program starts. > > To the extent that you can define your own efficient and completely > integrated types for numerical work, Julia has already succeeded in pushing > the power and expressiveness of general purpose languages further than it > typically is. But technical computing in general still has so many > challenging problems that need to be solved - many of which need more power > from the underlying language. For example, we're only beginning to figure > out all the language features that are necessary for doing array work > really well. Making distributed technical computing really productive is > also a huge unsolved problem. (This is a very different problem from > writing highly concurrent servers, which Clojure and Go are doing a great > job of tackling.) Until we've solved these and other problems in the > technical computing domain, I think it's premature to lose our focus. > > It is great that people are writing excellent general purpose packages and > applications in Julia, and that definitely needs to continue and increase > with our blessing and support. But the core focus of the language has to > continue to be on technical computing - until we can honestly say that > technical computing is as much of a solved problem as string processing or > writing desktop applications. That is still a long way off. > > > On Tue, Feb 18, 2014 at 11:27 AM, Dave Bettin <[email protected]> wrote: > >> If anybody is interested, I did find these two comments about Julia and >> its part in the general purpose language world: >> >> 1. http://stackoverflow.com/a/17434967/632756 >> 2. >> http://www.wired.com/wiredenterprise/2014/02/julia/?cid=co18025234#comment-1229330714 >> >> On Monday, February 17, 2014 10:22:38 AM UTC-8, Dave Bettin wrote: >>> >>> Julia is promoted as a technical computing language. However, there is >>> this beautiful general purpose language waiting to be unleashed onto the >>> masses. >>> >>> Why is this aspect of the language not communicated/marketed more? >>> >>> Additionally, is there currently anyone using Julia outside of the >>> technical computing space? >>> >> >
