"No, we're telling everyone we are using Java" - <AUTHOR> https://twitter.com/joeerl/status/1104298407231922176 <comment><USER2> Back when I worked on building software for clients, I used to tell people "we run all software on the Java Virtual Machine" instead of "it's written in Clojure", because I was afraid they would get scared.

But then I noticed that nobody actually cares much about what tools you use, as long as they get the job done. The end result is what counts.

<comment><USER3> This is not always true. A friend once built an application for the government (I don't remember any more specifics) in Python. He delivered it to them and mentioned in a document somewhere that it was written in python. This was unacceptable to them because python was not on the list of approved languages. So, after some negotiating, he caved, switched the project to Jython (with minimal changes) and delivered it as "running on the JVM". This was seen as acceptable, and the delivery was accepted.

<comment><USER4> I wonder why that is. I know theres a list of DoD approved software licenses and guidance on using open source software but didnt know there was a list of languages allowed.

<comment><USER5> Probably more to do with the runtime environment.

<comment><USER6> This is exactly why.

</comment></comment></comment></comment></comment><comment><USER7> I once told a competitor that we're using Javascript extensively and our TTM for new features is super low thanks to simply adding NPM modules whenever necessary.

In hindsight I should also have mentioned NoSQL databases and a microservices architecture.

<comment><USER8> > In hindsight I should also have mentioned NoSQL databases and a > microservices architecture.

That would just be cruel :(

</comment></comment><comment><USER9> Recently I was curious why so much big cloud software is written in Java. Cassandra, Kafka, and Neo4j are some examples. I don't have a lot of experience in the area myself (embedded software engineer) so I put it down the JVM providing straightforward platform independence and a consistent API, and the (assumed) simplicity deploying .jar files. This anecdote suggests it may be a less deliberate choice and that Java is just the de facto language. Does anyone have deeper insight on this this trend that they might be able to share?

My apologies for this post being a little tangential.

<comment><USER10> What's the alternative? I have experience with a lot of programming languages and recently decided to use Java on the server side of a side project.

Java is fast, has amazing IDE support, large library ecosystem and it's a solid language. And yes, I stand behind the last claim, I don't understand why Java gets so much hate. Swift is the best-designed general purpose language I've used and it's not _hugely_ better than Java.

BTW, part of the decision to use Java was that I'm very familiar with it and wanted to get started fast, but now I'm having second thoughts. I guess Kotlin would be a good choice? And maybe Swift but not sure about library ecosystem on the server.

<comment><USER11> > _I don 't understand why Java gets so much hate._

I remember when java first came out, I thought it would take over the world if they would "finish it". To me, this meant letting it run like other scripting languages:

        #!/usr/bin/java

and let it do useful things everywhere in the os, but with wonderful OO.

But instead of becoming a systems language, it sort of became a "nice cobol" that was mostly adopted to do business logic. I suspect the limitations imposed on it were to ensure portability and security, but it sort of polarized the people who would or would not adopt it. It was approachable to people who didn't think pointers were necessary (or some who couldn't do pointers), and repulsive to people who didn't want these constraints.

I think over the 20 or so years that followed, the idea of what java is used for has stuck. I also think perl took up the slack on the systems side, with python.

I wonder if java had been more of a systems language from the start, would it have been unsucessful? Or would it have displaced perl/python?

<comment><USER10> Yeah I agree that it should be easy to run it like a scripting language... I just found out it's possible since Java 11, you can now run "java MyProgram.java"

Now that I think about it, I can understand why people would dislike Java, the standard library kind of sucks, it lacked lambda functions before Java 8... and in general there seems to be lack of focus on usability and elegance, which also spreads to the ecosystem. Modern Java is not that bad though.

But - Java offers a surprisingly unique package - it's fast, it has GC, static typing, good library and IDE availability, supports both OOP and functional programming (kind of). There's really only 1 competitor unless I'm missing something - C#. There's also Kotlin if that counts. Swift doesn't have GC and not sure if it's mature enough outside of the Apple ecosystem. Dart is slower.

</comment></comment></comment></comment><comment><USER12> I don't understand talking about programming language without context.

There is no point to discuss or compare programming languages without having the context about project, environment, scale, resources, and architecture.

<comment><USER13> The context is "major financial services company". There are actually quite a few running Elixir.

</comment></comment><comment><USER13> > If I had ever seen a job posting looking for Lisp hackers, I would have been > really worried.

[http://paulgraham.com/avg.html](http://paulgraham.com/avg.html)

<comment><USER14> Viaweb used Lisp.

Google used python, Java, and C++

Amazon used perl and C++

Facebook used PHP!

<comment><USER15> Indeed. And reddit used Lisp, only to their regret after some time [0].

Such decisions are in fact not simply about languages in themselves. They revolve around languages, availability of libraries needed for the task in hand, community, availability of proficient programmers vs your ability to train new ones etc.

[0] [https://redditblog.com/2005/12/05/on- lisp/](https://redditblog.com/2005/12/05/on-lisp/)

<comment><USER16> Reddit's rewrite was done "pretty much done in one weekend".

Things that can be rewritten in one weekend are trivial; they don't speak to anything.

A Lisp site that can be rewritten in Python in one weekend can be probably be rewritten in shell + awk + CGI in two weekends.

<comment><USER15> The link exposes some underlying reasons which I think applies to bigger projects as well. Like the lack of libraries.

<comment><USER16> Lack of libraries applies to tiny projects, because the "activation potential" has to be small. Developers are reluctant to write 1000 lines of library wrappage for the sake of 700 LOC of payload, but they might well do it for something that can be expected to be 25 kLOC, and much more likely if they're going to have 250 kLOC riding on it before the product reaches 1.0.

<comment><USER15> It definitely applies to large projects as well. It's not just a matter of what developers think about writing more code. It's a bit more complicated economic decision involving how a significant amount of resources is going to be spent on writing code, testing it, whether the team is actually capable of writing the needed libraries, security risks introduced by bugs etc etc, just to begin with.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> If the client asks and I tell them I write it in Delphi, I loose the contract period, if they don't ask I generally get the contract. Been like that for last 20 years and will be for the next 20

<comment><USER18> Is this real? If so, please elaborate.

<comment><USER19> Nobody writes Delphi so it would be difficult for the client to maintain their software if their relationship with the original author ever ended.

<comment><USER20> Yup, I don't blame the client at all for rejecting a Delphi contractor.

Where I live it would be easier to just start the project from scratch than to try to find someone proficient in Delphi to maintain it

<comment><USER21> Just find any decent programmer and have them learn Delphi as needed?

I mean, a lot of people program in a language they aren't familiar with because it has the best ecosystem for a given job or because the open source project they are modifying is written in that language.

<comment><USER22> That's an option, but I can't imagine many folks would want to learn Delphi and continue to invest their time into it unless the money is worth it.

</comment></comment></comment></comment></comment></comment><comment> brown9-2 Whatever competitive advantage there might be, such secrecy also puts you at a recruiting disadvantage.

<comment><USER23> Using languages and technologies that aren't relatively mainstream also puts the company at a recruiting disadvantage. It's trivial to have a full pipeline of candidates who are relatively inexpensive to hire and "good enough" within days of posting a bog-standard "Java services developer" job description.

<comment> whitexn--g28h I've been hiring spring boot developers, and on day one I just throw them the Phoenix guide and say "this is what we use here, learn or leave"

</comment></comment></comment><comment><USER24> When/how can a company assess that using a particular language is a "competitive advantage"? It seems that the competitive advantage is perhaps in hiring the people who are actually proficient in the language -- and the advantage arises when that language is one that has X, Y, Z paradigms and is designed for A, B, C use cases, and then is used appropriately.

> > [https://twitter.com/devoncestes/status/1104000439987683328](https://twitter.com/devoncestes/status/1104000439987683328)

<comment><USER25> I am not advocating for the company but it might be something like this;

Handling of same amount of users comparing to their competitors with a software stack that requires %70 less employees to run will give them enough room to lower their product price comparing to others. Imagine If they can keep it this way X number of years, then they will be able to eliminate their competition.

<comment><USER26> Minimizing costs like this is most important for commodity software with lots of similar competitors. I think the real answer will vary greatly from company to company and market to market. Generally, I would recommend companies be careful to not think they're all that special. Special companies/products/markets may require special tools, but 99% of companies should pick the most mainstream tools available: Java, .net, c/c++, etc.

</comment></comment></comment><comment><USER27> One of the perl guys (maybe Larry Wall?) said the same thing at a talk once about companies using perl but not wanting anyone to know it because it was a such a time saver they considered it a competitive advantage.

<comment><USER28> That's still the same about Perl, but for different reasons now.

> While the rest of the world sees Perl as a legacy language and analysts > insist that no one is talking about it, our Perl business is vibrant, alive, > and growing. Leading companies such as Amazon, Boeing, and Cisco continue to > demand Perl skills in their developers while Booking.com is investing in > Perl as its core development language. How can this be explained?

> This is the Perl Paradox. No one is interested in talking about one of the > most influential modern programming languages yet it continues to thrive > under the radar.

[https://www.activestate.com/resources/webinars/perl- paradox/](https://www.activestate.com/resources/webinars/perl-paradox/)

<comment><USER29> I programmed in Perl (5) in a large enterprise environment for five years. On a huge, monolithic codebase, with people who were innovating with the language in interesting ways. The business environment was restrictive (healthcare), but the amount of people leveraging Perl's flexibility to build powerful, flexible tools to enable faster development on the codebase at scale was startlingly high. A large proportion of developers engaged at every level, from XS to MOP (we used a modified version/fork of Moose) to distributed computing (we used a home-rolled queue worker solution, think Celery for Perl, but without the AnyEvent cancer), and novel web frameworks on the frontend, some of which were put back out on CPAN.

Basically anyone who wanted to be productive there demonstrated an impressively innovative, cross-cutting skillset that combined deep knowledge of UNIX technologies, the particulars of the application, and an _incredibly_ expert language of the particulars of the language itself.

And honestly?

It sucked.

A lot.

I won't say this about any other platform--not modern security-vuln-in-the- package-manager-every-two-weeks JS, not "do you mean _actually_ cross-platform or relying-on-compiler-UB cross-platform?" C, not the worst old-layered-on- new-layered-on-old-again PHP, but: Perl as a platform on which to build something non-tiny, or something that requires more than a small handful of developers, is _unutterably awful_. And I say that as someone that got pretty good at it, I think.

At the micro level, TIMTOWDI confuses newcomers, makes code review inconsistent, and means that as soon as someone feels fluent and productive on the codebase, then they have to engage with someone else's code, and they get stuck all over again. This means that mentorship is a complete bastard, and developer progression is incredibly hard to gauge, teams form fiefdoms (even in the face of _huge_ linting tools; things that make an ultra locked-down JS/TS project look paltry by comparison--even for off-to-the-side greenfield projects) and can't transfer developers, you name it. Perl at any sort of scale is worse than the quoted "write-only" slogan: it's "write-once, re-learn from scratch on read". For a junior dev, rewriting would be a blessing.

At the medium (between micro and macro) level, the metaprogramming abilities of Perl just . . . fuck everyone up, no matter what they want to do. Want to get your work done in as straightforward and repetitive a style as possible? Welp, no matter how simple the task, and how straightforward- _looking_ the utilities for it might be (on CPAN or in house), they won't interoperate for shit. Want to reduce boilerplate and ease the pain of common tasks by encapsulating (or, god forbid, applying metaprogramming) to speed up some process? No problem, first-class laws-of-the-universe-altering facilities are available to everyone--to get your change functional, you'll just have to interoperate with . . . well, everyone (some of whom wrote third party modules, and aren't people you can ask nicely for help). Object systems will fight with message queue clients for control over how calling nonexistent methods on arbitrary objects that neither one created should work (you thought Ruby's method_missing was a foot gun? Ha!). A tool for printing console logs will override the alarm(2) hooks used by your main HTTP client _, meaning that if someone leaves a debug print in the wrong place, HTTP connections to a down endpoint will start blocking forever and kill you. Can this happen in other languages? Sure! Python, Ruby, and PHP (to some extent) all allow the same flexibility and low-level access. But only Perl makes this the_ default convention* to follow. I've heard people say "Perl programmers are just C programmers who couldn't hack it, but still want to write C". There's a grain of truth to that. Problem is, those aren't the kind of people I want to share a codebase with.

At the large (5MMSLOC+ codebase) level, Perl's an operational nightmare. Thanks to all the ways that libraries can customize the language, it has the metastasized version of most other interpreted scripting languages' problems when it comes to compilation phase and memory, namely: "what happens when I have to compile a huge dependency graph on startup? Can I cache those things in some sort of intermediately usable format or do I have to wait many minutes to start a test script? Can I fork? When I fork, what gets shared? Just filehandles opened by the application? Or random shit inside libraries too (and are compiled dependencies encouraged to make their IO resources' lifecycles manageable by the outer runtime)? Will my box crash due to GC- caused refcount/allocation cycles if all my forks exit at once?" These aren't unique to Perl, but I think they're worse in it than any other language. Oh, and that's without getting into the insane degree of mutability Perl permits. It's the freedom of C without the discipline ("set environment vars any time you want! Hell, they're a first class language data structure! Oh, and change what the STD* streams point to, that's fine to. And dynamic scoping and Scope::Upper means you can't tell when something will change because some code totally unrelated to yours decided it should!"). When trying to handle requests or do anything "nested" (terminate SSL, alter things that would go on e.g. "Context" in now-unpopular Go idiom), Perl's conventional answer is just "dynamically overwrite globals!" In general, this means that it doesn't matter in what context you tested your code in, it'll do something different at runtime because a) if it does anything interesting it depends on global-ish state, and b) _other random code can rewrite SIBLING global state whenever it wants_ (think Python, but if the convention were for any coder that got stumped about how to pass data around to just modify globals/locals/vars willy-nilly). Again, a risk in most environments, only actively encouraged in Perl.

I promise that wall of text isn't just specific-employer PTSD. I've been through CPAN code, negotiated with package maintainers, gone to conferences, tried to get a sense of how people are contextualizing these problems. And the impression I came away with is that the _vast_ majority of the entire Perl ecosystem--from the practices understood to be desirable by programmers to the behavior of existing/hardened/public code--is overwhelmingly harmfully inaccurate, poorly-thought-through, and defended by the worst strain of cleverness-above-practicality (or "don't touch it, it works when you hold it just right and don't breathe" for incredibly simple requests) when challenged.

Perhaps at some point in the past this ecosystem reflected the cutting edge, but I think that time is long past. If you're making a small commandline utility or personal one-off in Perl, go nuts. I don't think you're a bad person. Just make sure it doesn't get any bigger than one developer's worth of code.

EDIT (probably the first of many, because essay): typos and grammatical fixes. Promise I won't change the substance.

* Why the hell are _either_ of those libraries calling alarm(2)? Answer: the logger didn't realize that write(2) wasn't interruptible, and the HTTP lib author didn't realize that connect(2) took a timeout. By the way, both were in incredibly popular modules on CPAN.

<comment><USER30> Cool story bro.

To me it just sounds like your colleagues were a little nuts. You don't need metaprogramming to write a large application, and reaching for Devel::Declare should be reserved for last resorts and "hold my beer" moments. You're right that the conferences have a lot of this kind of stuff, but most of us know better than to actually use it, and read Perl Best Practices.

Most of these issues are solved in Perl 6. Any language changes are scoped lexically by default (e.g. declaring sub infix:<==>). Emphasis on threads instead of forking for concurrency, with await and first class Promises. If you want to write see, just write normal C and use NativeCall, instead of writing in the bizarre XS dialect of C. But it's kind of a different language... yeah.

<comment><USER31> I'm not going to say we weren't all nuts... but a lot of advanced language features, including metaprogramming, were necessary to build things that other communities take for granted: frameworks, test harnesses, mocking, static analysis, etc.

</comment></comment></comment></comment></comment><comment><USER32> I've read an equal number of horror stories to success for Erlang / Elixir. That isn't to say it's not good or useful, but that it isn't some magic bullet that solves every problem for you.

Edit - I guess my point is that it's not good enough to keep a secret. :)

<comment><USER33> I've been working in both professionally for several years now and talked with many over that time, at conferences and such, and have yet to hear "horror stories", but such stories could definitely be useful as illustrations on how _not_ to build a system in Erlang or Elixir, so you should share examples!

I _have_ seen some projects with pretty terrible code, but that has nothing to do with Erlang/Elixir, and everything to do with the skill level of the team behind the project.

<comment><USER34> friendlysock brought up a legacy project with a lot of specific problems:

[https://lobste.rs/s/pcebor/choosing_elixir_for_code_not_perf...](https://lobste.rs/s/pcebor/choosing_elixir_for_code_not_performance#c_z4s36u)

<comment><USER35> This is the first time I've heard of Lobst.rs. Looks like a HN clone more targeted towards programming. Thanks!

</comment></comment></comment></comment><comment><USER36> Remember this happening at a couple of big companies that used Smalltalk in the 90's. It was a BS move then and now. That's why you take with a grain of salt language popularity numbers.

</comment><comment><USER37> I've heard the same "we don't tell people we use Erlang because it gives us such an advantage" ~10 years ago.

Yup, those companies moved a lot of their business to Java, and C#, and Go, and even Ruby.

<comment><USER38> Even the ones writing telephone switches?

<comment><USER37> There are very few companies developing telephone switches. Ericsson famously ditched Erlang in the late 90s, and as I hear there's very little Erlang remaining there.

Can't say about other companies.

Cisco uses Erlang in the control plane apparently [1]

[1] [https://twitter.com/guieevc/status/1002494428748140544](https://twitter.com/guieevc/status/1002494428748140544)

<comment><USER33> Ericsson absolutely still uses Erlang [1] - the vast majority, if not all, of the core Erlang/OTP team are employed by Ericsson, and that team is still very much active and constantly improving the language and runtime.

[1] [https://www.ericsson.com/en/news/2018/5/erlang- celebrates-20...](https://www.ericsson.com/en/news/2018/5/erlang- celebrates-20-years-as-open-source)

<comment><USER37> Yes, I know that. They have the team and continue developing and improving Erlang because they have paying customers who use Erlang.

Inside the rest of Ericsson, however, there's very little Erlang left. Once again, only hearsay, no hard proof. They still hire for Erlang here and there (used to be primarily non-Swedish offices) [1], and they offer theses for Erlang [2]

[1] [https://jobs.ericsson.com/jobs?keywords=erlang&page=1](https://jobs.ericsson.com/jobs?keywords=erlang&page=1)

[2] [https://www.linkedin.com/jobs/view/master-thesis-erlang- json...](https://www.linkedin.com/jobs/view/master-thesis-erlang-json-for- the-5g-core-network-at-ericsson-958913296/?originalSubdomain=se)

</comment></comment></comment></comment></comment><comment><USER39> Is it really a thing that companies keep such technical choices as a secret to seek advantage? How about even more trivial stuff like using SCRUM (or the secret approach to software development you do). Or "The secret to our success is giving free donuts to all our employees".

Do you have other real examples?

</comment><comment><USER40> Are we already on the next hype cycle?

</comment><comment><USER41> I tell everyone I'm using Perl.

<comment><USER42> Heh... reminds me of a startup from the dotcom era that I joined right when they were burning through their last millions. It was a hosted service aimed at telcos and claimed to handle thousands of active sessions per box. Except it was written in Perl and in reality didn't scale beyond 10 or 20 sessions. But it didn't matter a bit, because they had no customers. So, yeah, Perl :)

</comment></comment><comment><USER43> It's mildly misleading to say Erlang was the special sauce, language specifications and runtime are so often conflated. It's really BEAM VM that's special. There's not many other examples like BEAM languages that you could have a meaningful post either. Most languages are developer preference, and simply make some things easier than others. It didn't take me too long to get over "language churn", after finding there wasn't much for language innovation happening. Today I'm a fan of spaces like Java and C#. The languages are fine, but it's everything else that makes them so great.

</comment><comment><USER44> It might be time to reconsider using Java because of the Oracle v. Google lawsuit. Oracle has asserted that Java's APIs are copyright; that issue is the subject of a writ of certiorari currently before the SCOTUS. And some recent versions of Java are no longer free and open source. It is strange when language choices are driven by intellectual property considerations.

</comment><comment><USER45> This is really sad. Since Erlang is both a practical and simple, elegant language.

I always believe if Sun and Ericsson swap their languages back to 90s, say Sun have Erlang and Ericsson have Java the world would be totally different.

I'm pretty sure Java guys struggled quite some years for distributed Web development. Thread and lock were all the things most of them know.

</comment><comment><USER46> This whole thing reeks of the CTO selling a story to the non-technical CEO. I'm not saying it's not useful to the company, but companies build strange internal myths about obscure tech choices.

<comment><USER24> Are those internal myths equivalent to rationalizations of the decisions? Do you have any anecdotes or know where to find some?

<comment><USER46> I call them myths because it's not important if it's literally true, just that if the executives believe it's true, then they make the right choice. For example, if you have a home grown internal tool, like a database or a messaging system, it's important that the executives believe that it is a competitive advantage for the company so they don't try to replace it. If they try to cut the maintenance of that internal tool out and switch to something cheaper, then it would probably be terrible for the company because engineering would need to rework the whole system that depends on it and it wouldn't end up being cheaper. Same with switching the language you use to Java. Sure you can hire more Java developers, but rewriting the system from scratch or splitting the codebase is probably worse, so just make sure the CEO believes Elixir is key to their success, whether it actually is or not.

Listen to Steve Jobs describe object oriented programming. I'm not sure he even knew what it was, but it worked out for the company that he sold it so well. [https://www.youtube.com/watch?v=2kjtQnPqq2U](https://www.youtube.com/watch?v=2kjtQnPqq2U)

</comment></comment></comment><comment><USER47> Erlang and Elixir processes seem like a good model for serverless FaaS. Your code as written could run on one core or scale to multiple cores or servers.

</comment><comment><USER48> Elixir is one of those languages that changes you. I realize its a ruby flavored wrapper on top of erlang but I don't care. Coming from an OOP/C based language background, it took me a while to get it. Implicit returns? Immutable data? Pipes?? No inheritance??? No for loops????? And all thats just if you use the phoenix framework which maps pretty analogously back to a standard web server flow. Once you start digging into Supervisors and umbrella projects, the top of your head will get blown clean off. It's a hell of a drug.

I am glad to hear there are more companies out there giving it a try. Any time I see a job posting for a company that uses it, I give them a hard look. It tells me that they are a) hiring people who are of a certain mindset (see the python paradox[0]) and b) they understand the competitive advantage that using a language like Elixir can bring to the table.

[0] [http://paulgraham.com/pypar.html](http://paulgraham.com/pypar.html)

<comment><USER49> I'm a Ruby guy and I'd love to feel what you're feeling. Where should I start / what should I check out? Bonus points for concept walkthroughs and materials designed to bring Ruby folks up to speed, specifically concepts that need to be temporarily forgotten or unlearned in order not to get sad.

I like being a polyglot, but my schedule is tight enough that I need to hit the ground running or else I get pulled back to reality pretty quickly. There's a lot of posts and videos out there on Elixir, so curators are incredibly awesome in my world.

<comment><USER25> Start here --> [https://elixir-lang.org/getting- started/introduction.html](https://elixir-lang.org/getting- started/introduction.html)

You will start feeling the magic around chapter 4 with pattern matching and the rest gets just better :)

Try not to migrate your "how to .." thoughts from other languages into Elixir. It has some uniqe ways to solve everyday problems.

Have your interactive elixir console ready to play with as well, good luck!

<comment><USER50> Pattern matching will break you.

I get frustrated at least once a week trying to use it in a language that doesn't have it. My brain just thinks in pattern matching!

<comment><USER51> It's unfortunate when I encounter a language that has a crippled implementation of pattern matching (looking at you, Scala). After using Erlang, it's hard to accept anything less.

<comment><USER52> How are F#'s and OCaml's implementation of it, in your opinion?

<comment><USER51> I've not tried either, although in my limited exposure to SML it seemed fine.

The other related feature whose lack I regularly lament in most languages is multiple function heads, which apparently is rarely used in the ML family tree, bafflingly.

<comment><USER53> I haven't heard the term "multiple function heads" \- is it similar to Haskell's way of defining functions? e.g.

        fib 0 = 0
        fib 1 = 1
        fib n = fib (n-1) + fib (n-2)

<comment><USER51> Exactly. I don't know what the typical industry term for it might be.

<comment><USER54> Multiple Dispatch / Multimethods (I think?)

<comment><USER51> Interesting, it appears that multiple dispatch is accurate. Thanks.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER55> I really wish that Erlang/Elixir were strongly typed. I've blown my foot off with the "dynamic language gets us going fast and now let's scale" footgun too many times to not be afraid. Obviously big important systems are built in Erlang, but I don't think I've got the guts to do it.

<comment><USER56> Erlang's niche is distributed systems anyway, an area where static typing is at odds more often than not. I mean, you can guarantee the executable you are working on is exempt of typing errors, but it's just a small component of the overall architecture. What about data you are receiving? What if some remote client is using an older version of your software? What if the web service you are calling changed its API recently?

I use Elm, which is as statically-typed as possible for a client webapp, but I know I can never guarantee that JSON data I receive from remote servers is of the expected type.

<comment><USER57> I find static typing is extremely useful in the case where you're receiving JSON though - I write the server side and we use Scala. For us we write the type we expect, validate the input as soon as it hits the server (in the controller), fail immediately if it doesn't validate and if it does validate then we're dealing with that type in all the rest of the code. Obviously that's not going to handle receiving a shape of data that you don't expect, but you'll error immediately and I find it really robust in practice.

<comment><USER58> Dynamic languages do this with schema validation. It can be more expressive, checking value ranges or string formats, multi field conditional constraints, and so on. And allows better& customizable diagnostics.

Edit: also, versioning, cross language sharing, use in generative testing, api client code generation and other metaprogramming uses. And documentation generation, eg swagger

<comment><USER59> and once you've validated a value your code immediately forgets what type it is.

<comment><USER58> Beware of confusing dynamic typing with weak typing :)

If you are using eg Clojure's spec, you can reference the same stuff downstream in the control flow too, for eg fn argument validation.

</comment></comment></comment></comment></comment></comment><comment> Joe-Z Why would he even ask "can we tell people?" Is keeping the programming languages your company uses a secret something people assume by default?

Now I just feel stupid for working mostly in Java. (It's handy and it works. Leave me alone, okay!)

<comment><USER60> Don't feel stupid, I like Java too! Java is a memory safe language with a great standard library and amazing language stability that runs on all platforms and beats almost all other languages on performance. Seems pretty good to me!

HN is a very skewed place that's into some very niche stuff. That can be fine, it's good to be interested in new things, but no one should draw too many conclusions from trends we see on here.

Just to poke a few HN bears by way of example:

* Rust will never see widespread adoption. It's just hard and complicated, so seems cool and exclusive. * Lisp isn't gonna happen either, and that's because it's not even a good choice for most problems. It just feels really really cool when you write something in a purely functional way and so you imagine that _must_ mean this is some higher plane of existence. Not really, we've had 30-40 years for this thing to take off, not happening. * Even Erlang, while really cool, is just a super niche thing. If you're making a huge messaging service then definitely go for it, but you're making a website? Choose pretty much anything else.

There's a lot of reasons for all of the above (low average amount of experience leading to long term memory loss for the industry being the big one), but this comment is too long already and everyone's just going to be mad about the Rust stuff anyway.

<comment><USER61> I adore Java! It has been a skill I've used at a few jobs now and I wouldn't want to do anything else. If people get upset about your opinions, then that's their problem.

<comment><USER62> Most people who have durably coded in java and say, Haskell or a Lisp (as I have) or any other trending language on HN will prefer the latter.

Knowing that (as I did) why not expand your horizon (as I did) ?

<comment><USER63> I don't see how you could possibly state that conclusively.

What leads you to believe most Java programmers would prefer Haskell or some flavor of Lisp? You're saying that people who spend time in both will prefer the latter, but it seems equally plausible that people _wouldn 't_ spend time in both _because_ they don't like the latter.

<comment><USER62> Your point can be generalized to support any local optimum. Come on. "It seems equally plausible that people wouldn't spend time hearing your argument because they don't like it".

Still, this is a bit harsh to return your argument like this, because you're striking a good point: getting to know a language and its "philosophy of use" takes time. However, i do not see why not having taken the energy to climb out of your comfort zone to reach what is considered a better optimum by those who have would give any more weight, by comparison to the alternatives, to your opinion.

Edit: I have never used Haskell, but if I had to chose a next language to learn this would probably be it. Simply because people who use it speak of it as a kind revelation by comparison to the the way they used to program in their previous language. Also since I have worked for quite some time with the dynamic alternative in FP (Clojure) I might well try its static variant with Haskell. However as you pointed out, I'm not learning it because of lack of time/focus. Still that does not prevent me from listening closely to what Haskellers have to say, or say people from Common Lisp or even people attached to the JVM and its language ecosystem. Why ? because their experience is valuable. It's not just theirs, and it could way have been mine.

<comment><USER63> My point can be generalized, sure. But _you_ haven't substantiated the idea that most people who try both Java and Haskell/Lisp will prefer Haskell/Lisp. That's precisely why my very general point is applicable - your claim is sufficiently unsupported that I can simply reverse the hypothesis and we have no more or less information than we started with.

If you'd like, I can trade anecdotes instead - I used to work at a company with a large codebase consisting of nontrivial Java, Clojure, Scala and Haskell. Nearly every engineer I spoke to preferred Java (and I had to interact with nearly all the 300 engineers who worked on it).

Now at this point it may seem like I'm being a curmudgeon. But the reason I'm harping on this is because your implicit claim is that Haskell/Lisp are better languages for either productive or aesthetic reasons. But I don't think that's a fair statement - they're different languages, suited to different tasks. You shouldn't draw the conclusion that people who have e.g. moved on to Haskell from Java are representative of most Java developers. It's equally plausible that most Java programmers _don 't want to move on from Java_, and so wouldn't like Haskell if they've tried it. Or perhaps they have tried it and simply didn't jive with it.

<comment><USER64> > they're different languages, suited to different tasks.

What tasks exactly do you think Java is better suited to than Haskell? The "innovation" of Java was to take the runtime of a high-level language and combine it with the productivity of a low-level one. It is not well particularly suited to systems programming or high-level programming (e.g. ML and analytics, parallelism, concurrency).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER65> "I was in a hipster coffee shop, and all the liberal young people were whispering about how much they actually love Haskell."

<comment><USER65> Real talk: mere hours after posting this dumb joke, we went to Copa Vida in Pasadena, unknowingly during the SCALE 17X Linux Conference, and it _actually happened_ O__o

</comment></comment><comment><USER66> So that's why so many companies say they use Python? So their competitors become stupidly slow?

</comment><comment><USER67> I have not adopted this religion yet, but I have attended a few services.

Still too many philosophical doubts about a functional language where map and reduce only take one enumerable, and have to be prefixed with "Enum.".

At least it's not JavaScript.

</comment><comment><USER68> I tried elixir but then I realized it's just a wrapper for Erlang. It literally won't run without Erlang binary.

Stop trying to make elixir happen. It's not going to happen.

<comment><USER69> Eh? Why would it being on top of Erlang mean it can never be popular? Isn't that like saying any language on top of the JVM or CLR can never be popular?</comment></comment>


OKCupid adds targeted privacy options - <AUTHOR> http://voices.washingtonpost.com/posttech/2011/01/okcupid_adds_privacy_feature_t.html

<comment><AUTHOR> Interesting because it does make it harder for a curious straight friend to find out that you're gay, but it's still not impossible. If you're that concerned about it, I don't think OKCupid is really the route to go.

If you're not so concerned about it but would rather not be out to the world, this could be a good means for that.</comment>


Show HN: Exposure, a way to build photo narratives - <AUTHOR>

I've been working with a colleague on a new product for amateur and pro photographers alike, called Exposure. It's launching into beta this Monday, and our goal is to create a place for composing and consuming thoughtful photo narratives that truly respects the content (i.e. no crufty UI). There's also a super smooth post creation experience we're pretty excited about.
We'll be letting more folks in soon, so if you're a pro, semi-pro, amateur, or hobbyist photographer, it'd be great to get your feedback and/or interest.
Here's an example profile: http://luke.exposure.so/
And an example post: http://luke.exposure.so/new-york
Register for an invite if you're interested: http://exposure.so/invite
Thanks! <comment><AUTHOR> Clickable links:

[http://luke.exposure.so/](http://luke.exposure.so/)

[http://luke.exposure.so/new-york](http://luke.exposure.so/new-york)

[http://exposure.so/invite](http://exposure.so/invite)

</comment><comment><USER2> Some feedback:

\- I really like the concept. Medium for Photography, basically.

\- Great design.

\- Is this mobile yet?

\- Your design seems to assume really large monitors.

\- Hovering over an image to see the title makes things slower (because it's less scannable so it takes me more time to find out what to read next). Slow is almost never good. Make it fast.</comment>


A comprehensive guide to fundraising  - <AUTHOR> http://www.getfundedbook.com/ <comment><USER2> I signed up, but it would be still nice to know who the writer is and what kind of credentials/experience he or she has.

<comment><AUTHOR> Sure thing. I've just pinged you.</comment></comment>


Show HN: Kasmir - powerful browser automation tool - <AUTHOR> https://www.npmjs.com/package/kasmir <comment><AUTHOR> I've recently released Kasmir to make browser automation really easy. It can be used as a flexible e2e test runner or to perform complex browser automation tasks with simple configuration. The idea is to output the step results in JSON and also make running steps in multiple browsers really easy. Check out the examples and docs, I would love your feedback!

<comment><USER2> Welcome to HN!

"Show HN:" should be in the title:

[https://news.ycombinator.com/showhn.html](https://news.ycombinator.com/showhn.html)

<comment><AUTHOR> Thx! Forgot that one :-)</comment></comment></comment>


Why did United neglect to tell parents of a minor she was rerouted? - <AUTHOR> http://www.publikdemand.com/blog/letter-to-united-ceo-jeff-smisek-why-did-united-neglect-to-tell-parents-of-a-minor-she-was-rerouted-and-leave-her-in-an-airport-for-ten-hours/ <comment><USER2> What is this hysterical nonsense? Fine, UA should have called the mother to let her know what was going on. Someone screwed up. But they obviously went to a lot of effort to take care of the kid, putting her up in a hotel to wait for the next flight, with a UA employee of the same sex chaperoning her.

The case was seized upon by what appears to be a professionally outraged busybody trying to "monetize" shrill complaints against big companies, and they get banned. So what?

I am no fan of UA but this is a storm in a teacup. The mother should just chill out, and "PublikDemand" should learn that a kid not talking to her mother for a couple of hours does not constitute a national emergency.

edit: Just read the "complaint". [http://www.publikdemand.com/blog/letter-to- united-ceo-jeff-s...](http://www.publikdemand.com/blog/letter-to-united-ceo- jeff-smisek-why-did-united-neglect-to-tell-parents-of-a-minor-she-was- rerouted-and-leave-her-in-an-airport-for-ten-hours/)

I feel sorry for the kid, yes - because of her irrationally overprotective mother. And the exaggerations amount to lies in my book - at no point was the child "stranded", nor made to stay with an actual stranger. One wonders, if "strangers" are so inherently evil, what the mother was doing sending her precious little angel onto an entire plane full of strangers. Stranding her on the plane, even!

Yeah, UA could have done better, but it's not like the kid is dead, for fuck's sake. Can we have some perspective please?

<comment><USER3> From your tone, I'll assume you aren't a parent. The parent purchased a ticket with a specific itinerary plus paid extra for a chaperone. If my daughter was flying alone and my wife got this kind of call from her, you can rest assured that she would move heaven and hell to get things sorted out. From personal experience, never underestimate the power of a mother protecting her child.

PublikDemand aside, United failed big time. First by changing the itinerary (I've never had this happen to me) and second by not contacting the parents. Yes, the girl is fine, but that's really not the point.

<comment><USER2> > United failed big time. First by changing the itinerary (I've never had this > happen to me)

This happens pretty often if you are a frequent traveller. Things go wrong! It may be an inconvenience but it is certainly not a "fail".

> and second by not contacting the parents

Right. So that's what this is all about. Someone at United Airlines forgot to make a phone call, or couldn't get through, or maybe the number was illegible, or something. That's all this is about. Absolutely, totally undeserving of this reaction.

<comment><USER3> You doubtless fly more than me so I'll take your word for it regarding itinerary changes.

You still don't get it about the contact. It's a child traveling alone. Should the airline just throw them to the wolves?! Or assume that everything will be ok? No, they should not! The parent paid EXTRA (and many airlines require the unaccompanied minor fee) to ensure the child would arrive as expected. It was their absolute obligation to inform the parents when things changed. Why the hell didn't the chaperone call the parents? If United couldn't find the number, the child certainly knew it!

And it's not just about "someone forgetting to make a phone call". The parents asked for updates and got stone walled by Customer "Service". That was salt in the open, bleeding wound. So yes, it's absolutely deserving.

If the airline doesn't want the trouble with unaccompanied minors - DON'T SELL THEM A TICKET. By taking the parents' money the airline willingly assumed the obligation. What more is there to discuss?

</comment></comment></comment></comment><comment><USER4> All this reminds me of when I used to fly internationally as an "Unaccompanied Minor" in the early 90s.

This clusterfuck would NEVER have happened back then (at least never happened to me..) -- kids travelling alone were treated like royalty.

I'd randomly get bumped up to First Class, be able to use the nice lounges in airports, and got put up in really nice hotels when flights were delayed too long. All this amidst a constant stream of little delights (candy, toys, snacks, compliments from the stewardesses for being well-behaved).

Ah, those were the days!

/end curmudgeonly old fart mode.

<comment><USER5> Nah, you're just lucky. I'm an older fart than you, and pretty much exactly this happened to me in 1984. The airline had a delay, bumped my friend and I (13 and 12 years old) to a later flight (NY -> Paris!), and didn't tell anyone. And of course we were too dumb to call someone too.

This isn't an issue of malfesance or neglect. It's just what happens when a bureaucracy hits a situation it didn't forsee. You can only "fix" it with common sense, which was in no greater supply 30 years ago than it is now.

</comment></comment><comment><USER6> I'm somewhat surprised that the regulators are not cracking down on these incidents. This is not the first time we've heard of kids being stranded and not getting the chaperone that parents paid for. Refunding the chaperone fee is a bit like choosing to refund the cost of insurance rather than pay a claim -- the fee is far more expensive than the usual value of the services, and it's only paid to protected against unusual situations like a flight rerouted.

This is a bit like a hosting company offering a 24/7 support hotline for a monthly fee but never staffing it, and only refunding it when people complain after failing to get through to the support hotline.

<comment><USER7> Here's the HN thread on an earlier, equally egregious error on the part of United. This one also involves United taking money for their chaperone service and then failing to follow through.

<https://news.ycombinator.com/item?id=4379599>

</comment></comment><comment><USER8> Part of me feels bad for United here.

They're bound to make some mistakes when flying millions of people around the planet every day. But thanks to social media, all it takes is one of those mistakes to turn into a viral blog post -- and now you've got a PR crisis.

Not defending United or saying they didn't screw up. They did. But dang it, as an entrepreneur, that business seems really f'ing complex and I feel for them.

<comment><USER9> The "problem" is that these social media users can sometimes achieve parity in expectations. United (and business in general, on the large) expects people to take what they're given for the price they pay. "You pays your money you takes your chances." That "one tweet" or whatever is seen to cause United problems is evidence of how inured we have become to their abuses. Your critique kind of reminds me of police vs. video, "Hey, you're not supposed to have any power here." Why should a business deserve sympathy? They certainly don't have any for us in the profit-margin-improvement meetings.

The entrepreneurial lesson to be learned here is not to sell items you can't provide.

<comment><USER10>
        The entrepreneurial lesson to be learned here is not to sell items you can't provide.

Like sending people zooming through the air from point A to point B for a price that people are willing to pay for it[1]?

[1]: [http://www.boston.com/business/articles/2011/11/29/american_...](http://www.boston.com/business/articles/2011/11/29/american_joins_long_list_of_airline_bankruptcies/)

</comment></comment></comment><comment><USER11> This reminds me of the issue with Dave Carroll <http://en.wikipedia.org/wiki/United_Breaks_Guitars>. As a company, you can't afford to get yourself in conflicts with people who have genuine issues and are savvy with social media.

<comment><AUTHOR> I agree! I am not sure why they have yet to learn from the past.

</comment></comment><comment><USER12> I propose a solution to this and all related problems. It is a law that every legal entity in the United States must maintain a public, permanent record of any and all complaints against it. They may choose to publish individual responses, but this is not required.

This would solve the problem of aggregating complaints. The first line of defense of a large entity is information asymmetry: they isolate the customer, make them feel like their problem is unique, or that it's no big deal, no-one else cares, etc. In this case, United (correctly) realized that PublikDemand's twitter account was successfully serving as a de facto complaint database, and acted to remove it.

Knowledge of other customer's complaints is a powerful weapon for any customer with a problem. It tells them that they are not alone, that the company has a problem, and opens the possibility of combining forces to take action against the company: the cost-burden of legal action against the company can be shared between plaintiffs, a kind of psuedo class action suit.

As it stands, only the most sensational horror stories are seen, and they are not reported in a way that is easily searchable or usable for the next customer that is abused and whose abuse is buried by information asymmetry.

<comment><AUTHOR> This is a difficult problem to solve, one that we have been working on for a while at PublikDemand. We have hoards of people with the same complaint against a company and are trying how to best unite them and allow them use the collective voice to demand change.

<comment><USER12> The problem is that the correct place to collect and disseminate these complaints is at the problem point - and the problem entity has the least interest in maintaining the information. This is actually a really big problem.

</comment></comment></comment><comment><USER13> Airlines need to start charging enough for their child chaperone service to operate it with the level of care and communication required. $150 seems low for a high touch personal service with brand/life-threatening failure modes.

<comment><USER14> $150 isn't enough to make sure the kid gets to their connection or someone calls the parents when something goes wrong?

<comment><USER15> All the facts so far seem to point to that conclusion.

<comment><USER14> I disagree. I think that there are probably no more than 5 kids flying by themselves on any given flight. I'm not even expecting a 1:1 ratio - I expect that for those 5 kids, there is maybe 1 person in charge of them. Those 5 kids are generating $750 in revenue. The expense for a chaperon is whatever a seat costs, plus that employee's expenses. I'm going to guess that they make a profit on the service (not to mention I'm doubting there is a special "kid rate" for a seat).

Now the problem comes when they start cutting costs. The flight attendant, who used to probably be a well paid, skilled employee who was serving 50 seats is probably a paid less, shorter term employee now serving 75 seats.

And instead of having a dedicated chaperon, it's probably now just one of those flight attendants.

That they can't deliver for the price they charge doesn't mean the price is wrong. If you buy a car and drive it off the lot and the wheels fall off, you don't say "well, I guess they should have charged me more."

Granted, there is a "too good to be true" factor, but I don't think that $150 to make sure that a kid makes their connection and picks up the baggage is more than enough. Honestly, I'd expect that as part of the ticket price.

<comment><USER15> I don't know how chaperone services work, to be honest, but if I were paying for it, I'd want the chaperone around in the _airport_ , not on the plane itself. A kid can wander off and get lost, or get kidnapped, or hurt themselves at an airport, they're not exactly going to get off the airplane halfway through the flight.

> _If you buy a car and drive it off the lot and the wheels fall off, you > don't say "well, I guess they should have charged me more."_

But the company should say, "We should have spent more money building this car, and thereafter charged more for it."

</comment></comment></comment></comment></comment><comment><AUTHOR> We went to Twitter and made sure that we were not blocked for a violation of terms and they confirmed we were not and that a user blocked us.

<comment><USER16> Curious what vetting you do of the complaints that you handle this way? What do you do to verify they are valid and not, for example, hoaxes or even if not hoaxes that they contain all of the relevant facts and are not slanted in favor of the harmed person?

<comment><AUTHOR> I personally reached out to the mother, checked the flight records and reached out to United before sharing anything. We also waited until the child was home safely before sharing anything.

<comment><AUTHOR> Re: the question on scaling. Our system is built to allows companies to simply respond to complaints we automatically share with them via Twitter. We then send the company's response back to the user receive that response via SMS so the conversation can be continued without our involvement, although we retain the conversation data privately on our site. This removes us from the typical dialog we see on the majority of complaints. I only personally get involved when we see something of an emergent nature.

</comment></comment></comment></comment><comment><USER17> Was this Tweet the only one made @United from the account before it was blocked, or were there others?

<https://twitter.com/PublikDemand/status/309093527697104898>

If that's the only one, that's very surprising. It doesn't seem like the sort of thing that would spur an instant block, even from an overprotective overzealous social media rep.

<comment><AUTHOR> They were most likely upset that I called their emergency press line in order to get the mother help. After I gave United the contact information for the mother they refused to talk to me further. They blocked us the next morning.

<comment><USER18> I'm not sure things would go well if we started having third-parties take over all personal business like this. There are lots of things to worry about, and it's double the work for the company.

</comment></comment></comment><comment><USER19> One could swear to never fly United, if one hadn't already done so for American. Airlines have the worst customer service of any industry. Their horror stories are actual horror stories.

<comment><USER20> One interesting property of the insurance industry, as I've heard it, is that left to pure capitalistic pressures, companies will charge too little to actually provide the product they are selling.

I don't see why that same problem would apply to air travel but it certainly seems to be the case. I know airlines outside the US provide a much more civil experience but I don't know whether they face the same competitive pressures.

<comment><USER21> In any perfectly competitive market, prices will be driven down to the marginal cost of the product. This is basic economics.

To the extent that companies are able to make a profit, it's because markets aren't perfectly competitive. People identify with brands, large capital investments are often required, regulations have to be overcome, it's illegal to create a product identical to one already being sold, etc.

But still, many markets come close enough to cause trouble. Insurance may be one. Airline travel certainly seems to be another one. There's an old joke that the way to make a small fortune in the airline business is to start out with a large fortune. In aggregate, the industry appears to take a loss, long- term, but they manage to keep going through bankruptcy, new entrants, and the occasional government bailout.

A _lot_ of non-US airlines are national airlines which are somewhat governmental in nature. They tend to have regulatory advantages and may be outright subsidized by their government. Their motives may be less about making money and more about providing services, showing a good image of their country abroad, and whatever internal bureaucratic motivations they end up with.

</comment></comment></comment><comment><USER22> This sucks and United should really get a bunch of bad PR over it, but the real message that I'm taking away is: don't trust a %$&*#! airline company with your kids. I barely trust them with my suitcase.

</comment><comment><USER10> From [http://www.united.com/web/en- US/content/travel/specialneeds/...](http://www.united.com/web/en- US/content/travel/specialneeds/minors/faq.aspx)

        What if my child's travel is affected by delays, cancellations or other problems?
        It can be very stressful when flights do not operate as planned, especially for unaccompanied children. In the case of weather or other delays and cancellations, United will contact you or the person designated to meet your child at his or her final destination. You can also track the status of the flight on united.com. Advise your child to remain with a United representative at all times. Consider giving your child a calling card or teaching him or her how to make collect calls so he or she can reach you.

In short, someone at United screwed up. The chaperone didn't call. That's bad, and they need to investigate whether this was a one-off or systematic screw- up.

That said, flying from Great Falls to Nashville (which is already hairy due to the small regional airports on either end of the journey) on a day where there's a major winter storm forecast to slam the midwest. This including a foot of snow on Chicago, which ruins United's system for the day (is this not a well known fact)? If you don't want to entertain the possibility that your child might be stranded without you? Fly yourself to Great Falls, meet your child, and fly back together. Alternatively, driving to Atlanta or Memphis will up your odds considerably of a successful venture.

       Instead of sending her on the next flight to Nashville, they have routed her across the country on three connections and is staying overnight in Houston with a complete stranger!

United probably thought there was a pretty good chance "the next flight to Nashville" wouldn't exist (It was delayed 5 hours, arriving in Nashville at 2am).

This doesn't excuse United's behavior, but Ms. Neff-Aguilar could have prepared better.

<comment><USER21> Your proposal to plan better would make more sense if airline travel didn't require an order of magnitude or two more advance planning than weather forecasts can provide.

<comment><USER10> Getting stranded is a fact of life when flying. Especially during winter. Especially with connections. Especially when flying to airports with very few flights where one missed connection breaks everything.

If, going into the trip, the possibility of her daughter being somewhere overnight was unconscionable, Ms. Neff-Aguilar could have originally planned to meet her daughter in Montana and travel home together. Or compensate a family member / friend in Montana to accompany her to Nashville.

<comment><USER21> It's not the stranding itself that was unconscionable, but rather the stranding _plus_ the not telling the parents _plus_ not being reachable by same parents.

<comment><USER10> Agreed, which is the unfortunate effect of the vast, vast majority of people being unwilling to pay more for better service when flying, thus leading to airlines being badly understaffed. In the Kayak/Orbitz/Hipmunk/Adioso era, people buy tickets based on price/number of connections, almost entirely without regard to the airline. The only folks who get better treatment from the airlines are those who have status (and are thus loyal customers worth the expense to retain) or who pay extra (first class or a lounge pass).

</comment></comment></comment></comment></comment><comment><USER23> Blocking you on twitter was a bad move. Have you got any results since?

<comment><AUTHOR> They have claimed they did not block us but I know for a fact that it was someone on their team and not Twitter.

</comment></comment><comment><USER24> My sister (several years ago) was flying United solo (minor, 17, first solo flight) from CA to ME, connecting in LGA. Her flight came in late and she missed the connecting flight (late at night). There were no United employees on staff (at all!) in LGA at that hour. My mom spent several hours trying to get someone at United to help her out and they couldn't get ahold of their "on call" staff member to assist her. They ended up telling her to "sleep on a bench" and wait till the staff came in some 4-5 hours later in the morning and someone could get her set up with a new connecting flight. They eventually offered a $150 coupon for her "next" flight, which will never happen.

</comment><comment><USER25> The important thing is they're building a new lounge and smisek wore a hardhat to tell us about it.

Where is the line between civil and criminal when it comes to caring for children?

<comment><USER26> It has nothing to do with children, that merely makes the underlying behavior more obvious.

It's the difference between treating customers like cattle and like human beings. It's the difference between a company that assumes it is entitled to the business of its customers and one that believes it has to earn it. Sadly there are far too many of the first category.

<comment><USER25> I don't think it could be that simple when children are involved, there are pretty significant consequences for parents that do a shitty job of caring for them and I assume day care, schools etc have strict regulations.

</comment></comment></comment><comment><USER27> Not necessarily related to this incident, but United really have become my least favorite airline in many ways. There's just something about dealing with them that constantly leaves me with this weird feeling, like nobody there knows what the f%!# is going on. When I've had flights delayed with other airlines, the process has at least felt organized, and while the delay was annoying, it never felt like a total clusterfuck. OTOH, with United, it seems like every time there is a delay, things get, well, weird. There will be 3 or 4 gate changes; airport monitors with information that doesn't match what is on my phone via their mobile app, neither of which matches the screen behind the gate agent stand; gate agents who seem totally clueless and so on. At times, when I fly United, I wonder if I'm ever actually going to get where I'm going at all.

American, Southwest and Delta all seem to do a much better job of organizing things, from what I can see. The only thing United really has going for them is Economy Plus seating, and American is adding a similar feature. Honestly, I try to avoid United these days.

<comment><USER28> US Air is like this as well. Always in a state of chaos. They are infamous for losing bags. I live in a US Air hub city and still avoid them at all costs.

</comment></comment><comment><USER29> _"As a result, no one has ownership of the minor."_ Maybe no one _by name_ has ownership, but someone _by role_ has ownership. So whoever is filling the role for the airline/airport at that time/on that flight/for that airline at that airport (however the process is defined) has ownership. So there _is_ an individual with ownership at all times. I agree though, that training may be sorely lacking for those situations that are exceptions to the normal process. None of that changes the fact that ultimately, the _airline_ has ownership.

</comment><comment><USER30> This sounds much like my family's experience with United as well. I will never patronize them again in my life. Blocking on Twitter is taking it to a whole new level.

</comment><comment><USER31> This is more worrying than the typical HN post about having to turn off an electronic gadget on the plane.

I'm not necessarily saying that United did something wrong though. Planes can have mechanical issues and there are a bunch of reasons why the mother may not have been contacted in time. But not knowing where your child is should definitely get more attention than the typical "they told me to turn off my iPhone" kind of complaint.

</comment><comment> anti-pattern One more reason I avoid flying them whenever possible.

</comment><comment><USER32> My client is their biggest US competitor. I've seen operations across many business units and can say, sadly this does not surprise me at all. The employees I spoke with told me that the other airlines they've worked at are similar. The employees generally, across this particular company are generally very angry, feel screwed by their employer and simply don't care.

</comment><comment><USER33> Is there any market sizing or business intelligence data available for the manufactured internet controversy industry?

It seems to be booming.

</comment><comment><USER34> And now Continental's just as bad. Almost makes me want to move to Singapore.

<comment><USER35> Upvote. Singapore would probably drive me mad eventually, but there really is nothing like flying into that airport. My wife and I regularly argue whether SIN or HKG is superior. Our conversation on entering the arrival hall is always the same: "maybe we should move back..."

</comment></comment><comment><USER36> I feel like this is the norm with airlines these days. They're saving pennies, pushing customers around, delaying almost every flight... It's hard to justify flying for small trips.

</comment><comment><AUTHOR> UPDATE: I was able to email Jeff Smisek and the SVP of Customer Experience directly a moment ago. I will post their response publicly if I hear back.

</comment><comment><USER37> Why post it to a blog? I mailed Jeff Smisek directly l about a problem I had at SFO and he responded in two minutes. On a Saturday.

<comment><AUTHOR> I emailed him directly to after someone sent me his email address a few minutes ago, and their SVP of Customer Experience.

</comment></comment><comment><USER38> I flew united this week, and had zero problems. The TSA on the other hand...

</comment><comment><USER39> And with a single click, United loses the goodwill they generated when they delayed a flight so a man could see his dying mother.

Bravo, social media team, Bravo.</comment>


Blood test identifies Alzheimer's with 86% accuracy and differentiates forms - <AUTHOR> http://www.cnn.com/2017/09/04/health/alzheimers-blood-test-study/index.html <comment><USER2> I never know how to interpret accuracy ratings for tests. If I told everyone I ran into on the street that they did not have Lou Gehrig's disease, regardless of any testing, I would still be 99.993% accurate. Can someone shed some insight on what 86% means?

<comment><USER3> Yeah, I think it be comes intuitive as soon as you break it into % false positive and % false negative. Then, after you have test results in hand, you know your odds. In order to use the information from the test, you have to branch on your conclusion given the result of the test.

edit: then I read the link, and apparently both numbers are basically coincidentally the same here.

</comment></comment><comment><USER4> Info on the 86%

> The researchers say that using the test, they were able to identify > Alzheimer's patients with up to 86% sensitivity and specificity. > (Sensitivity refers true positives identified by the test, while specificity > refers to true negatives.)</comment>


Show HN: RocketFact – get a daily fact about spacecraft and rockets over SMS - <AUTHOR> https://rocketfact.com/ <comment><USER2> Maybe add an about section on why you created this, who you are, and why we should trust you with our phone number ?

</comment><comment><AUTHOR> Would love to get feedback on how to make this more interesting, any technical issues, etc.</comment>


Canadian natural disaster sparked 'Big Freeze' in Europe 12,800 years ago - <AUTHOR> http://www.canada.com/technology/Canadian+disaster+sparked+Freeze+Europe/2225992/story.html

<comment><USER2> I, as a citizen of Canada, hereby apologize for the devastation caused by my geographical area of the world.

Seriously though, it's incredible to think that something happening in Canada could cause Sumerian and Mesopotamian legends - or possibly even the biblical flood. I suppose that speaks volumes (no pun intended) to the vast amount of water expunged from Agassiz.

Imagine if there were people around at the time, watching events unfold - I'll bet it would have been a jaw-dropping experience!

Still, you have to wonder how accurate such findings could be... if you're 13,000 years separated from the actual event - how much room for errors exists?

</comment><comment><USER3> STOP BLAMING THE CANADIANS!

<comment><USER4> Too late.

<http://en.wikipedia.org/wiki/Blame_Canada>

</comment></comment><comment><USER5> "Teller has suggested that rising seas caused by the last Agassiz flood 8,000 years ago may have sent water rushing into the Persian Gulf basin, giving rise to Sumerian and Mesopotamian flood legends and ultimately the biblical story of Noah's Ark."

Riiiight...

<comment><USER5> Sheesh. Apparently being sceptical of a _geologist's_ theory that water (even a lot of water) spilling into the north atlantic 'sent water rushing into the Persian Gulf' is worthy of downvotes.

Anyone care to explain how that speculation could possibly not be laughable?

Meanwhile the "gee golly jeepers" response above gets upvoted 6?

Ah who cares (me a little, apparently).

<comment><USER6> While there have been mega-floods in prehistory, there's a very strange tendency to try to pin particular events for the genesis (so to speak) of flood mythology, especially when cultures all over the world have flood myths.

Somehow it's inconceivable that ancient people could experience _normal_ disastrous flooding, with inundation as far as the eye can see, and then imagine what it would be like if a flood engulfed _everything_ , even trees and hills, and remained for a long time.

<comment><USER7> To be fair to the ancients, floods were as common an occurrence as they are today. Every living person would have probably experienced at least one.

There exists however, a story about a particularity bad flood in many cultures.

Instead of assuming that the ancients were stupid and thought of every flood as "teh worst evar!!!", it's far more likely that there was in fact an instance of a flood that stood out from the rest enough to write down.</comment></comment></comment></comment>


Ask PG: Founder Control in 2012+ - <AUTHOR>

You wrote an essay in 12/2010 on Founder Control after Series A financing and said in the next year you thought it would be the norm for Founders to maintain board control.
Would you say this has become true, or is it still split?
Happy to hear from anyone with knowledge as well. <comment><USER2> Yes, I'd say it's now more common than not, at least with startups we've funded.

<comment><AUTHOR> Thank you for taking time to answer.</comment></comment>


If Sean Penn said his communications were encrypted, who took these photos? - <AUTHOR> http://www.dailymail.co.uk/news/article-3394246/Pictures-Sean-Penn-landing-Mexico-meet-El-Chapo-offer-proof-trip-known-monitored-intelligence-agencies.html <comment><USER2> Says right on top:

 _" Kate Del Castillo is thought to have been under surveillance since 2014"_

All the encryption in the world won't help if you're being followed on foot.</comment>


The Littlehampton libels - <AUTHOR> https://www.lrb.co.uk/v40/n03/bee-wilson/merely-a-warning-that-a-noun-is-coming <comment><USER2> Just imagine if they'd had social networking then. It would have been a GamerGate-type fracas.</comment>


Bad Python by Graham Poulter - <AUTHOR> http://blog.grahampoulter.com/2009/01/bad-python.html

<comment><USER2> I'm here if you want to to discuss the post. I admit it was a bit of a rant.

The post was not specific about the "Bad Python" that inspired it because I didn't want to be mean to the project where I'd seen most of those things.

I'll break down the observations as follows, since at a closer look they are not specific to Python:

1) "Bad Python" is often "Old Python" - code limited to the features available in Python 2.2. In general when coding in a fast-moving language, the old ways are going to look bad.

2) "Bad Python" is often "Java Python" - Python written using Java idioms. In general, it's poor form to apply the idioms from one language to another wholesale.

3) Lastly, "Bad Python" is often simply "Bad Programming" - most of the end of the article lists things that would be poor practice in any programming language.</comment>


Ask HN: What are the expectations from a Full Stack Dev with 7 years experience? - <AUTHOR> If the hiring is for a great full stack developer, what are the expectations from a 7 year experienced developer? <comment><USER2> As a hiring manager at a small company (some of this will likely be different in Big Corporate):

I would expect you to be able to build a medium sized feature independently and without supervision, knowing when and how to collaborate with your team or ask for help.

I would expect you to produce code that's highly maintainable and moderately extensible, with test coverage and well-considered APIs and boundaries.

I would expect you to be skilled at debugging and to know how to teach yourself new tools and technologies quickly.

I would expect you to be excellent at communicating about technical subjects with other developers, and to know what is and isn't important to bring up in code review.

I would not expect you to be able to design/architect a large subsystem unaided, but would expect you to be able to contribute substantially to discussions of it and to be learning more with each project.

I would expect you to be beginning to learn how to effectively discuss technical subjects with non-technical stakeholders. I would expect you to be ready to transition from a focus on learning how to produce excellent software (because you're already well along that path and mostly just need to continue to practice) to a focus on learning how you can provide the most value to the business.</comment>


Rich Command Shells (2014) - <AUTHOR> http://waywardmonkeys.org/2014/10/10/rich-command-shells/ <comment><USER2> Wow, CLIM looks cool! Feels feels like a kind of shell that is really useful and usable. Unfortunately Wikipedia says it's just a programming interface for creating GUIs (which I'm going to give a try nevertheless, I actually happen to be interested in creating GUIs). I wish my actual terminal shell was like that and LISP was the language I interacted with it in. Writing complex commands, needless to say scripts in bash is such a headache...

<comment><USER3> I actually started working on a guile shell that parses a bash-like command line to a guile form. Any parenthesised form is executed as guile directly with some nice macros/functions to make processes easier

<comment><USER2> Cool! I can't wait to try it. But make sure it implements rainbow parentheses and powerful intuitive autocompletion. These former is essential to make a LISP editor usable, the latter is essential to make it cool enough for people to care trying it.

<comment><USER3> I haven't gotten to implementing the TUI yet :) in the beginning it will probably just be a readline-based prompt, but when I have implemented ANSI escape sequence parsing in ncurses I will get to writing a proper ncurses TUI.

<comment><USER2> TUI (or even GUI) is a great thing I would be amazed to see a good shell equipped with yet it is not really necessary as far as I understand. Take a look at the FISH shell - it is quite colourful and has reasonable (not perfect but the best I've seen so far and already helpful) autocompletion already.</comment></comment></comment></comment></comment>


Cache – Collect Everything - <AUTHOR> http://www.trycache.co/

<comment><USER2> How is it different from Evernote ? Can it be my evernote replacement ?</comment>


On D3 Components - <AUTHOR> http://ag.svbtle.com/on-d3-components

<comment><USER2> Very nice article.

You lost me a bit towards the end re event communication but then I haven't played with d3's events. It would be great to see an article just on that.</comment>


Apple Store Connect Is Down - <AUTHOR> browsing https://appstoreconnect.apple.com/ will return 500
from the CLI /usr/bin/xcrun altool --validate-app returns Http/1.1 Service Unavailable as well.
The world is ending? <comment><AUTHOR> * [https://appstoreconnect.apple.com/](https://appstoreconnect.apple.com/) * [https://developer.apple.com/system-status/](https://developer.apple.com/system-status/)</comment>


Apple-sans-adjectives – A font that redacts Apple-esque superlatives from text - <AUTHOR> http://appleadjectiv.es/ <comment><USER2> Ran across this recently:

> Call of Duty: Infinite Warfare puts storytelling in a narrative. Infinity > Ward breaks ground by exploring weight and its responsibilities. In a time > of adversity, the player, as Captain of their warship, must take command > against an enemy. Soldiers are thrust into circumstances that will test > their training and reveal their character as they learn to lead and make > decisions necessary to achieve victory. The game also introduces > environments, weaponry and abilities to Call of Duty. The campaign – from > combat to fighters – occurs as an experience with loading times and delivers > franchise moments that fans love.

[https://www.rockpapershotgun.com/2016/05/02/call-of-duty- inf...](https://www.rockpapershotgun.com/2016/05/02/call-of-duty-infinite- warfare-announced/#comment-2195269)

<comment><USER3> I'd love to hear a 'honest trailers' style reading of things like this:

"Marketing Copy without the Marketing Wank"

\- I think that example couple be better in a few places, but it is instructive how little actual content it contains, and how none of that content is at all informative.

<comment><USER4> A young author named Tao Lin uses this "transparent" style to write fiction. I haven't read any of his stuff because it seems like such a tedious, vapid way to write a story, but check out some of the reviews on his book Richard Yates on Amazon:

 _I read 'Richard Yates' on a work night in the beginning of the week alone in my room. I had heard that 'Richard Yates' was a true account by the author, which was primarily my motivation to read it. I had only ever read 'Shoplifting' prior to reading 'Richard Yates.'

The content made me feel, at first, shame and resentment for my own teenage mistakes. I also felt uneasy and inadequate that I didn't find it as humorous as other people did. So, at first, I felt negatively towards `Richard Yates,' as it made me feel poorly.

I didn't want my initial reaction and past experiences to shape my opinion of the book. After a week's worth of thought, I realized that I had received exactly what I wanted from `Richard Yates;' a literal retelling of events from a narrator unmotivated and unconcerned with my or anyone else's opinion of them. Behind the seemingly fake method of building a familiar brand is a product that is unusually authentic. It is likeable at times and unlikable other times. The book satisfied my curiosity about the author's life. This thought made me feel calm about the book. Things that I perceive to be authentic make me feel good about society and culture. I feel good. Thank you for `Richard Yates.'_

[https://www.amazon.com/Richard-Yates-Novel-Tao- Lin/dp/193555...](https://www.amazon.com/Richard-Yates-Novel-Tao- Lin/dp/1935554158?ie=UTF8&ref_=asap_bc)

</comment></comment></comment><comment><USER5> Fun idea but poorly executed. Even the first of the two examples they have on the website starts with 'every once in a while', redacting 'very' in 'every' for no reason, rendering the font unusable for most intents and purposes.

<comment><USER6> Fonts have a feature called ligatures, where you can take two or more letters and turn them into one glyph. You usually use them to improve readability but since there aren't any rules around what the 'combined' glyph looks like, people sometimes do things like change all instances of one word with another. In this case they're blacking out certain words.

It's really a job for natural language parsing, but the effort is commendable.

</comment></comment><comment><USER7> This is ingenious!

If anybody is curious at to how this works, they use a feature in OpenType (the most common format for modern fonts and the basis for WOFF and EOT) called _glyph substitution_. It's designed to combine adjacent characters for ligatures and the like. It lets you specify that some arrangement of characters should be replaced by an alternate glyph.

<comment><USER8> A more interesting usage of this feature is Hasklig: [https://github.com/i-tu/Hasklig/](https://github.com/i-tu/Hasklig/)

A monospaced fontface for Haskell, where the operators are presented as ligatures. If only it also included operators from other languages.

<comment><USER9> I'd like ligatures in coding fonts more if they also collapsed to a single (or double at most) character cell.

<comment><USER10> You must be too young to have used APL.

</comment></comment></comment></comment><comment><USER11> Cute. Especially with the clbuttic mistake apparent in the "famous speeches" section ("E••••thing", "b•••••ness" etc)

<comment><USER12> [http://www.urbandictionary.com/define.php?term=clbuttic](http://www.urbandictionary.com/define.php?term=clbuttic) for those who missed that reference. And I agree, kind of a fail on the attention to detail front, which is suprising for a project like this.

<comment><USER13> By far my favorite example of this is the term "buttbuttination." If you dive deeply enough into the Google results, you'll start to find some actual accidental uses of the term rather than just discussion of the phenomenon of text substitution. There's something darkly hilarious about a web site seriously discussing something like "260 hours of recordings that JFK secretly made in the days before his buttbuttination in Dallas."

</comment></comment></comment><comment><USER14> The very first example shows "We think you're really going to love this" change into "We think you're going to this".

That's literally the first thing they wanted us to see. It took a sentence and broke it and rendered it meaningless. If it had only removed the "really", that would have been one thing.

<comment><USER15> The sentence was already meaningless. It didn't break the sentence but revealed that it was already broken.

<comment><USER16> How is the original sentence meaningless? "We think you will like this" (rephrasing) definitely has a meaning. You have probably said something similar when you are recommending something.

Whereas their version actually changes the meaning. It changes the verb from liking a lot to physically changing location. (And to be pedantic, "really" is an adverb, not an adjective, so it is outside the scope of the name of the font.)

It is a cool hack, although, I expect this idea could be put to all sorts of nefarious uses.

<comment><USER17> > How is the original sentence meaningless? "We think you will like this" > (rephrasing) definitely has a meaning.

The original sentence is meaningless because it's marketing drivel. In a sales context, this is literally the only thing they can say.

Thus in an information theoretic sense the "We think you will love this" (the original phrasing) conveys exactly zero additional information besides what can be gleaned from the identity of the speaker.

</comment></comment></comment></comment><comment><USER18> It's not only "adjectives", also the word "revolution" was not masked too. "It's a revolution" are the first words that come to my mind when I think about Apple ;)

<comment><USER19> Came here to say the same thing. 'revolutionise' was the third word I typed.

</comment></comment><comment><USER20> previously - [http://www.sansbullshitsans.com/](http://www.sansbullshitsans.com/)

</comment><comment><USER21> This is cute. How could you pick e.g. Google-esque adjectives?

Is there a corpus of press releases, etc. from lots of big (tech) companies? If so, has anyone done basic comparative word/n-gram frequency analysis of it?

<comment><USER22> Yes. This stuff is hard and subjective because you need to agree on a baseline...

</comment></comment><comment><USER23> It's described as "sans adjectives" but in the demo it removes only an adverb (really) and a verb (love).

</comment><comment><USER24> This is the most exiting and innovative product we've ever created.

Very creative use of glyph substitution though. :)

</comment><comment><USER25> On which planet is "to love" an adjective?

<comment><USER26> And why does the title talk about superlatives?

</comment></comment><comment><USER27> We think you're really going to love this. Love is redacted, and is not an adjective, it is a verb.

If the intent was to reduce hyperbole then love should be replaced with appreciate or like. Otherwise this makes text unreadable rather than stripped of superlative.

</comment><comment><USER28> Doesn't handle "insanely"

<comment><USER29> Nor "insanely great". Is this a font for the post-Jobs era?

</comment></comment><comment><USER30> For 'wonderfully', only the 'wonderful' part is redacted, so you get '\</comment><comment>---ly'. Not sure if this is a bug or a feature :)

</comment><comment><USER31> Here are some of the words it redacts:

beautiful right very love great exciting really

I'm curious what others there are. Also, interesting to see the Scunthorpe problem poke its head up here, with "e----" instead of "every" for example, as the font cannot detect context since it uses glyph substitution, which was designed for ligatures.

<comment><USER13> Does this mean that we can do cloud-to-butt as a _font?_

A whole new universe of possibilities has just opened up....

</comment></comment><comment><USER32> I made a replicate of the iPhone announcement poster they made, but without the black-censors and timestamps.

[https://drive.google.com/open?id=0Bxdt7NWvLqR9Z1J3U1BIQkxfbG...](https://drive.google.com/open?id=0Bxdt7NWvLqR9Z1J3U1BIQkxfbGc)

</comment><comment><USER33> Please add 'blazing', 'light-speed', and 'turbo' to your dictionary ;)

</comment><comment><USER34> Tragically, it doesn't redact the most of Jobsian of words 'Boom!'

</comment><comment><USER35> I can't seem to get anything to redact. "amazing perfect outstanding beautiful gorgeous" all show fine. (Chrome 48, Win7, in corporate lock-down which might be causing it.)

</comment><comment><USER36> If the author is reading this, I wish he'd do this for copy-pasted text too. I tried pasting some text from Apple's website, and it did nothing.

<comment><USER37> Ctrl+shift+v maybe?

<comment><USER36> That didn't work either. Apparently, it has something to do with Tor Browser, where it didn't work although I enabled JS. Pasting worked fine on another browser.

</comment></comment></comment><comment><USER38> E[s]very[/s] place, even mid-word!

</comment><comment><USER39> Nothing redacted on android chrome

</comment><comment><USER40> I'm a little disappointed that "automagically" wasn't recognized.

</comment><comment><USER41> this reminds me of an old idea I had: a TL;DR; for books. Initially humans would mark sentences / phrases as superfluous (later a bot / AI would do that). You'd be able to view the book in various levels of verbosity.

</comment><comment><USER42> It should probably at least look at word boundaries.

</comment><comment><USER43> Is this working for everyone else? I typed in, "Amazing new innovation that will revolutionize the way you work." And nothing happened.

Edit

On silk browser on kindle fire.

<comment><USER44> Works on my Kindle Fire 7 but I didn't like the fact I couldn't install Firefox on it - indeed, no Play Store - so I installed Cyanogenmod and everything's been great ever since!

</comment></comment><comment><USER45> This is brilliant :D</comment>


Parenting Rewires the Male Brain - <AUTHOR> http://news.sciencemag.org/brain-behavior/2014/05/parenting-rewires-male-brain

<comment><USER2> This doesn't surprise me at all. I was sure I was going to be horrible at parenting. I was scared right up to the second I held my son for the first time, when everything just clicked. I don't know how else to describe it. I went from terrified to "I was born to do this" in about one second.</comment>