
On 28 April 2012 22:50, Nicholas Kormanik
** **
Greatly appreciate your sharing these thoughts.****
** **
A bit frustrating that you mention four as candidates: “Groovy, Clojure, Ruby, Python.”****
** **
But it sounds like you are leaning toward recommending Python as the best way to start. ****
** **
Nicholas****
**
No. I'm the person who mentioned all four of those as examples of languages that are good for web scraping. I then went on to say that given what I **guess** you might need to do that Python is the "no-brainer" best. You really don't say enough for anyone to be sure though - if you want to implement some very time consuming numerical algorithms and have them run fast then CUDA might be the only option. (In which case you're probably out of luck, because CUDA programming isn't for amateurs.) Or for less demanding numerics centred around stats and matrix ops, the R could be a better choice than Python and Sagemaths: http://en.wikipedia.org/wiki/R_%28programming_language%29 ..and R will webscrape too: http://www.programmingr.com/content/webscraping-using-readlines-and-rcurl If you want to do stuff like time series analysis then you'll probably find more books and papers using R: http://www.stat.pitt.edu/stoffer/tsa2/R_time_series_quick_fix.htm
Mike Meyer: Ruby makes a bad fit if Haskell is a goal (and that's a good goal)
While Clojure is a great language, the most popular implementation is hooked into the JVM, and you wind up needing to deal with a lot Java infrastructure fairly quickly. Being able to use that infrastructure is a design goal, but adds to the learning curve. I haven't looked into Groovy, but suspect some of the same issues will arise (and hope a Groovy
I don't see it as being a goal for this guy! He just wants to be able to write utilities he needs without bogging down in "becoming a programmer." programmer will correct me if I'm wrong).<< I played around with Groovy for a weekend to write some utilities and a music generation program. I can't remember having to put any effort into "needing to deal with a lot Java infrastructure," even though I was using a midi library written for pure Java. But I'm not really sure what you mean (installing a Java compiler?? doesn't seem like a lot) and it doesn't matter - Python/Sagemaths and R seem like the most reasonable tools without spending big money. Re. the OP's needs: learning a programming language isn't enough to write programs that work correctly. You will need to learn how to design and debug code if you're writing more than very trivial apps. Take a look at something like Kernighan and Pike's "The Practice Of Programming." There is no magic language that let's you write code "without becoming a programmer." Some are easier to learn than others or offer more functionality in particular areas, but writing even moderately complex programs that really work - rather than just seeming to - requires reasonable practice, some book knowledge, and lots of discipline. Programs are treacherous and deceptive and it requires skill just to verify that they are working reliably.
**
** **
*From:* umptious [mailto:umptious@gmail.com] *Sent:* Saturday, April 28, 2012 9:39 AM
*To:* nkormanik@gmail.com *Cc:* beginners@haskell.org *Subject:* Re: [Haskell-beginners] Haskell as a useful practical 'tool' for intelligent non-programmers****
** **
** **
On 27 April 2012 21:16, Nicholas Kormanik
wrote:**** So, my question is: Does it make practical sense to spend time learning Haskell for the purpose of adding it to my assortment of 'tools' -- to quickly do this or that, as the need arises?
Is there any better general practical 'tool' (or, if you want, 'programming language') to add to my arsenal.****
No one can give you advice on what tool to use without knowing what the task or who you are in more detail than you provided. And you're often better with several tools than "general" one - trying to saw with a hammer isn't easy.
Unless you're unusually smart in the IQ sense and/or have a maths or formal logic background, then I'd say that Haskell would be a miserable choice for a first programming language.
As for tools you might look at for tasks that I ***guess*** that a trader is likely to want to do:
- For web scraping and text mining, Groovy, Clojure, Ruby, Python and (maybe) Perl are reasonable choices
- For both number crunching and symbolic maths, look at sagemaths (which is scripted in Python) - it's a reasonable free alternative to both Matlab (number crunching) and Mathematic (symbolics)
..Which I suppose makes Python the no-brainer choice. Python is easy to learn, the community is supportive, there are lots of reasonable books and tutorials. I think it also has stuff around for working with Excel spreadsheets, which I'd imagine you might want to do.
Haskell is actually a better language than any of the above (leaving aside learnability and without defining "better") but for real world use libraries count more than language features. It would take you years to write the equivalent of sagemaths in Haskell, which rather negates Haskell's advantages if you need that functionality.****
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners