Could you give some more context what the code does and what's the WTF with it?

For, you know, people who don't know Go and can't be arsed to work it out.

I'd say I've become quite familiar with Go in the last week from Ben's desperate proselytizing, but even I don't know what the hell is going on here.

Oh, I think I've got it: Ben, were you and another Go contributor sitting around and the lead was like "Hey, I need one of you guys to refactor the static error message allocation, and the other to go spam forums with inscrutable Go propaganda until everybody stops using C," and you drew the short straw? Is posting this benchmark your way of getting back?

Seriously, though, you're dodging my questions. Consider this preparation for the future: soon you'll be entering academia, where truths are only arrived at through the painstaking application of the scientific method; where you will have to defend your conclusions in vigorous debate; where assumptions are questioned and prejudices chall--

Oh, they gave that up, did they? Turns out it's easier to operate a diploma mill that defrauds the public if you instill mindless conformity, punish intellectual curiosity and censor anyone who challenges your authority? Nevermind, then..

Not at all clear, and I'd stop digging IIWY. Most people would regard it as an insuperable challenge to 'dress and act' like a liquid. Plus, you would need to spell them as 'Pegasys' and 'PEGylated interferon' (note the capitalisation) if that was really what you meant, which I doubt. In other news: whoever heard of a liquid being in a 'pre-op' state, or having a (physical) horn?

Not at all clear, and I'd stop digging IIWY. Most people would regard it as an insuperable challenge to 'dress and act' like a liquid. Plus, you would need to spell them as 'Pegasys' and 'PEGylated interferon' (note the capitalisation) if that was really what you meant, which I doubt. In other news: whoever heard of a liquid being in a 'pre-op' state, or having a (physical) horn?

I think by the time that C# was nearly 6 years old, it had more than a dozen users.

Microsoft did this crazy shocking thing where, in the first year of the language's existence, they release a really good IDE, a really good debugger, reflection tools, build tools, a new installer to work with it more cleanly, a new web server to support all its features, full 100% documentation coverage of the language and library, etc.

Meanwhile, languages like Python and Ruby are decades-old and still don't have all of those things. Go is half a decade-old and don't have ONE of those things, except perhaps build tools.

It's not an accident that C# got popular quickly. In fact the only mystery is that it hasn't *completely* displaced Java by now.

VIM? Seriously? It's not even an IDE, much less a "really good" IDE. VIM's just a shitty text editor, it's not integrated with your build system, it's not integrated with your debugger, it's not integrated with your GUI designer, it's not an IDE. (Hint: the I stands for "integrated".)

GDB doesn't even have a GUI. How can anybody use a debugger without a GUI? Fail.

Installer - Wow, somehow links to files on Google Code are EVEN MORE USELESS than links to files on GitHub. This is... what? An installer for Go itself? Or for Go applications to use? I have no way of knowing based on that link. Oh wait here's a gem from their installation instructions page:

@Go's Google Code page said:

The Go project provides two installation options for Windows users (besides installing from source): a zip archive that requires you to set some environment variables and an experimental MSI installer that configures your installation automatically.

Go can't even install itself properly. Jesus.

Ben L, what's your deal here? You keep posting this Go shit, but you're not promoting the language because you don't bother to explain why Go's superior (or even equivalent) to anything else. You post these WTFs, but you never explain what exactly the WTF is. Is this some kind of art project you're doing? Did you have some kind of psychotic break? What's going on man?

Here, we see the blakeyrat in its natural habitat. It feeds on mice and is terrified of command line interfaces.

Well maybe I've yet to be "enlightened", since I've never had the misfortune to have to use a debugger with no GUI (and seriously guys-- 1985, Microsoft Basic 1.0 for Mac, GUI debugger.) I don't see how it could possibly work. How do you set breakpoints? How do you pause? How do you example variables?

vim is not an IDE. Even if you install a ton of scripts and extensions that replicate most IDE features, I'm hesitant to even call it in the same class. And I say this as somebody who uses vim as his only editor, who has used it for about as long as you've been alive. I like vim, I think it's a good keyboard-only text editor, if you're willing to learn it, but it's not an IDE.

gdb is not a "really good debugger". It is a nearly-adequate debugger that does the bare minimum. It has a CLI interface. It has a steep learning curve. (Note: since at this point you've seem to have gulped extensively from the FOSS Flavor-Aid, I must inform you that doing the bare minimum, having a CLI interface and having a steep learning curve are not good things. These are things that suck up valuable engineering resources and significantly slow uptake of a new language.)

By "reflection tools", I'm assuming Blakey was referring to GUI tools that use reflection to let you explore binary packages, and not basic reflection functionality, which virtually every language has now.

The Go build tools might be okay, I don't know. That page you linked at least looks like it has some tools, so I'll grant that. However, I bet everything is CLI-only and doesn't easily integrate into any IDE.

I'll let Blakey's comments on the installer stand in for my own.

I'm extremely hesitant to call an http package a web server. A web server does lots and lots of useful things, beyond just parsing a request and sending it to one of your callbacks. Now, you can run your Go HTTP handler behind a real web server, and that's a fine way to do things. I tend to prefer it to having the language integrated into the server itself, but that hardly counts as web server support; in fact, it's the opposite of it. Even FastCGI provides better integration than this.

The documentation I've seen on Go so far has been somewhat laughable. Maybe most of it is fine, but I'm not impressed as-of-yet.

No, seriously, gdb's interface is pretty ass-y. I'm pretty much used to it, but anybody who would say it's better than a GUI debugger has clearly never used a GUI debugger. Even the Chrome and Firefox JS debuggers put it to shame.

No, seriously, gdb's interface is pretty ass-y. I'm pretty much used to it, but anybody who would say it's better than a GUI debugger has clearly never used a GUI debugger. Even the Chrome and Firefox JS debuggers put it to shame.

I don't understand how the IDE and GUI debugger has been around since 1985 (or before-- that's just the first one I personally used) and languages that didn't even exist until 2007 don't have one. And even weird, the people using them are perfectly ok with that!

Does that happen in any other industry? Guys who repair cars don't (generally speaking) drive cars from the early-70s right? Guys who build TVs don't use "more authentic" vacuum tubes instead of integrated circuits, right? So why the fuck do software developers (or open source kiddies who imagine they're software developers-- there's your troll-fuel for the day) think it's acceptable to use software that was obsolete in 1985.

Microsoft didn't do all that great stuff for C#/.net in its first year because they're did some kind of crazy moon-landing-esque crash project and spent billions of dollars-- they did it because those tools are the bare minimum required to be considered a modern programming environment. I mean even the hipsters at Apple using Objective-C fucking get that.

EDIT: and that was supposed to read "examine variables". Not "example variables".

It feeds on mice and is terrified of command line interfaces.anything that doesn't have a Fisher Price GUI with which to use it with.

HTH, HAND, etc. She's simply trolling for effect. Or from ignorance. I favour the latter in this instance - she simply can't comphrend that there are people out there who not only can use CLI interfaces, but they are also capable of using GUI ones, and are quite happy with the CLI ones. Quite how she expects people to run a fully fledged GUI debugger on a running embedded system for example is, clearly, something she cannot envisage. Or contemplate. Or Every Problem's a Nail that can be solved with VB5's debugger. Or something.

I'd make an exception here: while modern cars are far-improved over older designs, the older models are still fascinating, usually for their simplicity and nostalgia value. A better point might be: do mechanics use steam-powered tools to work on your car or do they use tools built in the 20th century or later? What's especially perplexing about the FOSS attitude is that these aren't just people using CLIs for entertainment, these are people advocating that they be used for serious development. That would be like a mechanic saying everybody needs to stop using fuel injection and go back to carbs (and some do, and they're just as out-of-touch with reality as the FOSStards.)

I remember hearing once "The music you'll end up listening to for life is what was on the radio when you were losing your virginity." Which leads me to:

Morb's FOSS Axiom CXII: The interface you'll stubbornly stick to for life is what was on the teletype when you spent that summer living on the floor of the CompSci lab, while everyone else was out losing their virginity.

EDIT: and that was supposed to read "examine variables". Not "example variables".

I figured as much, since I have language processing capabilities more sophisticated than a 1950s AI program. However, you realize that 30 people are going to read that and use it as justification to reject your entire argument, right? "Well, I've never made a typo, ergo he can tell me nothing useful about software!"

No, I'm not going to spend 15 minutes digging through my history, trying to find the page that I looked at, laughed at and closed. I'm sorry. If you want to believe I made it up, that's fine. However, one thing I've learned from my years in IT is that you should listen to your users, even when you don't think what they say makes sense. I can't tell you how many times I heard a complaint and thought "That's not possible, this person is making it up or did something really asinine" only to discover that it was a real problem triggered by something nobody had anticipated.

Then again, you seem to have embraced the FOSSitude of "any user who doesn't want to live in the shell is an idiot." That's your choice, but I think it's a poor attitude and I think it leads to being a poor developer.

What I've seen of the C# docs is pretty good, but I know you don't want to hear that. The core Java docs provided by Oracle aren't too bad, even though there are some abysmal omissions. However, the format hasn't changed for 15 fucking years. At least with Java 7 they dropped in a stylesheet that makes it look less like a GeoCities party. However, it still uses goddamn frames for navigation.

I'm going to make claims about your things being stupid and my things being not stupid, but when I'm asked for examples by a genuinely curious Ben L., I am going to complain that it's too hard to use a GUI like a web browser to hide the fact that my claim of the thing being stupid was completely made up by my head.

Here's a story about me thinking someone made something up because I didn't listen to their evidence. Unlike this situation, the evidence actually existed.

I'll take the simple question you have asked as a statement that you think all GUI applications are bad and that CLI is better in all circumstances. That's not remotely close to what you said, but I'll assume that anyway.

You asked for an example of good documentation? Okay, here are the names of some programming languages and a rant about web design.

I'm going to make claims about your things being stupid and my things being not stupid, but when I'm asked for examples by a genuinely curious Ben L., I am going to complain that it's too hard to use a GUI like a web browser to hide the fact that my claim of the thing being stupid was completely made up by my head.

I'll take the simple question you have asked as a statement that you think all GUI applications are bad and that CLI is better in all circumstances. That's not remotely close to what you said, but I'll assume that anyway.

Where did I say this? I recall only taking your explicit statements that a particular CLI tool is superior (or at least equal to) a GUI tool.

I can't recall a single time you've given us an example of a tool that wasn't CLI.

When Blakey criticized your examples for not being GUI, you claimed he was "scared of CLIs". This attitude of simply shrugging off criticisms with some childish nonsense* really does not improve my opinion of you. The worst part is, I think you probably see yourself as someone who is open to intellectual debate and who values the truth, even though you clearly are not. Increasingly, your comments show you as little more than a religious zealot who will not listen to a single argument that he is prejudiced against.

What's especially perplexing about the FOSS attitude is that these aren't just people using CLIs for entertainment, these are people advocating that they be used for serious development. That would be like a mechanic saying everybody needs to stop using fuel injection and go back to carbs (and some do, and they're just as out-of-touch with reality as the FOSStards.)

You remember how much 1970s cars STUNK? Before catalytic converters, fuel injection, etc? Dear Christ, there was a classic car going down my street a couple days ago and the odor that thing trailed-- I swear to Christ it must have only been burning maybe 1/3rd of the fuel going into the engine and ejecting the rest as gas vapor for everybody else to get in their lungs.

And guess what? That car was owned by a guy who LOVED IT. A guy who spent hundreds of hours over the last year tuning it up and making it run AS WELL AS POSSIBLE. And the end result still was a awful piece of shit I'd gladly exchange for my 1986 Mitsubishi Cordia-L. (Which was also a piece of shit, but looked vaguely like a DeLorean so there you go.)

Anyway. Yeah. The problem here isn't that it's a community developing with 1970s development practice, the problem is they spread. I work with people who are actually proud that they use 100% open source CLI bullshit, proud that they picked Git for source control, proud that they used that Heroku mess instead of actually using a source control system that fucking works, or a web host that is usable by someone without 48 years of intensive study inside a monastery. These aren't crazy people building experimental database apps in Gentoo, these are actual employees at a corporation whose purpose is (ostensibly) to make money. It's fucking unbelievable.

I mean thankfully we were able to fire the main idiot promoting this shit on my team, but our company's engineering staff is still full of these morons. Authentication? OAUTH!!!! It has an O and the O means OPEN and therefore it is the BEST!!!! HTML Auth? INFERIOR! Even though it's 50,000 times easier to implement and works more reliably and is just as secure! INFERIOR! Fucking idiots. Meanwhile they can't design a sensible JSON API to save their lives-- this is relevant because after 2 weeks of working with their bullshit broken API I am literally going to kill them.

Where do these people come from? Why are companies like Google and Facebook and Twitter so fucking proud of themselves for using 1970s technology? Why is there no shame associated with this buffoonery? "We're inefficient and proud of it!" "We reject anything that improves the developer experience even slightly!" GO FUCKING AWAY! GO DIG DITCHES FOR A LIVING! PLEASE! SAVE US ALL.

You remember how much 1970s cars STUNK? Before catalytic converters, fuel injection, etc? Dear Christ, there was a classic car going down my street a couple days ago and the odor that thing trailed-- I swear to Christ it must have only been burning maybe 1/3rd of the fuel going into the engine and ejecting the rest as gas vapor for everybody else to get in their lungs.

I blame unleaded fuel. I remember tetraethyl lead smelling pretty good. And, sure, they were basically carcinogens with four wheels, but they looked good. Nowadays cars are just smooth blobs that all look alike.

And guess what? That car was owned by a guy who LOVED IT. A guy who spent hundreds of hours over the last year tuning it up and making it run AS WELL AS POSSIBLE. And the end result still was a awful piece of shit I'd gladly exchange for my 1986 Mitsubishi Cordia-L. (Which was also a piece of shit, but looked vaguely like a DeLorean so there you go.)

I basically agree. I'm fond of "keep the body, rip out the engine and exhaust and replace with proper fuel injection." A lot of people consider that sacrilege, but I'd rather have an engine that actually starts reliably.

Anyway. Yeah. The problem here isn't that it's a community developing with 1970s development practice, the problem is they spread. I work with people who are actually proud that they use 100% open source CLI bullshit, proud that they picked Git for source control, proud that they used that Heroku mess instead of actually using a source control system that fucking works, or a web host that is usable by someone without 48 years of intensive study inside a monastery. These aren't crazy people building experimental database apps in Gentoo, these are actual employees at a corporation whose purpose is (ostensibly) to make money. It's fucking unbelievable.

Yeah, I dunno, it's baffling. I guess I'm a part of the problem since these are the tools I use, but it's not like I don't see they are deficient; it's just that people are willing to swallow the marketing* bullshit and think that saving $10k on software licenses puts them ahead, regardless of how much time is wasted by their engineers arguing over which mediocre FOSS framework they should build on (spoiler: they picked the poorly-documented, buggy one that has a feature set of circa-2001 Java servlets.) So they pay me and I do it and it's where a lot of the money is, but it's stupid. I had our CEO tell me to my face a few weeks ago that "No profitable company uses Microsoft anymore. It's all about super-efficient Open Source like Macs and Linux. You know, like Google."*** I make it a rule not to call the person who signs my paychecks names, but I had a hard time keeping the disgust from showing on my face.

I saw. I'm trying to figure out if GIMP will let me make a less-shitty animated GIF or if I should just say it's a statement about FOSS image software.

(It's amazing to me that FOSS has more marketing bullshit around it than companies who spend millions on marketing departments. The only movement with a consistently higher hype-to-reality ratio is Apple. And both FOSS and Apple have done well by appealing to people's vanity. FOSS does this by appealing to socially-maladjusted nerds by telling them "Hey, you're smarter than all those mainstream guys who use Microsoft. Those were the guys who gave you a wedgie in high school and then popped the cherry of that one girl you had a crush on. Show them all how smart you are by using all your software without a mouse. You may not have as much money or sex as them but, by God, you aren't some M$-using drone!"**)

(**Count the WTFs in this statement. I count four incorrect statements, at least.)

(I think this is what causes the violent reaction from FOSS nerds. So much of their ego is tied up in doing things "smarter than the masses" that if you point out the masses might be right on this one, they'll burst into histrionics while having a flashback to someone punching them in the dick in gym class. Like, if people criticize something I like, I don't erupt into a trembling rage which betrays my deep insecurities. If someone's like "Hey, Morbs, how the hell do you drink this Thunderbird wine shit? It tastes like kerosene, you wino jackass!" I don't smash open my bottle of Thunderbird and slash open their jugular.

(****Except that one time, but that was the Thunderbird controlling me, and not my impotent rage.)