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.
What a surprise!
I call it Romeo. Why Romeo you ask?
Because it has a killer bug.
https://xkcd.com/927/
12:50 - press return.
Naw i'll wait for the mandelbrot language.
Expect to see job advertisements requiring 10 years professional and verifiable experience with Julia in the coming weeks. Bonus points if you were part of the original language specification team.
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++.
Crap, I beat myself to it (that sounded better in my head)
...but why did they have to make it look so damn ugly?!?
I mean the syntax looks like the bastard child of Fortran and Perl - yuck!
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?
So complete dumpster fire then - got it
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
Because almost all the other names have been taken: https://en.wikipedia.org/wiki/...
After that, all we have left is "Zittzers".
If you don't get the reference, you don't belong here.
Mimetics Inc. Twitter
R feels like a poorly designed (but very useful) language.
Julia seems like it could replace R in certain situations.
I was happier with Julia as a high performance computing language.
This one size fits all approach doesn't impress me.
I feel like Julia is better off doing one thing right rather than being a jack of all trades.
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. . . .
seriously?
no, seriously-seriously?
What does this language accomplish that none of the other thousands of languages in existence do not?
..are you having a day off?
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
My impression is that for every language other than C/C++, there are three things more important than almost any feature of the language or runtime:
(1) the package system - how you search+download+reference them, how dependencies+conflicts are managed, how updates are managed
(2) the build system
(3) editor integration, be it Emacs or Sublime or VSCode
Hey! Don't gender the dead.
You'll hurt their feelings
How about a language called CUNT. It's not anyone's name. So it's not sexist.
Comment removed based on user account deletion
We like Ada Lovelace !
Almost all programming languages that end up in common use become messy as features and adjustments based on practical experience and industry changes are added over time. The originators cannot anticipate all future needs and trends/fads*.
C# used to be relatively simple because it applied to hard lessons of Java, but has grown screwier over time to keep up with the Jones' (along with Java).
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. (Reflecting on nullable types is a common need when you want to automate class/schema mapping between layers, per DRY.)
* Some fad-driven features are just plain stupid. Some fads should be ignored, and language builders often lack the discipline to wait out fad storms.
Table-ized A.I.
We've already got a better Octave - it's called python, with numpy/scipy packages.
the mathematical prowess of MatLab
Like arrays starting at index 1?
sudo rm -r -f --no-preserve-root /
Yeah, I'll request a Dildo object from the Dildo object factory to create a Dildo instance that is to be sent to your butt(self) via the buttfuck iterator for this one.
Usually, when a headline asks a question like "Is x the next big thing?" Usually, the answer is no.
Now there is a new language ever other month and its just at sub or super set of some other language. Quit tweaking other languages and give them new names. Sit down, THINK and then design. Come up with something truly new and interesting!
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?
I use Python much more than C or C++, but seriously. The complication between Python 2.x and 3.x compatibility is immense. And then there are the third-party libraries that frequently are no platform independent. To try to address this nightmare, the concept of Python virtual environments has been created as a hacky workaround.
For these reasons, I cannot agree with you that Python evades the clusterfuck designation.
$5 / month hosted VPS on linux = awesome!
"Julia is the last name of a famous mathematician. And he was a man."
And the family name of Gaius Julius Caesar.
Because I always aim for second best.
I have a copy of Romeo and Juliet in Japanese and her name is not Julia in it.
Indeed, looks like "Romio to Djurietto"
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
I thought the point of Ruby was that, like Python, it was easy enough for bootcamp coders, but unlike Python was actually object oriented. I didn't know it had "dynamism". Interesting.
Oh, and I really like how in Julia how instead of ending a function with a closing brace, or just white space, you type out "end". Wow, that's really useful, especially for people working in non-English countries where something like a closing brace could be confusing.
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!
Don't forget to scrub the Dildo first of bugs.
Yes, Python is the current replacement.
However, Python is just not an array programming language by design.
https://github.com/malmaud/Ten...
Julia is Python + Numpy + Numba, without GIL, with metaprogramming features to make the code more symbolic than is possible with Python.
It's community also tries to work along side Python, rather than compete. There are packages to call both ways.
If you write only occasional linear algebra code, Julia is not worth the effort. But for those who write a lot more math code, it could be.
And we can continue, in most latin languages (and slavic and several others), she tends to be called after the Italian "Giulietta" (and local transcriptions there of).
(Which is again different than Juliett - and would even make sense in the context given that's how is the language where the action is supposed to take place.
Note that these will also tend to pronounce her lover "Romeo", again closer to Italian)
So no, not the whole planet is calling them by the Shakespear's original english.
Germans just use whatever is the local variant of Juliett, for ease of pronunciation.
As German is a language regularily refered in the science (Mad scientist cliché) and computer (Blinkenlight !) lore, Romeo und Julia, could be fitting for computing language pairs.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
It's like the story of Johann and Margaret, you know, those two kids who got abandoned in the forest and tried to follow breadcrumbs to get home.
http://www.zverovich.net/2016/...
Like most of the comments here, not impressed... See the comments under the article for rebuttals. They have some good points, but I think this will only suit a niche user if it survives in the longer run.
Comment removed based on user account deletion
Cult members make similar observations before committing mass suicide.
What draws developers into Python is the same as what draws people into anything fringe, wizardry.
Okay so I took a look... at the dependency graph, at least freebsd's take. It depends on pcre AND perl AND python. And llvm, of course. Its "dependency manager" drags in even more crap. expat (does xml), libxml2 (does xml), libyaml (wait wasn't xml enough?), and so on, and so forth. I don't want a ton of required dependencies just to have something that figures out all those dependencies.
Maybe I'm old-fashioned, but I expect languages to not also require me to install enough libraries to fill up the room, just so the language can be arsed to allow me to do anything at all. And what sense does a programming language make that relies on several others to do its job for it?
Rust fails the "sensible bootstrap" test, but so does julia. And, so does this here crystal.
...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.
How do you know how Julia identified as..?
CAP === 'munched'
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.
They could have just made a jit for octave and everyone involved would be a lot happier
Scheme
If you squint hard enough Javascript is Scheme minus cps.
I don't think it's even that. Julia 1.0 takes more than 5s to load the plot package, for example, which was a show stopper. If i need to wait a few secs for every package i decide to use, every time i use them.... Then I'd rather prototype code with python.
No curly braces? Asymmetric 'end' doesn't work for me.
No switch control statements? Seriously?
Garbage collected = ick.
Socket interface was written by mickey mouse. No protocol family? Apparently only works with IP (TCP/UDP only) and domain sockets. To say that Sockets.setopt is lacking is the understatement of the year.
Included function library way too weak to take seriously.
Julia is actually a lot better than I thought it would be. Was expecting typical academic snobbery. Yet it fails to bring anything compelling (to me) to the table. Currently if I wanted to use a garbage collected language would much rather use C#.
Nearly seamless multitasking over an entire network.
https://www.youtube.com/c/BrendaEM
Those Democrats and their silly Stalinesque Gulag fantasies!
I have several Senior Julia Programmer positions open. 10 years hands of Julia experience in a high volume environment required.
Programmers want to be with her.
Other languages want to be like her.
Julia!
I think I've seen this headline "is xx the next big language" 1/2 a dozen times on this site....
The language isn't named after the mathematician, though.
My first thought was Julia from Nineteen Eighty-Four, but that's not the case either. From an interview of one of the creators:
If you look for Python in Julia, you will be disappointed. When I first tried Julia, a few years ago, on a slow machine without an SSD, the plot package, Gadfly, took minute(s) to load.
This was likely due to the JIT. Startup times are not a key factor for its target audience. This is not a typical scripting language. People fire up the interpreter and leave it running all day or all week, as they test snippets in it. It is used like Matlab or like a Jupyter notebook session. Scientific packages in Python take several secs to load as well. On the full dataset, the extra few secs of startup means little when the savings are in orders of magnitude.
But if you are testing on small datasets and starting it up like a scripting language, I can see how you would be disappointed.
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.
Are you asking us Ms. Mash? If so, the answer is NO. The world has plenty of programming and scripting languages already. Just what the world needs: Another language without sufficient support libraries.
Since PHP wasn't mentioned, I'm gonna mention it. PHP is great for prototyping, it already does all of those things, AND generally blows the performance lid off the listed languages. The fact they compared their language to Ruby, which is one of the worst languages ever invented in terms of performance, tells me all I need to know about Julia. Also, it's easy to write poorly performing C++ code since C++ provides ample tools to do that too - aka the Standard library (and don't even start on the disaster known as Boost). It's like everyone's forgotten how OSes are designed and that nearly all computing problems were actually solved in the 1960's.
But garbage like Julia is slowly turning me into a neckbeard where I'm slowly but surely aligning with Linus Torvalds on this nonsense: C or bust. Get off my lawn!
calling c in Julia is just a ccall away
ex:
libcTime = ccall((:clock, "libc"), Int32, ())
I'm actually quite heavy MATLAB user, but I also use python because I don't want to rely on MATLAB alone (plus I do soft. dev. as well). My machine is an i7 quadcore with 16GB of ram and an M.2 SSD (math modelling/quant. bio/genomics/ML). Even in older machines I still had to come to a python package that didn't load in a fraction of a sec (within my domain, so to speak, and plotting is a pretty basic one). So for me julia would be that "want it all" language (free/libre like python, but without the hassle of writing python -coming from MATLAB-).
If I'm trying snippets before writing an algorithm, and every time I load a new package to try different approaches it's going to take a few secs... well, it's just not productive. Like trying to have a nice walk and being stopped every few steps, it's just not nice. This problem didn't exist before (0.6), where the package would precompile and after that, loading it up in a new session was pretty much instantaneous.
julia> else = false
ERROR: syntax: unexpected "else"
That error message should be "Can't assign to a language keyword, you %&#@£!!!"
Generally speaking, NO ONE of the many new languages I have seen in decades give a thing about precise error reporting and human-meaningful explanation of the wrongdoing. Why so much hate???
You could more easily win programmers to your language if they won't need the necronomicon to fathom what's wrong with their code... but NNOOOOO, let's give them hell...
Installed Julia as a result of some earlier Slashdot post. Installed and played with it a bit and didn't get immediately pissed off by anything blatant, that's already good. Looked a bit deeper, found that it has extensible types but does not have methods on types, instead it has signature-based function dispatch. For me, the jury is still out on just how well it works. Otherwise, this one looks really promising.
Like many others, I have been casting around for a great language for casual programming that also extends to full blown production systems and team work if necessary. Python... so close, yet so far. Pathetic performance, stupid whitespace convention, and terrible C interface relegate Python firmly to the "nice try" category for me. Python was my go to language for bash script replacement and quick prototyping until recently, when Go because clearly better. But Julia seems better than Go on balance. All just my opinion of course.
Thanks for the refresher post, I think Julia deserves a closer look for any serious practitioner.
When all you have is a hammer, every problem starts to look like a thumb.
Yet another programming language that promises to do it all.
> Even in older machines I still had to come to a python package that didn't load in a fraction of a sec
Spacy would take a while to load the english model. Pandas + Scikit-learn used to take a few seconds some years ago, without an SSD (~1 sec each now). So did matplotlib. With SSDs and modern hardware though, things got a lot better.
Only some of Julia's packages were heavy. Gadfly was the worst then. When I first looked at it, the slow startup stood out for me as well. But I can tolerate 5 sec for a large package though in an interactive session. I am used to that. Still, I would agree that load times should be their priority.
I haven't followed Julia much in a while. So I can't speak for the performance changes. I tried it when it first came out.
We just want to know.
When all you have is a hammer, every problem starts to look like a thumb.
If we had all just stayed with Pascal, the world would have been nirvana by now!
... when it's presented in an article posted on what must be the shittiest technews website ever. Running slower that the most degraded WordPress installation I've seen or worked with, loading north of 30 external trackers, codesnippets and such.
Un-fucking-believable, that's what.
We suffer more in our imagination than in reality. - Seneca
Thatâ(TM)s what makes one think this is an English language site.
I've been programming for over 30 years and have used switch less than 10 times in that entire time. It's completely pointless IMHO. How Go could inlcude switch but no foreach is totally beyond me. ... Although I sort of like Go.
We suffer more in our imagination than in reality. - Seneca
... with that of Kotlin or TypeScript.
Then I'll consider it viable for a checkout.
And I'm not even joking.
We suffer more in our imagination than in reality. - Seneca
Ummm, does âoelock her upâ ring a bell.
âoeHalf of what I say is meaningless,â - Julia, The Beatles.
Julia on its technical merits is superior, but MGTOWs and self-professed libertarians will kill it out of anxiety it lets women take a single step forward.
In the underlying hardware, the individual elements within a block/vector/1D-array have offsets 0, 1, 2, 3, ... and so on.
C has always aimed to represent the hardware as closely as possible but in a slightly higher-level textual form. That's why it is often described as a high level assembler, which is a very appropriate description. That is its intended niche, not a mistake, so starting arrays at subscript 0 is entirely accurate and matches its intended purpose.
The native language of story is English and the title in English is Romeo and Juliet. Nobody on an English speaking website would ever call it anything different.
Trivially untrue. This is an English language website, I'm a native English speaker and I am calling Shakespeare's Romeo and Julia something different, namely: "Romeo and that Caputlet Tart"
First problem is that C demands byte addressing, so can only address 4 gig with 32 bits. So we move to 64 bit architectures, which almost double the memory requirements of may programs.
Java, for example, can address 32gig with 32 bits, which is plenty for almost all normal applications. That is because it does not need to support the idiotic pattern of running a pointer through a string.
Likewise, larger C and worse C++ programs tend to do a lot of copying of data structures in order to control "ownership". A properly garbage collected language does not require that. And malloc/free is actually a pretty inefficient way to garbage collect.
There are idiocies in other languages which slow them down. For example, UTF-16 Strings in Java and .Net. But that is not fundamental.
With safety turned off, C# can be as efficient as C using a C style. Compilers optimize out array indexing etc.
Your comment is excellent. I don't have any points right now, so just thought I'd thank you. -CNTOAGN
$5 rent-duh-k0d3r problem.
You jest, but that is exactly when I use Python. E.g. for roughing out a prototype to decide if the concept is worth pursuing in a more rigorous form.
I first used python to roll up a quick proof-of-concept for something we were going to write in Java. After two weeks re-implementing in Java and comparing the code, we opted to develop the production version in python instead. I now find it annoying to use languages other than python. Perhaps Julia can cure me?
Python is an evil addictive language which can cause you abandon real programming languages. The dangers of roughing out a prototype (at least for non-time critical applications) is that you may find it difficult to remove the python infection and get stuck working in it. Best not to try it in the first place. Just say NO!
> Java is excellent for floating point computations, as it ditches all that IEEE-754 stuff.
Yeah I'm just going to assume this is a troll.
It just looks like MATLAB to me. Matlab isn't niche. It is quite high and climbing in the tiobe index for whatever that is worth.
refactor the law, its bloated, confusing and unmaintainable.
But ive almost finished my port of the Linux kernel to Rust! Before that is was Go, and before that Java.. When will it stop???!
Have they found a solution to their exponential code-generation problem?
I remember seeing a presentation they did to a group of language professors, and one of their gripes was that they generated all type specialized code, just in case it would be used.
Hi this is Rajeesh from Infosys.
I am seeking a senior architect with 10 years experience of Julia for a position in Antartica. Must have 8 years of experience in Go as well and HTML 6 will be handy as required by the PM of this client. If interested please respond back and I will call you at 5am your time only if meet the requirements.
Take care.
http://saveie6.com/
âoelock her upâ
Is that Finish?
âoelock her upâ
Is that Finish?
No, it's iPhonish.
What draws developers into Python is the same as what draws people into anything fringe
As one of the most widely used high-level languages today, python can hardly be described as "fringe." Liking it is another matter, but surviving as a developer without being able to read and tamper with python code?! Only if you work in a very cloistered environment, (or if all that third party python stuff is good enough not to require the occasional hack).
I saw the post for this language last night when there weren't a lot of comments. Then I and spent an hour or so reading the docs. It's really the best language I have seen come out since I started using Python in 2001. The authors have obviously used Python, Perl, C, Java, etc. because it is easy to recognize which parts come from where. From Python, a lot of syntax is taken, which they simplified even more, such as when defining functions, making for loops, etc. Indentation is used, but so is the "end" keyword so you can be more certain that the indentation is not a mistake and is actually ending something. They have incorporated the "last result" concept from Perl ($_ perhaps? I can't remember...), but they only allow its use when directly using the interactive shell. This is great because the concept is really useful when writing/debugging code, but can be a bitch when going back to read it and not knowing what is going on. They also have Perl regular expressions. Julia uses UTF-8 for chars by default, which looks really easy to use. The same is true for parallelism, which also looks easy. It compiles properly to a binary. One can use dynamic typing or static, which is perfect because when sketching out an idea, you don't want to worry about types. But later, when you are worrying about speed and possible bugs, you can type everything. Like with Python, they also have ways to call out to other code, such as Python and C. For a new language, it has a surprisingly large number of modules in its standard library. And of course there are the aforementioned numerical uses that are designed into the language. It looks good enough that I will start trying to write some code with it and see if I can find any reason not to use it. So far, I'm quite blown away.
This morning I came to read the same article to see if anyone here had the same experience. Unfortunately, all I see are people bitching and complaining. From those complaints IT IS OBVIOUS NO ONE EVEN LOOKED AT THE DOCS! I get it, it's cool to bitch about things. And I get it, this is like the 1000th language to come out in the last 20 years and they are all supposed to save us from ourselves. But come on...sometimes good things DO happen. Electric cars are on the roads now and batteries get better every year. New medical advances come everyday. Solar panels are cheap now. Etc. etc. You have to acknowledge those good things, take some happiness from them, and tell everyone about them so they can enjoy it, too.
In sum, the only negative thing I see about this language so far are the comments here, which come from people being negative in general and not any fault of the language itself. Go check it out first and then pass judgement. We can all learn from the comments here by sharing what we find. The rest is useless noise, or worse, misleading.
Cant we all grow up and just go back to using C?
Almost every language that has been tossed out in these posts is written in C, some in C++, including the language in question!
A few, a very few, are written in the ISA's version of assembler.
I see the biggest part of the problem comes from CompSci people trying to get their PHD and needing to do something, hell, anything to complete their dissertations!
C is a tiny language, C is compact, C is lightning fast, and C has saved my bacon more than once in my career.
If you can't write it in C, you shouldn't be writing code, anywhere! Be a plumber! Be an electrician, be an HVAC person, be any of the high paying jobs that this country is crying out for! Use your education, become the owner of any of those types of companies, but please, leave writing code, to those of us who started with assembler, learned C after that and can write any kind of code you want or need, and yes that includes everything.
Hey KID! Yeah you, get the fuck off my lawn!
> Cant we all grow up and just go back to using C?
That is not growing up. That is being plain stupid.
Julia is faster Matlab. Just about everyone who uses MATLAB knows C. These are properly-educated computer scientists. MIT isn't a place for VB6 coders.
Julia is meant for people who think in Math, not instruction sets. If you never had college level math education, you will be unable to see its utility.
The problem isn't that people don't understand C. It is that YOU don't understand WHY no one who uses Matlab is eager to write in C, even when it is bloody slow. It is too distracting from the problem at hand. You think they are complicating things for the sake of a PhD. No genius. They are desperately trying to get done. They work all day with high-dimensional matrices. C is a pain in the neck to code that.
Do you have a 4 year college degree? Did that have any significant math in it? Do you read CS research papers? If not, you are perhaps just an overpaid code monkey who solves fairly repetitive and dumb problems. You won't get this.
The closest C++ has to Julia is Armadillo.
http://arma.sourceforge.net/
Even that is not pitched for research, but to migrate Matlab code, once the algorithm has been developed.
Julia removes the need for this migration.
You might want to look through this http://www.gnu.org/software/gs...
Hey KID! Yeah you, get the fuck off my lawn!
Or just run this simple google search: https://www.google.com/search?...
Hey KID! Yeah you, get the fuck off my lawn!
And as opposed to your snide, and rude remarks... Yes I have a 4 year degree, and it had lots of math. So please either reply objectively, or please don't reply, at all.
Hey KID! Yeah you, get the fuck off my lawn!
Yeah.... Julia is such a slut.
Hey it's not right to Slut Shame Julia!
It's all those those who used her in the past 6 years who are the real bastards! Stop shaming the victim.... go after the real creeps like the MIT professor and his horde.
> Yes I have a 4 year degree, and it had lots of math.
Good for you. And yet you don't understand the value of an array programming language?
> And as opposed to your snide, and rude remarks
Oh, that stings?
> > If you can't write it in C, you shouldn't be writing code, anywhere! Be a plumber! Be an electrician, be an HVAC person, be any of the high paying jobs that this country is crying out for!
Does the above sound intelligent to you? I just replied in kind.
> leave writing code, to those of us who started with assembler, learned C after that and can write any kind of code you want or need, and yes that includes everything.
Your assembler and C experience won't help you learn Haskell faster. This is like Sheldon on Big Bang Theory arguing that he has a better opinion on Biology or Medicine since he knows Physics, since that is eventually underneath it all. Doesn't work that way.
In CS research departments, they have a few low-level coders around. These are implementers, not researchers.
> Or just run this simple google search: https://www.google.com/search?... [google.com]
We can all do Google searches. How many mathematicians do you know today who do modern math in C?
All your results are for rudimentary C 101 tutorials for programming newbies explaining what a for loop is. These are basic arithmetic level tutorials.
That is not where math research is today.
> http://www.gnu.org/software/gs...
GSL gives you some very useful algorithms, but it won't help you write clean math code. You want to write code as close to the symbolic stuff, not clutter it with imperative loops, memory allocations, deallocations and casts.
Compare some Julia code vs. gsl_vector code side by side.
Statisticians choose R over C for very good reasons. Web devs use PHP/Ruby over C for very good reasons. CS researchers and Engineers choose Matlab over C for very good reasons. Kernel/Programming language/Core library designers choose C/C++ for very good reasons. There is no silver bullet.
Just about everything is an improvement over C in terms of productivity and safety. All too often, people mistake sunk cost bias for rational choice. Low-level programming choice is often mistaken for intelligence.
Oh come on now, calling a 6 year old a slut is going overboard.
Not if you're a Muslim. That's just SOP.
Cheezburger add-ons aer abailable from awl gud kittehs.
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)
The identifier at the start of his code block.
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)
I've seen faster COBOL.
Java is ugly, horrible to write in, bloated and incredibly slow. Threading is a pain, indeed everything is a pain. It's not pure OO and it has a crappy format for databases.
It's so bad, performance frameworks moved off it.
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)
Octave isn't really aimed at computer scientists, rather scientists. Matlab is aimed at scientists and engineers. OK, somewhat of a simplification, but Computer Science is not what springs to mind when someone says Octave.
Of course scientists also use R, Python, C++, and Fortran, depending on what they do, etc. And occasionally Java, Scala, Julia, and a few others.
Bless people after they sneeze, and throw salt over your shoulder. You must conform to social norms or you will cease to exist.
Except that very conformity that you seek is what destroys your individuality.
As a 25 year veteran of the business software industry, I recommend you don't obsess about tools. And clearly identify when a tool has limitations or disadvantages and reject emotional appeals such as fanboi-ism or bandwagon.
I like Julia, I went through a period of enthusiasm for it a few years ago, and I'm going through another now. But.
The packages, which are necessary for any serious work, are almost all below v. 1. They are plagued by constant bugs and quirks: e.g. Flux only supports the GPU if Julia is compiled from scratch, while Distributions only works if you downloaded binaries. There are half a dozen different graphics packages, so its not clear you should invest your time learning any of them.
But I'm still optimistic about its chances in the future, after a few more years of shakeout.
`Perche non reggi tu, o sacra fame de l'oro,l'appetito de' mortali?'
If you squint hard enough, everything is assembler in the end.
But it's hard doing useful things when you're squinting all the time.
C is just mutilated B anyway. B was also lightning fast, and it was much smaller than C at that (no need to mess with types - you deal with machine words, and context defines whether it's a number or a pointer etc). Why not go back to that?
> B was also lightning fast
Actually, IIRC Ritchie said in his History of C that part of his motivation was to overcome the slowness of B when they moved to the PDP-11 from the PDP-7. He wanted it to be "fast enough to compete with assembly."
Really. What language is pure OO in your estimation, and why is that good? And what is this crappy Java database format you're talking about?
Took a look at Julia. Seems like a really nice language. BUT... every time I see a new language I can't help but think every new language is doomed to reinvent Lisp, but badly. Other than the typical hatred of prefix notation, what does Julia hope to give me over Lisp or Scheme?
All our engineers agree, Julia is a terrible language and it wont be used for anything at the company.
That pretty much kils the language in my mind, when engineers don't want to use it.