Python had certainly crossed my mind! I tried it once, quite some time ago, and took an instant dislike to it However, I’m taking Physics in University and I know that many universities use Python for calculations in Physics courses, so I’ll definitely give it a go!
Is Python any good when it comes to developing a user interface?
I cannot see the link between web applications and the OP’s stated preference of maths & physics, but hey.
Check out some functional programming languages such as Haskell, Scheme or Erlang. I don’t think they have much application for physics, but they should satisfy your mathematical criteria. I’ve never used any of them personally so I can’t recommend any of them on experience, only that they seem to be the most popular.
Well, this isn’t for web applications specifically. However, it certainly has place - for example, I’m building a website at the moment aimed at maths/physics students, and I’ve almost finished writing a graphing application to display graphs based on user-defined functions in PHP.
So really what I’m looking for is a language that can output an image, at the moment. I’ve written simulators before in Java and C#, but the animation side of things isn’t very relevant to meat the moment.
I don’t think they have much application for physics, but they should satisfy your mathematical criteria.
For me, at least, Physics = Maths; In fact a physics degree is practically a maths degree. The applications are more based on calculations and analysis, rather than simulation.
As I’ve never needed anything like that, I can’t recommend a language. And I wouldnt say that physics = math, but that math is the language of physics. You can’t write a novel if you’re literacy impaired.
What ever you use, you’re going to want a lot of native advanced math functions and something that crunches numbers fast. And it will probably be at the expense of being “user friendly”.
Maybe you could send an email to one of the big labs and ask what they use?
Yes. Python comes with a gui library called tkinter. No installation hassles; your gui capabilities are up an running once you install python. However, wxpython is a better gui library, so at some point you’ll probably want to install that.
python also can be used as a server side programming language for web interfaces. python can be used with cgi, fastCGI, and a new interface called WSGI. python also provides a clone of java jsp pages, called psp pages. There are also several frameworks available. For more information see here:
I tried it once, quite some time ago, and took an instant dislike to it
I know the languages you do if you strike C# from the list, and I think python is the best of the lot. It’s almost impossible for me to code in C++ anymore because of all the braces and semicolons I have to type. In any case, C/C++ and python are a good combo because if you need some speed you can rewrite parts of your python code in C/C++ and then call those functions from python.
For image manipulation, python has the the python image library(PIL). For more sophisticated graphics and animation, there is pygame.
Additionally, there are two offshoots of python, called jython and IronPython. jython is python with the ability to access Java classes. And IronPython is an MS strain of python that does windows specific things. When comparing the different offshots, python is called CPython to distinguish it from jython and IronPython.
Rather a confusing statement to make Mitt’s, It’s pretty simple to work out that the more powerful the language, the lower the level it is (and with that comes greater speed as it has less abstraction from the machine code). In that sense if you want less overhead and more raw power, it would obviously be ASM, C or C++.
If you’re willing to buy a funky keyboard, what about APL? : ) lawlz
Haskell is working with Perl6 (or Perl6 is working with Haskell, I forget), and Erlang I recently saw being used for some progams in Linux as I had to download an update recently (was it for git? I forget) : ) So there’s an Erlang-Linux group (or several) out there, meaning there are communities of people you can ask for more info about.