03 April 2015

Refutation: Go's Design is a Service to Experienced Developers


Reference:  Why Go’s design is a disservice to intelligent programmers

I honestly can't decide if this article is sarcastic praise for #golang hitting every one of its design goals, because once you look past the ad-hominem crap, it's there:

  • "Similar to Go, the book is easy to read with good examples and clocking in at about 150 pages you can finish it in one sitting." 
    • Read: Go's easy to learn.  The documentation is excellent.
  • "I’ve always thought that the developers at Google are hand picked from the brightest and best on Earth. Surely they can handle something a little more complicated?" 
    • He misses the point entirely.  Those same devs choose to go away from the frills to get leaner and faster.  Code is a means to an end at Google, and they realize that it's going to be read by other developers many times more than it's written.  Simplicity and clarity surmount all else; Google's stultifying C++ style guide makes this apparent.
  • "There are no shortcuts in Go, it’s verbose code or nothing."
    • Shortcuts get abused.  See: C preprocessor macros.
    • I read this as "'I have to check return values and handle errors' == verbose code."  This is not a valid Software Engineering view.  IMO, it should be obvious whether code handles errors properly.
  • "The language could be described as C with training wheels."
    • Thanks!  I rather like C.  I just wish it had a decent Standard Library, no header files, less "undefined" behavior, inbuilt concurrency, package management, and garbage collection. 
      • Oh wait, that's Go.
    • Obligatory:  Java is C++ with training wheels.  That worked out rather well.
  • "Their recommendation was to just copy the entire repository at that time into your project and leave it as-is."
    • This is known as 'vendoring your dependencies', and it's a common practice.
  • "There is [sic] no new ideas in the language apart from the concurrency support (which is excellent by the way) and it’s such a shame."
    • Unsupported assumption: Something must contain new ideas to be valid.
    • "Concurrency support...is excellent."  Yes, it is.  Loads better than the shared-state locking pthreads crap we've dealt with for 20 years.

Every fact in this article--aside from Generics--points to Go achieving its design goals.  In a very backhanded way, TFA supports why people writing server-side code at scale should consider using Golang.

* * *

The summary demonstrates so many problems in our industry right now:

[Go] has been written for lesser programmers using an old language as a template.

Fellow programmers, can we get over ourselves, please?  To categorically refute the above:
  1. On any given day, we're all lesser programmers.  For my part, I'm certainly not on all cylinders on 3 hours' sleep in the middle of crunch trying to ship product.  It's no sin to want code that's easy to reason about when you read it.
  2. Choosing something easier to read and sustain does not make you a lesser programmer any more than choosing to read Hemmingway in lieu of Shakespeare.
  3. Ah: 'using an old language'.  This is the heart of it.  'Go' isn't cool, so let's set it aside.
I find the above exasperating, simply because it's the same naïveté that's led to 1000 JavaScript Web MVC Frameworks, LISP fragmentation, etc.   

As Software Engineers--if such a PE-worthy profession ever emerges--we must surmount simple fad and fashion and entertain what's useful, evaluating on merit alone.



07 March 2015

Journaling Some Work

It's 1:38 pm. But for a snowstorm on Thursday, this would be my 7th straight day at work.

I'm doing things that people variously term "unwise," "strange," or "nearly impossible."

I've nearly gotten them to work, but not yet.  That's why I'm here.

01 March 2015

Sunday Afternoon at Work

"Well, sir, you certainly didn't have afternoons like *this*, when you were doing the Architect Gig."

Gotta love that inner critic.  There's always something.

My response:  Indeed, but I didn't *ever* have weeks like last week where we found and solved problems in realtime with a team of engineers, either.  It was lonely, and devoid of the kind of dopamine-enhanced highs I got.

Last week was hard.  Every day except for Wednesday, I was here 'til late.  On two nights, mine was the last car out of the parking log.   Snowpocalypse 2015 put us behind, and a Linux/PAM story that won't die put us even farther behind.

I'm enjoying it, but not today.  Today, I'm just tired.

Time to drive to Louisville to get Joey.

26 February 2015

Swimming, 6 weeks in

So, Maria and I are swimming.

Maria tends to take after me, in that she can look at food and gain weight, and she rather enjoys food.  We both eat our emotions, and emotions we have aplenty.

Right after the new year, I noticed just how crotchety I felt, even at 36 years old.  My back hurt constantly, I had little energy, I couldn't deal with stress, etc.  Maria was enrolled in swim classes last year and we found out she had limited range-of-motion in her right arm, basically from atrophy.

Atrophy at 8 years old.  Yikes.

The doctors recommended swimming as a low/no-impact full-body aerobic workout, and I readily agreed.  Every morning from 6:30 to 7:30 or so we're at the local rec center swimming.

I've got to admit: The first week nearly killed me.  Between getting up at 5am again and just the activity of swimming < 50m was exhausting.  Right before snowpocalypse 2015, I was really questioning if we were making any progress at all.  My weight was actually up, not down, and M was improved, but not much.

Then we got back in the pool this week after laying-off the previous week.  Holy crap have things changed: M can do half-laps of the pool by herself in half the time she did when we started.  We're actually diving to the bottom of a 4.5' pool for rings and stuff, where before she was barely competent to tread water.

And me?  I did a full lap of the pool today, for the first time ever.  I'm putting my head down in the water for a forward crawl and it's just...easy.   As in, natural.  Sure, it's exhausting and a great workout, but it's getting fun, much the same way running got fun for me 10 years ago.

I'm very encouraged.  This started as a lark, now it's quickly becoming a habit.

22 January 2015

Quickshot: Joey Humor

It's been a stellar couple of days for Joey's sense of humor.  Representative samples.

"Yo' momma so fat, Arnold Schwarzenegger tells her to GET AWAY FROM DA CHOPPA!"

* * *

[Interior: The Combs Clan sits around the table]

Whitney (to Harold): You know, when you lie, you get spots on your face.

Harold: O RLY?  Tell me something and I'll lie in response.

Whitney: Yeah, say 'I like titty-twisters.'

Harold: I...like...titty-twisters.

Joey: Now tell us a lie.