Why teach this in python? I've read that C++ is more than 100 times faster under some work loads? when time is money, shouldn't simulators be designed in C++ (or even modern-FORTRAN)? I was curious to know what language does industry use? I learned to code in C++, and matlab, and python. I don't find C++ that much more difficult to program in, I actually like it more, because the code seems to be more specific, and easier to understand. I created z-factor simulator in C++ in a couple hours about a week ago because I was tired of using the tables with a ruler. It was 260 lines of code, and I'm not a C++ pro by any means, but it was pretty easy to do. I will follow your course, but do it in C++ :)! BTW Thank you for this high quality course!
Production quality simulators should be written in C++. This is an undergraduate class in which most of the students have very little programming experience. It is far beyond the scope of the class and their typical limitations to expect them to do it in all in C++. Also, when using Numpy data structures for the numerics, Python can compete with other compiled languages in terms of speed. Especially when development time, readability, testing, documentation, and developer community (i.e. access to help) are taken into consideration.
In addition to publisher's comment, I would like to add one thing: Being "faster" does not always mean... wait for it... being faster. When you are coding a "small" program, it is applicable to use the efficient language. However, nowadays, with our very advanced computer hardwares (even PCs of today has more CPU power and/or RAM than of a supercomputer from previous decade), the real bottleneck becomes "development" phase. That is why, it is much easier to develop things with Python than it is with C++ since the syntax is much more simple and there is a universal guide for coding (e.g. PEP-8). I am not saying that Python is superior to C++ or vice versa. But being "fast" is just a trait and traits are useful only when they meet the objectives. When you need 1000 engineers to develop something together, fast, you might need Python over low level languages (Big C fan professors will execute me for me saying C is a "low-level" language, but here it goes :) ) and when you have a long time to develop a robust software, you might pick C++, FORTRAN etc.
I am using these lecture in order to describe the topic to my students. Thank you.
Thanks for sharing from Mexico !
Dear Dr. John, your course is very well organized and upto date. I would like to teach the same this semester here in Kurdistan, Iraq.
What about reservoir modeling?
thank u for sharing From Hassi Messaoud Field Algeria
Hey,ur courses are awesome. But could you teach it on Matlab?
Why teach this in python? I've read that C++ is more than 100 times faster under some work loads? when time is money, shouldn't simulators be designed in C++ (or even modern-FORTRAN)?
I was curious to know what language does industry use?
I learned to code in C++, and matlab, and python. I don't find C++ that much more difficult to program in, I actually like it more, because the code seems to be more specific, and easier to understand.
I created z-factor simulator in C++ in a couple hours about a week ago because I was tired of using the tables with a ruler. It was 260 lines of code, and I'm not a C++ pro by any means, but it was pretty easy to do. I will follow your course, but do it in C++ :)!
BTW Thank you for this high quality course!
Production quality simulators should be written in C++. This is an undergraduate class in which most of the students have very little programming experience. It is far beyond the scope of the class and their typical limitations to expect them to do it in all in C++.
Also, when using Numpy data structures for the numerics, Python can compete with other compiled languages in terms of speed. Especially when development time, readability, testing, documentation, and developer community (i.e. access to help) are taken into consideration.
PGE 323M Reservoir Engineering III (Simulation) Well at anyrate, thank you very much for these videos.
In addition to publisher's comment, I would like to add one thing: Being "faster" does not always mean... wait for it... being faster.
When you are coding a "small" program, it is applicable to use the efficient language. However, nowadays, with our very advanced computer hardwares (even PCs of today has more CPU power and/or RAM than of a supercomputer from previous decade), the real bottleneck becomes "development" phase. That is why, it is much easier to develop things with Python than it is with C++ since the syntax is much more simple and there is a universal guide for coding (e.g. PEP-8).
I am not saying that Python is superior to C++ or vice versa. But being "fast" is just a trait and traits are useful only when they meet the objectives. When you need 1000 engineers to develop something together, fast, you might need Python over low level languages (Big C fan professors will execute me for me saying C is a "low-level" language, but here it goes :) ) and when you have a long time to develop a robust software, you might pick C++, FORTRAN etc.
nice video,informative