In terms of presenting and implementing experiments, which programming language is better?
Note: What we are talking about is not data processing but experiment presentation.
What I need:
- Experiments can be implemented on many computers at the same time, since the number of participants may be sometimes large.
- Sometimes I need accurate timing to get parameters such as the reaction time in the millisecond range. Both the magnitude of the reaction time, as well as timing differences between conditions are of interest.
- I prefer open-source programming environments, yet I have access to MATLAB for instance and finds are available.
What I've considered so far:
Python. I've only tried
psychopy
.- pros: Accurate Timing. It is claimed that the timing function is nice.
- cons: Robustness. The
psychopy
programs are not robust enough and sometimes I encounter annoying problems and the community is also, although good, but not good enough in my opinion.
Html/JS + Backend Server. I've tried the scheme to write html/css/js to present my experiment and send data to the local server which I wrote with
flask
in Python since js cannot read and write files through the browser.- pros:
- Flexible. With this scheme, I can do almost all I want to do and even more simply with the web app development technique.
- Apparence. The front-end, i.e. the UI of the experiment can be as pretty as possible since there are many tools to enhance the performance of html/css/js.
- Online Data Collection.
- cons: Accurate Timing. I guess timing is a disadvantage for this scheme. I don't know how better is the optimization of
psychopy
orE-prime
than simply using javascript, but I guess the measurement of parameters such as reaction time can be more inaccurate. If javascript is enough to do this, please tell me!
- pros:
C#
/QT
(c++ or python)/VB.NET
etc. These are similar to the previous html scheme while the presentation and data collection can be done in a desktop app together, but I have no idea about the timing problem as well.E-prime. I'm not very familiar with E-prime so if there are any mistakes in the description please point them out, thanks!
- pros:
- Accurate Timing.
- Robustness. As a well-known commercial experiment software, I believe e-prime is, to some extent, better than
psychopy
.
- cons:
- Closed Source. I do have money to pay for it and if it's indeed irreplaceable and I'll use it, but if I have other choices, I prefer open-source :)
- pros:
So, any suggestion on this question? or is there some recommendation? Very much thanks!
psychopy
. I'd directly play with html/js if no precision timing is needed :), and I have money to pay for services, that's no problem. What I'm considering about it only precision timing with JS. However, I found thatpsychopy
is not that robust for me so I'd reconsider this question. As for e-prime, I'm no very familiar with that, so there may be some mistakes in my description and thanks for pointing out them. $\endgroup$