What is your to-learn list?

Hey @shingara, just out of interest - why Go-lang ?

cheers Daniel! as an old C++ hand myself I can appreciate what theyā€™re trying to do with D. Just one question: Why D and not Go-lang?

Donā€™t want to troll Go lang, but this hit my Twitter feed the other day ā€œI just donā€™t understand the point of Goā€ https://vagabond.github.io/rants/2015/06/05/a-year-with-go/

2 Likes

[quote=ā€œAstonJ, post:23, topic:238, full:trueā€]
Donā€™t want to troll Go lang, but this hit my Twitter feed the other day ā€œI just donā€™t understand the point of Goā€ https://vagabond.github.io/rants/2015/06/05/a-year-with-go/
[/quote] Darn, Iā€™m learning Go right nowā€¦

2 Likes

what are your impressions with it? do you agree with that blog post?

Far be it from me to bad-mouth another language, but I can see where heā€™s coming from.

1 Like

Iā€™ll agree with Andrew here (the writer of the blog post).

Go is fast, yes, but itā€™s not fun to write a Go application. Yeah, you can get concurrence, but you get that in Erlang (and Elixir) as well, done way easier and more fun. You want to be close to metal? Write your code in C.

There is a reason why we write Ruby code. Itā€™s because itā€™s fun and we love it. :heart: Doing errors as part of the return value of a functionā€¦ :anguished: Not fun. And yep, that is actually what you have to do.

Letā€™s say that a function func can fail. In Go youā€™d have to write something like:

err := func(param1, param2)

if err != nil {
  log.Printf("Error in func: %+v", err)
}

Does that look like fun? How about:

begin
  func(param1, param2)
rescue => e
  puts "Error in func: #{e}"
end

and the thing I love about Ruby. "Oh, you want to wrap your entire method in a try-catch block? Sure, we have a shorthand for that.


We have a Go app running at work. Itā€™s job is to sit before every other app as kind of a sidekick (Which is why we named it Sidekick) What it does is poke to the app on an endpoint. If the app responds, itā€™ll add the appā€™s endpoint to a hash which our reverse proxy (vulcand, another Go app created by the guys at Mailgun) can understand. It then pokes the app every other second and makes sure that the app is still alive. If the app dies, the sidekick removes it from the list of upstreams. That it. Thatā€™s all it does - and itā€™s still roughly 600 lines of code long!

2 Likes

thanks @Ohm, that sure is illuminating. I looked up Go a few months back I and I couldnā€™t see anything that attracted me to it. Itā€™s a concurrent language, not a parallel(functional) one, like Erlang, Clojure, etc. If I need to do concurrent systems coding Iā€™ll fall back to C/C++, thatā€™s less overhead to me than learning a new language to do things I already know how to do.

As you point out, if it had a reasonable syntax and semantics I might consider it but it just seems to be the unholy offspring of a drunk one-night stand between C and Java, with Modula sitting in a corner taping the whole thing.

1 Like

I havenā€™t seen anything that would make me interested in Go. From the things Iā€™ve heard RUST is a more interesting language. Iā€™ve read peoples testimonies of running into a Rails scaling problem and then doing it in Go. I think their decision was premature. Rails can scale just as well as any other service IMHO. In 2009 Greg Pollock released a Scaling Rails Series (Announcement). But in those testimonies it didnā€™t come across to me that people used Go because they liked it; they jumped ship to Go because it was the solution that seamed to work for them rather than adjusting their Rails environment.

And besides, to me D is pure as a language. Itā€™s not the new shiny. Itā€™s a language developed out of decades of experience from similar languages. A natural progression one might say. Itā€™s like refining metal, you get the impurities out to get something pure.

2 Likes

I want learn go mostly in performance purpose. It seems the best choice to me in regard to the maturity and syntax. Ruby keep the best language I use. But sometimes a boost in performance can be good. But I agree writing a go app is really less fun than writing a ruby one.

1 Like

cheers Daniel, I pretty much feel the same. Itā€™s much more cost-effective to tweak Rails deployments for scalability than implement a solution in a whole new language. At the end of the day I can always fall-back to writing multi-threaded C extensions for any high-performance areas if need be.

I appreciate your comments on D. May be itā€™s something I need to look at when I get a chance.

1 Like

thanks @shingara, are you specifically writing high-performance apps (e.g. real-time analytics, etc.)or do you just need a performance boost for your standard apps?

No i donā€™t have this kind of application actually. and I donā€™t real performance issue. So i use only Ruby. I just want take a look to go in case of I really performance issue.

Call me crazy, but Iā€™m yet to learn Rails, so yeah, I want to learn that, as well as Sinatra. As for things that arenā€™t ruby related, as Java and C++.

2 Likes

I want to learn how to build chatbots (if anyone can point me in the right direction Iā€™d be really grateful :slight_smile:)

Chatbots from scratch - or do you want to start with say Hubot as a framework?

From scratch, I figured that doing a chat app with rails 5 and action cable would pave the road nicely and then figure out the ā€˜smart partā€™

Hubot looks interesting :slight_smile: thanks for that.