0:00
36:07
36:07

Best programming language for science in 2024

Education

Consider supporting the channel: https://www.youtube.com/channel/UCUanJlIm1l3UpM-OqpN5JQQ/join Recommended textbooks: Quantum mechanics: https://amzn.to/3Ar5dbn or https://amzn.to/3ckXkfL Statistical mechanics: https://amzn.to/3QYcere or https://amzn.to/3cmZb3u Quantum information: https://amzn.to/3Kpjt96 or https://amzn.to/3KpjAl2 My publication list: https://scholar.google.com/citations?user=V2UZXZMAAAAJ&hl=en Instagram: https://www.instagram.com/stat.mech.in.action/ TikTok: https://www.tiktok.com/@stat.mech.in.action?lang=en Twitter: https://twitter.com/JonathonRiddell Discord: https://discord.gg/QK9HhuXBEF 0:00 Intro 4:32 criteria 11:00 Fortran 17:29 C 19:05 C++ 23:10 Julia 27:12 Python 29:44 Matlab 31:20 Mathematica

ADVERTISEMENT

Comments 45

Sign in to join the conversation

Sign in
M
marguerite_robin 3 days, 11 hours ago

there is OOP in fortran though, and you can define new types and whatnot.

E
ethan.santos 4 months, 3 weeks ago

you didn't add R.

A
abeerbath407 5 months, 4 weeks ago

18:20 er, Fortran and C are imperative languages not Functional Programming (FP) languages!! i agree C is a difficult language to learn to code well. Same for most modern languages for that matter. FP languages include Haskell (purely functional, first-class functions, lazy so infinitely sized data structures can be used), OCaml/F#, R (pure FP, lazy), Julia (influenced by FP, not pure), Scala (big data, genomics), Erlangen (astronomy, concurrency).

L
leonard_bender 5 months, 4 weeks ago

regarding Fortran not having OOP, well neither does Haskell and other functional programming languages and you’d hardly call them lacking in terms of abstraction. Haskell is one of the most compositionally expressive and extensible languages ever devised.

A
anastasiegermain638 5 months, 4 weeks ago

apparently a lot of large climate models GCMs/ESMs are still written in Fortran due to legacy code and raw speed.

D
dalton_gentry 8 months ago

i know this will probably show my ignorance but im curious why FreeBASIC never gets mentioned in these talks. It can handle math-heavy stuff just fine, compiles to fast native code, and can call C libraries like BLAS or LAPACK when needed. Feels like an easier way to get C-level speed without all the setup... so why not consider it?

B
brenda.padilla 9 months, 1 week ago

I also have background in HPC (familiar with the old tropes, e.g. C, Fortran, python, MATLAB, etc) and I use Julia professionally on an engineering field. I see that there are a few statements that were made that were not fully informed. * I disagree with the statement :00. Julia can be on par with C/C++/Fortran when performance matters. * Since you admitted that you haven't personally used Julia :14, I will correct a few incorrect statements. Julia does not do traditional JIT compilation. Julia compiles "just ahead of time", which means it defers compilation to the last moment and then it compiles the code as a "normal" C compiler would using LLVM as the backend. * Also, wrongly stated that "compilation optimizations are missing" or "not as fast" :40 ... this is not true. The annoying part of julia is this "deferred compilation" which creates latency at the beginning, which is why people probably complain about plotting. Other than this, thanks for for this review. I would like to add a quote "everything that is fast in python, is not python" , which is basically what you said between the lines. My personal recommendation differs from yours. At this point for high performance I would recommend Julia (at work we compared several high performance algorithms that were in C++ and are equally fast in Julia, so now we are trying to use Julia instead), for something in the middle I would recommend Julia and for the easiest path I agree that python it is still the easiest ... but Julia is becoming easier, so maybe in a couple of years.

J
josué_costela 9 months, 1 week ago

Need an update

L
leon.mohaupt 9 months, 3 weeks ago

I only use Fortran

C
christopher_thompson 10 months ago

C# is also a contender. Linking to Intel MKL is a breeze, package management top-notch and IDE support unbeatable.

J
jenniferfoley328 10 months, 1 week ago

Julia

R
reynaldo_godínez 11 months, 1 week ago

I realize this video is over a year old, but I think the plotting issues you heard about from julia were referring to the latency problem, or the "time to first plot". If it is the first time using a plotting library in a given session of a julia REPL, it takes a *noticeable(20ish seconds) amount of time to open the plot the first time as it is running the JIT for the plotting function. Later calls in the same session will be lightning quick, but the first time is a little annoying. It has gotten faster over time, but there is still a lag before the first plot is drawn. There are packages that have been made that essentially save a JIT compiled set of commonly used functions like plotters that remove this issue, but it is definitely a work around as opposed to the simplicity of just calling a plot without doing anything special. Also to make julia super fast requires a slight amount of awareness about allocations and avoiding unnecessary type ambiguities, otherwise julia is a very simple language to pick up and just use.

E
elaine_fry 11 months, 1 week ago

I use C for data generation and anaconda python for processing. One thing I really hate about python (apart from being super confusing) is trying to parse simulation trajectories, there is nothing that i'm aware of that works like fscanf does. Implementing cblas and fftw routines in C is difficult to do at first, but after you've done it once you can just copy and paste from one application to another and it's easy.

A
andrew_montgomery 11 months, 1 week ago

Yeah. I'm a die hard Julia fan. If you are going to use Python, you should just use Julia. If something isn't supported, which is super rare at this point, you can always call Python functions and libraries. For symbolic stuff, I fall back on Sage, but Julia is coming along in that field as well.

J
james_west 11 months, 3 weeks ago

Rust is Cool. Especially the Cargo, can manage the packages well.

A
andrea_hodges 1 year, 1 month ago

Thanks for this excellent video! I’m a bachelor civil engineering student, and this was very helpful!

lakshmiatlas43
lakshmiatlas43 1 year, 2 months ago

Wild you say Julia isn’t anywhere near as fast as c/cpp/fortran when it regularly competes with them… if it doesn’t it means it was optimized and/or a skill issue..

D
diane_thompson 1 year, 2 months ago

Where is R?

K
kristopherhart294 1 year, 3 months ago

Where is R and SPSS?

J
jamesrune24 1 year, 3 months ago

I use Mathematica for plotting. There might be other options, but I find that nothing beats it in its capabilities and how common-sensical the syntax is when generating complex plots. BTW, I work inindustry and use Mathematica....