Is Julia the Next Big Programming Language? MIT Thinks So, as Version 1.0 Lands (techrepublic.com)
Julia, the MIT-created programming language for developers "who want it all", hit its milestone 1.0 release this month -- with MIT highlighting its rapid adoption in the six short years since its launch. From a report: Released in 2012, Julia is designed to combine the speed of C with the usability of Python, the dynamism of Ruby, the mathematical prowess of MatLab, and the statistical chops of R. "The release of Julia 1.0 signals that Julia is now ready to change the technical world by combining the high-level productivity and ease of use of Python and R with the lightning-fast speed of C++," says MIT professor Alan Edelman. The breadth of Julia's capabilities and ability to spread workloads across hundreds of thousands of processing cores have led to its use for everything from machine learning to large-scale supercomputer simulation. MIT says Julia is the only high-level dynamic programming language in the "petaflop club," having been used to simulate 188 million stars, galaxies, and other astronomical objects on Cori, the world's 10th-most powerful supercomputer. The simulation ran in just 14.6 minutes, using 650,000 Intel Knights Landing Xeon Phi cores to handle 1.5 petaflops (quadrillion floating-point operations per second).
Is Becky's baby the cutest baby in the entire world? Becky thinks so, as Birthday 1.0 arrives.
Obligatory Betteridge's Law Post.
This is my signature. There are many like it, but this one is mine.
https://xkcd.com/927/
12:50 - press return.
Great... Just what we need... another language.. oh wait, that will need a new package manager.. and new frameworks.. and..
screw it I'll just stick to C++.
There is always going to be argument about which language is the best, which Linux distribution, which web framework, and systemd.
I have been using Crystal and the Lucky Web Framework for a large project, and it's been great. Crystal's handling of types, and the fact that you get all of the error-killing power of tight typing while you often don't have to specify the types at all because they are inferred, has make my code cleaner and easier to write, with fewer bugs and less need for testing. You write it like an interpreted language (it follows Ruby syntax, but treats typing and metaprogramming differently) and it has compiled speed (uses LLVM).
Bruce Perens.
C is lightning fast and is the tool for when you know what you're doing.
Python is .. for everything else.
Everything else just turns into a clusterfuck over time. C and Python have somehow avoided turning into clusterfucks by being simple, while building an unstoppable freight train of reference work.
Julia solves lots of problems in a specialized domain, but most programming is laughably mundane.
..don't panic
Quote: "These damn things are as hot as a stiff cock!"
I can see perhaps adding some greek symbols to ascii for variable names, function names, but allowing full unicode is a disaster of a design decision since it permits all kinds of deliberately obscured code.
Languages need to be about well-chosen constraints to guide creativity, not about absolute freedom. Libertarian languages are a bad idea, since code is maintained and extended collectively.
Unicode for string data, yes, of course. But entity names in the language, no, no, no.
Where are we going and why are we in a handbasket?
I z^2+c what you did there.
Inheritance is the sincerest form of nepotism.
If MIT had been having its way, we'd all be using Scheme.
Julia is a better Octave (open source Matlab replacement) - good for computer scientists, but software engineers will not be interested. Question is, will the scientific community create enough definitive libraries to provide alternatives for Matlab toolboxes. Not enough seem to have attended the Octave party.
Also, computer scientists don't define popular adoption of programming languages. Else, we'd be using Haskell/Scheme by now.
... for developers "who want it all" ...
I want: local/global "goto" operations; unchecked pointers and arrays; brace *and* white-space (for you Python freaks) block delineation; weird operators like "+-+", "=!=", "-+/*" and "..."; support for casting on the *left* side of the assignment (ya, I did that on 4.3 BSD w/K&R C); random requirements for some variable to be in UPPER case and/or start with specific letters (for you FORTRAN fans) ...
Feel free to add to this; I'll be back after I get a fourth cup of coffee.
It must have been something you assimilated. . . .
..are you having a day off?
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
the mathematical prowess of MatLab
Like arrays starting at index 1?
sudo rm -r -f --no-preserve-root /
It is the only array programming language with a decent JIT.
It is a high-level array programming language like Matlab/Octave/R, while executing at about the speed of a native language like Fortran.
If you prototype a lot of linear algebra functions in an interactive environment, this is the language for you. The thunder is somewhat stolen by newer tools like tensorflow, which give you GPU performance, while still providing a high-level language (Python).
Still, Julia has meta-programming features. So it can deliver compact, high-performance mathematical code.
and try to limit the egregiousness of bad code.
One example. Languages should probably enforce the presence of a method header comment.
If you still choose to make it a useless comment, you're just advertising your complete misfit / incompetent status.
Language made it easier to do the right thing and harder to do a bad practice.
Same goes for meaningful indenting enforcement. It's a good thing, because it doesn't hurt, and encourages comprehensible code.
The freedom you NEED as a programmer is freedom to
- organize the order of your ifs, loops, and subroutine calls,
- choose names, although that should be limited to a limited character set and probably enforced case and/or underscore conventions.
- create arbitrary hierarchical data structures.
You actually NEED no other freedoms than that.
And the fewer extra freedoms you get, the less you will completely screw up the experience of others trying to read and understand your code.
Where are we going and why are we in a handbasket?
Python 2.x to 3.x incompatibility is a total clusterfuck, and it's why I left the language.
At this point I only trust people if can define their language up front in a way that can be safely extended and hopefully standardized. I'm not going to muck with Python again only to have it break in some version 4 or version 5. (Yes, I still have code in production with K&R prototypes even though ANSI C has been around for nearly 30 years.)
Languages that offer useful pure functional programming are the future when it comes to massively parallel projects. The next big thing is going to be related to ML, Haskell, or OCaml. But it's a damn shame my old C skills make me no good at these languages.
So I'll probably have to retire once a proper programming language comes around. Lucky for me nobody seems to be doing a very good job at making me obsolete!
...but why {...} ?!? {...} the syntax looks like the bastard child of Fortran and Perl
Because since Python started overtaking Perl, my cats are sad because they can't write fully compliant programs just by random walking across the keyboard anymore.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
the readability of Perl with the brevity of COBOL.
Technologically aggressive company in the expanding AI and Scientific arena is looking for experts in Julia.
Must have at least 5 years hands on experience building applications with Julia in multi-core, machine learning applications and simulations.
When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
Nearly seamless multitasking over an entire network.
https://www.youtube.com/c/BrendaEM
Once you get over your newbie tunnel vision with the block syntax, you will find that Julia is a compact (despite the ends), powerful, high-performance, array language with meta-programing features.
No, it is not an academic language like say, Haskell. It is a practical programming language for research into math-heavy algorithms - Artificial Intelligence, Signal Processing, Image Processing etc.
No, it is not a general purpose language for day-to-day scripting or web/business programs. It is not, as you put it, for "bootcamp coders".
"want it all" refers to the historically diametric needs of computer scientists. They need a high-level, expressive, vectorized language like Matlab to prototype and interactively explore data... and a high performance language like Fortran or C++ to implement that algorithm after, on the fastest supercomputers. This gives them both in one tool.
It sounds like your never wrote any significant matrix/math code in your life. Writing any complex matrix code with just loops is like having one's teeth pulled, compared to how it is done in an array language like Julia. The block syntax is the least of one's worries when dealing with high-dimensional data.
I read through the docs and was really liking what I was seeing... right up until the part that it says arrays are 1-based. Ah well, nevermind then.
Just try to do reflection on nullable C# types, for example. It's a WTF moment. When you investigate why it's that way, you learn that nullable types are an ugly hack on top of the existing dynamic type sub-engine.
In what way? Aside from some magic around implicit type conversion, Nullable types were added to the language through the Nullable<T> generic struct and some new language syntax to support the int? syntactic sugar (instead of Nullable<int>). Detecting and reflecting on a nullable type is just a matter of using Nullable.GetUnderlyingType(Type), or if you want to do it the long way you can always use the IsGenericType, IsValueType, GetGenericTypeDefinition(), and GenericTypeArguments on the Type of the thing you're looking at.
There's nothing dynamic about nullable types in C#.
"What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
/)
Address: 147 Rassilon Way, Gallifrey.
Years of experience with Julia: 729
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)