TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Why I'm Betting On Julia

493 点作者 mistermcgruff超过 11 年前

44 条评论

kevinalexbrown超过 11 年前
When out with friends recently, one of them mentioned how awesome Julia is. I was surprised to hear someone talk about it, even from another person in science. She turned and gushed about how awesome it was, how supportive the community was, even though she was &quot;not really someone who likes programming.&quot; And she liked it so much she was telling her friends about it at a bar!<p>If you make a programming language that people who don&#x27;t like programming love enough to spread by word of mouth when not near a computer, which technically-oriented people also love, that&#x27;s a lot like the OSX terminal + nice GUI blend.<p>That&#x27;s a pretty rare thing. And for collaborative science it&#x27;s pretty important. Often, you&#x27;ll have people in a bio lab who are very proficient in their area of biological expertise, but who would be solving the wrong problem by spending 2 years trying to become C++ hackers. On the other hand, there are a lot of people who write computational libraries, but know they have to translate them to matlab, or write a matlab wrapper and pray that their users can get it to compile which might sound simple to folks here, but is <i>really</i> frustrating for less computationally oriented people when something goes wrong.
评论 #7110602 未加载
评论 #7111247 未加载
评论 #7111428 未加载
candybar超过 11 年前
I really don&#x27;t like the anti-intellectual tone of the beginning.<p>&quot;The problem with most programming languages is they&#x27;re designed by language geeks, who tend to worry about things that I don&#x27;t much care for. Safety, type systems, homoiconicity, and so forth.&quot;<p>can be rewritten as:<p>&quot;The problem with most software is that they are designed by computer geeks, who tend to worry about things that I don&#x27;t much care for. Information security, thread safety, modularity, hardware acceleration, system design, and so forth.&quot;
评论 #7110883 未加载
评论 #7111402 未加载
评论 #7111317 未加载
评论 #7110904 未加载
评论 #7111296 未加载
评论 #7111010 未加载
评论 #7113676 未加载
评论 #7111294 未加载
评论 #7118710 未加载
kibwen超过 11 年前
I&#x27;m excited by Julia, but I don&#x27;t think this article makes a very good sell. It&#x27;s neat that you can dump the generated assembly, but I&#x27;d rather see a demonstration of a robust profiler so that I know which functions I need to dump in the first place.<p>I also disagree that the popularity of Node stems from &quot;getting disparate groups of programmers to code in the same language&quot;. From what I&#x27;ve observed, it&#x27;s not that back-end programmers are suddenly giddy at the prospect of getting to use Javascript on the server, it&#x27;s that front-end programmers get to apply their existing knowledge of Javascript to back-end development.
评论 #7110610 未加载
评论 #7110629 未加载
评论 #7110427 未加载
评论 #7110377 未加载
评论 #7110386 未加载
astrieanna超过 11 年前
The author and I like Julia for nearly opposite reasons. (I write Julia for the language geek reasons. The power of homoiconicity is amazing for writing static analysis in the language you&#x27;re analyzing.) It&#x27;s really cool that Julia can appeal to people with nearly opposing priorities tho. :)<p>I&#x27;m looking forward to giving the workshop at UChicago. It&#x27;ll be my third time presenting an Intro to Julia workshop.
评论 #7111172 未加载
avodonosov超过 11 年前
The reason to bet on Julia is disassembling a function? This is a standard feature in Common Lisp (ANSI standardized in 1994)<p><pre><code> CL-USER&gt; (defun f(x) (* x x)) F CL-USER&gt; (disassemble &#x27;f) L0 (leaq (@ (:^ L0) (% rip)) (% fn)) ; [0] (cmpl ($ 8) (% nargs)) ; [7] (jne L33) ; [10] (pushq (% rbp)) ; [12] (movq (% rsp) (% rbp)) ; [13] (pushq (% arg_z)) ; [16] (movq (% arg_z) (% arg_y)) ; [17] (leaveq) ; [20] (jmpq (@ .SPBUILTIN-TIMES)) ; [21] L33 (uuo-error-wrong-number-of-args) ; [33]</code></pre>
评论 #7111448 未加载
评论 #7113328 未加载
elteto超过 11 年前
To each its own I guess, but I wanted to say that I don&#x27;t see &quot;safety, type systems and homoiconicity&quot; and other theoretical &quot;geek&quot; stuff as orthogonal to a programming language&#x27;s ease of use, productivity and expressiveness. If anything they complement each other. The theory behind it provides a consistent framework so that you minimize the mixing of different paradigms and you can express ideas in a more consistent way. I very much doubt that a language where you just throw stuff in would be easy to use. If Julia is a great language is precisely <i>because</i> of all the thought that went into it, the ideas behind it didn&#x27;t just materialize in someone&#x27;s brain.
评论 #7111346 未加载
评论 #7110766 未加载
shele超过 11 年前
&quot;Julia was not designed by language geeks — it came from math, science, and engineering MIT students&quot;<p>This statement is built on a false dichotomy. And it is not really true for Julia, take the type system for example, sophisticated AND unintrusive.
评论 #7110717 未加载
评论 #7111056 未加载
haberman超过 11 年前
Can Julia be a competitor to R? I love R in concept (interactive environment for statistical analysis) but the language just drives me crazy in its multitude of types and the loosey-goosey ways it converts between them.<p>A friend of mine is really proficient with R; when I walked him through some of the R patterns that are very confusing&#x2F;irregular to me, he sort of laughed: he could see what I was saying but he said &quot;with R you can&#x27;t worry about things too much, you kind of just have to just go with it.&quot;<p>If Julia can serve some of the same use cases but in a better-designed way, sign me up!
评论 #7111688 未加载
评论 #7114893 未加载
评论 #7111911 未加载
评论 #7114042 未加载
评论 #7111363 未加载
cjfont超过 11 年前
&gt; The problem with most programming languages is they&#x27;re designed by language geeks, who tend to worry about things that I don&#x27;t much care for. Safety, type systems, homoiconicity, and so forth. I&#x27;m sure these things are great, but when I&#x27;m messing around with a new project for fun, my two concerns are 1) making it work and 2) making it fast. For me, code is like a car. It&#x27;s a means to an end. The &quot;expressiveness&quot; of a piece of code is about as important to me as the &quot;expressiveness&quot; of a catalytic converter.<p>You want a fast car, but don&#x27;t care much for having an aerodynamic design, hmmm..<p>EDIT: In retrospect I now think he means he wants to be able to <i>create</i> the project fast, and this is not about performance.
评论 #7110297 未加载
评论 #7111361 未加载
评论 #7111131 未加载
评论 #7110310 未加载
Blahah超过 11 年前
Just yesterday I decided to start seriously developing in Julia. High-level languages are a bottleneck for computational biology. We need to be able to write things fast, and have them run fast. So far no language really does this. But Julia looks like the one.<p>I&#x27;m going to put together a BioJulia team is anyone is interested in playing.
评论 #7135985 未加载
评论 #7111114 未加载
评论 #7135401 未加载
评论 #7110784 未加载
farslan超过 11 年前
We have a Julia and iJulia app on <a href="https://koding.com" rel="nofollow">https:&#x2F;&#x2F;koding.com</a>. It&#x27;s going to be used by Harvard &amp; MIT students soon. It&#x27;s public and everyone can try it by simple login to Koding. The best part is you can easily try it online, without installing anything. Here is an screenshot of how it&#x27;s look like (iJulia and Julia inside Terminal):<p><a href="http://d.pr/i/MsZt" rel="nofollow">http:&#x2F;&#x2F;d.pr&#x2F;i&#x2F;MsZt</a><p>The source of this app can be found here:<p><a href="https://github.com/gokmen/julia.kdapp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;gokmen&#x2F;julia.kdapp</a><p>I&#x27;m happy to answer any questions :)
评论 #7111759 未加载
评论 #7113176 未加载
sdegutis超过 11 年前
This sounds like premature-optimization to me.<p>Maybe it&#x27;s just me, but in the apps I write in dynamic languages, the bottleneck is rarely in the language. It&#x27;s usually in some IO.<p>EDIT: some sentence in the article gave me the impression he was using this for non-math-heavy stuff which is why I said this
评论 #7110334 未加载
评论 #7110292 未加载
评论 #7110487 未加载
评论 #7110394 未加载
评论 #7113521 未加载
mateuszb超过 11 年前
It&#x27;s been done 55 years ago: <a href="http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_disassemble.html" rel="nofollow">http:&#x2F;&#x2F;www.ai.mit.edu&#x2F;projects&#x2F;iiip&#x2F;doc&#x2F;CommonLISP&#x2F;HyperSpec...</a>
评论 #7110968 未加载
评论 #7110641 未加载
tieTYT超过 11 年前
&gt; my two concerns are 1) making it work and 2) making it fast.<p>What about maintainability? &quot;Code as if the next guy to maintain your code is a homicidal maniac who knows where you live.&quot; -Kathy Sierra and Bert Bates<p>In my experience, making something work and making it (relatively) faster is easy. Making it easy to read is hard.
评论 #7110304 未加载
评论 #7110343 未加载
评论 #7110302 未加载
评论 #7110337 未加载
thinkpad20超过 11 年前
I&#x27;ve tried Julia out a few times and been very impressed. From what I&#x27;ve seen it really does a great job of bridging the gap between easy-to-use and high-performance. It kind of seems like D in that way. I can definitely see lots of situations where a language like this is desirable.<p>I&#x27;m in Chicago (and a U of C grad!). I might come to the meetup if I can.
评论 #7110344 未加载
RivieraKid超过 11 年前
I&#x27;ve used Julia for couple of projects and it&#x27;s amazing, I seriously believe that Julia is better - in several ways - than <i>all</i> of the widely used dynamic languages like Python, Ruby, Clojure, Octave or Lua. It&#x27;s a brilliantly designed language. There are so many things to like about this language.
sdegutis超过 11 年前
Wait a minute! Can you embed Julia into a C program like Lua? Can it interface with complex C types cleanly?? This might be the scripting language I&#x27;v been looking for in my side project!
评论 #7110449 未加载
评论 #7110467 未加载
foundart超过 11 年前
I see the Julia home page lists multiple dispatch as one of its benefits. Since my only real exposure to multiple dispatch was when I inherited some CLOS code where it was used to create a nightmare of spaghetti, I&#x27;m wondering if any Julia fans here would care to elaborate on how they&#x27;ve used multiple dispatch for Good™ instead of Evil™
评论 #7111378 未加载
evanspa超过 11 年前
When I read the opening paragraph, I immediately thought of the author as a Blub programmer [1].<p>&quot;The problem with most programming languages is they&#x27;re designed by language geeks, who tend to worry about things that I don&#x27;t much care for. Safety, type systems, homoiconicity, and so forth. I&#x27;m sure these things are great...&quot;<p>Yes, those things are great. They ultimately aid in helping the programmer tackle the inevitable complexity that arises when building systems in a maintainable way.<p>[1]<a href="http://www.paulgraham.com/avg.html" rel="nofollow">http:&#x2F;&#x2F;www.paulgraham.com&#x2F;avg.html</a>
评论 #7111590 未加载
smortaz超过 11 年前
mini ASK HN: would there be any interest in supporting Julia in Visual Studio? (as a free&#x2F;oss plugin).<p>i lead the Python Tools for Visual Studio project at msft and would be curious if there is interest.<p>as a side note, if you do you use Python &amp; require Python&#x2F;C++ debugging, PTVS now supports it: <a href="http://www.youtube.com/watch?v=wvJaKQ94lBY#t=10" rel="nofollow">http:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=wvJaKQ94lBY#t=10</a>
评论 #7111336 未加载
评论 #7111445 未加载
评论 #7112481 未加载
评论 #7115319 未加载
评论 #7114855 未加载
eonil超过 11 年前
Does Julia have AOT compiler which produces a binary which can be linked to a C program? I am asking this because I have to consider availability on iOS - which is a platform prohibits JIT.
评论 #7112707 未加载
tenfingers超过 11 年前
There&#x27;s a lot to love in Julia, but my biggest nitpick is the 1-based array index. I can see where it comes from, but it&#x27;s not something I can praise. I use R on a daily basis, where the aim is mostly interactive analysis, and still I cannot see any reason to use 1-based indexes. For a language that is instead mostly oriented to programming, I would have not went for the &quot;familiarity&quot; argument.
评论 #7117027 未加载
weatherlight超过 11 年前
I love Julia, Coming from the Ruby world it was very easy to get into.<p>It was easy to see how useful and expressive the language was by just doing a few Project Eulers.
zem超过 11 年前
the interesting thing is that what excites me about julia is that it is clearly a scientific computing language designed by people who <i>are</i> language geeks. the feature set seems very clean and well-thought-out to me.
wirrbel超过 11 年前
I don&#x27;t really see the need for the author to make himself into a &quot;cowboy&quot; coder and point out how they ignore all those valuable insights and enlightenments of programmers.<p>Julia is a kind-of-fine language that is designed to appeal Matlab users first of all by its syntactical looks. Just like Javascript was designed to appeal to C and Java users by imitating their look.<p>Under the hood, Julia is quite a smart development, not only in terms of code generation, but also in terms of datatypes and object models.<p>Multiple dispatch is something that more or less only Lisps typically offer natively (and Dylan). When working with types (especially in dynamically strongly typed languages) this is often something what I am missing in other languages. Consider Python:<p><pre><code> if isinstance(x, Y): ... elif isinstance(x, Z): ... </code></pre> This feature alone shows that the authors of Julia are rather the thoughtful language-loving authors.<p>So I would like to leave the small scope of the article but look at the greater picture: Julia and its competitors. There are actually quite a few on the market. A few domain-specific numerical libraries exist for C&#x2F;C++&#x2F;Fortran for scientific purposes (ROOT at Cern, etc.). They are more or less falling out of fashion. For a long time, Matlab has been dominant in some faculties for evaluation and working with data, process signals and images. It is not by accident that Matlab was created as a convenient Wrapper to Fortran libraries at the time. From a software developer&#x27;s perspective, Matlab is for Cowboys.<p>Next to its high price (and the vendor lock in forced upon college and university students who are trained for matlab when there exist suitable open source alternatives), the most appalling thing about Matlab is its poor performance as a programming language. While its easy to write small scripts, solve linear algebra problems and plot a few things, I have hardly seen well organized Matlab code and I just think that it is impossible. While Matlab licenses cost heaps of money, support is not good and upon a version change you have to spend considerable amounts of work getting around API changes.<p>The Matlab clones available (Octave) are generally unimpressive. I think this has to do with the big effort of copying Matlab and the need to develop the whole tool stack (parser, interpreter, libraries). Contributors are hard to find because octave hardly offers any benefit over the original, like ReactOS with Windows, Octave can only react. I still value the effort of the octave folks, they have done some great work!<p>Scientific Python has chosen a slightly different path. Taking the fairly uncontroversial programming language Python, the authors created an infrastructure of thematically separated modules. While eliminating the need to design and implement an own programming language, a lot of work could be spent on building useful libraries. Also, existing libraries were reusable (databases, XML, etc.) and Python is a really convenient programming languages for both Newbies and professional software developers. So with this pragmatic approach, the contributers have created one of the best environments for scientific software development and would be my suggestion for anyone at the moment who just wants to use one system.<p>What still amazes me: While working in an ipython notebook (<a href="http://ipython.org/notebook.html" rel="nofollow">http:&#x2F;&#x2F;ipython.org&#x2F;notebook.html</a>) on some numerical calculations, I can just pull up Sympy (<a href="http://sympy.org" rel="nofollow">http:&#x2F;&#x2F;sympy.org</a>) and perform some symbolic computations (Fourier transforming some function analytically or taking the derivative of some other, etc.).<p>Oh, and have I told you about how Scipy can replace R for really cool statistical analyses?<p>The part where Julia kicks in now is the point that Matlab has a lot of market ground, especially with engineers who are not extraordinarily passionate about programing. For some people the burden of learning another syntax is just too big, they are not full time programmers but spend their time more with acquiring data and using the results. I really hope that some of them who are not willing to switch to scientific python can agree on switching to Julia.<p>Full Disclosure: I have occasionally been forced to work with Matlab (so I do have some experience with it without being an expert) and it was not fun. This is one of the reasons I would like all Scientists to have the chance of choosing a good environment that is suitable for them. If its Matlab for some, so be it ;-) I have never looked back.
评论 #7111475 未加载
评论 #7111230 未加载
评论 #7111507 未加载
rubyn00bie超过 11 年前
Not to be a an asshole, something I have to preface a lot on here... but, uhh,<p>&quot;Safety, type systems, homoiconicity, and so forth. I&#x27;m sure these things are great, but when I&#x27;m messing around with a new project for fun, my two concerns are 1) making it work and 2) making it fast.&quot;<p>Uhhh... Call me crazy, but wouldn&#x27;t the &quot;so forth&quot; be what you care about if #2 is that important to you?
weichi超过 11 年前
How good is the interactive plotting experience?
评论 #7110683 未加载
Malarkey73超过 11 年前
This is odd as a much better post on Julia v R v MATLAB v Python etc has got little attention: <a href="http://slendermeans.org/language-wars.html" rel="nofollow">http:&#x2F;&#x2F;slendermeans.org&#x2F;language-wars.html</a>
rrggrr超过 11 年前
I&#x27;m betting on Scratch.<p>The benefits of automation are mostly denied to me because I haven&#x27;t the time to learn Julia or properly use the Python skills I already possess. I do however have the time to link and configure objects ala Scratch and Apple&#x27;s Automator, or the first generation of what was once Allaire&#x27;s Cold Fusion. Its not just me, either. The demand for automation tools is pervasive in business and education, but the time and innate skills needed to program effectively belong to a subset of the needy. Bring me a language that is truly a means to an end and take my money.
georgewfraser超过 11 年前
Is there reason to believe Julia is actually fast outside of microbenchmarks? Their strategy of aggressive specialization will always look good in microbenchmarks, where there&#x27;s only one code path, but could blow up in a large codebase where you actually have to dispatch across multiple options. I&#x27;ve never seen a Julia benchmark on a big piece of code.
评论 #7118236 未加载
blueblob超过 11 年前
How does Julia interface with C? Is it easy to interface Julia with C because all it does is compile the C with Clang&#x2F;LLVM?
评论 #7111021 未加载
otikik超过 11 年前
&gt; the real benefit is being able to go from the first prototype all the way to balls-to-the-wall multi-core SIMD performance optimizations without ever leaving the Julia environment.<p>That sounds like someone who has not had to maintain any kind of software for more than 2 days.
digitalzombie超过 11 年前
I&#x27;m betting on Julia and Rust really. Julia for Scientific programming and Rust for system.
DonGateley超过 11 年前
I want to write audio VST plugins in this language! Somebody please make that easy. :-)
mpchlets超过 11 年前
Based on your comments of Cowboys, you have obviously never rode hard put up wet.
DonGateley超过 11 年前
Is there a Julia forum anywhere. Like with a hierarchy of topics and subtopics and with hierarchical threads at the bottom level like HN? Optimally something that remembers what you&#x27;ve read.
评论 #7114660 未加载
allochthon超过 11 年前
I like what I see so far at this page [1] and will watch closely to see whether Julia catches on.<p>One thing -- can we call agree that dictionary literals begin and end with &#x27;{}&#x27;, that arrays are zero-indexed and that an index into a unicode string is properly a character and not a byte? Or are we doomed to permute endlessly on details such as these? I wish any new languages would set aside a large set of tempting innovations and just go with the flow on the smaller points.<p>[1] <a href="http://learnxinyminutes.com/docs/julia/" rel="nofollow">http:&#x2F;&#x2F;learnxinyminutes.com&#x2F;docs&#x2F;julia&#x2F;</a>
评论 #7123004 未加载
juleska超过 11 年前
Ok, good to see, but, what i can do with it that i can&#x27;t with another language? -.-
评论 #7113575 未加载
bayesianhorse超过 11 年前
I agree that Julia is great. But it&#x27;s not there yet, either.
ggchappell超过 11 年前
Figlet sighting. Font: big. :-)
tesmar2超过 11 年前
&gt; but it&#x27;s poised to do for technical computing what Node.js is doing for web development<p>I stopped right there. Node.js has only a few great use cases where it shines and in the real world, the vast majority of shops have not switched to using it.
评论 #7110336 未加载
评论 #7112427 未加载
评论 #7112112 未加载
enupten超过 11 年前
All they&#x27;re missing is a cool interaction mode like SLIME.
lafar6502超过 11 年前
Looks strangely similar to Lua
评论 #7111689 未加载
niix超过 11 年前
No.