DevilSolution Posted June 30, 2016 Posted June 30, 2016 Don't worry, this isn't intended as an open thread for what the best language is. Specifically im looking for a language that has easy to build GUI's but also crunches numbers, ALOT of them. I'm somewhat loathed to pick up any .net language, and i guess there arent many with numerical advantage. Cant use Java purely because theres too much effort with compatibility of DLL's that i require. I was using C# because its very easy to get started with but im thinking perhaps a c++ framework would be best with QT or such for graphical needs. c is what i've programmed in most but its too low level, c++ seems pretty strong but i dont know of any other languages that have the built in features of OOP and and containers etc I've programmed in Scala and Python a little but not sure they would be wholly compatible with the DLL's i require. Web frameworks look interesting in so much as the js and php might be sufficient and then the GUI is a webpage which is portable (i could buy a host). I could always use something like c++ to ping the data to another language if required but there would be a high level of concurrency in the input data. Its around 30 constant streams which i currently have single channel entry for each. The graphics for now is simply a user interface and i want to use as little effort making it as possible, but im also looking at modelling the data graphically in various ways, so the potential for 3d graphics is fairly important. Regards. 1
ydoaPs Posted June 30, 2016 Posted June 30, 2016 Actually, python is probably a good choice. It's one of the default languages for big data and machine learning, because it has great third party libraries like numpy, pandas, and scikitlearn. There is also a QT wrapper for python (with a graphical designer) for your gui development. Continuum has a bundle of these packages that you can use instead of using the standard python library and downloading individual packages. It's called "anaconda" and is what is typically used when people do big data/machine learning in python, since it has the computational and scientific packages built right in. 1
phroper39 Posted July 3, 2016 Posted July 3, 2016 Hmm, for me its Visual Basic, I started to learn it 10 years ago.
Klaynos Posted July 3, 2016 Posted July 3, 2016 I'd agree with python (although it's rarely my language of choice). It is good for data processing and you can do GUI acceptably. My choice would probably to use two languages, one for GUI (depending on exactly what you need) and one for data probably (probably R).
Sensei Posted July 3, 2016 Posted July 3, 2016 (edited) Sorry, but saying that Python is way to go, is plain.. ridiculous... Try writing the same routine, doing heavy mathematical equation billion of times, in C/C++ and Python. Place printf( "Clock %d\n", clock() ); at the beginning and at the end of routine (and Python equivalent one). Measuring time in C/C++ http://www.cplusplus.com/reference/ctime/clock/ If you divide ((float)( clock() - t ) / quantity of internal loop execution/CLOCKS_PER_SEC), there is time spend on single loop execution. What do you see if you compare the same code written in C/C++ and Python.. ? Python is interpreter, while C/C++ compiler producing machine code.. Python is written in C/C++! DevilSolution, have you tried Managed C++ ? It's .NET Framework with C++. That's the way, I am writing apps for Windows ATM, GUI is designed in .NET form designer (Visual Studio/Express GUI designer), it's quite user/programmer friendly, and code is still in C++. Why do you want to bother with QT? It has to be working on Linux/Unix also.. ? We would need to know more about your code, how often do you call external DLLs and what they are, to advice better, though.. DLLs are written in C/C++, their interfaces are in C/C++, if you will use other language than C/C++, you will have to use wrappers whether you want or not, no choice. Truly extensive math calculation should be split to various threads/cores of CPU, it can give you 8 times speed up on Core i7, and if it's not enough, there should be rethinked idea of using GPU 1024+ cores (OpenCL/CUDA) for even more optimized code. Depending how long your calculations are taking.. Edited July 4, 2016 by Sensei
Klaynos Posted July 4, 2016 Posted July 4, 2016 Pythons maths, stats ,plotting etc... libs make many many things far easier. I agree python wouldn't be the fastest to run but it'll probably be the fastest to code and run. Which for most science apps is important. Although it does depend on the specific case. If this is something that will need to be run many many times the extra resources required to write it in something like c would make sense.
DevilSolution Posted July 5, 2016 Author Posted July 5, 2016 Im using c++ on VS atm, its a basic console app that crunches accumulated fractions to look for natural numbers or more specifically the primes. Its always the 4th whole number and its consistently primes. Too late to dig any further. Its statistics mostly but also various other permutations etc. I prefer c/c++ but made a gui in c# .net for simplicity.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now