DEV Community

Discussion on: A Crystal in Go’s World

Collapse
 
freedom profile image
Freedom • Edited

TLDR; It's all preferences, software engineering in technology and language take years or more than a decade to mature, and immature language can take years to train and adopt. The problem now we have the cloud, IoT, incredible computing power in our hands. If the tools slow devs down and you can afford to take a coffee break, go ahead. If not, choose any fast language (performance/productivity) to get the jobs done for a short-term goal then migrate to performant language with careful planning, and that's not jump ship from Ruby to Crystal just because they have familiar syntax, faster performance "comes with a cost", compiling time/project size vs hardware/productivity vs code quality/bugfix.

Frankly, I choose Go because I see major problems with "opinionated" web frameworks, that is the my main reasons why Go is successful.

Definitely, Crystal and other folks will use their favourite web frameworks which in my case is nightmare for website upgrades, I like to adopt different architecture. It's different in every cases and could be delight for your products.

I guess even the Crystal core team need years to get those feature done because the community aren't expert in developing complex solutions that only software engineering knows how to, another problem with the "communication", see how Crystal and Go differ in each other.

So I move away from PHP to Go.

Collapse
 
joshuawoodsdev profile image
JoshuaWoods

I'm new to coding... But " opinionated " means they have one way to do things right? I liked Ruby but as I learn more I can see some problems. Currently I'm learning Rails and Middleman. So I can be able have it as a option for work. But I just started learning Lua as my main lang for my personal growth I think it's alot better than Ruby and JS. I plan to look at GO in a year or so or should I just stop Ruby and take a look at GO now?

Collapse
 
freedom profile image
Freedom

It can be one way but you can extend with your code or helpers (roll our own utility).

We don't advice which language you should stop, the more you learn to know the differences between each language, the better you can gain from untyped aka dynamic and typed languages. Your motivation will decide.

My experience in Go, you will need to understand each API a little more deep by reading books, history of Go issues in Github repo (important to know going on and the progress in the past few years) and Go documentations (It can be confuse but clear when you read a few times). Always experiment with your own code, take the authors' benchmark with a piece of salt (outdated benchmark)

If you have doubts or issues in general with Go usage or style, post in Go forums or reddit.