Why Go for decision trees? (2013)
datascience.systemsbiology.net
datascience.systemsbiology.net
I think most of it still holds true but we did do some benchmarks on public data and the implementation is competitive with or faster then other implementations including scikit-learn's cython implementation which wins a lot of benchmarks.
Code and some benchmark results in the README are here: https://github.com/ryanbressler/CloudForest
I'm co-founder of a digital real estate brokerage[1] and as a weekend hack, I'm using CloudForest to predict sale prices for residential real estate using data from the MLS.
A lot of the predictions are really good with a few that are terrible (like double the list price, which is a feature). Any way to get a certainty value for each prediction? Perhaps I could look at the variance of values from each tree? I'm kind of a noob with decision trees so I'm probably totally off base but maybe that question makes sense. :)
[1]: https://www.openlistings.co/ (YC W15)
Go's not alone... it seems to me there's many languages taking a swing at this niche now. All the best to all of them... I love me the flexibility of Python or Ruby sometimes and may not need total system-level control but I can't always afford the resource gluttony of the older-school scripting languages.
Another kind of typing system is a mixture of dynamic and static typing named: gradual typing (PHP/Hack, JS, ActionScript, etc.) http://en.wikipedia.org/wiki/Gradual_typing
There is also the difference between strong and weak typing: http://en.wikipedia.org/wiki/Strong_and_weak_typing
It's certainly possible that there was a time when virtual machine based language implementations where overrated.
To be clearer: the ability for things to change at runtime, i.e. for the programmer to do things like monkey patching. I guess dynamic typing is related to this, at least in the sense that you'll have to give up on some static typing in order to get more flexible dynamic behaviour.
And yeah, I realize that Python et. al. is used for real apps, and certainly not just for scripting tasks.
I think that's actually a very important aspect of understanding where dynamic typing as a hugely popular thing came from. Today, I favor static typing. However, given a choice of Python or 1990s-C++, I'll take Python. It could be argued that the static typing world needed to be dethroned and be forced to improve itself in the face of the dynamic competition to become what it is today.
On the other hand, pretending that "static typing" is the same today as it was 20 years ago is merely the complementary failure that people too bedazzled by static typing 20 years ago and dismissed the oncoming dynamic typing wave made.
Whether "scripting" languages, as in languages used to write small, one-off programs, or programs to automate systems administration tasks or to glue other programs together, benefit from that type of power is debatable, but Ruby, Python, and Perl have never been particularly good representatives of the dynamic language paradigm as a whole, either conceptually or implementation-wise.
...and PHP and JavaScript
http://weekly.golang.org/doc/faq#unused_variables_and_import...
You've got something which has a lot in similar with dynamic languages, doesn't require much to learn Hello World (in comparison to Java), but has higher-level features like GC, first-class functions, etc. You also learn something C-ish in pointers which you might be aware of but not truly know in dynamic langs. Concurrency is only a benefit.
It is a really simple language that anyone can learn quickly and then take that knowledge higher level with a Python or even Clojure or Haskell or lower level with a C.
Is anyone aware of Go being used as a teaching tool in an academic environment?
http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t...
Back in the day, languages called as such where so slow, that there was a feeling that they were used "in lieu" of "real" programming languages. They were there to extend "real" software.
Today? Much the opposite. Computing power is almost always cheaper than brain power, and we use C to extend Python rather than the other way around.
For that matter, I think Go is great for networked infrastructure, but bad for interfacing with other languages and still significantly harder to learn than Python, Julia and R.
That is why I caution on the use of Go in projects which have "scientific" bent to them...
I can't comment on R or Julia, since I haven't used them, but I would doubt they're simpler than Go.
Arguing that Python isn't a "scripting language" is a complete waste of time. That ship sailed at least 5 years ago, if not 15.
And Python is still very, very slow, and very difficult to make multicore (if you disagree, compare with Go), and there are plenty of domains where it should not be chosen as a result. Yes, I know about PyPy, but that project's performance characteristics are very strange and certainly isn't "it just speeds up Python code by 10x, all the time"... sometimes it does that, sometimes (rarely) it slows it down, mostly it does something in the middle that certainly doesn't bring Python anywhere near C.
Python is growing in popularity, and in the majority of cases it is used as the "primary" language now. That's why "scripting" is a misnomer, even if technically CPython is not compiled to machine language.
why is go being so heavily featured on HN lately? reminds me of that effort to ask a ton of R questions on stackoverflow.
We should have more stories about languages people actually get paid to use, like java!
jk (kind of)
New and shiny always has an edge in getting interest