Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
ddragon
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
18 ms
·
91.
▲
by
ddragon
7y ago
I don't really have issues with the performance of Visual Studio Code even though it's electron, but with Julia I mostly use it for the syntax highlighting, linting and autocompletion (plus version control and other external tools
92.
▲
by
ddragon
7y ago
It's seems like a new competing approach in the ML space. The standard julia data pipeline right now usually involves either directly using an independent package for each step (or rolling your own since Julia has strong native support
93.
▲
by
ddragon
7y ago
I think it really depends on both language and language culture. Dynamic Dispatch and function overloading is the basic way to program in Elixir, every basic tutorial will teach newcomers how to do it, linters will complain if your methods
94.
▲
by
ddragon
7y ago
It's also missing multiple dispatch (multimethods) from Common Lisp, Dylan and Julia (which did not exist in 2009), which is different enough from OOP to deserve a place (and hopefully enough recognition to appear in more new languages
95.
▲
by
ddragon
7y ago
As an additional example, I really like the combination of unitful and diffeq [1]. But you're right that the core feature that allows this stuff is duck typing, but by itself it's not enough. Your notduck had to not only quack, bu
96.
▲
by
ddragon
7y ago
Have you checked Nim? It's the closest thing to static Python that I know of (plus some extras like Lisp inspired macros), and there is some early development of a machine learning ecosystem (outside of wrappers): https://ni
97.
▲
by
ddragon
7y ago
Usually pretty good. The package management is completely centered around Pkg.jl, which is integrated in the REPL and you can also import it to your program for more advanced scripting. If you don't create an environment, everything is
98.
▲
by
ddragon
7y ago
The superficial typographic level is the difference, I was mostly talking about first impressions. Though you probably shouldn't really allow your expression to get to the point that it's hard to read in Julia (for example abusing
99.
▲
by
ddragon
7y ago
I agree with you that s-expr is a more powerful syntax (more extensible with less rules), but the social aspect of the syntax is just as important since programming languages target humans, which are just not rational beings. Over the decad
100.
▲
by
ddragon
7y ago
I'll go and say that, outside of the great work from the creators in the development and marketing of the language, the main difference between those Lisp based languages and Julia in terms of attracting people is the syntax. Julia foc
101.
▲
by
ddragon
7y ago
The AI summer/winter cycle feels to me like something similar to a search algorithm, we have a phase of exploration, which seem to have slower, if any, progress and no one is very sure what's the next big thing so they perhaps sta
102.
▲
by
ddragon
7y ago
Julia is a dynamic language, it doesn't have static typing. What happens is that it's dynamic nature is actually a superposition of all possible static implementations of a function. So if you call a * b with an integer it will JI
103.
▲
by
ddragon
7y ago
Indeed some of the lisp soul would be amputated in those languages, but that's usually done as a deliberate design and not as an unfortunate restriction. Sort-of-homoiconic languages (as in featuring a direct mapping between it's
104.
▲
by
ddragon
7y ago
Multiple dispatch is a little more than just overload. In C++ if you have a base class Animal with two derived Dog and Cat, and you have an Animal * pointer to Dog or Cat and do animal->walk() it will dispatch to either the Dog or Cat me
105.
▲
by
ddragon
7y ago
1) It's not restricted to the variables being passed, for example Zygote [1] has an example in the README with IO gradient(x -> fs[readline()](x), 1), and it's not using numerical differentiation (varying inputs to check the ou
106.
▲
by
ddragon
7y ago
Julia and Swift are different enough that there is benefit in having both with that functionality. Julia is a dynamic and heavily interactive language (especially when it improves more JIT latency and "time to first plot") for exp
107.
▲
by
ddragon
7y ago
Mostly because the end-user application community is not as strong in Julia (though you can create web services/sites and GUIs right now), in the same way the scientific/numerical computing/machine learning/HPC isn'
108.
▲
by
ddragon
7y ago
I think it's easier to visualize considering how pytorch (or tensorflow eager) does it. Pytorch supports loops, conditionals and other native python non differentiable operators, but what happens is that for each forward/backward
109.
▲
by
ddragon
7y ago
Fair enough, you mentioned the speed of adding a package and I assume it was the build time after the download (which is mostly git). I have to confess that I don't consider the speed of the initial build essential since it's a on
110.
▲
by
ddragon
7y ago
Julia is not presented as a simple language, it's presented as a "I want everything" language [1], a Python-Ruby-Perl-C-Fortran-Lisp-Matlab crossover with it's own unique spice. Which is completely opposite from somethin
111.
▲
by
ddragon
7y ago
Your 1st, 2nd and 4th points seem to be fundamentally the same, which is compile time latency making interactive use slow. That's definitely a problem for a language trying to solve the two language problem of having high interactivity
112.
▲
by
ddragon
7y ago
It's not an accident really, dynamic dispatch is slow but expressive, static dispatch is fast but restrictive. Julia (as a language trying to solve the two-language problem) is designed to be approachable to Fortran programmers, so wri
113.
▲
by
ddragon
7y ago
The easiest solution to have Julia on the background is using Revise.jl. Basically you import your program on the REPL and it will automatically track any change to the source code and precompile and update the environment as soon as you sa
114.
▲
by
ddragon
7y ago
They are very different, Julia is a multi-paradigm dynamically typed language at it's core, with heavy inspiration in the Lisp family. The type system is designed for the purpose of specialization and dispatch, meaning if you add two v
115.
▲
by
ddragon
7y ago
Yes it can't, unless of course you just make two variables (one positional and one named) and inside the function you choose one. Because of Julia's multiple dispatch paradigm, positional arguments are special compared to named ar
116.
▲
by
ddragon
7y ago
If you mean Zygote.jl, it's a very ambitious project (like Swift for Tensorflow which has been under development for even longer I believe) with not many people working on it compared to Tensorflow and pytorch. And Pytorch for example
117.
▲
by
ddragon
7y ago
Sorry, that's dragan (not sure his exact HN username) and not me and yes, his work is amazing.
118.
▲
by
ddragon
7y ago
There is no need for generalization, there are many people in the community that respect and enjoy other languages, and most people also frequently use Python and R for most things that Julia is still not mature enough. But it's certai
119.
▲
by
ddragon
7y ago
Yes, the backend for Swift for Tensorflow will still be C++. The difference is that it will be the compiler (at compile-time) and not some library (at runtime) that will be mapping Swift native operations (instead of library calls) directly
120.
▲
by
ddragon
7y ago
On the other hand, a lot of the most popular Python libraries became effectively standard and lots of people agglomerated around them instead of creating competing standards because it would be hard for any smaller team to replicate even th
More ›