Micro-Buntu, Fun with Github, and How to Break You JavaScript

Microsoft Gives in to Collaborates with Canonical, Brings Ubuntu to Windows

As we saw at last year's Build conference, Microsoft has found a new emphasis on open source tooling for the Windows platform. This year, they announced a huge addition to Windows 10:

"The Bash shell is coming to Windows. Yes, the real Bash is coming to Windows,"

Dustin Kirkland, a strategy guy at Canonical, explains why this is a good thing for both Windows and Ubuntu fans alike:

Finally, I imagine some of you -- long time Windows and Ubuntu users alike -- are still wondering, perhaps, "Why?!?" Having dedicated most of the past two decades of my career to free and open source software, this is an almost surreal endorsement by Microsoft on the importance of open source to developers. Indeed, what a fantastic opportunity to bridge the world of free and open source technology directly into any Windows 10 desktop on the planet. And what a wonderful vector into learning and using more Ubuntu and Linux in public clouds like Azure. From Microsoft's perspective, a variety of surveys and user studies have pointed to bash and Linux tools -- very specifically, Ubuntu -- be available in Windows, and without resource-heavy full virtualization.

Windows developers are sure to be excited about finally getting a legitimate command line interface. Workarounds and hacks have existed for a while, but have still lagged behind readily available Unix alternatives. Linux fans haven't responded as favorably, as evidenced by their choices of defeatist April Fools jokes.

As big a change as this announcement is, I see many developers being indifferent. Is a Bash shell really the tipping point for adoption of Windows as a serious development platform? Is adding features to Windows even the right approach to getting developers to use Microsoft products? The open-sourcing of .NET and introduction of Visual Studio Code were more effective at getting traction only because I could use them on my non-Windows platform. These platform just so happen to already have a Bash shell. We'll see how Satya handles this one down the line.

Simple Github Searches Give Glimpse into the Minds of Overworked Developers.

Bored at work developer looking for a quick laugh? Tired of the r/programmerhumor subreddit? Head on over to Github and try a few code searches.

Some other fun searches include:

  • "remove in production" (4,326,300 results)
  • "fix this later" (22,398,600 results)
  • "who wrote this" (4,477,677 results)

A related site in the same vein is Commit Logs from Last Night.

Recent Tiff Surrounding npm Has Developers Questioning Everything

It's a classic story, really. Guy writes code. Guy gets cease and desist from lawyers about the name of said code. Guy ignores. Lawyers send same letter to the one place that houses all of guy's code for others to use. Place concedes, removes one piece of guy's code. Guy gets mad and removes all of his other pieces of code, which just so happened to include a piece of code that is relied upon by some big name frameworks. Non-tech business trades claim that guy "broke the internet."

The problem here is that the backlash was towards npm. How dare they take action against a guy who was clearly breaking their rules, did not have a legal leg to stand on, and reacted childishly to the whole thing? Bring out the pitchforks!

It wasn't until Haney wrote this blog post that we got some sanity.

I get the impression that the NPM ecosystem participants have created a fetish for micro-packages. Rather than write any functions or code, it seems that they prefer to depend on something that someone else has written. It feels to me as if the entire job of an NPM-participating developer is writing the smallest amount of code possible to string existing library calls together in order to create something new that functions uniquely for their personal or business need.

Typical JavaScript developer's FizzBuzz solution.

The above image is sadly hilarious, because npm diehards will swear that modules are the best and only way to write code, even though, in some languages, FizzBuzz can be written in as little as SIX lines.

To Haney's credit, he makes a point that is impossible to argue against:

Second, even if the package’s logic is correct, I can’t help but be amazed by the fact that developers are taking on dependencies for single line functions that they should be able to write with their eyes closed. In my opinion, if you cannot write a left-pad, is-positive-integer, or isArray function in 5 minutes flat (including the time you spend Googling), then you don’t actually know how to code. Hell, any of these would make a great code screening interview question to determine whether or not a candidate can code.

The lesson here is that if you are a developer who is upset by a dependency change breaking your code, maybe a solution is to not rely on fragile dependencies.