What programming language do you use

Discussion in 'Computer Science & Culture' started by eyng7623, Apr 22, 2011.

Thread Status:
Not open for further replies.
  1. AlphaNumeric Fully ionized Registered Senior Member

    My first experience with coding was C++ for coursework but that was years ago and doing trivial things like solving simple differential equations and plotting results. I did a lot of Mathematica for my PhD. I'm not an elegant coder but it generally does what I want it to do, if a little slowly. I also wrote a custom interface to Singular for Mathematica, since the one provided by the people who wrote Singular wasn't as flexible as I wanted it to be. Since starting my current job I've done some R. Only spent 2 weeks on it about a year ago then picked it up again a fortnight ago and have been doing it 8+ hours a day since. Great for number manipulation but I'm used to Mathematica's symbolic manipulation, so I can define a single general object, like a particular matrix form dependent on some variables, than evaluate it at different values of those variables. Sure, you can do it but its not as element as M /. {x->5}. Has a different way of structuring vector, lists and sets too, ie {{x},{y}} becomes c(c(x),c(y)) which R converts to c(x,y), a set with 2 elements rather than a set of 2 sets, each with one element. I guess I just need time to learn its different quirks.

    At some point I'm going to have to learn Java too. Seeing as currently I'm a blank slate in that regard I'm wondering if anyone thinks there's a language better than Java but which does much the same job. It needs to be open source.
  2. Google AdSense Guest Advertisement

    to hide all adverts.
  3. fedr808 1100101 Valued Senior Member

    A hammer helps.

    Please Register or Log in to view the hidden image!

  4. Google AdSense Guest Advertisement

    to hide all adverts.
  5. ULTRA Realistically Surreal Registered Senior Member

    I've just downloaded a free 32bit C++ compiler/console/debugger from Codeblocks that looks awesomly useful as it's totally customisable due to a plethora of plugins. I downloaded a hard copy of I/O functions, operators, classes so I can sit in bed and read it of a night-time with a cup of tea!
    It looks a lot different from my last look at Borland c+ all those years ago, but the compiler looks A1. It was just over 70mb to download.
  6. Google AdSense Guest Advertisement

    to hide all adverts.
  7. Chipz Banned Banned

    Well, if the only alternative was assembler language, PL/I is looking pretty good.

    Eh, I disagree greatly. The key/goal of any high-level language is to have useful low-level functions. When I am using C or Fortran, I usually AM the low level function.

    It's tough to see what your goal in programming will be -- but if you already know even a little C++ there's no great reason to go to Java.
    In general; R is great for what it does it's a world class program, but like most stats programs the syntax is very obscure and separated from the actual programming paradigms it drives. That might be with a notable exception to Octave/Matlab which is essentially Fortran emulation.

    Don't listen to anyone who tells you "learn this language", because there is no absolute best. But I have noticed a lot of mathematicians / physicists make exceptional use out of Lisp.

    In general -- Physicists / Mathematicians like maybe 3 languages (typically).
    1. Fortran
    2. Python
    3. Lisp

    You're probably never going to make a big interactive application with these languages -- but for large datasets there's nothing better than Fortran. Period.

    For quick conceptual proofs, there's (arguably) nothing better than Python.

    For logic / intelligence there's probably nothing better than Lisp, with exception to Prolog. I think Europeans favor Prolog, American's Lisp.
  8. leopold Valued Senior Member

    the goal of high level language is to make the program easier to read and write and understand by humans.
    another important goal is area specific, for example COBOL or FORTRAN.
    these two are specifically aimed at business and equations respectively.
  9. Dinosaur Rational Skeptic Valued Senior Member

    Chipz: The following makes me wonder if you know much if anything about PL/1
    SciWriter, PL/I? Sounds like different for the sake of different. Even in its prime, Fortran was better at PL/I's sweet spot.​
    Almost (perhaps every) competent mainframe programmer considered Pl/1 & Algol to be far superior to either Fortran or Cobol, although the latter languages were more widely used for various non-technical reasons.

    BTW: While doing programming for a living, I used numeric machine code, assembly (for several computers), Fortran, Algol, Cobol, Pl/1, & some obscure special purpose languages.

    Since retiring, I have been using Visual Basic & VB.Net for play projects.
  10. SciWriter Valued Senior Member

    And PL/I kept right on improving, having all that anyone could need, even generic calls with parameters with differing variable types.

    And of course it knows when to reload the same exact base register over and over as well as many other automations that wouldn't make sense to do in assembly language.

    One cannot even hardly get a dump printout of one's storage, for who would even want one.
  11. AlphaNumeric Fully ionized Registered Senior Member

    I suppose I should have elaborated a little.

    Mostly we're just doing proof of concept things so we don't need blistering speed or elegant coding.

    We do a lot of stats based stuff so R is very useful. It also has a lot of libraries written by mathematicians to illustrate their new work (like support vector machines or genetic algorithms), which saves us having to write our own crude and time consuming implementations. R is not the fastest thing in the world though.

    R's ability to do graphical displays is not too great. Though it can be done it doesn't handle real time animations/updates of complex things very well. Java is much better at that and is much faster in crunching through code. We use it for demos of algorithms to clients, where you want it to look fancy rather than show off the algorithmic processes directly.

    Unfortunately Java isn't written for mathematicians, it has no concept of even 'matrix' or 'dot product'. There are libraries and whatnot but as soon as you step out of the realm of something someone else has explicitly programmed it can be very time consuming to write your own implementation of something R or Mathematica do natively. Not to mention the fact both R and Mathematica call C code when doing native stuff.

    A lot of the R libraries we've looked at recently for high speed implementations of things seem to call Fortran in the background.

    It's more about agreeing in the office what we think is appropriate and going from there. Java's great for knocking up graphical stuff, it has all these nice GUI builders where you just drag and drop and it makes an interface, but its not aimed at mathematicians or even people wanting to do anything but the most trivial algebra (all code involves adding and multiplying somewhere).

    A guy who joined the company recently keeps talking about Python, he likes Sage, which is written in Python.

  12. Chipz Banned Banned

    I am not a main-frame programmer and I only do scripting for odd-jobs and actually work in usually C++/C and Fortran, primarily because I work in very CPU intensive processes. I'm addicted to efficiency. For efficiency data handling you go with C or Fortran... Pl/1 might have made some sense before Fortran 90, but doesn't make any sense today.
  13. fedr808 1100101 Valued Senior Member

    I tried to use codeblocks, but it always stopped responding when I tried to compile/run the code until after maybe 5 minutes it started responding and I could continue onwards. Not very efficient for someone new to programming like me who has to compile or run like every 30 seconds.

    I use Dev-C++ now.
  14. river-wind Valued Senior Member

    First, I love the name of it. Next, I love the idea behind it. Last I love that the wiki says that it's not realistic to use for actual work, and you're using it for complex systems modeling.
  15. Chipz Banned Banned

    Rav's talking bs.
  16. Rav Valued Senior Member

    A nicer way to put it would be to say that I was being facetious, or that the "bullshit" was designed to be comical, which it was.
  17. river-wind Valued Senior Member

    It's a well know fact that my sarcasm meter relies completely on facial expressions.
  18. ULTRA Realistically Surreal Registered Senior Member

    I've downloaded python 3.2 64bit as well now after reading the comments earlier in the thread. It's kinda taken over from my learning of c++ for the time being, mainly because it's all executable script that will run on anything that you can load it onto - so looks very flexible. It actually seems to be quite a powerful language and is less complicated than I was expecting. It's not as fast as c++ or pearl maybe, but is plenty good enough for stats and number-crunching. I was never much good at maths which is a considerable handicap for a scientist. Maybe this will level the playing-field a bit. I'm going to see if I can write something for calculating molarity next.
  19. Wisdom_Seeker Speaker of my truth Valued Senior Member

    I like C++ the most for it's low level capabilities. But I use XAML and C# mostly in work.

    XAML had a great impact on my preferences, since it separates the UI thread from the main application thread to do stuff in the background. Not only in the CPU point of view, but also in RAM use, 'cause it uses the Video Card's RAM for UI (XAML) and the PC RAM for background (C#).

    To get the picture of the impact was to compare it to Windows Forms development, 'cause in WinForms if you wanted to have an animation, or any iteraction with the UI you needed to go to the backgroud thread to give instructions (all in C#). Not only that but a button was not really configurable visually.
    Now with XAML you can do much stuff in the UI side, like control-customization and animations only by using XAML (no C#); you can customize a button to be a GridView with animations, you can do whatever you can imagine for visual impact.

    In other words, it gives much more place to creativity in programing.
  20. SundayForever Registered Member

    Some do rely on "white space", whether they are compiled or not. Python is an example. Mostly though, white space is used to increase readability by humans. You will find this style ubiquitous in any programming using "from" "to" loops. Indent the "inner" statements and you can easily distinguish them from the "begin" "end".
  21. Randwolf Ignorance killed the cat Valued Senior Member


    SundayForever's Copy and Paste (#37):

    Notice any similarity to my post #11?
    While I have heard that imitation is the sincerest form of flattery, please...

    Please Register or Log in to view the hidden image!

    Are you some sort of SpamBot that has slipped by? Or perhaps you were just so overwhelmed by my writing skills and ability to express innate genius that outright plagiarism was irresistible?

    Seriously, I'm curious. What caused you to post this? Some sort of new troll that I am playing into your hands with? A sort of sublime humor that has gone right over my head? Or maybe one of John's sockpuppets playing cat and mouse? I mean WTF, jackass?

    In any event, delete the post. Also, you have managed to increase the number of reports that I have submitted from 3 to 4, but then I am soon to enter my 4th year here, so perhaps there is a "one report per year" adage that I am subconsciously following...
    Last edited: May 7, 2011
  22. Chipz Banned Banned

    Give the robot a break, he was proving Python is a pretty good web parser.
  23. Crunchy Cat F-in' *meow* baby!!! Valued Senior Member

    To the thread title, nowadays I use these:

Thread Status:
Not open for further replies.

Share This Page