7 ms·
Out in the Open: Man Creates One Programming Language to Rule Them All
- lallysingh 12y agoAm I the only one who saw the title and thought Perl 6?
- Stubb 12y agoYes.
- ColinWright 12y agoSo, apparently Julia is the "One True Language."
- norswap 12y agoOne does not simply code C in Mordor.
- paulmd 12y agoNope, legacy code base. FORTRAN.
- qznc 12y agoIn Middle-Earth Mordor is the progressive nation, which (together with Isengard) is inventing industrialization. Gondor, Rohan and the elves are the conservative faction. ;)
- mtbcoder 12y agoTolkien disliked allegory though, did he not?
- fractallyte 12y ago...and, just to back up your comment, here's The Book that tells that side of the story: http://ymarkov.livejournal.com/280578.html http://ymarkov.livejournal.com/280578.html
- Ironchefpython 12y ago> That said, it isn’t for everyone. I'm getting mixed messages here.
- ColinWright 12y agoBTW - to whomever is down-voting this comment - it was the first comment made when the article was initially submitted, so there was no clue as to what language was being referred to. The comment I made genuinely provided information for those clicking on this submission and looking for clues as to what the language might be, before deciding whether or not to click through and read the article. Quite likely you're down-voting it because you think it was a glib, content-free comment. If that's your assessment, you're wrong. It wasn't.
- mwfogleman 12y ago"Julia is also designed parallelism."
- coding4all 12y agoJulia is interesting for sure, but I think Clojure has had more of an impact in terms of what the future of languages might look like. I would argue the same for Rust as well.
- dj0 12y agoAgreed.
- michaelochurch 12y agoI agree on Clojure. Rust I'd need to know more about, but I may study it now that it's post-1.0. What do you think about Haskell's impact on the future? I think that static typing, although less popular as of now, could make a resurgence given the value it adds once one learns how to use the type system. Most of the negative reputation of static typing, I'd argue, comes from languages that are falling out of favor (C++, Java) and that never did static typing right in the first place.
- phyllostachys 12y agoWell, close to being post-1.0. I think it is Rust 1.0 (alpha) in January (the 9th) then (beta) 6 weeks later.
- coding4all 12y agoTLDR; Optional type systems are the future I hear a lot about Haskell but I don't see a lot about Haskell... Clojure has two optional type systems known as the core.typed library, and Prismatic's schema library. I don't think it's an all or nothing situation. Use types when you need them and don't when you don't.
- codygman 12y agoYou are overlooking how powerful programming with types can be. This applies to Haskell, but even moreso to languages like Idris. Did you hear about Haxl[0]? [0]: https://code.facebook.com/projects/854888367872565/haxl/ https://code.facebook.com/projects/854888367872565/haxl/
- malux85 12y agohttp://imgs.xkcd.com/comics/standards.png http://imgs.xkcd.com/comics/standards.png
- danso 12y agoThe comments in the OP pretty much state the skepticism that I feel...but let me limit my layperson's cynicism: > Stefan Karpinski was building a software tool that could simulate the behavior of wireless networks, and his code was a complete mess. But it wasn’t his fault. As a computer science grad student with years of industry experience under his belt, Karpinski was far from a programming novice. He knew how to build software. The problem was that in order to build his network simulation tool, he needed four different programming languages. No single language was suited to the task at hand, but using four languages complicated everything from writing the code to debugging it and patching it. Is the code for this simulation open-source? I'm not sure what that simulation entails, to need four different languages to effectively implement it...but I would definitely be interested in reading some specifics on what these languages are (or at least, the domains that they pertain to) and in which ways Julia adequately fulfilled their roles (I'm going to assume that Julia wasn't the flat-out best language across all the roles...though really, that's what the OP's headline leads me to believe...) I'm mostly a Rubyist. I hope Julia is faster than Ruby (what isn't?)...but is it as easy to read and write, and does it serve well as a glue language?
- coliveira 12y ago> he needed four different programming languages. No single language was suited to the task at hand Are we so behind in the world of software development that people don't understand the concept of metaprogramming? If you have to write code for two or more languages, just use a meta-language (it could be Python or Lisp, for example) to write code for each language as needed. People discovered this concept as far back as the 70s (see how Smalltalk is implemented for example).
- fluidcruft 12y agoProblem: You have to deal with 4 languages. Solution: Use "metaprogramming"! Problem: You have to deal with 5 languages and 4 bespoke translators.
- vinceguidry 12y ago
- sveme 12y agoHere's the previous discussion: https://news.ycombinator.com/item?id=7171126 https://news.ycombinator.com/item?id=7171126 It's a nine months old story. And the hyperbole in the title has been thoroughly acknowledged in that discussion as well.
- tempodox 12y agoIf it were only true! But the way Julia is tied in (REPL ONLY), it's nothing more than a lab tool for number crunchers. And the developers don't plan to make Julia create stand-alone binary executables (R or Matlab users wouldn't expect that). That's a deal breaker for me. (Edit: Typo)
- sveme 12y agoWhere do you get that from? Stefan Karpinski actually claimed quite the opposite: https://groups.google.com/d/topic/julia-users/rttSG6_pAiA/discussion https://groups.google.com/d/topic/julia-users/rttSG6_pAiA/di...
- sgt101 12y agoBY REPL I think you mean it's got a console and you access it by running commands at a console? This is true, but also you can create programs which are executable and invoke the interpreter to run them in the way that you can do that with Java or C#.
- tempodox 12y agoSo, how would you deploy a standalone Julia program on someone else's machine?
- washedup 12y agoAnyone on here have day-to-day experience using Julia? If so, what do you use it for? What languages are you supplementing with Julia?
- andrewflnr 12y agoI've been using it to to play with fractals and other procedural graphics. I've enjoyed it. The only thing that was slightly unpleasant (besides growing pains and REPL startup time) was getting used to 1-based indices.
- ilaksh 12y agoDon't know what happened. Think someone deleted my comment. What I said was we need a common metalanguage or knowledge representation for algorithms that can be translated to different programing languages.
- JetSpiegel 12y agoLLVM IR?
- ilaksh 12y agoYes similar but generally higher level where possible.
- progx 12y agohttp://xkcd.com/927/ http://xkcd.com/927/ now we have 5 programming languages ;)
- scott_s 12y agoOpening line: "Stefan Karpinski was building a software tool that could simulate the behavior of wireless networks, and his code was a complete mess. But it wasn’t his fault." Interestingly, it was Bjarne Stroustrup's experience implementing a distributed system simulator in Simula that lead to him working on what became C++. He liked the architecture of the code, but it was too slow for him to get any results. He reimplemented the whole thing in BCPL, and that experience got him interested in having a fast language that provided Simula-like abstractions. I originally read this anecdote in his book "The Design and Evolution of C++", but it's also in the beginning of his History of Programming Languages paper: http://www.stroustrup.com/hopl2.pdf http://www.stroustrup.com/hopl2.pdf
- stewbrew 12y agoFor whatever reason, I expected the article to be about haxe -- one language that transpiles to everything.
- dchichkov 12y ago>> As a computer science grad student with years of industry experience under his belt, Karpinski was far from a programming novice. He knew how to build software. Probably was coding as a kid. And according to his resume his first professional (money paid) part-time job was in 1996, coding in C/ALGOL/C++/Perl. That is close to 20 years. Reasonable enough. People tend to keep it simple and not design overly complicated things when they've been doing something for 20 years. A style guide page here gives a good feel of the language: http://julia.readthedocs.org/en/latest/manual/style-guide/ http://julia.readthedocs.org/en/latest/manual/style-guide/ Compare with Python: http://www.python.org/dev/peps/pep-0008/ http://www.python.org/dev/peps/pep-0008/ And, say, Ocaml: http://caml.inria.fr/resources/doc/guides/guidelines.en.html http://caml.inria.fr/resources/doc/guides/guidelines.en.html
- mcphage 12y ago>He and several other computer scientists are building a new language they hope will be suited to practically any task. [...] What we need, Karpinski realized after struggling to build his network simulation tool, is a single language that does everything well. a few paragraphs later: > That said, it isn’t for everyone. Bezanson says it’s not exactly ideal for building desktop applications or operating systems, and though you can use it for web programming, it’s better suited to technical computing. So he made one language that's good for everything, as long as everything doesn't include desktop apps, operating systems, or web apps? That's a pretty big lacuna...