Julia was the best thing I could use in my workflow. Absolute fast as C and easy to use for those who have R and Python background. It has its own "tidyverse" kind of package, really easy to do functional programming as in R.
Go .. most practical today Rust .. evolution of system language we needed Julia .. beast of tommorow - if julia would have rich ecosystem like python it would be totally awesome language.
I started looking at Julia as a PhD student a number of years ago, precisely because the two-language problem was limiting for the kind of machine learning I was doing. It wasn't very mature back then unfortunately so I had to rewrite some crucial parts of my model in C instead and interface that with my Matlab code. I'm glad to see Julia has come some way since then. I remember being quite excited about it being just as simple as Matlab for mathematical modelling, but it could be compiled down to be as fast as a systems-level language.
I find this true. So far the only thing that I see that C is missing that C++ has are generics and a library of collections. The time it takes to learn C well and get used to work with its limitations pays off far better than the time it takes to understand the numerous and intricate features of C++
@@HermanWillems This is no mistake and there is nothing wrong with it. It is just a way of organizing code. It is the same as if you put struct and functions which work with this struct to the same compilation unit, which you probably do in C. Btw. C++ does not force you using classes (unlike Java or C#). You cas still use structs and functions if you want.
Half the people who say that are either too old or out of touch to know about modern C++, and the other half are just people echoing an opinion they picked up online.
If Fortan is good for math, then Julia should be good for data processing. I'm not sure how it compares to r for statistics tasks like regression, but it should work. If Go can replace SQL, then it that would be good to know both Julia and Go with Rust being more for developers.
Also if Julia and go can replace high level stuff in C++ then there may be room for a Super language to replace python, r and sql, that are closer to accounting and data entry.
@@HermanWillemsI haven’t seen even one scientific language without a GC.Rust might be a good one to look into.Source:- www.techbyn.com/why-scientists-are-turning-to-rust/
@@awwastor For researchers, it's so satisfying to see your code look exactly like your paper. Feels very clean. Of course, multiple dispatch, code reuse and speed are convincing arguments as well :)
@@halneufmille I didn’t think about that. My knowledge of math is pretty limited, but don’t the Greek letters have special meanings? Does Julia force you to respect those meanings, or do you have to respect them yourself?
@@awwastor Each scientific domain (or even each individual paper) uses the same greek letters to mean very different things. In julia, some have reserved meaning: pi or π is a function that computes π = 3.14159... and I is the identity matrix. Otherwise, you use greek letters the same way you would latin, other languages or emojis. (e.g. you can write Ю = Я = 😹=10).
What a great overview of modern languages and their respective use cases! This is one of the very few presentations that has aged well. For my use case (web servers), I have found Go to be the most well-balanced language design I have ever used. It is simple and performant. It's no wonder, since it was made by none other than Ken Thompson and Rob Pike. For fun during my personal time, I have found Julia to be a fantastic language to explore.
That go sample has no concurrency, Idk why he said it did but defere has no concurrently build in. The "go" operator is used for concurrency, defer just means "run before return"
Rust can't rust, it's the new contender in the industry and it's gaining ground realy fast. If you worked with cargo and rocket you will know what im talking about.
@@MarkusBurrer Rust is great for backend(Actix),good for OS development (Redox),good for developing modules for other languages(Writing python modules),and also for game dev(bevy) but Rust for machine learning won’t be a right choice.
@@MarkusBurrer When it comes down to ML you want to focus more on problem/project than on the programming language. That's what python allows you to do so.Rust has a steep learning curve,if I had been a scientist I won't choos rust,why ?,because I don't want to spend my time learning about ownership, borrowing etc instead I could be more productive on Python or Julia.
@@siddharthupadhyay6347 a few months ago I would agree, but meanwhile I have a different opinion. The Borrow Checker is nothing you have to fear if you have experience with functional programming. You only have a "steep learning curve" if you only know imperative or object-oriented programming. I would go even further and say you can be more productive with Rust if you climbed the hill learning Rust because you are forced by the compiler to write better code and the result is much faster.
~10 min it shouldve been your supervisor that got sacked; here you have a team of efficiency hounds ready to hybridize all your work, he 's so content on the current clients that doesn't look forward for the companies next clients that need intensive C++ and older source code that can be translated as a service to itself. Whether the biz actually remains a client;.. certainly periodic maintenance reference. man. empathiess. am interested in Julia and Rust.
I agree with you all.But I think every language here has a purpose, they fit exactly for what they were written for.I am unable to find a place for Nim to fit.
It seems as if this is not a language problem, it's a compiler problem. Take the people who wrote the Rust compiler, tell them to apply those concepts to a new C++ compiler and you would probably achieve the same result. Tell them to apply those concepts and create a Pascal compiler and you might create the same result. It's not necessary to invent a new tool, evolve the shortcomings of the tool we already have.
I would argue Kotlin is a disruptive language. It was created to fix all the problems in Java and provide a language that's easy to use, less verbose as possible, and cross-platform. Kotlin is the reason Java has been in a big decline in the past few years. It's also happens to be taking over the android market.
No problem with that. In the last minutes of the video there is a short ansver to one of the questions that there are some languages in the "mobile" space without being called by names. I would guess those are Kotlin and Swift.
I’m not entirely sure Julia has captured much from R and Python? And if you need speed it’s not that hard to write. C++ extension (especially with rcpp in R). I’d like to use it but I’m interested in reality not fads. Does it give you more job opportunities? It’s been 5 years….
Very interesting! So if I want to get a job right now, I should learn Go, for a soon to be hired, it should be Rust and for future jobs, Julia will be the language to learn?
It depends on what type of job you want. Rust is suited for lower level applications like embedded software while Julia is better for machine learning applications with big datasets. If you want a job NOW, Java, javascript, C, and Python are the languages you should be learning.
well, these new Programming languages has certain advantages over the older one's so there's a reason why they are popular, unlike the previous popular languages like Ruby
For getting a job you should learn Java or Javascript. But dont stop there and look at these languages too. Anyway you will discover that programming is more or less same in many languages and that you will actually learn only things you daily use.
Hello, I want to ask you something When you display list of Github most star language, where is Node.js? Just curious. Hehe. Don't bully me. I was about to learn Go and Julia. I didn't know there was Rust. I actually have seen Rust being mentioned by Ryan Dahl (creator of NodeJS) when he talk about his 10 mistakes when creating NodeJS, but I didn't have any idea what Rust are. Great explanation and comparison anyway. Thanks.
I definitely agree about Go and Rust, but I really do not see how Julia is disruptive. I have a background in Big Data/ML and the speaker obviously does not. Julia is/was clearly a hype and my guess is that the speaker just followed his gut feeling to label it as disruptive. Instead of making judgements "based on the number we're looking at" (which numbers?), it would have been more helpful and transparent to provide some quantification for the "four criteria" and definition of "adoption rate". Anyways, thanks for sharing the video!
Neither Rust, Julia or Go is sufficient improvement over prior languages to dislodge them. The central problem of software development today is the high number of errors that result due to human error. None of these languages make it significantly easier, hence the continued efforts to develop new languages that actually move the needle on overall lifecycle costs.
As someone who has written rust I would disagree. Rust catches a lot of issues at compile time that no other language will catch. It is also a slower language to write and not a rapid prototyping language, which I would say is good, because it makes you think through what you are doing. Where as c# is a much faster language to write, but I always find i have more memory/logic/concurrency issues. I agree that logic errors are still a problem, but I think rust helps to some degree.
Faster than C++. Rust doesn't yet have the equivalent to C++'s placement new. So comments of Rust being faster than C++ must be comparing a well written Rust program, with a badly written C++ program. I have seen this type of assertion being made about Java vs C++ performance, where a Java program was claimed to be faster than the C++ equivalent. However, after it was pointed out that Java programs run on top of a JVM, which is actually a program written in C/C++ in the first place, the argument was put to bed. I can assure you, C/C++ will be at the top of the performance tree, with Fortran.
You should take a look at the "benchmarksgame" and "programming-language-benchmarks" pages (I can`t put the actual urls here because RUclips deletes messages with links). These benchmarks test different implementations of the specific algorithm that work best/worst in the respective languages. If you take a look at the "programming-language-benchmarks" page you can see how Rust compares to C/C++. The way that I interpret their results is that C++ is generally a bit slower than Rust, which is a bit slower than C. The "Energy Efficiency across Programming Languages" paper from 2017 comes to the same conclusion, but their benchmarks could be a bit outdated by now. But in general the speed differences are really not that large, when you compare them to all the other languages that exist.
19:28 GO
26:50 Rust
36:44 Julia
Thanks
Thanks
Thank you....
thanks
Julia was the best thing I could use in my workflow. Absolute fast as C and easy to use for those who have R and Python background. It has its own "tidyverse" kind of package, really easy to do functional programming as in R.
Go .. most practical today
Rust .. evolution of system language we needed
Julia .. beast of tommorow - if julia would have rich ecosystem like python it would be totally awesome language.
Agree
Doesn't it have pythons ecosystem
But Julia doesn't run that fast
I just use PyCall when I need Python packages in my Julia project.
Lufen Martofilia myself .
Rust and Julia for me. Rust for Systems Programming while Julia for Data Science
I started looking at Julia as a PhD student a number of years ago, precisely because the two-language problem was limiting for the kind of machine learning I was doing. It wasn't very mature back then unfortunately so I had to rewrite some crucial parts of my model in C instead and interface that with my Matlab code. I'm glad to see Julia has come some way since then. I remember being quite excited about it being just as simple as Matlab for mathematical modelling, but it could be compiled down to be as fast as a systems-level language.
I'm currently learning Rust and the more I learn the more I love it.
#metoo
C++ is a mechanism for making C bugs harder to find and fix.
this is a myth
I find this true. So far the only thing that I see that C is missing that C++ has are generics and a library of collections. The time it takes to learn C well and get used to work with its limitations pays off far better than the time it takes to understand the numerous and intricate features of C++
@@vladimirkraus1438 But classes where a mistake. It combines State + Logic in one entity. Rust and C don't do that. Rust has Structs + Traits.
@@HermanWillems This is no mistake and there is nothing wrong with it. It is just a way of organizing code. It is the same as if you put struct and functions which work with this struct to the same compilation unit, which you probably do in C.
Btw. C++ does not force you using classes (unlike Java or C#). You cas still use structs and functions if you want.
Half the people who say that are either too old or out of touch to know about modern C++, and the other half are just people echoing an opinion they picked up online.
Rust the best c/c++ contender.
Go a java contender.
Julia a python, r and Matlab contender.
If Fortan is good for math, then Julia should be good for data processing. I'm not sure how it compares to r for statistics tasks like regression, but it should work. If Go can replace SQL, then it that would be good to know both Julia and Go with Rust being more for developers.
Also if Julia and go can replace high level stuff in C++ then there may be room for a Super language to replace python, r and sql, that are closer to accounting and data entry.
Nice Julia, but is there a scientific language that DOES NOT use a garbage collector ?
@@HermanWillemsI haven’t seen even one scientific language without a GC.Rust might be a good one to look into.Source:- www.techbyn.com/why-scientists-are-turning-to-rust/
and IOTA is using Rust :)
I've had dreams of a programming language that would allow me to use greek letters. Seeing that in Julia was enough to convince me right away.
May I know why?
@@awwastor For researchers, it's so satisfying to see your code look exactly like your paper. Feels very clean. Of course, multiple dispatch, code reuse and speed are convincing arguments as well :)
@@halneufmille I didn’t think about that. My knowledge of math is pretty limited, but don’t the Greek letters have special meanings? Does Julia force you to respect those meanings, or do you have to respect them yourself?
@@awwastor Each scientific domain (or even each individual paper) uses the same greek letters to mean very different things. In julia, some have reserved meaning: pi or π is a function that computes π = 3.14159... and I is the identity matrix. Otherwise, you use greek letters the same way you would latin, other languages or emojis. (e.g. you can write Ю = Я = 😹=10).
@@halneufmille Same
I'm still waiting for Modula-2 to catch on. Fingers crossed!
What a great overview of modern languages and their respective use cases! This is one of the very few presentations that has aged well. For my use case (web servers), I have found Go to be the most well-balanced language design I have ever used. It is simple and performant. It's no wonder, since it was made by none other than Ken Thompson and Rob Pike. For fun during my personal time, I have found Julia to be a fantastic language to explore.
Currently Learning Julia Having a blast Highly recommend
That Julia trivia at 37:00 is not factually accurate but will probably become the popular answer.
Could you please, provide a reference to your statement.
@@valentynstadnytskyi9197
www.infoworld.com/article/2616709/new-julia-language-seeks-to-be-the-c-for-scientists.html?page=2
Julia is great. The speed of C and simplicity of Python
Go and Rust are very interesting options for me.
Great information and clear presentation!
Can't believe I watched the whole thing... But I feel like I understand each of them much better.
That go sample has no concurrency, Idk why he said it did but defere has no concurrently build in.
The "go" operator is used for concurrency, defer just means "run before return"
Rust can't rust, it's the new contender in the industry and it's gaining ground realy fast.
If you worked with cargo and rocket you will know what im talking about.
Julia is future of DATA: climate change, finance, economics, medicine, space, ......
Go for servers, Rust for devices, Julia for intelligence, each has a base market as the best choice and other modern features for free.
Why not Rust for everything?
@@MarkusBurrer Rust is great for backend(Actix),good for OS development (Redox),good for developing modules for other languages(Writing python modules),and also for game dev(bevy) but Rust for machine learning won’t be a right choice.
@@siddharthupadhyay6347 I have no ML experience, so maybe you are right. But why? (Just curious)
@@MarkusBurrer When it comes down to ML you want to focus more on problem/project than on the programming language. That's what python allows you to do so.Rust has a steep learning curve,if I had been a scientist I won't choos rust,why ?,because I don't want to spend my time learning about ownership, borrowing etc instead I could be more productive on Python or Julia.
@@siddharthupadhyay6347 a few months ago I would agree, but meanwhile I have a different opinion. The Borrow Checker is nothing you have to fear if you have experience with functional programming.
You only have a "steep learning curve" if you only know imperative or object-oriented programming.
I would go even further and say you can be more productive with Rust if you climbed the hill learning Rust because you are forced by the compiler to write better code and the result is much faster.
Julia!
At 30:30 his slide says that there's more infrastructure code than application code. This is definitely not true.
Could you please, provide a reference to your statement.
Did the speaker provide a reference to HIS statement?
Picture in 23:59 above is Ken & DMR !
~10 min it shouldve been your supervisor that got sacked; here you have a team of efficiency hounds ready to hybridize all your work, he 's so content on the current clients that doesn't look forward for the companies next clients that need intensive C++ and older source code that can be translated as a service to itself. Whether the biz actually remains a client;.. certainly periodic maintenance reference. man. empathiess. am interested in Julia and Rust.
What about nim language?
Just like Crystal and D, didn't offer enough for a new language, didn't get adopted.
Looks great, but it isn't at 1.0 yet.
It's a mighty nice language, only time will tell whether or not it will get adopted
I agree with you all.But I think every language here has a purpose, they fit exactly for what they were written for.I am unable to find a place for Nim to fit.
It seems as if this is not a language problem, it's a compiler problem. Take the people who wrote the Rust compiler, tell them to apply those concepts to a new C++ compiler and you would probably achieve the same result. Tell them to apply those concepts and create a Pascal compiler and you might create the same result. It's not necessary to invent a new tool, evolve the shortcomings of the tool we already have.
Which do you reckon will be the future for audio engineering?
I use Rust for my audio work.
How are these disruptive languages fairing today?
Really interesting - an overview of these new languages and why they are needed today.
Nice présentation, very smart analyse for the futur..
I would argue Kotlin is a disruptive language. It was created to fix all the problems in Java and provide a language that's easy to use, less verbose as possible, and cross-platform. Kotlin is the reason Java has been in a big decline in the past few years. It's also happens to be taking over the android market.
No problem with that. In the last minutes of the video there is a short ansver to one of the questions that there are some languages in the "mobile" space without being called by names. I would guess those are Kotlin and Swift.
Kotlin is great. I think it might take over the J2EE space. Dart will win in user interface development I think, because of Flutter.
+1 for Dart with Flutter vs Kotlin and Swift
Speaking as a Pascal enthusiast... I wouldn't say it's actually dead.... it could well be terminally ill... but not quite dead yet.
I gave up Prolog when I realised that it was just another relational database.
One of the videos which aged well.
Outstanding explanation. Thanks !!
Good overview, thanks!
Python rank is only #13? That is strange
what about hacking capabilities (in reverse, hacking identification), any language in germination ?
Rod Davison sounds eerily familiar to the Harvard Researcher George Church.
Wow! Thank you!
well explained
I’m not entirely sure Julia has captured much from R and Python? And if you need speed it’s not that hard to write. C++ extension (especially with rcpp in R). I’d like to use it but I’m interested in reality not fads. Does it give you more job opportunities? It’s been 5 years….
Very informative!
Very interesting! So if I want to get a job right now, I should learn Go, for a soon to be hired, it should be Rust and for future jobs, Julia will be the language to learn?
It depends on what type of job you want. Rust is suited for lower level applications like embedded software while Julia is better for machine learning applications with big datasets.
If you want a job NOW, Java, javascript, C, and Python are the languages you should be learning.
Rust and wasm for soon to be hires.
Nope, just learn what appeals to you the most, not what is popular.
well, these new Programming languages has certain advantages over the older one's so there's a reason why they are popular, unlike the previous popular languages like Ruby
For getting a job you should learn Java or Javascript. But dont stop there and look at these languages too. Anyway you will discover that programming is more or less same in many languages and that you will actually learn only things you daily use.
Quite informative
Hello, I want to ask you something
When you display list of Github most star language, where is Node.js?
Just curious.
Hehe.
Don't bully me.
I was about to learn Go and Julia.
I didn't know there was Rust.
I actually have seen Rust being mentioned by Ryan Dahl (creator of NodeJS) when he talk about his 10 mistakes when creating NodeJS, but I didn't have any idea what Rust are.
Great explanation and comparison anyway.
Thanks.
amazing talk!
Julia is a lot less disruptive than made here. If it succeeds it's probably gonna be a niche programming language for technical computing.
Thanks for the comment Naum. Appreciate the debate..
Sure. If you call science, engineering and artificial intelligence niche domains.
julia is bae
Awesome!
I would learn Julia as a substitute to python. But the lack of OOP support of Rust and Go make them less attractive.
anyone got this recommended from watching the Pro Tech SMP server, lol?
So then Rust is simply for high tech ?
Btw mascot of Go is one of best parts of lang .. dont be a #$%^
I agree. Have you seen the Gin logo? It's comical genius.
I definitely agree about Go and Rust, but I really do not see how Julia is disruptive. I have a background in Big Data/ML and the speaker obviously does not. Julia is/was clearly a hype and my guess is that the speaker just followed his gut feeling to label it as disruptive. Instead of making judgements "based on the number we're looking at" (which numbers?), it would have been more helpful and transparent to provide some quantification for the "four criteria" and definition of "adoption rate". Anyways, thanks for sharing the video!
Did you Julia fall off of improve after this presentation
Used it last week, not that popular yet but not declining for now
Jeff Goldblum?
looking at the data 2019, it seems julia has fallen further behind. of the three, go is still in the lead.
Neither Rust, Julia or Go is sufficient improvement over prior languages to dislodge them. The central problem of software development today is the high number of errors that result due to human error. None of these languages make it significantly easier, hence the continued efforts to develop new languages that actually move the needle on overall lifecycle costs.
That was always the problem. Not just today. So no, I don't think you're comment captures the essence of the question.
Just make AI that'll program everything we need. And don't let humans near computers.
As someone who has written rust I would disagree. Rust catches a lot of issues at compile time that no other language will catch. It is also a slower language to write and not a rapid prototyping language, which I would say is good, because it makes you think through what you are doing.
Where as c# is a much faster language to write, but I always find i have more memory/logic/concurrency issues.
I agree that logic errors are still a problem, but I think rust helps to some degree.
Rust? Nothing of consequence is written in it. Is it even self hosting on x86 yet?
Congratulations, you win the prize for the most ignorant comment in the entire comment area
Faster than C++. Rust doesn't yet have the equivalent to C++'s placement new. So comments of Rust being faster than C++ must be comparing a well written Rust program, with a badly written C++ program. I have seen this type of assertion being made about Java vs C++ performance, where a Java program was claimed to be faster than the C++ equivalent. However, after it was pointed out that Java programs run on top of a JVM, which is actually a program written in C/C++ in the first place, the argument was put to bed. I can assure you, C/C++ will be at the top of the performance tree, with Fortran.
You should take a look at the "benchmarksgame" and "programming-language-benchmarks" pages (I can`t put the actual urls here because RUclips deletes messages with links). These benchmarks test different implementations of the specific algorithm that work best/worst in the respective languages. If you take a look at the "programming-language-benchmarks" page you can see how Rust compares to C/C++. The way that I interpret their results is that C++ is generally a bit slower than Rust, which is a bit slower than C. The "Energy Efficiency across Programming Languages" paper from 2017 comes to the same conclusion, but their benchmarks could be a bit outdated by now. But in general the speed differences are really not that large, when you compare them to all the other languages that exist.