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).
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++.
Python is a clusterfuck. Not enough people recognize it in time.
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.
C is lightning fast and is the tool for when you know what you're doing.
Python is .. for everything else.
So Python when (a) you don't need fast and (b) you don't know what you're doing. :-)
[ And when you don't want C, but want fast and you know what you're doing, use Perl. ]
It must have been something you assimilated. . . .
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!
C is lightning fast and is the tool for when you know what you're doing.
C is a lightning fast tool for people who are obsessed with micromanaging things which can be easily automated. If yu want lightning fast performance (often faster) but don't really want to do things by hand that a computer can be easily taught how to do then there's C++.
Everything else just turns into a clusterfuck over time. C and Python have somehow avoided turning into clusterfucks by being simple
C moves the complexity of the language into every single project that uses it. So the language per-se might not be a cluster fuck, but it is the epicentre of a custerfuck of biblical proportions.
SJW n. One who posts facts.
I have been using Crystal [crystal-lang.org] and the Lucky Web Framework [luckyframework.org] 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).
I'm sure your employer (or contractor) is ecstatic about the fact that they'll have to pay 3x the going rate to find devs that can work on the project you've built. Well actually that's not true. They'll have to pay someone to completely re-write the project when they can't find anyone to work on it and / or the niche framework you've picked is no longer supported / evolved.
Maybe it was a pet project though.
Your viewing this from the perspective of the sort of programmer who is hired like an interchangeable cog.
If you are telling me that you develop in a way that isn't easily picked up by another engineer, I don't think you are the master you think.
Software engineering is... engineering. That means it's well documented, easily understood standard practices. Part of that is choosing a language, toolchain, and development environment that is stable and well understood.
They are probably more concerned with time-to-market than anything else.
Probably? So you explained it to them right? They probably don't understand the implications of your choices.