DEV Community

Discussion on: GoLang, The Next Language to Learn for Developers

Collapse
 
forresttales profile image
Clyde Denton • Edited

Thanks much for the article and the honest, comprehensive assessment.

Understand, I address only the 'hype' surrounding GoLang, not its intended purpose, nor the admirable skill of its creators.

I'd richly prefer to banter this over a few beers. But I'll start here - "It has become a critical component of cloud infrastructure and probably not going anywhere for quite some time." Is there any wonder? It's a Google whim.

When I first heard Go explained to me, my sinking gut reaction was about the same as when I first heard 'Cloud' and 'Internet' in the same sentence. Am I the only one out here that gets uncomfortable about his program, years in the effort, with database, running on someone else's machines, inaccessible, under a 'vendor lockin' subscription? - hint - Google Application Engine, ad nauseum.

After years in C#, my Microsoft passion came to a grinding halt. There was a dubious dabble in Java and Tomcat. I didn't walk away. I ran. Mostly, there were 4 years in Ruby/Rails. A great time. But one night when my gem didn't compile (again) and version conflicts raised their ugly heads (again), I threw a temper tantrum that should have been on video. I scrapped the whole program and rewrote it in PHP/C++. No CGI. Never looked back. Never been happier. I started with C++, and God, why did I ever abandon it?!

Ignorance and fear come to mind. For example, why in the h-ll do you need an interpreted language, cross-platform, when you, yourself choose the server os? Because this is the befuddled mind of soooo many Internet beginners, like me, and for years...no thanks to academicians. And no thanks to all those companies pushing frameworks, and other bridges to sell.

If only I had a dollar for every time I've read, "Go is a system level language." Really? So, it's the perfect choice for a driver? We could hypothetically write a robust operating system with it from top to bottom? Hmm... Go's meagre 'runtime' is rolled up into its binary. C/C++ doesn't even need an operating system.

I wouldn't be here, except, ...once upon a time, there were the entreatments of a certain lead Python programmer to his polite (procrastinating) director, said programmer wanting to use Go in a re-write of the company's failed flagship site, a Python mess. What's the connection?

Fellas, please, this mystery over Go's popularity isn't computer science. The elephant in the room is a far less technical story.

Not but a decade has passed when many programming book covers touted the word 'Art'. Remember? Now, the trend finds any language requiring diligence a pariah.

The developer blogs are replete with slights and outright snide remarks made by Python enthusiasts toward C/C++. I also witness the same ilk duped like religious fanatics by Cloud gimmicks that promise the moon (and charge the sun).

Thus, I don't buy the innocent claim of 'surprise and shock' decried by Go's engineering team over the snub from the C/C++ community. Likewise, there's no surprise that the Python community has embraced Go. (Ruby's excuse, if it's the truth, is different.) Google, for some years, has championed Python. And within this zealous ecosystem, Google is a demi-god. Now, GoLang was written by...well, enough said.

And Go's the White Knight, now, come to rescue us from all those shameless compiler smoke breaks and trips to the coffee machine. Yes, I wait, if I've played with my base class, especially the header. But my dedicated page classes are about 2 seconds, hardly the time to reach for my lighter.

Ah...forgot. Go has no headers. Awesome. No patient, no sickness. Besides, who needs all that fancy inheritance tomfoolery (despite even Rails builds its renown MVC architecture with it)?

Pardon the brutality, but there are few articles I've come across on Go that don't distil to this - "Go is better because it's easier." It's a rank, Python echo chamber.

I don't care if 99.9% of the crap written for Internet is passed off as quality. We've all seen it. And nobody will ever convince me that because "an orangutan can do it" the program is superior.

Again, fellas, please. Lazy programming ethics and idiot-proof languages do NOT summarily equate to better solutions. "Get s**t out the door" may be good enough for mom-and-pop sites and unwary clients. But that kite doesn't fly for projects that are Biblical Exodus in scale. So, I build an outhouse on sand. It tips. I jack it up and throw a block under a sagging corner. Good 'til next Halloween. But you don't build Trump's tower on a beach! And this simple concept, practically applied, draws blank stares from every Python programmer I've ever met, that is, until I've had a chance to 'talk' with them.

I'd say that the Go team's greatest impetus is the smug pleasure they get, knowing what commotion they've caused out here for the rest of us. Again, not surprising. C/C++ programmers can write Linux or Facebook or the virus that shuts down your favourite bank ATM.

Collapse
 
dizveloper profile image
Edvin

That's one hell of a reply my guy. Seriously well put, and thought through. I've pleaded my case and how I feel about Go, its ups and downs. I may come to change my mind many times while developing in Go.

Also I'd absolutely suggest (if you haven't already) to turn this into your own post. Throw in some digestible counter arguments and examples. I'd love to read it!

Collapse
 
forresttales profile image
Clyde Denton • Edited

Appreciate it! I'd say yours is the best impartial blog I've come across. And there is Murray,

murrayc.com/permalink/2017/06/26/a...

...at which I've glanced.

My jab, above, is clearly biased. And the pro-Go 'hype' is really the comment sections, mostly. Expected.

But Go, admittedly, IS a vector properly pointed. It's compiled, not to some bytecode goop for the Ponderosa vm, but a real binary! Some of this hype is deserved.

Thus, I've every intention of investigating Go. I've stamped my approval on the trial and use of it for one of our mobile back-ends. God help us, we are now a Gopher company.

Go may hold the minor mystery I seek, even if used just as a glue language. That is, I'm somewhat embarrassed by my heavy use of PHP's exec(myprogcpp params). I would 'mask' that if I could, and without CGI. And I don't want to re-engineer PHP through extensions, which as I understand, requires something third party, anyway (Zend API).

So, exec() is the skeleton in my closet. But it works so well! Some of my in-house database programs skirt the need of embedded script (almost entirely) by tucking html in C++ strings. Absolutely no external .html or .php views. Love it. But for team projects, my front-end guys would kill me!

TreeFrog C++, with its bloated MVC may hold some answers. I may play with it, again, this weekend. (BTW, out of everything hyped in Internet development, Model/View/Controller is king!) If I can come up with something more elegant than exec(prog params); foreach($output...); THEN I'll consider writing that post. Cheers! ))