Warning

 

Close

Confirm Action

Are you sure you wish to do this?

Confirm Cancel
BCM
User Panel

Posted: 5/4/2020 9:47:04 PM EDT
Just wondering if we have anyone working with Go. I've been a Java guy for years and I'm really liking it. Today I mirrored one of our Java microservices and reduced the binary from 67MB to 12. I haven't profile it yet but I suspect the memory and cpu requirements will be significantly reduced as well.
Link Posted: 5/7/2020 11:11:09 PM EDT
[#1]
I know nothing of go.  Is it compiled.  Not that Java is blazing fast or anything. But it is much faster than interpreted languages.  Even still. I pretty much do everything python now even though it's interpreted
Link Posted: 5/7/2020 11:29:42 PM EDT
[#2]
As I understand it, Go is compiled with an embedded garbage collector.
Link Posted: 5/8/2020 9:19:53 PM EDT
[#3]
It's compiled. It does do garbage collection.

I'm still digging in but it feels like a very clean language. For example, dead code isn't allowed. If you don't use a variable or an import it won't build. I also like that there aren't getters/setters. If you want to expose something outside of the package the file is in, you just capitalize the first letter so you know at a glance that payment is "private" but Payment is "public". I was watching a video from Mat Ryer and I liked his term: glanceability. You should be able to know at a glance what the code is doing.

In one of the Slack channels I was following, a guy took a Python app which took about 2.5 hours to run and his Go re-write did it in 5 min. Then he used Go's native concurrency/parallelism and cut that in half. That's pretty remarkable. I forget the details on his memory usage.
Link Posted: 5/9/2020 9:08:47 PM EDT
[#4]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By JaxShooter:

In one of the Slack channels I was following, a guy took a Python app which took about 2.5 hours to run and his Go re-write did it in 5 min. Then he used Go's native concurrency/parallelism and cut that in half. That's pretty remarkable. I forget the details on his memory usage.
View Quote

Share the app, and I might be able to see what Rust can do with it.
Link Posted: 5/20/2020 6:23:26 PM EDT
[#5]
I'm still working on my migration but you piqued my interest about Rust. It looks pretty cool. I've heard about if for a while now but never paid any attention to it. Now I've downloaded it and written my hello world app.
Link Posted: 5/20/2020 6:54:03 PM EDT
[#6]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By JaxShooter:
I'm still working on my migration but you piqued my interest about Rust. It looks pretty cool. I've heard about if for a while now but never paid any attention to it. Now I've downloaded it and written my hello world app. 
View Quote


Rust is an interesting concept, and I've got the book on my desk right now, but the ecosystem is horridly immature right now.  Maybe someday.
Link Posted: 5/20/2020 9:56:25 PM EDT
[#7]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By Josh:

Rust is an interesting concept, and I've got the book on my desk right now, but the ecosystem is horridly immature right now.  Maybe someday.
View Quote

They finally figured out error handling! There are now two crates: thiserror and anyhow. I'm using thiserror for the library I'm working on now. Check out lines 29-52:

https://github.com/wswartzendruber/subscale/blob/55dd0fe2dc0c6d9aebe797d9a0a3926670ada405/src/pgs.rs

Unlike their previous attempts of total calamity, thiserror doesn't inject its own types into your public API. It's just a collection of (well-done) macros that generate standard Rust error types, which is otherwise a lengthy process.

The anyhow crate seems to be for lazy app (not library) developers, but it may have merit outside of that. I'm only just now beginning to transition from novice to intermediate.

Oh, and a nugget I learned last weekend: Rust enums are enums, but they're also type-safe unions if you want them to be. I've done this in lines 54-60.
Link Posted: 5/20/2020 10:40:35 PM EDT
[#8]
Hmm, maybe I'll wait a little longer.
Link Posted: 5/20/2020 11:11:47 PM EDT
[#9]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By wswartzendruber:

They finally figured out error handling! There are now two crates: thiserror and anyhow. I'm using thiserror for the library I'm working on now. Check out lines 29-52:

https://github.com/wswartzendruber/subscale/blob/55dd0fe2dc0c6d9aebe797d9a0a3926670ada405/src/pgs.rs

Unlike their previous attempts of total calamity, thiserror doesn't inject its own types into your public API. It's just a collection of (well-done) macros that generate standard Rust error types, which is otherwise a lengthy process.

The anyhow crate seems to be for lazy app (not library) developers, but it may have merit outside of that. I'm only just now beginning to transition from novice to intermediate.

Oh, and a nugget I learned last weekend: Rust enums are enums, but they're also type-safe unions if you want them to be. I've done this in lines 54-60.
View Quote View All Quotes
View All Quotes
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By wswartzendruber:
Originally Posted By Josh:

Rust is an interesting concept, and I've got the book on my desk right now, but the ecosystem is horridly immature right now.  Maybe someday.

They finally figured out error handling! There are now two crates: thiserror and anyhow. I'm using thiserror for the library I'm working on now. Check out lines 29-52:

https://github.com/wswartzendruber/subscale/blob/55dd0fe2dc0c6d9aebe797d9a0a3926670ada405/src/pgs.rs

Unlike their previous attempts of total calamity, thiserror doesn't inject its own types into your public API. It's just a collection of (well-done) macros that generate standard Rust error types, which is otherwise a lengthy process.

The anyhow crate seems to be for lazy app (not library) developers, but it may have merit outside of that. I'm only just now beginning to transition from novice to intermediate.

Oh, and a nugget I learned last weekend: Rust enums are enums, but they're also type-safe unions if you want them to be. I've done this in lines 54-60.


Or I could just use C++.
Link Posted: 5/21/2020 11:31:24 AM EDT
[#10]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By Josh:

Or I could just use C++.
View Quote

An engineer should always be assessing more viable ways of doing things. I have found Rust to have lots of merit, particularly when it comes to ensuring code safety.
Link Posted: 5/21/2020 11:48:11 AM EDT
[#11]
The only company I know of that tried to use Go gave up after a few months and is now primarily using dotnet core.

The biggest probablem with Go was recruiting. Austin is basically a Java+Mongo+Angular town, and they struggled to find anyone with Go experience (or who wanted to learn a language that wouldn't be helpful at their next job).
Link Posted: 5/21/2020 12:51:37 PM EDT
[#12]
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By wswartzendruber:

An engineer should always be assessing more viable ways of doing things. I have found Rust to have lots of merit, particularly when it comes to ensuring code safety.
View Quote View All Quotes
View All Quotes
Discussion ForumsJump to Quoted PostQuote History
Originally Posted By wswartzendruber:
Originally Posted By Josh:

Or I could just use C++.

An engineer should always be assessing more viable ways of doing things. I have found Rust to have lots of merit, particularly when it comes to ensuring code safety.


I don’t doubt that someday rust will be a viable general purpose language. I just don’t think it is today. I can’t do most of what I need to do in it.
Link Posted: 5/21/2020 6:10:06 PM EDT
[#13]
Discussion ForumsJump to Quoted PostQuote History
Quoted:
The only company I know of that tried to use Go gave up after a few months and is now primarily using dotnet core.

The biggest probablem with Go was recruiting. Austin is basically a Java+Mongo+Angular town, and they struggled to find anyone with Go experience (or who wanted to learn a language that wouldn't be helpful at their next job).
View Quote
Interesting. Go captured my attention since Kubernetes and many related projects are written in it. I'm actually curious now what our split is between Java and .Net. We're just starting to get teams to move to Core so they can run in containers.
Link Posted: 5/21/2020 10:22:45 PM EDT
[#14]
Discussion ForumsJump to Quoted PostQuote History
Quoted:
Interesting. Go captured my attention since Kubernetes and many related projects are written in it. I'm actually curious now what our split is between Java and .Net. We're just starting to get teams to move to Core so they can run in containers.
View Quote

You can containerize a legacy Framework application. Just get ready for a big-ass base container. Still, I think you only need one per node and each container that uses it will have its own differential against the base's file system.
Link Posted: 5/21/2020 10:54:30 PM EDT
[#15]
That pretty much defeats the purpose.

Windows containers are a) still not ready for prime time and b) fucking huge.


Close Join Our Mail List to Stay Up To Date! Win a FREE Membership!

Sign up for the ARFCOM weekly newsletter and be entered to win a free ARFCOM membership. One new winner* is announced every week!

You will receive an email every Friday morning featuring the latest chatter from the hottest topics, breaking news surrounding legislation, as well as exclusive deals only available to ARFCOM email subscribers.


By signing up you agree to our User Agreement. *Must have a registered ARFCOM account to win.
Top Top