TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Some Insights from a Julia Developer

255 pointsby ptypeover 7 years ago

21 comments

88e282102ae2e5bover 7 years ago
It&#x27;s great and all, but I can&#x27;t justify switching languages for minor improvements over Python + numpy&#x2F;scipy. I&#x27;d be abandoning:<p><pre><code> * My deep knowledge and experience with Python * My entire codebase * The ability to work on projects with colleagues who don&#x27;t also switch * The certainty that when I leave my current job, someone will be able to pick up after me * Zero-based indexing </code></pre> I&#x27;ve started to do some work in Rust when it makes sense, since there&#x27;s occasionally a compelling case and it&#x27;s substantially different than Python. Incremental advances in programming languages just aren&#x27;t worth it, and knowing that other people are probably coming to the same conclusion means I can&#x27;t expect a serious community to ever arise around Julia.
评论 #15472929 未加载
评论 #15472879 未加载
评论 #15472933 未加载
评论 #15472520 未加载
评论 #15473075 未加载
评论 #15472510 未加载
评论 #15473500 未加载
评论 #15473433 未加载
评论 #15472499 未加载
评论 #15472501 未加载
评论 #15474031 未加载
评论 #15472984 未加载
评论 #15473782 未加载
fasquoikaover 7 years ago
Whenever I see Julia mentioned, I like to link to this blog post by Graydon Hoare (creator of Rust). <a href="https:&#x2F;&#x2F;graydon2.dreamwidth.org&#x2F;189377.html" rel="nofollow">https:&#x2F;&#x2F;graydon2.dreamwidth.org&#x2F;189377.html</a>
评论 #15476040 未加载
评论 #15472808 未加载
kevinalexbrownover 7 years ago
The packages-first attitude feels significant to me. A language that “users” enjoy but package developers also enjoy seems important. I hadn’t thought about language choice from a heavily package-development weighted perspective before. It seems obvious in retrospect though, which is probably a sign of something cool.<p>A version of this would be: how can good package development be as easy as possible, and how can package use be as easy as possible?<p>I haven’t done any serious work in Julia mainly because the python libraries are mature, good, and performant enough. I can’t speak for everyone, but for end users in science labs library support is perhaps the biggest consideration for language choice.
评论 #15472294 未加载
ACow_Adonisover 7 years ago
Sometimes, in my darker moments, I have the terrifying thought that one of the reasons that many users like R and made it popular (apart from the historical context of its now many libraries and being the main free version of statistical software), is specifically that it isn&#x27;t robust and sensibly designed from a programming&#x2F;analytical perspective.<p>You can download a package, type in a preset command on a preset thing, and 95% of the time (its R, so its only ever 95% of the time), you get back an answer&#x2F;number.<p>And if an answer is what you&#x27;re after, that&#x27;s where the considerations stop.<p>Was there an edge case? Is R&#x27;s answer really correct? Did it wallop something in your search path? Do you have your profile set up differently to the author? Do all the dependent packages clash and silently depend on how you load them and in what version you did so? Has R coerced something in the background, or pattern matched your typo&#x27;d variable to something it shouldn&#x27;t? Somewhere in your code did you hit on one of the thousands of gotchas?<p>Who cares? It gave me an answer. I can give it to my boss or put it in a paper.<p>I personally am all for faster, safer, stricter (while still being dynamic) languages. And i&#x27;ve tried to explain to many users that languages that produce errors when you do something you shouldn&#x27;t are not your enemies, they&#x27;re your friends. But I see many people every day aren&#x27;t living that philosophy, they&#x27;d rather an answer than the right answer or a robust answer, despite what they&#x27;ll tell you in plain english.<p>With respect to Julia, someone like me might like it (well, if they got rid of the matlab syntax and just went back to the Lisp they copied and relabeled as &#x27;Julia&#x27; :P).<p>But perhaps many users don&#x27;t want a faster, more robust language. Perhaps, many of them are comfortable with a simple but wrong answer. And for that purpose, I can&#x27;t see where Julia wins out relative to R.<p>As I said though, these are thoughts i have in my darker moments...
评论 #15474920 未加载
评论 #15475928 未加载
j7akeover 7 years ago
Everything sounds great about Julia but it&#x27;s lacking sufficient critical mass to develop useful packages to make scientists and data analysts effective.<p>At the moment the bottleneck in our scientific computing and data analysis workflow is not waiting for code to run but rather quickly inplementing, evaluating, and iterating different models on datasets.
评论 #15472415 未加载
评论 #15472915 未加载
评论 #15472515 未加载
crwalkerover 7 years ago
Julia is my go-to language for numerical work.<p>Compared to other solutions I&#x27;ve used like python + numpy + pandas, Matlab, Mathcad, heh even Excel, Julia is a breath of fresh air. Fast, clean, powerful.
评论 #15472712 未加载
williamsteinover 7 years ago
Strangely, the only mention of Cython is to point at that we have had less developers than Julia: &quot;as evidenced by the over 500 committers to just the Base language, more than projects like Cython has ever had!&quot;
评论 #15472250 未加载
j7akeover 7 years ago
I looked at your blog post on solving differential equations and it looks pretty attractive. I will install Julia and play around with this differential equation solver. At the moment R and python are awkward with differential equations, and I don&#x27;t want to be married to matlab.
jampekkaover 7 years ago
Too bad they somehow thought it was a good idea to make the syntax resemble MATLAB of all languages. Perhaps most of the nausea inducing warts could be worked around with some kind of transcompilation, although some semantic issues, such as one-based indexing, would remain.<p>It&#x27;ll be a sad day if Julia starts to get such popularity that high quality libraries will be Julia-only.
评论 #15475037 未加载
评论 #15472222 未加载
评论 #15472389 未加载
评论 #15472490 未加载
评论 #15475390 未加载
mhdover 7 years ago
Is there a good use case for Julia outside the &quot;math&quot; community, when your alternatives wouldn&#x27;t be R or Numpy, but Ruby or C#?
评论 #15472975 未加载
评论 #15472565 未加载
评论 #15472544 未加载
stabblesover 7 years ago
One issue I have with Julia is that it is fast <i>the second time</i> you run your code. And developing code is mainly running things just once. In practice you might find yourself waiting on compilation a lot.
评论 #15472230 未加载
_Codemonkeyismover 7 years ago
&quot;is a good generic type-stable function for any number which has zero and + defined. That&#x27;s quite unique: I can put floating point numbers in here, symbolic expressions from SymEngine.jl, ArbFloats from the user-defined ArbFloats.jl fast arbitrary precision library, etc.&quot;<p>Is it really unique? Isn&#x27;t that just a Monoid (e.g. in Haskell, Scala, ...) or am I wrong?
评论 #15472489 未加载
domadorover 7 years ago
&quot;...the majority of programmers are not developers.&quot;<p>Could someone please explain the difference between the two terms? I&#x27;ve always used them synonymously.
评论 #15472918 未加载
评论 #15475509 未加载
评论 #15472882 未加载
评论 #15472867 未加载
rurbanover 7 years ago
&gt; Julia&#x27;s JiT is not like other JiTs, and it helps package development<p>Julia&#x27;s JIT is a simple plain method jit, the easy one. He doesn&#x27;t describe the pro&#x27;s and contra&#x27;s of method jit vs tracing jit. In short, method jits explode in memory usage and forbid expensive optimizations. The advantages are of course as described easyness to work with, reproduce and debug. Most JITs start as simple method jit, and then advance to Tracing JITs. Esp. with performance orientated languages with a lot of vectorization potential.<p>It&#x27;s a great language. But the JIT will be improved sooner or later. Esp. with the memory-expensive type-optimizations.
skybrianover 7 years ago
I&#x27;m wondering about this part: &quot;using this strategy Julia actually can produce static binaries like compiled C or Fortran code.&quot;<p>Is this something that works now, something planned, or just speculation?
评论 #15474882 未加载
评论 #15473909 未加载
RivieraKidover 7 years ago
I really like Julia overall but I&#x27;m undecided whether it&#x27;s good as a general purpose language. Right now I&#x27;m working on a few-thousands-lines-of-code project and sometimes wish Julia was more like Swift:<p>- Writing code with Nullables is cumbersome and verbose compared to Swift.<p>- The object.method() notation is sometimes more readable, especially in more complex expression. Plus, in an IDE it works well with completion.<p>- The ordering of types in a file matters.<p>- Overall, Swift code looks a tiny bit more readable, cleaner.<p>- No interfaces.
评论 #15475173 未加载
评论 #15474253 未加载
anon_342njlkesrover 7 years ago
Yeah, the language design of julia is brilliant (multiple dispatch, typing, llvm use, zero-cost abstractions, @code_native to see why your code is slow).<p>This allows you to write fast code in julia, which is impossible in python (you can call into very fast C&#x2F;Fortran libraries with nice bindings, though).<p>On the other hand, I really hate the syntax. One-based array indexing (ok, minor), blocks ending with &quot;end&quot;, and most importantly unicode support.<p>Really, who thought that it was a good idea to allow symbol names that are unreachable on a standard US keyboard? WTF? This makes it supremely inconvenient to use libraries that happen to export symbols with crazy names. If you must, specify a name mangling scheme and let people who want to see crazy symbols use an IDE. Seriously, am I supposed to use a hex-editor when auditing julia code?<p>I totally agree with the author that package discovery and uniformity are a big problem. Indeed, this is even moving in the wrong direction: More and more functionality is removed from Base and put into external packages. I would prefer a more &quot;batteries included&quot; style, with uniform quality and documentation for standard functionality (splitting into different namespaces is good, though), python-style.<p>Second non-cosmetic problem is that the language documentation is atrocious, both from a completeness and pedagogical viewpoint. Pyhton is again the ideal to aspire to.<p>But the point of the article stands: It is easy to write fast julia code, and the Julia (non-C&#x2F;C++) parts of the Julia core form a nice tutorial for how &quot;good&quot; julia code looks like. If a function is not well-documented, look at the source code. In python, you quickly run into the C-wall (function is really implemented in C and the way the wrappers work is really non-uniform); in julia this is more rare, and the wrappers tend to be much easier to pierce (ok, julia does a ccall, figure out the code of the target; the wrappers are human-generated and readable and don&#x27;t come out of a complex build environment).<p>But yeah, you shouldn&#x27;t use julia for systems programming until a good standard way for unmanaged code has been fixed, if ever (mixing types that are garbage-collected and types that are programmer-memory-managed, you want garbage-collected types for performance-irrelevant parts and programmer-managed types whenever precise memory alignment matters for your performance). Oh, and the nullpointer support sucks big time.<p>My personal hope is that the python-&gt;julia interface improves. Then python users will be able to profit from fast, easily developed julia packages.
评论 #15475114 未加载
评论 #15473895 未加载
barcheover 7 years ago
Great article! Coming from C++, I agree Julia feels a lot like &quot;C++ done right&quot;, i.e. where C++ forces you to jump through hoops with the verbose template syntax, Julia does generics by default. Also, it&#x27;s great not having to wonder for every function argument declaration if you should add *, &amp;, &amp;&amp; or any of the const variants.
AlexCoventryover 7 years ago
I tried julia last year, and it was a nightmare of version skew. Has it improved in that regard at all?
评论 #15476391 未加载
bigJack9over 7 years ago
Julia is really fun to work with.I really love the REPL, multiple dispatch and the way you easily introspect code upto native assembly code.
tomoyaover 7 years ago
&quot;i like julia too&quot;