Current Events > I don't think people are fundamentally prepared for how modern modern C++ is

Topic List
Page List: 1, 2
legendarylemur
05/07/17 4:44:12 PM
#51:


Everybody knows the best language is espanol
---
"Iwata was awesome" - Mr. Nintendo
dinglebutt
... Copied to Clipboard!
COVxy
05/07/17 4:44:58 PM
#52:


scar the 1 posted...
Oh well there are most likely tons of calculations you want to program. And you'll probably need some program to shuffle data from one function to another, and to make plots, etc. It'll be really useful, especially once you figure out what you're actually going to be doing in your work.


Seems like C++ would be a silly programming language to use for data analysis, tbh.

Python, R, MATLAB, all seem more suitable.
---
=E[(x-E[x])(y-E[y])]
... Copied to Clipboard!
teepan95
05/07/17 4:45:53 PM
#53:


scar the 1 posted...
How do you produce the data that you plot?

Experimentally

With the occasional transformation from the variable I measured into the variable I want to plot.
---
http://www.gamefaqs.com/boards/1060-homework-helpers - come drop by!
Schnittkraftmeister
... Copied to Clipboard!
MutantJohn
05/07/17 4:46:24 PM
#54:


C++ is an amazing scientific language. Most scientists just don't care about programming enough to get good at it.
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
teepan95
05/07/17 4:47:20 PM
#55:


COVxy posted...
scar the 1 posted...
Oh well there are most likely tons of calculations you want to program. And you'll probably need some program to shuffle data from one function to another, and to make plots, etc. It'll be really useful, especially once you figure out what you're actually going to be doing in your work.


Seems like C++ would be a silly programming language to use for data analysis, tbh.

Python, R, MATLAB, all seem more suitable.

The lecturer for the course comes from the chair for fluid dynamics

They tend to use numerical data over experimental
---
http://www.gamefaqs.com/boards/1060-homework-helpers - come drop by!
Schnittkraftmeister
... Copied to Clipboard!
scar the 1
05/07/17 4:48:24 PM
#56:


COVxy posted...
scar the 1 posted...
Oh well there are most likely tons of calculations you want to program. And you'll probably need some program to shuffle data from one function to another, and to make plots, etc. It'll be really useful, especially once you figure out what you're actually going to be doing in your work.


Seems like C++ would be a silly programming language to use for data analysis, tbh.

Python, R, MATLAB, all seem more suitable.

I agree. However, what I've noticed at our university is that when students are only taught MATLAB, they often don't get very strong programming skills. So getting a solid foundation before you move on to the most practical language for your domain isn't necessarily a bad thing, and C/C++ is good for that.
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
scar the 1
05/07/17 4:50:15 PM
#57:


teepan95 posted...
scar the 1 posted...
How do you produce the data that you plot?

Experimentally

With the occasional transformation from the variable I measured into the variable I want to plot.

Will you ever get to the point where the data is too much to collect by hand?
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
teepan95
05/07/17 4:53:23 PM
#58:


scar the 1 posted...
teepan95 posted...
scar the 1 posted...
How do you produce the data that you plot?

Experimentally

With the occasional transformation from the variable I measured into the variable I want to plot.

Will you ever get to the point where the data is too much to collect by hand?

I'd like to be prepared for the possibility.
---
http://www.gamefaqs.com/boards/1060-homework-helpers - come drop by!
Schnittkraftmeister
... Copied to Clipboard!
ChromaticAngel
05/07/17 4:56:14 PM
#59:


teepan95 posted...
scar the 1 posted...
teepan95 posted...
scar the 1 posted...
How do you produce the data that you plot?

Experimentally

With the occasional transformation from the variable I measured into the variable I want to plot.

Will you ever get to the point where the data is too much to collect by hand?

I'd like to be prepared for the possibility.


you might want to use a database. There is almost zero chance that you would be able to get a custom application that will do what you want faster / better / with less bugs than a good RDBMS.
---
... Copied to Clipboard!
COVxy
05/07/17 4:56:40 PM
#60:


scar the 1 posted...
COVxy posted...
scar the 1 posted...
Oh well there are most likely tons of calculations you want to program. And you'll probably need some program to shuffle data from one function to another, and to make plots, etc. It'll be really useful, especially once you figure out what you're actually going to be doing in your work.


Seems like C++ would be a silly programming language to use for data analysis, tbh.

Python, R, MATLAB, all seem more suitable.

I agree. However, what I've noticed at our university is that when students are only taught MATLAB, they often don't get very strong programming skills. So getting a solid foundation before you move on to the most practical language for your domain isn't necessarily a bad thing, and C/C++ is good for that.


Do you really need a strong foundation in low level programming problems to be a good scientific programmer?

In my experience, not really. You need to understand algorithms at the data level. I'd much rather my program be .02% slower due to whatever automated memory management is going on under the hood, than to deal with memory management directly.

Even across big data, the inefficiencies of higher order languages usually don't create enough bother for one to want to understand pointers.
---
=E[(x-E[x])(y-E[y])]
... Copied to Clipboard!
MutantJohn
05/07/17 4:57:28 PM
#61:


Damn, that's a sad statement.
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
scar the 1
05/07/17 4:57:59 PM
#62:


ChromaticAngel posted...
you might want to use a database. There is almost zero chance that you would be able to get a custom application that will do what you want faster / better / with less bugs than a good RDBMS.

That really doesn't sound like something you'd want for data analysis, unless you're setting up a super serious processing pipeline.
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
teepan95
05/07/17 4:58:05 PM
#63:


ChromaticAngel posted...
teepan95 posted...
scar the 1 posted...
teepan95 posted...
scar the 1 posted...
How do you produce the data that you plot?

Experimentally

With the occasional transformation from the variable I measured into the variable I want to plot.

Will you ever get to the point where the data is too much to collect by hand?

I'd like to be prepared for the possibility.


you might want to use a database. There is almost zero chance that you would be able to get a custom application that will do what you want faster / better / with less bugs than a good RDBMS.

I'm guessing the DB stands for database?
---
http://www.gamefaqs.com/boards/1060-homework-helpers - come drop by!
Schnittkraftmeister
... Copied to Clipboard!
scar the 1
05/07/17 4:59:53 PM
#64:


My guess would be something like Relational Database Management Software/System.
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
ChromaticAngel
05/07/17 4:59:55 PM
#65:


scar the 1 posted...
ChromaticAngel posted...
you might want to use a database. There is almost zero chance that you would be able to get a custom application that will do what you want faster / better / with less bugs than a good RDBMS.

That really doesn't sound like something you'd want for data analysis, unless you're setting up a super serious processing pipeline.

MSSQL Server comes with SSRS which you can use for data analysis as well as custom ad-hoc data analysis that you can fine tune however you like by writing TSQL

Most people use them for high volumes of data but they're also fantastic for low volumes of data, and MSSQL Server Express is free.

teepan95 posted...
I'm guessing the DB stands for database?

Relational DataBase Management System
---
... Copied to Clipboard!
scar the 1
05/07/17 5:03:36 PM
#66:


ChromaticAngel posted...
MSSQL Server comes with SSRS which you can use for data analysis as well as custom ad-hoc data analysis that you can fine tune however you like by writing TSQL

Most people use them for high volumes of data but they're also fantastic for low volumes of data, and MSSQL Server Express is free.

Still feels kinda weird to do scientific stuff in SQL. I would consider using it for storage, though. Getting to a point now where I suddenly handle kinda large volumes of data.
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
MutantJohn
05/07/17 8:17:10 PM
#67:


Btw, if you haven't already tried using it yet, give Boost.Spirit a try. It's an absolutely amazing library for building complex parsers and for generating strings as well.
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
COVxy
05/07/17 8:32:45 PM
#68:


MutantJohn posted...
Damn, that's a sad statement.


Not really. It's sort of like premature optimization, it would really be a waste of people's time for the most part.
---
=E[(x-E[x])(y-E[y])]
... Copied to Clipboard!
treewojima
05/07/17 8:57:54 PM
#69:


as far as C++ has come, it's still held back by the lack of a proper module system. the preprocessor is downright prehistoric, and template definitions being limited to header files makes compilation time skyrocket
... Copied to Clipboard!
MutantJohn
05/07/17 9:07:02 PM
#70:


COVxy posted...
MutantJohn posted...
Damn, that's a sad statement.


Not really. It's sort of like premature optimization, it would really be a waste of people's time for the most part.


I was speaking to this bio grad student and they said their stuff took 2 weeks on the compute cluster the university had setup. This was most likely because it was all written in R. Which is absurd. CUDA is really popular in the bio world so I'm curious how parallelized her code could've been.


Keep in mind too, scientific computing is actually quite the specialty. C++ takes years to learn effectively and even then, new corner cases will greet you along the way.

treewojima posted...
as far as C++ has come, it's still held back by the lack of a proper module system. the preprocessor is downright prehistoric, and template definitions being limited to header files makes compilation time skyrocket


I agree. Tools like CMake help. MSVC supports modules now though (to some degree) so there's steps being taken. I also agree about the template definitions as well. It creates some weird design sometimes.
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
COVxy
05/07/17 9:11:18 PM
#71:


MutantJohn posted...
so I'm curious how parallelized her code could've been.


There's parallelization options in both Matlab and Python, Idk about R.

I've had things take weeks to process, but the data is incredibly large, and some of the analyses are complex.
---
=E[(x-E[x])(y-E[y])]
... Copied to Clipboard!
treewojima
05/07/17 11:26:02 PM
#72:


there's also the rather inconvenient fact that there is no standardized C++ ABI. it just so happens that we all either use MSVC-style or GNU-style mangling. this makes interfacing other languages with C++ such a pain in the ass that the end result is always them saying "if you need to call out to an external library, just use C"
... Copied to Clipboard!
Sativa_Rose
05/07/17 11:27:50 PM
#73:


dang you guys know way more than me about this shit
---
I may not go down in history, but I will go down on your sister.
... Copied to Clipboard!
MutantJohn
05/08/17 1:20:09 AM
#74:


treewojima posted...
there's also the rather inconvenient fact that there is no standardized C++ ABI. it just so happens that we all either use MSVC-style or GNU-style mangling. this makes interfacing other languages with C++ such a pain in the ass that the end result is always them saying "if you need to call out to an external library, just use C"

Yeah, I recently learned about this as well :P

Eh, it's okay. It's not like it's hard to create C APIs from C++ ones and vice versa. It sucks. It most definitely sucks. But so far it's not debilitating to integrating the language into other ones.

Though truth be told, I like the micro-service approach and separating things at the process-level.
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
Frostshock
05/08/17 1:46:16 AM
#75:


treewojima posted...
as far as C++ has come, it's still held back by the lack of a proper module system. the preprocessor is downright prehistoric, and template definitions being limited to header files makes compilation time skyrocket


Is the preprocessor being prehistoric a bad thing? At least it HAS one. I don't recall the standard Java build tools having anything comparable, and interpreted languages generally read in definitions as-is.

The template bit is annoying but that's really because of the way C++ templates work. And you CAN work around it...it just requires explicit instantiation of every specialization you know is being used.
---
Got questions about schoolwork? Want to share answers, or discuss your studies? Come to Homework Helpers!
http://www.gamefaqs.com/boards/1060-homework-helpers
... Copied to Clipboard!
scar the 1
05/08/17 1:51:23 AM
#76:


COVxy posted...
There's parallelization options in both Matlab and Python, Idk about R.

Although to use Python's parallelization options you need several instances of the interpreter running.

To the CUDA comment: GPGPU programming is indeed efficient, both MATLAB and Python have possibilities to dispatch stuff to GPU. However, things don't just magically speed up just because you run it with a GPU. A lot of problems are far too complex and would run slower, even if they can be parallelized easily.
---
Everything has an end, except for the sausage. It has two.
... Copied to Clipboard!
MutantJohn
05/08/17 11:16:23 AM
#77:


Ha, except for me!
---
"Oh, my mother; oh, my friends, ask the angels, will I ever see heaven again?" - Laura Marling
... Copied to Clipboard!
Topic List
Page List: 1, 2