36 ms·
I was originally very excited about Go when I first learned about it. But then I got tired and frustrated quickly after having to listen to the other Gophers te
by trungonnews 14y ago
I was originally very excited about Go when I first learned about it. But then I got tired and frustrated quickly after having to listen to the other Gophers telling me that I don't need this or that feature because there is a better way to do it in Go.
Like.
I don't need exceptions because Go function can return multiple values.
I don't need a mocking framework like Mockito because Go has interfaces.
I don't need an interactive debugger because I can debug with command line using gdb.
I don't need named arguments because I can instantiate a struct and call my function with it. (Have you seen Ruby or Javascript code? Almost every function takes 'opts' as a single argument. Go is probably going down this path too.)
Then I learned about Scala. I'm not saying that Scala is better than Go. However, it has everything that I need. :)
- yannk 14y agotl;dr: I tried Go, but it wasn't like Ruby, so now I'm trying Scala.
- trungonnews 14y agoHa. Is there a high performance, compiled, and concurrent friendly language that looks like Ruby? Please share. :)
- burntsushi 14y agoRust might be your best bet. I think better advice for you is to just stay away from opinionated languages. I don't think Rust falls into that category, but I'm not sure.
- qznc 14y agoLooks like Ruby? You mean syntactically like "end" instead of "}", I assume. Sorry, but the C syntax is dominating the native-compiled world. You could try Pascal, they have "end". Or use C with preprocessor magic: #define END ;} If you mean Ruby like terse, generic code, then try Rust, Go, and D.
- pjmlp 14y agoYes, have a look at Crystal. https://github.com/manastech/crystal https://github.com/manastech/crystal It is still an ongoing development, though.
- sluu99 14y agoHere you go: http://cobra-language.com/ http://cobra-language.com/
- steveklabnik 14y agoI personally am looking very heavily into Rust, but if you haven't seen Elixir, you should.
- gnuvince 14y agoIt's pretty typical of the Plan9 mentality. See this post on the Acme text editor: http://9fans.net/archive/2008/08/134 http://9fans.net/archive/2008/08/134
- fkdjs 14y agowow, worse than the irc python channel.
- mercurial 14y agoWhy would you say something like this? The IRC Python channel is a kind of state machine which goes like: - How do I do this? - Why do you want to do this? - Because XXX - Then that's not really what you should be doing, it's dangerous/inefficient/etc., do this instead The post about Acme could have been a one-line answer: "If you want do do any of this, just use a better editor".
- StavrosK 14y agoThere are many times when I said "I need to do X, I know it's ugly, but I've considered all the alternatives and, for reasons too lengthy to go into right now, I just need to do X. How can I do it?" only to get people treating me like an idiot who doesn't know anything, and only giving an answer after I've responded to every single of the alternatives with my reasons. Sometimes, people aren't new.
- mercurial 14y agoIt's a state machine without a direct transition from "question" to "answer" :)
- pnathan 14y agoIs that a parody?
- tptacek 14y agoComments like this are weird. Go does not like exceptions. They've built a whole idiom around error returns. When you said, "I need exceptions", what did you expect them to say? "Oh, sorry, we forgot that, we'll get right on it"? I also don't understand what you mean by "interactive debugger". What is gdb if not an interactive debugger? Gdb is my go-to debugger for Ruby as well.
- trungonnews 14y agoSomething like RubyMine IDE debugger or Firebug javascript debugger. If you are a Ruby developer then I highly recommend trying out RubyMine. I promise that you will never debug Ruby code using gdb again!
- irahul 14y ago> Something like RubyMine IDE debugger or Firebug javascript debugger. That's not for the go team to develop. > If you are a Ruby developer then I highly recommend trying out RubyMine. I promise that you will never debug Ruby code using gdb again! I haven't used RubyMine, but I have used Visual Studio and Eclipse debuggers, and I still debug using gdb, ruby-debug, pdb et al.
- kragen 14y agoI got all excited when I saw your comment and went and checked out the latest RubyMine video on YouTube, because having something like Firebug for Ruby would be awesome. But it looks just like what gdb gives you when being driven by a graphical frontend like DDD or Emacs. Actually it looks a lot less powerful than DDD. What am I missing?
- irahul 14y ago> Gdb is my go-to debugger for Ruby as well. Unless you are debugging the ruby process(and not the running script), what does gdb buy you over ruby-debug?
- pjmlp 14y agoSame thing happen to me, I even did some small contributions around 2010. Then I discovered D and Rust are better languages for my purposes.
- codygman 14y agoJust a guess, I'm guessing python isn't your favorite language either? They seem to be rather unopinionated languages that let you have access to lots of tools. I hear they manage to keep it pretty simple despite having a "kitchen sink", so definitely interested in both.
- pjmlp 14y agoPython is my favorite scripting language, not for application development.
- swah 14y agoD syntax is nicer than Go's, but its also dead compared to Go. Where are you going to put your chips?
- pjmlp 14y ago> D syntax is nicer than Go's, but its also dead compared to Go. Because it is full of Google PR and happens to have some cool names on the team? > Where are you going to put your chips? In languages that the designers don't throw away the last decades of improvements in language design.
- trailfox 14y agoWe also checked out both Go and Scala and picked Scala due to better IDE support (IntelliJ) and existing Java lib ecosystem. It also is typically faster than Go (but does use much more memory): http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=go&lang2=scala http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t... Overall very happy with our choice. I will probably learn Go too, but I also don't really like the way it does error handling and the tooling support seems limited vs what I can get for the JVM.
- trungonnews 14y agoYup. This is my exact conclusion too.
- ssmoot 14y agoScala fan here. But still, I can sympathize with Go developers on getting rid of exceptions. I don't know if Go would quite feel the same, but Scala's Try, Pattern Matching and Curried functions are stupid nice and make handling errors without exceptions feel very natural. Took me a couple months to get there, but there you go. "Folding" out different state feels like I'm writing more robust code. Where I'm coding for a range of possibilities instead of just the golden path. Even when I _am_ focusing on the Golden Path, features like Try[A] force me (well, warn at least) to at-least stub out the other options so I get to feel like instead of having to hammer in robustness, it's something composed instead. I can focus on making the ideal X, and handle the possibility of needing a notX as alternative realities, instead of trying to build a cyborgXYZ that can handle every potential state. If that makes any sense.