5 ms·
Hobby wise: Haskell, Rust, Nimrod, Haxe Shipping code: Go, Erlang, C++11 (avoiding legacy), F# (with Xamarin) I program in many more, but those are probably m
by MetaCosm 13y ago
Hobby wise: Haskell, Rust, Nimrod, Haxe
Shipping code: Go, Erlang, C++11 (avoiding legacy), F# (with Xamarin)
I program in many more, but those are probably my top 8 right now.
- tinco 13y agoYou never work with scripting languages? (i.e., why is there no Python, Ruby or Javascript in your lists? or maybe I do'nt know Haxe, does that replace them?)
- Zolomon 13y agoBoth Haskell and F# have good REPLs and are adequate for writing "scripts", maybe he prefers statically typed languages?
- MetaCosm 13y agoAnd Go compile speed combined with "go run foo.go" makes it feel like a scripting language without a REPL. But in reality, when I need quick scripting, I mostly use ZSH.
- asdasf 13y agoI'm not them, but I have no scripting language in my list either. There is simply no need for one. For small sysadmin scripting, sh is nicer than a scripting language. For anything bigger than ~50 lines, I use haskell.
- tinco 13y agoFair enough, but sh is a scripting language also :)
- MetaCosm 13y agoMost of the stuff I work on is highly concurrent. GILs are the devil. Almost all the joy and ease you from GIL languages is lost as you try to go concurrent and have to use (in python for example) multiprocess and gevent ... then you start getting caught on the rough edges and poor ideas in those tools... and everything falls apart.
- dragonwriter 13y agoGIL isn't a language feature, it's an implementation feature — in Ruby, at least, this is a significant difference because there a major implementations (Jruby, most notably) without it even though it is a feature of the MRI implementation.
- MetaCosm 13y agoTrue, but JRuby comes with it own huge bag of rough edges (read: no C extensions for you without a bit PITA). IronPython is in a similar boat. That said, I do prefer JRuby to Scala.
- rdtsc 13y agoGIL is all evil. If your are dealing with CPU bound concurrency yes, GIL is there to take the fun away. But if your problem is most about IO concurrency (downloading from multiple sockets for ex) GIL is no problem. I get very nice speedup from Python's threads with a silly web crawler I wrote.
- syllogism 13y agoAnother option is to use Cython. You can declare a function "nogil", but then you can't call any native Python functions within it. It's good enough for some purposes, but not all.
- Egregore 13y agoI think with macros in Haxe you can create similar readability problems which you don't like in scala.
- codygman 13y agoI'm curious as to whether you have shipped or have thought about shipping code in Haskell and why or why not. Rust I'm assuming is too new for that to be an option.