1. Spotlight: New Thinking about Cloud Computing
  2. Videos
  3. Newsletters
  4. Resources

About

  • About Us
  • Advertise
  • Contact Us
  • Foundry Careers
  • Newsletters
  • Contribute to InfoWorld
  • Reprints

Policies

  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Copyright Notice
  • Member Preferences
  • About AdChoices
  • E-commerce Affiliate Relationships
  • Your California Privacy Rights

Our Network

  • CIO
  • Computerworld
  • CSO
  • Network World

More

  • News
  • Features
  • Blogs
  • BrandPosts
  • Events
  • Videos
  • Enterprise Buyer’s Guides
  • Analytics
  • Artificial Intelligence
  • Generative AI
  • Careers
  • Cloud Computing
  • Data Management
  • Databases
  • Emerging Technology
  • Technology Industry
  • Security
  • Software Development
  • Microsoft .NET
  • Development Tools
  • Devops
  • Open Source
  • Programming Languages
  • Java
  • JavaScript
  • Python
  • IT Leadership
  • Enterprise Buyer’s Guides
Popular Topics
  • Artificial Intelligence
  • Cloud Computing
  • Data Management
  • Software Development
  • Spotlight: New Thinking about Cloud Computing
  • Videos
  • Newsletters
  • Resources

Topics

  • Analytics
  • Artificial Intelligence
  • Generative AI
  • Careers
  • Cloud Computing
  • Data Management
  • Databases
  • Emerging Technology
  • Technology Industry
  • Security
  • Software Development
  • Microsoft .NET
  • Development Tools
  • Devops
  • Open Source
  • Programming Languages
  • Java
  • JavaScript
  • Python
  • IT Leadership
  • Enterprise Buyer’s Guides

About

  • About Us
  • Advertise
  • Contact Us
  • Foundry Careers
  • Newsletters
  • Contribute to InfoWorld
  • Reprints

Policies

  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Copyright Notice
  • Member Preferences
  • About AdChoices
  • E-commerce Affiliate Relationships
  • Your California Privacy Rights

Our Network

  • CIO
  • Computerworld
  • CSO
  • Network World

More

  • News
  • Features
  • Blogs
  • BrandPosts
  • Events
  • Videos
  • Enterprise Buyer’s Guides
    1. Home
    2. Software Development
    3. New Julia language seeks to be the C for scientists
    Paul Krill
    by Paul Krill
    Editor at Large

    New Julia language seeks to be the C for scientists

    news
    Apr 18, 20126 mins
    Software Development

    Developers seek to provide one dynamic language for high productivity, performance

    Advertisement

    Advertisement

    Julia is a new programming language being developed for building technical applications. In its early stages, Julia has been used in such applications as image analysis and linear algebra research. The language is the brainchild of developer Stefan Karpinski, along with Jeff Bezanson and Viral Shah. InfoWorld Editor at Large Paul Krill recently got the lowdown on Julia during an interview with Karpinski.

    Advertisement

    InfoWorld: When did you develop Julia, and what was the main intention in developing it?

    Karpinski: We started talking in August 2009. Viral put Jeff and me in contact, and we started talking about our frustrations with technical computing languages. Primarily, one of them being that you just have to use so many different languages for different things because they’re all good at one thing but not good at everything. You end up having to switch languages a lot.

    InfoWorld: When you say technical computing, to what type of applications are you specifically referring?

    Karpinski: It’s a broad category, but it’s pretty much anything that involves a lot of number-crunching. In my own background, I’ve done a lot of linear algebra but a fair amount of statistics as well. The tool of choice for linear algebra tends to be Matlab. The tool of choice for statistics tends to be R, and I’ve used both of those a great deal. But they’re not really interchangeable. If you want to do statistics in Matlab, it’s frustrating. If you want to do linear algebra in R, it’s frustrating.

    InfoWorld: So you developed Julia with the intent to make it easier to build technical applications?

    Karpinski: Yes. The idea is that it should be extremely high productivity. To that end, it’s a dynamic language, so it’s relatively easy to program, and it’s got a very simple programming model. But it has extremely high performance, which cuts out [the need for] a third language [C], which is often [used] to get performance in any of these other languages. I should also mention NumPy, which is a contender for these areas. For Matlab, R, and NumPy, for all of these options, you need to at some point drop down into C to get performance. One of our goals explicitly is to have sufficiently good performance in Julia that you’d never have to drop down into C.

    InfoWorld: The Julia Web page says Julia is designed for cloud computing and parallelism. What’s the intent there?

    Karpinski: The idea is that a lot of number-crunching these days ends up being done in the cloud environment, where you can allocate resources on demand. Traditional parallel computing for technical problems often use MPI [Message Passing Interface], a very, very established and popular way of doing large-scale parallel applications. But it doesn’t have any facility for elasticity. If you want to add processors midcomputation, that can’t really be done.

    It also has limited functionality for recovery from faults, and that’s a huge problem in cloud computing because resources are not dedicated hardware, they’re not big supercomputing machines that have extremely high reliability. They’re virtual machine instances in a cloud somewhere, and it’s not uncommon for a resource to just disappear.

    InfoWorld: How does Julia overcome these issues with cloud computing?

    Karpinski: Well, these aren’t solved problems. These are things that we’re still working on, but we have a simpler model for building a large parallel applications via a global distributed address space. This means that you can hold a reference to an object that lives on another machine participating in a computation. You can manipulate references easily and pass them around between machines, making it easy to keep track of what’s being computed where. Also, you can add machines in midcomputation. We haven’t yet built the facility for removing machines midcomputation because we thought this was less of a pressing issue. But if you realize partway through a computation that you want more machines because you want the computation to go faster, you can do that.

    InfoWorld: Would you use Julia for big data applications, data analysis, that sort of application?

    Karpinski: It depends on what you mean by big data. “Big data” is a very overloaded term at this point. But I think a lot of, for example, predictive analysis, modeling problems are often linear algebra problems, and graph analysis problems are also something that Julia would be good at tackling. Certain kinds of applications are probably better addressed by a traditional technology like Hadoop. If you have a lot of things to count, Hadoop is perfect. If you want to compute a large matrix factorization, Hadoop is absolutely atrocious. That’s the kind of place where Julia would be a stellar choice.

    InfoWorld: You’re not going to use Julia to develop, say, an accounting application or a mobile application, would you?

    Karpinski: We actually have plans to develop a compiler. And once you have a compiler, you could write Julia code for embedded and mobile applications.

    InfoWorld: When would that compiler be ready?

    Karpinski: Probably sometime in the next year.

    InfoWorld: The Web page says, “Julia’s LLVM-based just-in-time compiler combined with the language’s design allow it to approach and often match the performance of C, C++.” What was your intent in approaching or matching the performance of C, C++?

    Karpinski: C, C++, and I should also add Fortran, because it’s another old compiled language and is known for its performance. Those are the gold standard, that’s how you measure performance. If you can match or beat C++, you’ve made it.

    InfoWorld: What’s the exact status of Julia at this point?

    Karpinski: It’s a pre-1.0. We’re shooting for 1.0 soon. [Version] 1.0 is a big commitment. To me, at least, and to the other core developers, it means that we’re committing to a stable API.

    InfoWorld: And this is available under an MIT license, correct?

    Karpinski: Yes. The core is available under MIT, which is very permissive.

    InfoWold: Why the name, Julia?

    Karpinski: That’s everybody’s favorite question. There’s no good reason, really. It just seemed like a pretty name.

    This article, “New Julia language seeks to be the C for scientists,” was originally published at InfoWorld.com. Follow the latest developments in business technology news and get a digest of the key stories each day in the InfoWorld Daily newsletter. For the latest developments in business technology news, follow InfoWorld.com on Twitter.

    Related content

    news

    JDK 25: The new features in Java 25

    By Paul Krill
    Jun 6, 2025 12 mins
    Java Programming Languages Software Development
    news

    Spring Java creator unveils AI agent framework for the JVM

    By Paul Krill
    Jun 6, 2025 3 mins
    Generative AI Java Kotlin
    analysis

    JavaScript innovation and the culture of programming

    By Matthew Tyson
    Jun 6, 2025 3 mins
    Developer JavaScript Node.js
    news

    Adobe adds Product Support Agent for AI-assisted troubleshooting

    By Paul Krill
    Jun 5, 2025 2 mins
    Artificial Intelligence Emerging Technology Generative AI

    Other Sections

    • Resources
    • Videos
    • Spotlight: New Thinking about Cloud Computing
    Paul Krill
    by Paul Krill
    Editor at Large
    1. Follow Paul Krill on X

    Paul Krill is editor at large at InfoWorld. Paul has been covering computer technology as a news and feature reporter for more than 35 years, including 30 years at InfoWorld. He has specialized in coverage of software development tools and technologies since the 1990s, and he continues to lead InfoWorld’s news coverage of software development platforms including Java and .NET and programming languages including JavaScript, TypeScript, PHP, Python, Ruby, Rust, and Go. Long trusted as a reporter who prioritizes accuracy, integrity, and the best interests of readers, Paul is sought out by technology companies and industry organizations who want to reach InfoWorld’s audience of software developers and other information technology professionals. Paul has won a “Best Technology News Coverage” award from IDG.

    More from this author

    • news

      AI is powering enterprise development, GitHub says

      Jun 4, 2025 2 mins
    • news

      Kotlin cozies up to Spring Framework

      Jun 3, 2025 2 mins
    • news

      C# 14 introduces file-based apps

      Jun 3, 2025 2 mins
    • news

      CheerpJ WebAssembly JVM previews Java 17 support

      May 30, 2025 2 mins
    • news

      Angular v20 arrives with eyes on generative AI development

      May 30, 2025 3 mins
    • news

      Reports of Deno’s demise ‘greatly exaggerated,’ Deno creator says

      May 28, 2025 4 mins
    • news

      Microsoft rolls out TypeScript Native Previews

      May 28, 2025 2 mins
    • news

      Kotlin gets a new AI agent framework

      May 24, 2025 2 mins

    Show me more

    analysis

    Decentralized mesh cloud: A promising concept

    By David Linthicum
    Jun 6, 20256 mins
    Cloud ArchitectureCloud ComputingEmerging Technology
    Image
    news analysis

    Snowflake: Latest news and insights

    By Dan Muse
    Jun 5, 20253 mins
    Cloud ArchitectureCloud ComputingCloud Management
    Image
    news

    Workday’s new dev tools help enterprises connect with external agents

    By Anirban Ghoshal
    Jun 5, 20254 mins
    Artificial IntelligenceGenerative AISoftware Development
    Image
    video

    Python 3.14's new template string feature

    Jun 6, 20255 mins
    Python
    Image
    video

    How to use the new Python Installation Manager tool for Python 3.14

    May 27, 20254 mins
    Python
    Image
    video

    How to use Marimo | A better Jupyter-like notebook system for Python

    May 13, 20254 mins
    Python
    Image

    Sponsored Links

    • Empower your cybersecurity team with expert insights from Palo Alto Networks.
    • Secure AI by Design: Unleash the power of AI and keep applications, usage and data secure.
    About
    • About Us
    • Advertise
    • Contact Us
    • Foundry Careers
    • Reprints
    • Newsletters
    • BrandPosts
    Policies
    • Terms of Service
    • Privacy Policy
    • Cookie Policy
    • Copyright Notice
    • Member Preferences
    • About AdChoices
    • E-commerce Affiliate Relationships
    • Your California Privacy Rights
    • Privacy Settings
    Our Network
    • CIO
    • Computerworld
    • CSO
    • Network World
    • Facebook
    • X
    • YouTube
    • Google News
    • LinkedIn
    © 2025 IDG Communications, Inc. All Rights Reserved.
`, cio: `

🚀 The new CIO.com hybrid search: 🔍 Explore CIO content smarter, faster and AI powered. ✨

`, nww: `

🚀 The new NetworkWorld.com hybrid search: 🔍 Explore NetworkWorld content smarter, faster and AI powered. ✨

`, cw: `

🚀 The new Computerworld.com hybrid search: 🔍 Explore Computerworld content smarter, faster and AI powered. ✨

`, cso: `

🚀 The new CSOonline.com hybrid search: 🔍 Explore CSO content smarter, faster and AI powered. ✨

` }; const sharedStyles = ` `; const publisher = foundry_get_publisher(); const htmlContent = contentSwitch[publisher]; if (!htmlContent || !document.body) return; document.body.insertAdjacentHTML("afterbegin", htmlContent + sharedStyles); const bar = document.querySelector(".section-block--announcementbar"); if (bar) { requestAnimationFrame(() => { bar.classList.add("section-block--announcementbar--visible"); }); } const btn = document.querySelector(".section-block--announcementbar .reset-button"); const searchIcon = document.querySelector('.header__icon-button[data-menu-trigger="search"] svg'); const searchTrigger = document.querySelector('[data-menu-trigger="search"]'); if (searchIcon) { searchIcon.innerHTML = ''; } if (btn && searchTrigger) { btn.addEventListener("click", () => searchTrigger.click()); } console.log("[MISO SCRIPT] Conditions met, initializing Miso search announcements."); }; initMisoSearchAnnouncements(); }); document.addEventListener('consentManagerReady', () => { const hasConsentYouTube = consentManager.checkConsentByVendors([ 'YouTube', 'YT' ]); if (hasConsentYouTube.some(vendor => vendor['Has Consent'] === false)) { console.log('[YOUTUBE SCRIPT] Consent not given for YouTube.'); } else { console.log('[YOUTUBE SCRIPT] Consent given for YouTube. Loading script...'); } }); document.addEventListener('consentManagerReady', () => { const hasConsentGAM = consentManager.checkConsentByVendors([ 'Google Ad Manager', 'GAM' ]); if (hasConsentGAM.some(vendor => vendor['Has Consent'] === false)) { console.log('[GAM SCRIPT] Consent not given for GAM.'); } else { console.log('[GAM SCRIPT] Consent given for GAM. Loading script...'); } }); document.addEventListener('consentManagerReady', () => { const hasConsentGoogleFonts = consentManager.checkConsentByVendors([ 'Google Fonts', 'Google Web Fonts' ]); if (hasConsentGoogleFonts.some(vendor => vendor['Has Consent'] === false)) { console.log('[GOOGLE FONTS SCRIPT] Consent not given for Google Fonts.'); } else { console.log('[GOOGLE FONTS SCRIPT] Consent given for Google Fonts. Loading script...'); } }); document.addEventListener('consentManagerReady', () => { const hasConsentAdobeTypekit = consentManager.checkConsentByVendors([ 'Adobe Typekit' ]); if (hasConsentAdobeTypekit.every(vendor => vendor['Has Consent'] === true)) { if (foundry_is_edition('kr')) { const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = 'https://use.typekit.net/ysx4dcu.css'; document.head.appendChild(link); } } }); document.addEventListener('consentManagerReady', () => { const vendors = ['Subscribers']; const hasConsentSubscribers = consentManager.checkConsentByVendors(vendors); if (hasConsentSubscribers.some(vendor => vendor['Has Consent'] === false)) { return; } else { if (foundry_is_language('en')) { console.log('Language is English'); // subscribers english .. } if (foundry_is_edition('kr')) { console.log('Edition is Korean'); // subscribers in korean .. } if (foundry_is_edition('ja')) { console.log('Edition is Japanese'); // subscribers in japanese .. } } });