why_we_created_julia_by_jeff_bezanson_stefan_karpinski_viral_b._shah_and_alan_edelman

Why We Created Julia

Return to Julia Bibliography, Julia, GitHub Julia, Julia IDE

Se: Why We Created Julia by Jeff Bezanson, Stefan Karpinski, Viral B. Shah and Alan Edelman

“In short, because we are greedy.

We are power MATLAB users. Some of us are Lisp hackers. Some are Pythonistas, others Rubyists, still others Perl hackers. There are those of us who used Mathematica before we could grow facial hair. There are those who still can't grow facial hair. We've generated more R plots than any sane person should. C is our desert island programming language.

We love all of these languages; they are wonderful and powerful. For the work we do — scientific computing, machine learning, data mining, large-scale linear algebra, distributed computing and parallel computing — each one is perfect for some aspects of the work and terrible for others. Each one is a trade-off.

We are greedy: we want more.”

“We want a language that's open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that's homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.”

(Did we mention it should be as fast as C?)

“While we're being demanding, we want something that provides the distributed power of Hadoop — without the kilobytes of boilerplate Java and XML; without being forced to sift through gigabytes of log files on hundreds of machines to find our bugs. We want the power without the layers of impenetrable complexity. We want to write simple scalar loops that compile down to tight machine code using just the registers on a single CPU. We want to write A*B and launch a thousand computations on a thousand machines, calculating a vast matrix product together.”

“We never want to mention types when we don't feel like it. But when we need polymorphic functions, we want to use generic programming to write an algorithm just once and apply it to an infinite lattice of types; we want to use multiple dispatch to efficiently pick the best method for all of a function's arguments, from dozens of method definitions, providing common functionality across drastically different types. Despite all this power, we want the language to be simple and clean.”

All this doesn't seem like too much to ask for, does it?

Even though we recognize that we are inexcusably greedy, we still want to have it all. About two and a half years ago, we set out to create the language of our greed. It's not complete, but it's time for an initial [1] release — the language we've created is called Julia]. It already delivers on 90% of our ungracious demands, and now it needs the ungracious demands of others to shape it further. So, if you are also a greedy, unreasonable, demanding programmer, we want you to give it a try.“

Fair Use Source: https://julialang.org/blog/2012/02/why-we-created-julia

Julia: Julia Fundamentals, Julia Inventor - Julia Language Designer: Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah in February 14, 2012; Julia DevOps - Julia SRE, Cloud Native Julia - Julia on Kubernetes - Julia on AWS - Julia on Azure - Julia on GCP), Julia Microservices, Julia Containerization (Julia Docker - Julia on Docker Hub), Serverless Julia, Julia Data Science - Julia DataOps - Julia and Databases (Julia ORM), Julia ML - Julia DL, Functional Julia (1. Julia Immutability, 2. Julia Purity - Julia No Side-Effects, 3. Julia First-Class Functions - Julia Higher-Order Functions, Julia Lambdas - Julia Anonymous Functions - Julia Closures, Julia Lazy Evaluation, 4. Julia Recursion), Reactive Julia), Julia Concurrency - Julia Parallel Programming - Async Julia, Julia Networking, Julia Security - Julia DevSecOps - Julia OAuth, Julia Memory Allocation (Julia Heap - Julia Stack - Julia Garbage Collection), Julia CI/CD - Julia Dependency Management - Julia DI - Julia IoC - Julia Build Pipeline, Julia Automation - Julia Scripting, Julia Package Managers, Julia Modules - Julia Packages, Julia Installation (Julia Windows - Chocolatey Julia, Julia macOS - Homebrew Julia, Julia on Linux), Julia Configuration, Julia Observability (Julia Monitoring, Julia Performance - Julia Logging), Julia Language Spec - Julia RFCs - Julia Roadmap, Julia Keywords, Julia Data Structures - Julia Algorithms, Julia Syntax, Julia OOP (1. Julia Encapsulation - 2. Julia Inheritance - 3. Julia Polymorphism - 4. Julia Abstraction), Julia Design Patterns - Julia Best Practices - Julia Style Guide - Clean Julia - Julia BDD, Julia Generics, Julia I/O, Julia Serialization - Julia Deserialization, Julia APIs, Julia REST - Julia JSON - Julia GraphQL, Julia gRPC, Julia Virtualization, Julia Development Tools: Julia SDK, Julia Compiler - Julia Transpiler, Julia Interpreter - Julia REPL, Julia IDEs (JetBrains Julia, Julia Visual Studio Code), Julia Linter, Julia Community - Juliaaceans - Julia User, Julia Standard Library - Julia Libraries - Julia Frameworks, Julia Testing - Julia TDD, Julia History, Julia Research, Julia Topics, Julia Uses - List of Julia Software - Written in Julia - Julia Popularity, Julia Bibliography - Julia Courses, Julia Glossary - Julia Official Glossary, Julia GitHub, Awesome Julia. (navbar_julia)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


why_we_created_julia_by_jeff_bezanson_stefan_karpinski_viral_b._shah_and_alan_edelman.txt · Last modified: 2024/04/28 03:43 by 127.0.0.1