News for hackers. Stuff that matters.
Re:Building Web Apps in Go by douche on Monday March 28, 2016 @01:40AM (#11372897)
I've got to be honest, when these language shootouts come up (and it feels like I've read a lot of them this week), it reminds me why I'm pretty happy working in C#. I've got great tooling, generally good libraries, a pretty decent core language, and generally, shit just works so I can get shit done.

Is it super sexy, no. Does it win me Internet Geek Points™, no. It's pretty much still Windows-only, but fine, that's the world I live in. The foot-guns are relatively small-caliber, and I've learned enough to avoid pointing most of them. I can do OOP, I can do functional (maybe not super pure ivory-tower monad/ADT/pattern-matching sorcery, but whatever - still have F# on my todo-list...), I can write straight procedural code if I really wanted to. I've even got a REPL and can use it as a scripting language.

Plus, I have generics :-)

Re:Building Web Apps in Go by osweiller on Monday March 28, 2016 @04:43AM (#11373268)
Honest question - what is the point of this comment?

While I understand that HN has quite a population of .NET platform devs these days, traditionally this sort of noisy comments would be quickly rendered transparent (this one even claims to justify itself relative to a "language shootout"....only it's just a page talking about Go best practices, so it is off the mark). And the "Internet Geek Points™" thing is just nonsensical, and has become another defensive .NET talking point (e.g. "We're not trend chasers...now let me tell you how we also incorporate all trends").

I would have ignored it, but the above "language partisan" comment, having utterly nothing of value to add to the comments, or this story, and being completely out of context, has been floating on the top, betraying a pretty profound twist in the saga of HN.

Re:Building Web Apps in Go by fauigerzigerk on Monday March 28, 2016 @06:03AM (#11373444)
Combine a momentum oriented society with an up/down vote button on everything and this is what you get.

Voting based on insightfulness or relevance simply cannot work when only a small minority can ever be expected to stick to it. We are being conditioned on picking a side and then boosting that side no matter what.

Voting up a comment that is in disagreement with your own opinion makes it look like you are losing the debate if being upvoted is generally associated with being right. So most people won't do it.

I believe the only way to prevent this in a community is to force people to use only words to express opinions. In my view, voting has no place in debates. And yes it means that we're not going to get our debates filtered and ranked according to insightfulness. But at least we're not getting any false signals based on perverse incentives either.

Re:Building Web Apps in Go by bhauer on Monday March 28, 2016 @01:56PM (#11375976)
> I believe the only way to prevent this in a community is to force people to use only words to express opinions. In my view, voting has no place in debates. And yes it means that we're not going to get our debates filtered and ranked according to insightfulness. But at least we're not getting any false signals based on perverse incentives either.

And yet, I just upvoted your comment because it seemed much easier than typing a reply to say that your comment was of interest to me and I enjoyed reading it. But now I've said that as well.

I like having the flexibility to do both, but I recognize the compelling arguments you've made about the problems with having voting available everywhere. On HN in particular, I feel the downvote capability should be further constrained than it is presently (I think it opens at 500 karma presently).

Re:Building Web Apps in Go by infogulch on Monday March 28, 2016 @03:23PM (#11376640)
Perhaps the downvote button should be changed to a flag (essentially how I use it) which might discourage using it for disagreement. I only downvote a comment when it is abusive, belligerent, blatantly condescending, or clearly nonsensical and unwilling to actually converse.

Ideally upvote would only be used for well-stated well-reasoned arguments with a plausible basis, regardless of the actual position, but I sometimes find myself upvoting a comment because I agree with it's conclusion. I think the agree-upvote is lamentable, but unavoidable in general.

Some UI changes might be able to fix the disagree-downvote (i.e. change to 'flag'), but I feel that the agree-upvote is too much a part of human nature to have an easy fix.

Re:Building Web Apps in Go by frogfuzion on Monday March 28, 2016 @07:03AM (#11373585)
I believe the author's tone is what is getting you here. They really should have phrased the comment like "I'm really happy with a C# .NET backend because of a,b,c. What advantages would Go have over this backend to make it worthwhile for me to investigate?" This would have been a more useful comment.

People invest time in their languages so it's easy to subtly inject emotions into comments that come off snarky and unproductive. Then other supporters of the language just defensively click the up arrow.

There was a lot of this in the WASM articles where they were saying it will kill off Javascript.

Re:Building Web Apps in Go by osweiller on Monday March 28, 2016 @07:51AM (#11373708)
Even though such a question would be more useful, I'm glad they didn't go that route as it would be dishonest: Too often we see the "why should I learn this?" questions that are really transparent "Why I haven't and won't bother -- my mind is firmly made up -- and here's how I pretend that I'm just being open minded in critiquing it" posts.

Many of us are happy in our niche, and learning new things is often a PITA. We're happy with what we do and how we do it, with the tools and things that we're used to. And that's okay. The truth is that the language evolution is something that we can mostly just ignore, and if eventually something is truly dominant for a use case, we can easily adopt it with no real handicap over people who ground with it from the ugly beginnings (and many of those advantages will percolate to other platforms anyways. node.js is just layers and layers of compromises and problems, but it had a profound impact on other platforms, and truly changed the web serving game).

And that's okay. But traditionally if someone posts resources for a particular language, it is bad form to engage in language wars, gloating, holier than thou (which the whole scarequote "maybe it isn't `trendy'" sorts of posts really are), etc, in the discussions. They're boring, we've had them literally thousands of times, and they are a distraction from discussing the actual contents of the post.

I've noticed this particularly afflicts Go discussions. Python, Rust, D, Swift...all can be discussed rationally and productively. But if Go appears, it seems to be just threatening enough that it draws out people concerned about things they don't know.

Re:Building Web Apps in Go by geodel on Monday March 28, 2016 @09:53AM (#11374232)
> I've noticed this particularly afflicts Go discussions. Python, Rust, D, Swift...all can be discussed rationally and productively. But if Go appears, it seems to be just threatening enough that it draws out people concerned about things they don't know.

I totally agree with that. Apart from Swift which is by fiat, Go is the only language in top 15 or so which is used for serious work by developers who are not PL enthusiasts/theorists. This is putting serious, though I think unfair, demands on Go developers to justify their choice. So users of languages as diverse Haskell, Elixir, Java, Rust, Scala and many more keep beating Go with their favorite feature of preferred language. Somehow Rust specially stands out as its users/developers seems 100 times more interested in Go related discussions than vice versa. It is similar to politics saying: "You may not be interested in politics but it doesn't means politics is not interested in you"

Re:Building Web Apps in Go by danieldk on Monday March 28, 2016 @10:10AM (#11374324)
It also doesn't help that Go users tend to deny weaknesses in Go. The typical line is 'you don't understand it because you have not used it long enough'.

I have written Go intensively and less intensively over the course of last four years. Not surprisingly, most of the criticism are true.

Re:Building Web Apps in Go by geodel on Monday March 28, 2016 @10:49AM (#11374553)
I think criticism is all fine even by non-users. What I do not like is justifying to others who have no stake in project that why I used Go in place of lang of their choice.
Re:Building Web Apps in Go by karmakaze on Monday March 28, 2016 @12:45PM (#11375381)
Having used Go for some time now, and suspect that this attitude is a reflection of 'The Go Authors' and documentation.

Although it's described as a systems language, it glosses over many low level details. The 'atomic' package says 'These functions require great care to be used correctly.' In attempting to find out what care is required, I ultimately discovered that the authors couldn't agree on how to express how to define its operation.

When used for applications and running into shortcomings, the response is that it's not meant for that. The takeaway is that Go hits a spot between low-level systems programming and applications.

Re:Building Web Apps in Go by douche on Monday March 28, 2016 @08:13AM (#11373776)
Probably this should have gone underneath the comment that's next down the page (echelon's "I'm so conflicted by Go...") instead of top-level. It was late.
Re:Building Web Apps in Go by zongitsrinzler on Monday March 28, 2016 @04:46AM (#11373274)
Look at the username ;)
Re:Building Web Apps in Go by thegenius2000 on Monday March 28, 2016 @12:47PM (#11375395)
Honestly comments like these further discredit the Windows-development-community in my view.

First, a quick rant. You talk about "great tooling," and by this (I fear) you mean Visual Studio? Good libraries, by this you mean things like System.Foo.Bar.BazQux()? A "decent core language," by that you mean a pretty blatant knock-off of Java (which is an overly-bloated language in its own right)? And by "can do OOP" you mean must do, since the language forces you to embrace the paradigm? "Functional?" Without real first-class functions: without closures?

Generics? Fair point. Golang is lacking in that regard, at least for now.

But let me address the key misconception in your comment. You mention "sexiness," which in your mind is some sort of pointless quality. Here's what you're missing: biologically, we interpret sexiness as an indication of fertility. Good tools and languages aren't good because they're sexy, they're sexy because they're good. The ability to perceive, expect and demand this sexiness from tools is nothing more than a veiled desire to work in the most effective possible way. That's why people love Unix and hate Windows. That's why they leave languages like Java, C#, and C++ for Python and Go; and some (who I admire) use Haskell. It's not about elitism, the elitism is merely a by-product: the fundamental issue here is greediness, and the strength of one's desire to be as efficient as possible.

Re:Building Web Apps in Go by douche on Monday March 28, 2016 @02:50PM (#11376391)
Did OOP kill your father, kick your dog, and sleep with your wife? If you stick your fingers in your ears and sing "module! module! module!" as you do it, you could probably live with the fact that C# coerces you into putting your static functions in a class. Since 2007 there have been LINQ, lambdas, closures, and a whole host of functional features added to the language.

With regard to sexiness, as an old Quebecois logging foreman once told me, "Sometimes you want the supermodel wife, and sometimes you want the one who can carry the canoe." If you can get both, great, but I got a lot of canoes to carry.

> Honestly comments like these further discredit the Windows-development-community in my view.

I'm just an asshole with an opinion on the internet, and I seem to have misplaced my official Windows-development-community membership card...

Re:Building Web Apps in Go by dang on Monday March 28, 2016 @03:44PM (#11376784)
Please don't post unsubstantive comments to Hacker News.

Programming language flamewars are bad for this site. They're tornados of tedium that pick up entire threads and deposit them miles away in an intellectual desert. Please let's keep them off HN.

Re:Building Web Apps in Go by aikah on Monday March 28, 2016 @07:09AM (#11373596)
C# or Java are enterprisey, established languages used by millions of developers. They aren't going away because of Go, Elixir, or Node.js ...

And C# is sexy, it's the best object oriented language out there. So don't worry. C# doesn't need yet another guide for web apps, there are thousands of books and tutorials about the subject already. You don't need to try selling C# to anyone. People who need it already use it.

Re:Building Web Apps in Go by thegenius2000 on Monday March 28, 2016 @12:49PM (#11375416)
Yes, C# is sexy if you're okay being locked into Windows, Visual Studio and OOP from right-off-the-bat.
Re:Building Web Apps in Go by manigandham on Monday March 28, 2016 @03:29AM (#11373129)
C# is an amazing language. The .NET framework is equally amazing and probably the most productive framework created so far.

In the next 12 months with the release of .NET Core, even the Windows requirement will go away. It should be at the top of the list for just about any project these days.

Re:Building Web Apps in Go by wfsfw4w44 on Monday March 28, 2016 @08:44AM (#11373898)
No, it should not.

As another poster already commented; > You don't need to try selling C# to anyone. People who need it already use it

Re:Building Web Apps in Go by Rapzid on Monday March 28, 2016 @12:09PM (#11375080)
That's just as definitive as "it should be...".

"Need" is a funny way of framing your counter. Of course any one who "needs" it, need meaning they can't use something else, would be using it. However there are many who would very much LIKE to use it but can't because the Core stuff is not quite ready for them; I NEED for it to work on OSX and linux but as of the latest dotnet deb package I can't use the AWSSDK with it.

Re:Building Web Apps in Go by manigandham on Monday March 28, 2016 @12:44PM (#11375372)
> No, it should not.

Why not? I'm not selling anything. I just listed some reasons why C# is a great language with a great framework that can be more productive than most other environments.

By the way, it's probably one of the most commonly used languages ever when looking at the entire amount of software that's written in the world. Basically the entire Fortune 500 runs software written with .NET/C#.

Re:Building Web Apps in Go by johnny_reilly on Monday March 28, 2016 @02:08AM (#11372962)
I know what you mean :-) Incidentally the Windows-only days will one day be a memory: https://get.asp.net/
Re:Building Web Apps in Go by scruple on Monday March 28, 2016 @04:00AM (#11373198)
Yeah, well, I've been hearing the "one-day we'll be on Linux" claims long enough to grow tired and move on. Developing on Windows, after having had some experience developing in a Linux/Mac environment, feels like second class citizenry. That's without even talking about nuget, etc...
Re:Building Web Apps in Go by manigandham on Monday March 28, 2016 @05:03AM (#11373315)
.NET has been available on Linux for years via Mono (with various compatibility issues but it works). And the next official version with cross platform support already has a Go Live license which means Microsoft will support any production app.

"one-day" is today.

Re:Building Web Apps in Go by scruple on Monday March 28, 2016 @05:10AM (#11373331)
What production application are you deploying in .NET on Linux today?

edit/ I'm not letting you off this easily. Mono never really worked and never really had Microsoft's support. Where's the ecosystem?

Re:Building Web Apps in Go by manigandham on Monday March 28, 2016 @01:46PM (#11375871)
In reply to your edit:

Yes, Mono had issues as I said but it did/does work if you can work around it. Granted the windows licenses are cheaper than the dev effort to fix any potential issues so it's not the best situation.

But .NET Core can be used today and it works fine with the framework rapidly being developed. Several major libraries are also in or have completed the migration and we're just waiting on some other dependencies but we do have smaller apps running today.

Ecosystem for the code is the same (and as vast) as it's ever been, that's the strength of the CLR/framework. Mono/.net on linux does have a community but it's growing quickly now with Core.

Re:Building Web Apps in Go by manigandham on Monday March 28, 2016 @05:17AM (#11373344)
We have some smaller backend stuff running today (messaging, logging, etc). Bigger apps have dependencies that are still waiting to be compatible with .NET Core.
Re:Building Web Apps in Go by cel1ne on Monday March 28, 2016 @04:56AM (#11373301)
Isn't the biggest problem of .NET/C# that Java and the JVM are just too similar? Sure, some things are nicer in .NET-land, but is it worth the switch, which kinda locks you, or at least moves you towards Windows too?
Re:Building Web Apps in Go by robodale on Monday March 28, 2016 @10:04AM (#11374307)
I'm glad you had the balls to come out and say this here..on HN. I'm a .NET/C# dev as well (as labelled by recruiters and companies hiring me).

There's a time to play with new shiny objects, and there's a time when you have to get real work done.

If anyone here hates on you because you can get shit done with your preferred language...they're just jealous of your productivity.

Re:Building Web Apps in Go by dimgl on Monday March 28, 2016 @01:53PM (#11375951)
It doesn't take "balls" to say anything anonymously on an online forum. Nobody's angry he likes C#; there simply is no reason for this comment to exist on a thread about Go.

I've done C# development for many years. C#, while elegant, is far from being a productive language, mostly because of its ecosystem and community. Making a simple API web server using proprietary Microsoft libraries is way harder than it needs to be. Documentation is also piss-poor on most of these tools, and many developers just resort to reading opinionated online web blogs which give all kinds of terrible advice. You can use open-source libraries like Nancy instead, but they're usually error-prone and updates have been known to break production deployments.

Visual Studio still crashes all the time and compilation on bigger projects is usually slow and painful. I've had to work on full fledged projects with infamous Entity Framework data-access layers and these things are a nightmare to work with. I've seen entire projects generated using T4 text templates...

As feature-rich as the language may be, the way developers use it lead to huge problems. Now that Microsoft is introducing ASP.NET Core the fragmentation in the community is only getting worse. Couple this with the fact that .NET is used in all sorts of dysfunctional development teams, and you've got a recipe for disaster every time.

C# is not a productive language.

Re:Building Web Apps in Go by pjmlp on Monday March 28, 2016 @06:20AM (#11373485)
For me the few positive things is that Go is a kind of second coming of Oberon-2 with C like syntax and now many Hipsters are using it instead of C (why I re-wrote X in Go kind), which eventually leads to less exploit-friendly code being written.