skysight-inc/HackerNews huggingface dataset:
Haskell (with third party library)

http://snapframework.com/docs/tutorials/snap-api

main :: IO ()
main = quickHttpServe site

site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "bar")
, ("echo/:echoparam", echoHandler)
] <|>
dir "static" (serveDirectory ".")

echoHandler :: Snap ()
echoHandler = do
param <- getParam "echoparam"
maybe (writeBS "must specify echo/param in URL")
writeBS param

-----

Rust (with third party library)

https://github.com/chris-morgan/rust-http/blob/master/src/ex...

//! A very simple HTTP server which responds with the plain text "Hello, World!" to every request.

#![crate_id = "hello_world"]

extern crate time;
extern crate http;

use std::io::net::ip::{SocketAddr, Ipv4Addr};
use std::io::Writer;

use http::server::{Config, Server, Request, ResponseWriter};
use http::headers::content_type::MediaType;

#[deriving(Clone)]
struct HelloWorldServer;

impl Server for HelloWorldServer {
fn get_config(&self) -> Config {
Config { bind_address: SocketAddr { ip: Ipv4Addr(127, 0, 0, 1), port: 8001 } }
}

fn handle_request(&self, _r: Request, w: &mut ResponseWriter) {
w.headers.date = Some(time::now_utc());
w.headers.content_length = Some(14);
w.headers.content_type = Some(MediaType {
type_: String::from_str("text"),
subtype: String::from_str("plain"),
parameters: vec!((String::from_str("charset"), String::from_str("UTF-8")))
});
w.headers.server = Some(String::from_str("Example"));

w.write(b"Hello, World!\n").unwrap();
}

}

fn main() {
HelloWorldServer.serve_forever();
}

-----

Go (native)

package main

import (
"fmt"
"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}

-----

Yeah, ok.
As I hinted at in another comment, this info should be on your website. I get the flat layout and all, but I think you'll want to AB test using the abstract description of features ("Google Analytics for money", "a precise, scalable double-entry accounting ledger", etc) with the bullet points you mentioned in the this post and in your FAQ.
Swift: Cocoaphobia
Just saying you'll have a REST API doesn't give me enough reason to sign up for an invite. Your API could be an joy to work with, or I might burn a week and a half just getting the initial auth working.
Wow, you never use other peoples views of you as a wake up call for self-improvement? Jesus, I can't imagine how lazy and disgusting your are.

Seriously though, there's plenty reason.
I understand your position clearly!

People felt the same way about Salesforce.com, i.e. The data is too sensitive to place in the cloud.

Yet millions use QuickBooks Online every day.

We believe strongly that a huge new API economy is being built, we're delighted to offer our accounting API, mobile app, and web app to people who do not wish to build and manage it themselves.
Awesome! We've been waiting for this for some time - nice release Nick!
I'd go so far as to allow the quoted to be referring more generally to tech workers in general, including many that do not function in the abstract.

With regard to "tolerance for ambiguity," perhaps there's a point to be made. I know I have a low tolerance for ambiguity, but I work with male co-workers (cough sales weasels cough) that are just as ambiguous about things as anyone else could ever be.

However, I think you've illuminated a point that I hadn't considered: that the speaker meant something other than what was said; that this self-described intelligent individual may have not been clear; or didn't understand how their words would be misinterpreted; or is oblivious to their own misuse of language. And this is usually the cause for so much animosity and/or ambivalence: that the speaker/writer can't be bothered to clarify their intent; that they throw up their hands and declare "you wouldn't understand!" rather than explain themselves; and further that their audience is all-to-eager to castigate them for being stubborn, abusive, obtuse, etc.
Aereo Halts Services after SCOTUS Defeat
Just out of curiosity what damage ?
The links (blog, etc) on the "App" screen are all using SSL, which doesn't appear to be configured properly:

"You attempted to reach subledger.com, but instead you actually reached a server identifying itself as *.wpengine.com."
Still could use all the help we can get thanks to all so far that have found it in there hearts to pay it forward and help out our family in this time of need thankyou from us is not a lot but it what I have to give hope to some day give it forward to someone else in there time of need
The only people I see getting violently insane over Bitcoin are people who are afraid of it and unable to resolve their cognitive dissonance over it. I get you don't like it - but that doesn't mean you have a right to make blaming statements over it. I for one, am not a maniac.

BTW, contrary to your statement saying the bill isn't just about Bitcoin, here's the link to the brief: http://www.leginfo.ca.gov/pub/13-14/bill/asm/ab_0101-0150/ab.... Bitcoin is mentioned 23 times - a good reason to single it out if there ever was one.
Not really. I've read the draft a few months ago.
On the other hand most commercial GPU drivers can be considered to be full of security-related bugs. Would you really trust your servers with them?
A lot of great points in this thread. Definitely a good idea to find a niche, as your biggest differentiator will be marketing.
We're not satisfied with our documentation, which is why we don't give direct API access at this time.

Understand your input, appreciate it a lot. Thanks!
You and Your Research, by Richard Hamming (Sam Altman)
I am completely in support of Haskell and functional languages in general. There are some gaps in Go and definitely some glaring problems. But this comparison also only lists the bad. Go is good for what it was intended for which is concurrent programming and server/web application.

Just a note: I don't think it is fair to say Go has absolutely no immutability as it was defined, it does have "const". See http://golang.org/ref/spec#Constant_expressions
Sure, I'd just say that Go has been extremely stable since before 1.0 (~2 years).

Author's point was that we should not use "not good" languages for the fear that we might be stuck with them for next 20 years. I'd rather be stuck with a language whose designers are very resistant to change vs one that gets features haphazardly bolted on every few years (PHP comes to mind).
Your primary criticism of Rust is that one (community-maintained, and not "official") Web package requires setting headers explicitly. OK.
So, when you downvote me, the price of Bitcoin automagically will go up?
> Law ABC of section 123, on appendix XYZ passed 7 years ago as an amendment to a completely unrelated bill nobody was paying attention to

Surely you've read all 150,000 section of the California statutes, 50,000 sections of the federal statutes, 30,000 sections of the California regulations, and 30,000 of the federal regulations. I mean, its not as if the government is purposely not publishing the law in an accessible manner. The government spends billions of dollars to send frogs into space, so surely the law must be so easy to find and read that you can download it in a standardized, machine-readable format from a multitude of sources, for free (as in freedom and as in beer)..
prefix code lines with two spaces to get a pre tag.

like
this
I thought for certain this was going to be a prison, but it turns out to be something kind of the same for retired people.

The article mentions some demographic peculiarities, but the main point they seem to miss, is if every generation is poorer than the last as a national economic policy, and they're not leaving money on the table with this one, then who is going to live there in the future? I surely will not be able to afford it by the time I retire, at present trends.

If you build something thats not sustainable on the assumption it'll be sustainable, thats not going to work well.
Yikes, apologies.

Will get that fixed ASAP, thanks for pointing his out.
Ask HN: Opportunity at Apple as a Software Engineer
I've been working at a startup for 1.5 years now. I don't particularly believe in the idea anymore but feel guilty when I think of moving on.

I just got an opportunity to work at Apple as a Software Engineer.Working at Apple was always a dream but now that I have got it, I am having doubts.

I worry that I won't enjoy the corporate culture and my entrepreneurial spirit would stifle at such a big company.

Looking for general advice. How is Apple's culture for an engineer in 2014?
You have to create the content by yourself. No user is going to create your content magically on an empty site. So build your content (it will be a rather long process), and then it will (not organically) generate interest.

Also, target your friends / people you know that could use your website, and ask them which content they would like to see, if they want to help you build the initial content.

What's your website ?
>Every single thing listed in the article can be added to Go at any point

Every single thing listed in this article could be added to TI BASIC at any point. It would just require a complete re-formulation of the language into something completely unrecognizable.
Since none of your examples are actually doing the same thing, I'm not sure what you're trying to say here. That being said, I've reformatted the code from the original post below (presented without comment):

-----

Haskell (with third party library)

http://snapframework.com/docs/tutorials/snap-api

main :: IO ()
main = quickHttpServe site

site :: Snap ()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "bar")
, ("echo/:echoparam", echoHandler)
] <|>
dir "static" (serveDirectory ".")

echoHandler :: Snap ()
echoHandler = do
param <- getParam "echoparam"
maybe (writeBS "must specify echo/param in URL")
writeBS param

Rust (with third party library)

https://github.com/chris-morgan/rust-http/blob/master/src/ex...

//! A very simple HTTP server which responds with the plain text "Hello, World!" to every request.

#![crate_id = "hello_world"]

extern crate time;
extern crate http;

use std::io::net::ip::{SocketAddr, Ipv4Addr};
use std::io::Writer;
use http::server::{Config, Server, Request, ResponseWriter};
use http::headers::content_type::MediaType;

#[deriving(Clone)]
struct HelloWorldServer;

impl Server for HelloWorldServer {
fn get_config(&self) -> Config {
Config {
bind_address: SocketAddr {
ip: Ipv4Addr(127, 0, 0, 1),
port: 8001
}
}
}

fn handle_request(&self, _r: Request, w: &mut ResponseWriter) {
w.headers.date = Some(time::now_utc());
w.headers.content_length = Some(14);
w.headers.content_type = Some(MediaType {
type_: String::from_str("text"),
subtype: String::from_str("plain"),
parameters: vec!((String::from_str("charset"), String::from_str("UTF-8")))
});
w.headers.server = Some(String::from_str("Example"));

w.write(b"Hello, World!\n").unwrap();
}

}

fn main() {
HelloWorldServer.serve_forever();
}

Go (native)

package main

import (
"fmt"
"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}

Yeah, ok.
Thanks! Very clear and happy about all your feedback. Thanks!
Photos of her, if you're interested: http://dorade.org/photos/
> Once something like generics are added

The <> notation in id<T>(item for generic bracketing is harder to read than other bracketing symbols, e.g. () [] and {}. Unlike those others, angles are used for comparison ops and arrow heads also. If Go ever introduces generics, the Scala-like [] notation looks cleaner and would fit into Go's existing grammar.
In practice, Go has caused me less frustration than any other language I've used. I feel like the author's complaints here aren't really grounded in much experience, or maybe he's trying to use the wrong tool for the job.

The author's conclusion:

· Go doesn't really do anything new.
· Go isn't well-designed from the ground up.
· Go is a regression from other modern programming languages.

is hardly sustainable. Go was production-ready in 2011 with a stable version 1.0. It has a surprisingly mature tool chain and vibrant community. Go cross-compiles from my 64-bit Mac to a 32-bit Raspberry Pi or ARM Android phone on a whim. I can deploy my app by copying a single, self-contained binary. Tell me again that Go does nothing new for us.

Go makes concurrent programming safe and easy (with a nice syntax) -- something that we frankly should have done 30-40 years ago when we first started thinking about multiprocessing. Go was invented by folks like Ken Thompson (who created Unix) and Rob Pike (who created the Plan 9 operating system and co-created UTF-8). Tell me again that there isn't good engineering behind Go.

Finally, Go attacks the needs of modern programming from a different paradigm than we have been using for the last 10-20 years. From the first paragraph of Effective Go:

> ... thinking about the problem from a Go perspective could produce a successful but quite different program. In other words, to write Go well, it's important to understand its properties and idioms.

So of course it's different than a lot of other aged languages. Go tackles newer problems in a newer way. Tell me again that Go is a regression from other programming languages.
This reeks of 19th and 20th century medicine trying to explain female "hysteria".

Explaining complex emotional and sociological behavior by rooting it in handfuls of brain slices is questionable to say the least.
Here's the 2013 PyCon talk given by one of the Plover developers, Mirabai Knight: https://www.youtube.com/watch?v=Wpv-Qb-dB6g
I'm of the opinion that most people don't need to discuss things irrelevant to the task at hand. I deal with personal life throughout the day - I IM my wife and children for various reasons. I have co-worker friends that I lunch with and with whom I do discuss personal matters sometimes. I do not need to discuss personal matters, let alone sexual (for all interpretations) matters, with my manager, with the other team members, with various other male and female co-workers. It's not relevant to the reason I'm at the office. Ever.
what can we learn from this list? handful has been acquired, most are independent. What does it mean by independent, are they stagnating, dying, growing? Those would be very interesting.
Unless you have an existing audience you've built up before launching, I think the not-so-secret secret of most user generated content sites is that they faked it when they were starting out.

Alexis Ohanian has talked about how they seeded Reddit with posts made under various fake usernames for the first few months after launching. They made it so that as admins, they just had an extra field for "username to post with" when creating new posts.
I completely agree, when I read that part it virtually invalidated everything else specious that was said, that is simply nonsense.
I found myself a bit suspicious of these two statements as well:

1.

> The amygdala — is precocious and develops way ahead of the prefrontal cortex

2.
> the brain’s reward center, just like its fear circuit, matures earlier than the prefrontal cortex

I had a quick Google but couldn't really find any satisfactory research that would support this. Anyone have any papers? What does "mature" really mean in this context, how is it being measured?
Onarbor, https://onarbor.com, is exactly this.
>can anyone comment on whether they find the problems outlined in the article to really be painful in day-to-day go development?

Author here. Depends on what I'm doing. For most simple programs, the things I listed in the article don't really get in the way. So writing my web server in Go was not that bad at all. It was pretty good, in fact.

It's when I start making larger programs that I start feeling the constraints of the things I listed in the article. Having a strong, capable type system really helps me keep track of large projects.
In Defense of Silicon Valley's Culture
>It's a shame that Jeremy Bentham's name is nowadays more associated with Lost than the utilitarianism he pioneered

I'm relieved to see if I google Jeremy Bentham the first twelve links are about utilitarianism with Lost not coming till no. 13.
Yep, we also need our version of garbage collection for concurrency; e.g., http://research.microsoft.com/apps/pubs/default.aspx?id=2112...
I bought a second hand laser printer for about 30 euros. When the cartridge is empty, I'm cheaper off buying a new second hand laser printer than replacing the cartridge - at least was my last thought.
I'm an experienced Go user. I'm also a lover of Haskell and Hindley Milner type systems. and in practice these complaints are not that big of a deal. Generics may or may not get added in the future but in practice you can go a long way with just slices and maps.

And while the Hindley Milner type system is a wonder to behold and I love working in languages that have them sometimes those same languages introduce a non-trivial amount of friction to development.

Go's single best feature and the one around which almost every decision in the languages is centered is an almost total lack of developer friction. If Go has a slogan that slogan is "Frictionless Development". It's easily the simplest, least annoying, and most "get out of your way" language I've ever used.

[EDIT: some wording was incorrect]
It looks strange and not REST:

GET /vehicles/{id}/command/set_charge_limit?percent={limit_value}

Set the charge limit to a custom percentage.
... in white neighborhoods.

Law enforcement against kids is a little more aggressive in non-white areas.
https://hn.algolia.com/?q=hamming+research#!/story/sort_by_d...
Jinja is a bit more liberal when it comes to bringing pythonic syntax to the template, while Django retains a philosophy of "designers are sheep and we must feed them grass".

Disclaimer: I think part of that previous statement might be biased.
> "rape isn't funny" is entirely off topic.

... in response to a joke about Sodom and Gomorrah?

Perhaps that's not the topic you originally intended, but as the comments show, the article left the door wide open for it.

> "The article is about a major new finding in intellectual history"

It presents that finding in a very poor way.
This is a great feature.

It's a shame our internet infrastructure isn't up to snuff.
I've been using Go in a large web application for a few months now. I only skimmed the article, but I didn't notice anything that's caused me problems. I quite enjoy working with it, although I like the idea of adding generics (not that I've needed them yet)/operator overloading/range extension.
I would not say that I am particularly experienced, but I will tell my point of view from a not particularly sophisticated programmer. I am interested in seeing what objections others may have to what I write.

Compared to other popular programming languages aimed at web programming, such as Python, Ruby and PHP, Go provides more type safety. Comparable to Java's but for less code.

Go's runtime and development tools are very lightweight, which is important to me as I use multiple, often dated computers with limited memory.

It is very easy to learn, a low investment. This means that it is conceivable for a student previously only exposed to Java to get on board on your software project on short-time notice.
For fear of disagree downvotes: I would say that many of the qualms brought up in this article are problems that are encountered fighting the language.

The problem of 'summing any kind of list' is not a problem that is solved in Go via the proposed kind of parametric polymorphism. Instead, one might define a type, `type Adder Interface{Add(Adder)Adder}`, and then a function to add anything you want is fairly trivial, `func Sum(a ...Adder) Adder`, put anything you want in it, then assert the type of what comes out.

When it comes to iteration, there is the generator pattern, in which a channel is returned, and then the thread 'drinks' the channel until it is dry, for example `func (m myType) Walk() chan->myType` can be iterated over via `range v := mt.Walk(){ [...] }`. Non-channel based patterns also exist, tokenisers usually have a Next() which can be used to step into the next token, etc.

The Nil pointer is not unsafe as far as I know, from the FAQ: http://golang.org/doc/faq#no_pointer_arithmetic

The writer seems to believe that functions on nil pointers crash the program, this is not the case. It's a common pattern in lazy construction to check if the receiving pointer is nil before continuing.

Go is not flawless by any means, but it warrants a specific style of simplistic but powerful programming that I personally enjoy.
Anonymous-P – Theater on privacy (trailer)
It won't work at, e.g., Heroku.
Yes please. You'd also avoid some icky non determinism in your parser.
Fetish based dieting advice. I'm serious.

In brief you need a market of "kinky people", and you need a market of people who wish to lose weight, stop smoking, or similar.

You agree on challenges, you "punish" them if they fail, or succeed, on a case-by-case basis.

Very hands on. But there are a subset of people who will be in your target audience who are extremely wealthy..
Yeah, this post seems to be most about general purpose language features, and not so much about stuff that is relevant to the niche Go is trying to carve for itself.
Sure, but the question then becomes- Is it really productive economics to allow Facebook to accumulate all that value rather than disperse it out to the users.

Just because that value is a small amount for me as an individual doesn't mean that it's a good idea to just give it away.
What can I do?

The first thing you need to decide is, do you want to work within the law, and try to change the system from the inside, or do you think the system is so corrupt that it can't be changed from the inside, so the only option is to take it down from the outside? Swartz appears to have believed that the second option was the only option, at least in the case under discussion. Do you agree?

I'd like to believe that we can all be winners.

I think you're underestimating the greed and the ego of the people who currently have "ownership" rights to so much information that was supposedly the property of the public, since we paid for it being produced in the first place. Those people are not going to give up their cash cow willingly, and if they are forced to give it up, they will not feel like they are "winners". If that were going to happen, it would have happened years ago, once it became obvious to anyone with half a brain that the Internet was a viable means of distribution for information that belongs to the public--that, for example, scientific papers belong on arxiv.org, not locked up in some journal that charges exorbitant fees for access.

In other words, when you're up against greed and ego, thinking that "we can all be winners" is a recipe for failure. The people who are keeping this system propped up need to lose. Anything less won't achieve the goal.

Or to put it still another way: the ones making it a zero-sum game are the publishers trying to hang on to their cash cow, not us.
From the article:

"... and make them more fearful adults"

From a game theory perspective is there absolutely anyone in a position of power in our existing culture who would not benefit directly or indirectly from a more fearful population? Anyone?

That doesn't prove anything. However, if a problem is found, it does indicate nothing will be done about it.

Very fox guarding the henhouse-like.
>The writer seems to believe that functions on nil pointers crash the program, this is not the case. It's a common pattern in lazy construction to check if the receiving pointer is nil before continuing.

And what happens when you don't check? It crashes. That's the unsafe part.

These crashes are simply not possible in Rust and Haskell, and the type system notifies you if failure is possible (because the function will return an Option/Maybe).