Live data from Hacker News

Julia Computing Raises $4.6M in Seed Funding

juliacomputing.com

121–130 of 134 posts

Re: Julia Computing Raises $4.6M in Seed Funding

#121

Earlier quoted context omitted.

Maybe it is terrible for you... But good enough for doing numerical computing for the NASA and for Raytheon. The NASA used it for complete command of the Deep Space 1 spacecraft. "The Remote Agent" wasn't just entirely written in Common Lisp, it also won the NASA's Software of the Year Award... https://ti.arc.nasa.gov/tech/asr/planning-and-scheduling/rem... "It's one small step in the history of space flight. But it…

> Maybe it is terrible for you... It is. I know of the examples you mention (and some of them like planning may not really involve much numerical work) but the fact is that unless you're doing things by scratch (like starting from GEMM), numerical libraries are often badly documented, slow or otherwise incomplete (or a mixture thereof). You can disagree with me, but Tamas Papp who maintained a bunch CL libraries seem…

> Let's reify. If I were to create a bunch of matrix classes (matrix-float, matrix-double, ignoring the lack of sugar), CL provides no way to declare a generic method 'mref' to be intelligent enough to know what the output will be, given the input type.

I am not sure if I follow you.

If you have "matrix-float, matrix-double" you are perfectly able to define a "mref" generic method that acts smartly depending on the input type. This is one of the most basic features of the CLOS OOP system. Maybe there is something missing on your explanation?

Re: Julia Computing Raises $4.6M in Seed Funding

#122

Earlier quoted context omitted.

Maybe it is terrible for you... But good enough for doing numerical computing for the NASA and for Raytheon. The NASA used it for complete command of the Deep Space 1 spacecraft. "The Remote Agent" wasn't just entirely written in Common Lisp, it also won the NASA's Software of the Year Award... https://ti.arc.nasa.gov/tech/asr/planning-and-scheduling/rem... "It's one small step in the history of space flight. But it…

I don't dispute the effectiveness of Common Lisp, but > There is an automatic correspondence between objects and types is almost never what is meant by a "strong type system" -- it more commonly means that types are checked at compile time, rather than run time. I don't doubt that any given lisp hacker could slap together a type inference system on top of CLOS, but as far as I can tell it's not built in. So, on the s…

You are confusing "strong/weak" typing with "static/dynamic" typing.

CL is for the most part strongly typed. Python too. In CL there are almost no automatic typecasts.

Javascript and PHP and Perl are textbook examples of weakly typed systems. The interpreter (or compiler) can even allow things like 1 == "1".

With implementations like SBCL, CL also allows for static type checking with the "declare" and "proclaim" keywords, this checks types before runtime, if they can be inferred before executing the code.

Re: Julia Computing Raises $4.6M in Seed Funding

#123

Earlier quoted context omitted.

Julia is a great language, but it is still focused on the numerical computing world and is not "1.0" (language and API's are not locked down). I wouldn't really compare it to Go or Rust at this point. Go is focused on building services at its core (e.g. external event driven workflows). Aka microservices. Rust is focused on being a "traditional" systems programming language. Things like web browsers (duh), office sui…

If you take a look at the features (esp. macros and multiple dispatch) you can see that is readily extensible for lots of applications. Thus the reason it is also sold as a "general purpose" language. Additonally, the very good support for threading and multiprocessing means it has a good future with services, async IO, and with event-loop web servers (a la node.js and friends). Finally, the focus on fast speed for n…

Games are not going anywhere from a mostly C++ code base. New languages get adopted if they are too good to be true or they have enterprise adoption like Go. Even Python took 20 years to reach where it is now. Julia will take a long time to become a general programming language for all purposes.

Scientific Computing is a realistic goal just like Golang is a realistic language with Enterprise adoption. It may not be the most elegant language like Lisp but it is practical. (People don't want the perfect solution but one that works most of the time) (P.S I am vaguely quoting this from some anecdote about a discussion on Lisp and C)

Re: Julia Computing Raises $4.6M in Seed Funding

#124

Earlier quoted context omitted.

Alright, so slightly different assumptions. You're talking about using CL for just one part of the process which is reasonable if not a little frustrating if one must switch between multiple different technologies. Binding to GSL was kind of my point. That requires a lot more setup to use the FFI and bind what you need to CL. In Julia I imagine one either does A*b or loads a batteries included library first and then…

Hi The GSL library is already usable in CL, no need to add bindings, i included the link. > you can declare the types in standard CL without loading a library or something else odd. Can you just (define int(a) 3) and let the compiler guide you? Yes, and yes. No need to load anything and the declarations are simple as in "(declare (fixnum a b c))". The compiler does the rest. You can also specify ranges, etc. "declare…

I didn't know GSL could be used right out of the box. That's good to know. The declarations part is pretty nifty too. I can't believe I didn't notice that before.

Perhaps easy for you and probably not super difficult for most people considering CL, but it's still a bigger pain than having 1 single tool that can build fast code with very little hand optimization, REPL, analysis libraries, built in plotting, and with a familiar syntax. Thanks for all the comments though. You pointed out parts of the CL ecosystem aren't nearly as bad as I thought. You should consider some blog posts if you've done this sort of thing before!

Re: Julia Computing Raises $4.6M in Seed Funding

#125
post #120

Earlier quoted context omitted.

In a pre 1.0 language there will always be some things that are still waiting to be optimized. I saw some performance spec for one of their HTTP libraries awhile back and it was a lot faster than Ruby. It might have been faster than Go.

It was faster than everything, and by a huge margin: https://github.com/costajob/app-servers#results It does seem that immature languages tend to win a lot of benchmarks, likely because they're still cutting a lot of corners. Still, though. I only wish they picked a more "Enterprise-friendly" name...

Well, it is the only LLVM language on the list. Even so, Nim transpiles to C and should be fairly comparable unless it is because of the async part or like you said they're cutting corners. I guess it's possible they're just that good, but it seems unlikely.

Re: Julia Computing Raises $4.6M in Seed Funding

#126
post #120

Earlier quoted context omitted.

It was faster than everything, and by a huge margin: https://github.com/costajob/app-servers#results It does seem that immature languages tend to win a lot of benchmarks, likely because they're still cutting a lot of corners. Still, though. I only wish they picked a more "Enterprise-friendly" name...

Well, it is the only LLVM language on the list. Even so, Nim transpiles to C and should be fairly comparable unless it is because of the async part or like you said they're cutting corners. I guess it's possible they're just that good, but it seems unlikely.

Please stop using the word transpiles in this context. Nim compiles to C.

Re: Julia Computing Raises $4.6M in Seed Funding

#127

Earlier quoted context omitted.

What are the existing tools that it doesn't match up to?

Python’s scientific ecosystem (i.e. Keras, matplotlib, NumPy, pandas, scikit-image, scikit-learn, SciPy, and TensorFlow, et al.)

This is totally fair. Even the Julia creators regularly mention "stay with existing tools for now, if you are happy." Julia is an increasingly attractive option for greenfield, high-performance development, but for folks who aren't doing a lot of that, a more stable language and mature ecosystem is obviously important. Julia and many libraries can still require some elbow-grease, and the maturity and coverage varies between fields. However, this is rapidly changing as folks do new research in Julia and build up everything else they need along the way. The current situation is very similar to SciPy in the mid-2000s, though with perhaps a somewhat different mix of backgrounds. Here are a few examples:

https://github.com/JuliaOpt https://github.com/jeff-regier/Celeste.jl https://github.com/dlfivefifty https://github.com/JuliaInv http://docs.juliadiffeq.org/latest/ https://github.com/denizyuret/Knet.jl http://nemocas.org/ https://juliaplots.github.io/

So, hopefully you'll have reason to take another look in a few years. The most important thing, to me, is that all of these communities want more open, reproducible, and accessible science. There is plenty of room for growth, because users of closed-source software still probably outnumber py/r/jl by 5:1 or more.

Re: Julia Computing Raises $4.6M in Seed Funding

#128

Earlier quoted context omitted.

Hi The GSL library is already usable in CL, no need to add bindings, i included the link. > you can declare the types in standard CL without loading a library or something else odd. Can you just (define int(a) 3) and let the compiler guide you? Yes, and yes. No need to load anything and the declarations are simple as in "(declare (fixnum a b c))". The compiler does the rest. You can also specify ranges, etc. "declare…

I didn't know GSL could be used right out of the box. That's good to know. The declarations part is pretty nifty too. I can't believe I didn't notice that before. Perhaps easy for you and probably not super difficult for most people considering CL, but it's still a bigger pain than having 1 single tool that can build fast code with very little hand optimization, REPL, analysis libraries, built in plotting, and with a…

Thanks! I'll consider!!

Re: Julia Computing Raises $4.6M in Seed Funding

#129
post #113

Earlier quoted context omitted.

If you take a look at the features (esp. macros and multiple dispatch) you can see that is readily extensible for lots of applications. Thus the reason it is also sold as a "general purpose" language. Additonally, the very good support for threading and multiprocessing means it has a good future with services, async IO, and with event-loop web servers (a la node.js and friends). Finally, the focus on fast speed for n…

This sounds like a small thing, but with 1-based arrays, I'd bet more on it taking share from MatLab/R than from Rust or Java.

I didn't think 1 based arrays would be a big deal, but whenever I try to port code from Julia to almost any other environment (C++, python/numpy, scala, JS), it becomes one of the hardest things to reason about quickly and correctly.

Re: Julia Computing Raises $4.6M in Seed Funding

#130

I wish them all the best. Julia seems to a good idea -- a high performance language with easy syntax (easy for Python users to jump to Julia), very good features for threading/multiprogramming, good type system... ...here it seem like any other modern language, until you see that Julia has something that many other languages lack: true macros (true metaprogramming.) A big feature. And multiple dispatch on all functio…

Julia is a great language, but it is still focused on the numerical computing world and is not "1.0" (language and API's are not locked down). I wouldn't really compare it to Go or Rust at this point. Go is focused on building services at its core (e.g. external event driven workflows). Aka microservices. Rust is focused on being a "traditional" systems programming language. Things like web browsers (duh), office sui…

Handling technical/scientific/numeric programming well is rather a hard nut to crack, and that is where the developers of Julia wanted a better solution for their own "greedy" programming needs, but Jeff Bezanson has been clear that it is also for general purpose programming (which is what I use it for). Many Julians are working to improve Julia for places that hadn't yet gotten as much attention (such as database access). I think in a couple of years, the canard of it being a "niche" language will be laid to rest.
Post reply on HN