[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]
2023-11: Warosu is now out of extended maintenance.

/sci/ - Science & Math


View post   

File: 62 KB, 400x260, julia-logo-main.png [View same] [iqdb] [saucenao] [google]
9988344 No.9988344 [Reply] [Original]

The future of scientific and mathematical programming is here.

>> No.9988349

>>>/g/

>> No.9988460

>>9988344
That's not R

>> No.9988517

Did they rename C++?

>> No.9988610

>>9988344

This cunt of a language is being pushed by MIT. Convince me I should learn her.

>> No.9988615

>>9988344
Julia is interesting, but I'm not convinced it's worth switching away from NumPy for.

>> No.9988623

>>9988344
Redpill me on julia

>> No.9988637
File: 161 KB, 320x224, 8e66714966d71edb2a08d2ee898b8cae01ffa1b7_hq.gif [View same] [iqdb] [saucenao] [google]
9988637

>>9988344
i almost learned this
physics professor recommended it as well
i kind of want to
i want to know more

>> No.9988642
File: 337 KB, 597x720, 34.png [View same] [iqdb] [saucenao] [google]
9988642

>Julia arrays are 1-indexed.

NOPE
DROPPED
HIDDEN
REPORTED
CALLED THE POLICE

>> No.9988647

>>9988642
AAGGGHHH, why THE FUCK do languages try to do this SHIT?!

>> No.9988654

>>9988642

Not even python sunk that low. Normie scum begone from my field.

>> No.9988845

>>9988642
There's nothing wrong with this. It makes more intuitive sense anyway

>> No.9988870
File: 50 KB, 700x606, animeshrug.jpg [View same] [iqdb] [saucenao] [google]
9988870

>>9988642
>>9988647
>>9988654
OCD?

>> No.9988906

>>9988845
>>9988870
Index at 2 while you're at it.

>> No.9989035

>>9988845
>There's nothing wrong with this. It makes more intuitive sense anyway
It's intuitive for simple cases, but the moment you try and do anything complicated with indices you end up with a bunch of expressions like "foo[(bar-1)^(2-1)+1]", and no-one wants to deal with that.

>> No.9989059

>>9988845
>There's nothing wrong with this.

Yes it is, If you don't have brain damage and consider zero to be a natural number.

>> No.9989064

>>9988845
>There's nothing wrong with this.
Yes there is.
https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html

>> No.9989065

>>9989064
Based Dijkstra

>> No.9989070

>>9988654
Why does everyone here shit talk python?

>> No.9989085

>>9988642
Really? Fuck this shit.

>> No.9989130
File: 104 KB, 640x605, 50b0036ffdf601727016939a7da909ba.jpg [View same] [iqdb] [saucenao] [google]
9989130

>>9988642
What a rebel.

>> No.9989251

Is it stable yet?

>> No.9989260

>>9989064
If you've ever actually carefully read that letter, his only argument for 0 based indexing is "I think it looks cleaner". It's just an aesthetics argument.

>> No.9989272

>>9989260
>It's just an aesthetics argument.
Of course it is. But for the kinds of problems programmers often deal with, one approach tends to lead to better looking solutions than the other.

>> No.9989330

>>9989272
I pointed that out because so much of the time people bring that letter up as though it says something more, usually paired with arguments about pointer math or being closer to hardware reality or something. Aesthetics IS a valid argument but it's only one parameter and shouldn't be the only one in consideration.

>> No.9989958

>>9989035
>do anything complicated with indices
>expressions like "foo[(bar-1)^(2-1)+1]"
Okay. When are you going to display something complicated to prove your point?

>>9989064
>The above has been triggered by a recent incident, when, in an emotional outburst, one of my mathematical colleagues at the University —not a computing scientist— accused a number of younger computing scientists of "pedantry" because —as they do by habit— they started numbering at zero.

WEW LAD

>> No.9989961

>>9989070
they are indentlets

>> No.9990088

>>9988344
I love python indexes and lists and whatever. I barely know how to code and I managed to hack together things that actually work just by understanding how to use lists and arrays etc in python.

>> No.9990105

>>9989260
>It's just an aesthetics argument.
And? You think aesthetics and readability isn't important?

>> No.9990112

>>9988642
This debate was settled long ago in favor of zero-indexing. Why the FUCK do new languages persist in ignoring this and going down the retarded Matlab route?

>> No.9990283

>>9988349
This applies to us to retard.

>> No.9990288

>>9988517
yes and no. I think there are certain strengths of Julia that give it a more \sci\ feel but there are also other things that need to be better fleshed out.

>> No.9990293
File: 199 KB, 660x780, 1518666153723.gif [View same] [iqdb] [saucenao] [google]
9990293

>>9988637
Same

>> No.9990344

>>9990112
Julia is meant to appeal to matlab babbies to switch them over from their proprietary bullshit to a superior python-like open source language

>> No.9990410

>>9990000
>>9999999

>> No.9990435

>>9988349
>scientific programming isn't important
Freshman detected

>> No.9990445

>>9989064
Based as always

>> No.9990855
File: 150 KB, 1024x1024, 1535541274794.jpg [View same] [iqdb] [saucenao] [google]
9990855

I've been working on a side project in Julia for the past month.

This is the future of scientific computing for sure. In python, performance was always something in the back of your mind, and figuring out the best ways to offload to numpy or C code became an extra design concern that really slowed things down. Keeping everything in one language reduces a significant cognitive load. Also you rarely have to worry about performance concerns, as Julia is so fucking fast.

The biggest areas to look forward to are in terms of the metaprogramming capabilities and the fact that the JIT is extensible. Automatic differentiation can be built into the language itself, with relatively little code. This is really incredible. To put this in perspective, Google has an entire team of engineers working on modifying the Swift compiler to get automatic differentiation. An insane amount of effort. whereas in Julia, this exact feature can be implemented by a hobbyist in a week or two.

>> No.9990861

>>9990435
>>scientific programming isn't important
Who are you quoting?

>> No.9990880

>>9990855
>not WANTING to use offload to numpy because numpy is amazing
>"automatic differentiation"
Nigger I've got tensorflow, theano etc.

>> No.9990892
File: 63 KB, 644x800, soyboy.jpg [View same] [iqdb] [saucenao] [google]
9990892

>>9990880
>numpy is amazing

>> No.9990897

>>9990892
>le epic basedboy meme
Haha, mind if I save it and share it on my facebook meme-page :-)?

>> No.9990928

About to start an HPC project. Should I use C or Julia? I've tried Julia before but it was utterly broken because it didn't like my python installation.

>> No.9990963

>>9990928
If you have to ask that your project has already failed.

Also, the right answer is probably Fortran.

>> No.9990979

>>9988845
Burns cycles

>> No.9991002

>>9990963
It's going to be pretty fucking hard to write GPU accelerated fortran m8.

>> No.9991041

>>9991002
no harder than C bro

>> No.9991066

>>9988344
Python haves everything you could ever need, even if Julia was slighty faster than Py, the possibility of combining numerical computation with the huge number of python libraries around is why Python is the king

>> No.9991074

>>9991041
CUDA is a dialect of C.

>> No.9991077

>>9991066
>slightly faster
More like 250x faster.

>> No.9991100

>>9991074
Then why use Julia? Because it will interface with C and CUDA? Fortran already does that and does it better.

>> No.9991177

>>9991100
Julia can transpile to CUDA and it's trivial to port C to CUDA.

>> No.9991191

>>9991077
Source on that claim famalam? You've got my attention.

>> No.9991273

>>9991191
It's a well known fact that python is slow as shit and typically around 250x slower than C. Julia has similar performance to C.

>> No.9991664

>>9991273
>It's a well known fact that python is slow as shit
Not really. Python itself is slow, but numerical work in python is generally done using libraries like NumPy, which are very fast.

>Julia has similar performance to C.
Bullshit.

>> No.9992070

>>9991664
Everything in Julia is generic and it has this really cool type autospecialization system that lets it compile down to native code using LLVM despite having scripting language-like syntax.

>> No.9992241

>>9988344
>emoji programming

>> No.9992244

>>9989070
Because python is easy and therefore hurts the feelings of true men who only program in assembly

>> No.9992246

>>9991273
>python is slow as shit and typically around 250x slower than C
Yeah that's why actual computation is handled by compiled C code you dumb fuck, python just lets you tell it what you want it to do.

>> No.9992265

Half of the Julia “ecosystem” is PyCall wrappers. Which means instead of simplifying things you end up with a 3-language solution.

Also, plotting is fucked right now.

>> No.9992275

>>9989260
Did you write your thesis in comic sans?

>> No.9992302

>>9990105
See:
>>9989330

>> No.9992360
File: 64 KB, 850x497, benchmark.png [View same] [iqdb] [saucenao] [google]
9992360

>>9991664
>>9992246
>Yeah that's why actual computation is handled by compiled C code you dumb fuck, python just lets you tell it what you want it to do.

you guys are clearly script kiddos.

The entire reason why Julia is so exciting is because it removes the "developer" vs "user" divide which was ever persistence in the scientific computing community. "Users" were reliant on skilled programmers to actually write all of the C/numpy code that they wanted to use.

Julia enables en users to write high performance code in scripting language syntax. the "users" don't have to sit around and wait, if you need high performance code, you can do it yourself.

This is why the Julia ecosystem is expanding so rapidly. All of the packages are written in Julia, so everyone can contribute.

>>9991664
>>Julia has similar performance to C.
>Bullshit.
It gets compiled to LLVM IR. This is precisely what happens if you use the clang compiler. The only situations where Julia might be slower is if you really abuse dynamic typing, but this can easily be avoided if you properly use dynamic dispatch.

In fact, Julia can theoretically be faster than C/C++, as it has JIT compilation for optimization.

>> No.9992369

>>9992360
>Julia can theoretically be faster than C/C++, as it has JIT compilation for optimization

That and the standard library has a lot of great numerical optimizations. Everything has been built with pure performance in mind

>> No.9992456

>>9992360
>All of the packages are written in Julia
Blatant lie

>> No.9992461

>>9988460
lmao kys

>> No.9992486

>>9992360
why is octave so slow

>> No.9992496
File: 6 KB, 250x250, 1511698216057.jpg [View same] [iqdb] [saucenao] [google]
9992496

>>9992360
>JIT is faster than C
yeah I'll believe it when I see it

>> No.9992497

>>9988344
>femenim nam
Already shitty