Ending PHP Support, and the Future of Hack - <AUTHOR> https://hhvm.com/blog/2018/09/12/end-of-php-support-future-of-hack.html <comment><USER4> Another day, another weird dogmatic "static vs dynamic" discussion, with inaccurate comments like "the dynamic hype is dying", or "static is making a comeback" or "static is not really relevant anymore".

Are people really that unfamiliar with the history of computer science? There's no hype, there's no comeback; both static and dynamic languages have existed for over six decades. Both styles have been around as long as computer science has been a thing and will continue to exist as long as programming is a thing.

<comment><USER5> _> both static and dynamic languages have existed for over six decades_

For a long time however, if you wanted a mainstream (well supported, large ecosystem) language with static typing, you pretty much had to deal with languages like Java or C++, with their pretty limited type systems and other unrelated design choices that may not appeal to you. It was either that, or going full dynamic. Or some niche language with poor library support.

These days there are plenty of popular languages where you can get all the benefits of static typing with far fewer compromises (Kotlin, Swift, Rust, Scala, TypeScript, etc.) AND a more expressive type system. So the field has definitely changed.

<comment><USER6> The type system of Kotlin is pretty much the same as that of Java (the only addition is that of declaration-site variance, which essentially allows you to elide some of these annoying wildcards at the use-site).

I'm not familiar enough with the others, but I have A LOT of doubts. Only Scala's type system is clearly more powerful/expressive than Java.

Also, through templating, C++ type system is made quite expressive.

<comment><USER5> Compared to Java, Kotlin also adds nullable types and sealed classes. The built-in syntax for lambda types could also be considered a part of the type system. Or the fact that inline lambdas let you use non-local returns ([https://kotlinlang.org/docs/reference/inline- functions.html#...](https://kotlinlang.org/docs/reference/inline- functions.html#non-local-returns)) where the explicit `inline` can be considered a part of the type.

As for the others, check out for example TypeScript's mapped types ([https://www.typescriptlang.org/docs/handbook/advanced- types....](https://www.typescriptlang.org/docs/handbook/advanced- types.html#mapped-types)), or Swift's extensions ([https://docs.swift.org/swift- book/LanguageGuide/Extensions.h...](https://docs.swift.org/swift- book/LanguageGuide/Extensions.html)).

Considering that Java or C++ don't even have sum types, it's not exactly a high bar to cross.

<comment><USER6> Fair point for nullables, although that is already possible through annotation processing (see the checkers framework) - but there is a good faith argument that this isn't "core" enough.

The _syntax_ for functions and inlining are not part of the type system. Inlining especially, is a useful language feature, and has to be checked at compile-type, but is unrelated with types.

Sum types, really you can have that with just inheritance (base class with package private constructor + final sub-classes). What Java lacks is a nice way to pattern-match/switch over types (which Kotlin does nicely with flow typing), but again that isn't really the type system (although it does make the type system nicer to use, certainly).

<comment><USER5> _> Fair point for nullables, although that is already possible through annotation processing (see the checkers framework) - but there is a good faith argument that this isn't "core" enough._

It also wasn't available in a practically usable form until relatively recently (when talking about history), so my very first point about the timeline of languages still stands. Plus it adds even more verbosity to an already very verbose language.

 _> The syntax for functions_

I meant function types, e.g. the variable `val a = {}` has a type `() -> Unit`, which is a real type in Kotlin.

Of course you can achieve a similar thing in Java with SAM interfaces (including all the weirdly named ones in `java.util.function`), so I'd call that the same level of expressiveness.

I don't see why `inline` wouldn't be a part of the type system, when you can have a function argument (that is itself a function) that either

\- can be passed into anything that expects a function as an argument - <USER2> long as the rest of the type matches of course (a non-inline argument)

\- can only be invoked or passed into another inline function (an inline argument)

Conceptually, this has some parallels to C++'s const-correctness ("any matching pointer can go here" vs. "only a non-const pointer can go here", "this function cannot be called via this pointer" etc.), which is generally considered a part of its type system.

It's just a matter of definition really.

 _> Sum types, really you can have that with just inheritance (base class with package private constructor + final sub-classes)._

The person that uses those classes (I'll call them consumer), e.g. writes a function that takes the base class as an argument, then has to be aware of the internal implementation - the compiler won't help you there. If someone else who maintains that part of code adds a new subclass, you'll have an unaccounted for possibility and there is no way to safeguard against that (unless you redesign the whole part of the codebase using crutches like the visitor pattern).

There is no good way to express "this value can be one of these types, but no other" in Java's type system from the consumer's point of view (only from the producer's). I may not be using the correct terms here but hopefully you get what I mean. As far as the Java compiler knows, you are not _really_ expressing a sum type, and that comes with the mentioned negative consequences.

</comment></comment></comment></comment></comment></comment><comment><USER7> I don't think there are enough backend web developers in the world to support vibrant communities for both PHP and Hack.

Unless Facebook's prepared to invest a lot in community-building, Hack and similar FB projects will go the way of VBScript and Silverlight.

<comment><USER8> The thing is that the enterprises seem to be okay with them being the only user of their open source projects. Don't ask me why they then decide to do open source projects in the first place, but that's what I'm seeing.

<comment><USER9> A lot of other big players used Hack (Etsy, Wikipedia and others). Don't know if they switched back to PHP7 though.

<comment><USER10> Afaik Etsy and Wikipedia only used HHVM for the performance win and not the Hack language on top. Since Wikipedias tech stack "MediaWIki" is heavily used by PHP companies it can't be using Hack features.

Slack came out with a blog post a few month ago, writing that they use the Hack features on top of HHVM. That is the only one besides Facebook that I know of (there are probably more)

Edit: Source for Etsy using PHP 7 now [https://speakerdeck.com/wcgallego/hitting-the-turbo- button-u...](https://speakerdeck.com/wcgallego/hitting-the-turbo-button- upgrading-to-php-7-at-etsy-1)

</comment></comment></comment></comment><comment><USER11> With PHP7, HHVM became largely irrelevant. It had played a great role and contributed to the PHP's maturing immensely though!

<comment><USER12> This is really interesting, I've seen this pattern somewhere. IMHO, CoffeeScript had a really similar effect on the development of JavaScript / EcmaScript, but then, it quickly started going extinct. Same with IO.js vs. Node.JS, which was eventually re-integrated into the main line.

It's interesting how apparently sometimes you just need to step aside to break old conventions and demonstrate new capabilities, but eventually, you'll need the support of the community to pull it through: Plus, it's always a gamble. Python barely made it over to v3 after 10 years. I'm not sure if Perl will ever cross the gap or if Perl 6 fragmented the community for good.

Just some random thoughts though on the dynamics of open source, I'm glad for the experience of PHP at the beginning of my career, but I wouldn't touch it or any derivatives any time again having free choice. Too much Heinz™ design: Grown, not made.

<comment><USER13> Speaking of fragmentation, we still have 3/4 of users on PHP 5.x, and support for v5.6 (the last 5.x release) is coming to an end soon!

<comment><USER14> And honestly the jump from php 5.6 -> 7 is pretty painless. Its probably the lack of tests for a lot of old 5.6 software that gives people fear of upgrading. php development has gotten a lot better.

I think support for 7.0 is ending soon too.

<comment><USER15> Yes. It reaches the end of its support at the end of this year, and PHP 7.1 next year.

</comment></comment></comment></comment></comment><comment><USER16> It's interesting to see this, and curious if you look at it from an organizational decision making standpoint. Hypothetically, because I'm not involved in any of this, but still:

Facebook was initially implemented using PHP, and you can read this process as continued iteration based on this very early decision. From the outside, Facebook seems to have always taken what they had, taken the problems they currently had, and made the most incremental change they could to fix whatever problem they had. From PHP to HHVM to Hack to dropping PHP support, they continued iterating on what code base and development chain they currently had.

If you take a step back though, Facebook is gradually moving to a different programming environment, from a dynamic language with very loose semantics to a statically typed system with (from code I've seen in e.g. phabricator) a very different programming style than run of the mill PHP. While iterating incrementally, they still ended up forking PHP and moving to a different language.

The approach is quite different from e.g. Twitter though, who started off using Ruby on Rails, and then moved everything to an entirely different tool chain (Scala) when they found Rails couldn't hold up with their problem set.

This difference in approaches isn't quite the same as the good old "rewrite vs refactor" dichotomy. Twitter's change was certainly incremental too, moving individual services to Scala bit by bit, setting them live incrementally instead of a "big bang" rewrite where everything moves to Scala one day.

I think the main difference is planning horizon: do you opportunistically fix whatever is broken right now, or do you make a long term plan on what you want your future platform to be, and then set out to get there?

Opportunistic fixing has the advantage that you can be pretty certain you're fixing the right problem, and don't invest in YAGNI features. On the other hand, you risk ending up in local optima. Pouring a lot of effort into PHP makes sense if you plan to continue using it - but if you end up forking the language anyway, you loose a lot of the advantages of a shared ecosystem (and arguably damage the existing ecosystem in the process through fragmentation).

You could equally well imagine Facebook picking a different future tech stack five years ago, be it Rust or Go or whatever, and add the features they miss from PHP to it. I think it's an interesting thought experiment where that'd have taken them. I have no idea if taking that path would have been better for any of {Facebook, PHP, target language X, world}.

<comment><USER17> > On the other hand, you risk ending up in local optima.

This would only be a risk if the difference between the local optimum and the global optimum is large, but there is no evidence to suggest that is the case (and a lack of evidence for a big effect is usually evidence against it). To be more precise, no one has been able to find a drastic productivity boost among apparently reasonable alternatives, so either there's a plateau or no one has found the global optimum. Either way, as things stand, there is no such risk.

A risk that does exist is failing to create a viable development environment or simply not having the resources to even attempt it. As others noted, this is a big risk (or an almost guaranteed failure) for small organizations, but hardly one for a very big one.

<comment><USER18> On the contrary, certain kinds of technical debt are only paid off in full, not in increments. Supporting entire languages, for instance: experts, toolchains, dev environments, packaging systems, core libraries, telemetry libraries, etc.

The large difference between a local maximum and a goal is clear. The question is whether the cost to get there is acceptable.

</comment></comment></comment><comment><USER19> Duly noted the desire of Hack to have more "typing". It seems that as soon as projects growth beyond a certain size, everybody starts wanting to add that.

I wonder what would be the optimal lifecycle for long projects. Obviously, "start with dynamic language X until you reach 10^n lines of code, then fork X and add types to it" doesn't work for smaller companies :-(

<comment><USER20> I feel like dynamically types programming languages had a huge hype period, and then all the startups we saw write in their dynamic languages later ended up adding types, because maintainability is simply SO much easier when you have a good type system and the compiler can help you. I say that coming from a road starting at PHP, then moving to Python, JavaScript, Java, Haskell.

Funnily enough, strongly statically typed languages are not bad at all for the early prototyping stage. In fact, I would argue that they are much better, but you have to switch your approach from slapping some functions out, to instead slapping out some ADTs, that form the basis of your app.

A lot of good advice for Haskell is given in this thread [https://www.reddit.com/r/haskell/comments/7sr8k7/fast_protot...](https://www.reddit.com/r/haskell/comments/7sr8k7/fast_prototyping_how_to_experiences/).

One important thing to note though, is that I honestly don't think this will work well, unless the language has at least type inference and support for ADTs, newtypes (or, tagged types) and pattern matching at the minimum. Less than that, and you end up fighting the type system, instead of letting it be your help and guide.

<comment><USER21> > and then all the startups we saw write in their dynamic languages later > ended up adding types, because maintainability

Maybe because they weren't startups anymore?

Honestly I don't understand the deal with type errors in simple web apps : every input is a string which is parsed into the correct type. After this, with good naming and conventions operations should be obvious, e.g. why would you try to do a mathematical operation between a customer's name and it's account balance?

To me it looks like these days the hype is copying whatever big names are doing regarding maintainability without having nearly the same constraints (static typing, huge frameworks, ...).

<comment><USER22> > _why would you try to do a mathematical operation between a customer 's name > and it's account balance_

that's a straw man to js typing, and never a problem in practice. What's more often happening, is that you change the structure of some object in your store somewhere, that's passed around a lot. And you forget to update the usage one of those places and stuff break runtime.

<comment><USER23> My experience in going from being very insistent on static typing and moving to Ruby (after lots of hesitation) is that you run into lots of type errors, chances are you _also_ have uncaught logic errors in code your test suite isn't exercising. E.g. the above example would presumable be caught if you actually tested all the code acting on the account balance, even without a single test to explicitly test the types.

That goes irrespective of if those type errors are caught at compile time or runtime - if those errors aren't caught by your test suite, odds are you have a problem that static typing will not fix but writing more tests will. In either case my response to type errors these days is to consider it a bug in the test coverage.

(I'm sure some will argue that typing in languages like Haskell avoids this more than others, and that might be true, but languages like Haskell are too hard to work with for most people to ever get mainstream traction; I'd love to see more experimentation in making more advanced type systems more accessible, though)

<comment><USER24> It is true that all type errors can also be caught by additional tests. But is this the most efficient strategy? I would think that letting the compiler find certain classes of errors should be cheaper than writing and maintaining tests for these error classes.

<comment><USER23> My point was that you rarely need to write test _to catch type errors_. You write tests to determine if a unit of code works as expected. In doing so you tend to exercise the conditions that cause type errors as a side effect.

Let's say foo() internally calls bar(). If I pass a given valid input to foo() it passes the wrong type to bar(). If I pass another valid input to foo() it passes the wrong value but of the right type to bar().

If you ensure full test coverage of foo() you will catch both. Type checking in your compiler will only cover the first case, so you still need the same test coverage anyway to have confidence in the code.

<comment><USER25> Full test coverage of foo() is hard to prove. Have you exercised every argument possibility, every exception that could be thrown and every global/class/instance var reference? Working with Ruby most of my career, my experience is probably not.

A good type system is much more thourough and let's your tests focus on behavior.

<comment><USER23> That's what you have coverage checkers for.

And you don't need full coverage. Aiming for full coverage is a folly - <USER3> aim to cover the API surfaces you're actually using. If you still get lots of runtime errors something is very wrong with how you test your code.

> A good type system is much more thourough and let's your tests focus on > behavior.

The problem is no languages I'd be willing to use have a good type system that actually covers much.

<comment><USER25> > The problem is no languages I'd be willing to use have a good type system > that actually covers much.

This is basically down to opinion, and I can't argue with it. I've collaborated on Ruby projects for about 10 years, I love the language, but my experience says a large code base, with test coverage, regularly breaks on things that most type systems wouldn't allow.

Dependencies often cause subtle breaks like this, even in big, common ones.

On top of that, this requires paranoia to avoid breaking callers. With a good type system, you can largely discard that paranoia.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> Poor Wikipedia will need to migrate back to php7 runtime which still could be complex despite of language compatibility.

<comment><USER10> Wikipedia was always a PHP software and just running on HHVM for the performance gain, not for the Hack language. The underlying MediaWiki software is used outside of Wikipedia a lot, always on the PHP not HHVM stack. I expect its only a project for their operations team and should be managable.

<comment><USER27> Could you tell more about MediaWiki use-cases outside Wikipedia? I know there is a lot of open-source projects which has MediaWiki installed for documentation (i.e. Arch Linux). Are there any usage in "internal documentation" software (like alternative to Confluence)? Why they have chosen the MediaWiki not other software which can be easily self-hosted / deployed on a premise?

<comment><USER28> MediaWiki is indeed very easy to self-host. I've been running several instances for the FSF and Sugar Labs.

From the sysadmin perspective, it's a dream app to deploy: just unpack (or git clone) the latest release in a directory, point Apache (or Nginx) at it, and continue in the guided setup process (which involves creating a database, typically MySQL).

Updates are also painless: there's a php maintenance script which updates the schema. I've kept MW instances for ~10 years without running into any problems.

Things get a little more interesting if your add a ton of extensions, or badly maintained ones.

I wish I could say the same of Django and Rails apps! <trollface>

</comment></comment></comment></comment><comment><USER29> Diverging from PHP was a good move as PHP 7 has largely caught up with HHVM in terms of speed. That's really neat that Facebook invented their own language to meet their needs. Will have to mess around with it further sometime.

<comment><USER30> Agreed, Hack appears to be a move to fork into a PHP-esque language that FB engineering feels will be better for their software lifecycle goals and needs:

\- Handle numeric boundary cases in a more intuitive way.

\- Is Typed.

\- Replace reference parameters in favor of a new keyword, "inout".

\- Change package management and testing framework to be less annoying and more streamlined. This will be yarn (from npm, as in the one written in Javascript), and their own custom flavor of testing framework, hh-test, to replace PHPUnit.

I wonder how many existing open-source PHP projects will remain compatible with HHVM? The post seems to indicate compatibility will not be a priority and that it's a fully breaking change. If this is true, it seems the "empty cocktail room" effect will be a major challenge and problem.

        Jane:
        "Hey, you can do this project in PHP or Hack."

        Alice:
        "Okay, I'll go with PHP because there's
        already a shitton of good libraries that might
        be useful to me or that I already know."

I.e. Why would you use a language with few open source libraries over a very similar language with exponentially more?

When I want types, I can already use Go, Java, or even Typescript, just to name a few terrific options. These days it seems like a no-brainer to me.

The effort seems like a lot of trouble to go to just to shave off some annoyances / "rogue hairs".

Curious if there's an angle I'm missing.

One argument for making it an open-source language / project and trying to eventually grow it could be so FB can more easily hire folks who are already know the Hack language.

        Marke:
        "I'll do it in Hack because my only dream is
        to work at Facebook!"

May not be that many Marke's out there.

<comment><USER31> > Why would you use a language with few open source libraries over a very > similar language with exponentially more?

Fewer unvetted libraries from a security and code quality angle.

Not saying it's good from a general engineering angle, but in an environment like Facebook which can afford to over-engineer, the third party dependency risk mitigation is a good side effect.

But my argument here is a pretty polarizing one as it implies security- through-obscurity. I promise I'm not; I'm just pragmatic about how many abandoned or poorly maintained open source libraries end up being relied-upon regardless of how that challenge is solved-for in CI/CD.

<comment><USER30> I see what you're saying, and question the assumption that a higher percentage of Hack libraries will be high quality.

You raise a valid concern, and also this issue cuts both ways.

The FB libs have a good chance of being well-maintained. This will be true for PHP and Hack, alike.

The rate of library neglect will be approximately equal between the two languages.

The real question is: What does the data say about project / library neglect? I'd guess neglect rates may correspond inversely with language popularity.

Languages with fewer people writing code in them will have more opportunity for abandonment and neglect.

Who wrote and is relying on the library seems like a better candidate for predictor of proper future maintenance compared to language flavor.

<comment><USER31> > Languages with fewer people writing code in them will have more opportunity > for abandonment and neglect.

This would be true in the public space.

I don't know if it holds when the language is internal to the company and people are incentivized effectively to keep them up to date.

</comment></comment></comment></comment></comment><comment><USER32> Hmm, I don't really get it. But I suppose I don't really know if I bought the value proposition of HHVM in the first place.

<comment><USER33> hhvm had some performance advantages over PHP 5. They are largely gone with PHP 7 AFAIK.

<comment><USER32> Right, this is part of what I don't get.

PHP is open source. Instead of building a way to compile PHP and then a VM, and making all the adjustments necessary for Hack, why didn't FB just spend that energy submitting a patch to make PHP faster?

Now I also don't know if I buy that MAX_INT + 1 and pass-by-reference is a pressing enough use case to break compatibility. I'd be open to hearing why, but I'd be starting from a position of skepticism.

<comment><USER34> The people who initially developed HPHP (the PHP-to-C++ transpiler) were not the same people who initially developed HHVM (the VM/JIT). I was one of the people who started the HHVM project, and we recognized early on that we must base our work on HPHP to have any hope of eventually replacing HPHP on Facebook's production systems. Indeed, had we chosen otherwise, our project would certainly have failed. It took us three years to initially ship HHVM, and HPHP's ancillary ecosystem dramatically diverged from PHP during that time. Furthermore, the people who initially developed Hack were yet another team, and they based their work on HHVM for much the same reason as HHVM was based on HPHP.

In an ideal world of perfect cooperation, perhaps all these projects would have been enhancements to PHP, but a chain of independent rational decisions produced very different results.

<comment><USER35> Has anybody written up the history? I'd be fascinated to read a blog post series on all that.

</comment></comment></comment></comment></comment><comment><USER36> Article from Marco Arment about exactly this, from 2014.

[https://marco.org/2014/03/21/hack](https://marco.org/2014/03/21/hack)

</comment><comment><USER37> From the outside looking in, the most interesting part of the post is the note about their new release cadence:

> As we expect the language to evolve rapidly, we strongly recommend using the > regular releases instead of the LTS releases for large projects; while this > does mean you need to upgrade more often, both us and our users have found > that it is generally easier to catch up on 2 months worth of changes 3 times > as often than 6 months of changes in one go. We will also be re-evaluating > the length of our release cycle; one possibility is that we will move to > releases every 4 weeks, with these releases being supported for 6-8 weeks.

That cycle will work for FB where they are constantly iterating and also have early insight as to where the language is going before they get there but for anyone on the outside or for slower moving projects, that cadence seems fairly punishing.

Is that a big change from how they release now?

</comment><comment><USER38> This is bad news for Slack, I would think. I believe they went all in on HHVM + Hack, which is going to be increasingly incompatible with 3rd party packages now.

<comment><USER39> Is it possible they could find inefficiencies in their codebase to make up the performance difference with regular PHP? Or maybe they'll just need to add more servers to make up the difference?

<comment><USER40> Adding more servers stops being a good option after a certain point. If you're a small company running on 20 servers you can increase your performance by 5% if you add just one more. Install it in one day, boom.

If you're running on 200,000 servers, a 5% increase is 10,000 servers. That means opening a new building in your data-center, making sure your recruiting team has resources to hire enough staff for it, then hiring that staff, negotiating contracts with the power company, the component suppliers, building permits, hopefully you have enough network capacity otherwise you'll have to expand that too, etc.

It's many months of work and a lot more expensive than hiring a handful of engineers to tackle performance and maybe build some libraries in-house.

</comment></comment></comment><comment><USER41> Do you think dynamic types was a mistake? Almost all popular dynamically typed languages have some sort of type hinting. All new promising languages have chosen to be statically typed.

<comment><USER42> Dynamic types weren't a mistake, but they were overused IMO. It's technically scripting, not programming, but can you imagine if Bash files were type hinted? For small scripts, solo projects or quick fixes, dynamic typing is great because it's fast! On the flip side, large codebases should (on the whole) not use dynamic types because of all the safety they fail to provide! As you said, most dynamically typed languages are moving towards some sort of type hinting and that's because high quality developers demand it when working on medium to large projects.

<comment><USER43> > It's technically scripting, not programming

Nope. Dynamic types have nothing to do with scripting vs programming. What a nonsense!

Sorry I had to:).

<comment><USER42> You misunderstood me. I agree that scripting and programming have nothing to do with dynamic types.

> It's technically scripting, not programming, but can you imagine if Bash > files were type hinted?

I was clarifying that writing Bash files was scripting and not programming.

<comment><USER44> How is writing bash files not programming though?

I understand it's historically been called 'scripting' instead, but 'technically' it's as much of a programming language as Python is, don't you think?

<comment><USER45> "Technically" of course it's just as much of a programming language, but "practically" it's normally used to kick off other programs, and is just glue meant to pass input and output between programs. FWIW, when people use Python for small automation tasks, I usually hear them referred to as scripts instead of programs. Program seems to imply that it's useful on its own, script implies that it doesn't serve a purpose besides running other programs that are generally useful.

</comment></comment></comment></comment></comment></comment><comment><USER46> I tried using hack once, spent a few days on it. It was a total disaster from a user-developer perspective. The documentation was poor and certain modules (the xhtml or equivalent module in particular) would not work due to versions or dependencies. If they are going to make a push they need to really make it easier to get up and running on.

</comment><comment><USER47> Static/dynamic is obviously a gradient. I find it a bit sad that it always seems to be either or these days, either no types or a full blown static generic type system.

I'm all for the ability to type variables and functions, as long as I'm still allowed to be exactly as precise as I feel like.

Many would call that static typing, since there are types in the code that the compiler consumes. But my own attempts [0] at building such languages tell me that the result is still more dynamic than most.

[0] [https://github.com/codr4life/snabl](https://github.com/codr4life/snabl)

</comment><comment><USER48> I wonder how this will affect major websites outside of Facebook that rely on HHVM, such as Wikipedia. They made a big announcement when they switched to HHVM in early 2015. Have they moved over to PHP 7 yet?

<comment><USER49> They are planning to move to PHP7 largely because of this change but also since PHP7 closed the performance gap: [https://phabricator.wikimedia.org/T176370](https://phabricator.wikimedia.org/T176370)

</comment></comment><comment><USER50> Aaand Hack ist dead. At least for everyone outside fb.

Not sure why fb even made it public. First baiting everyone by switching and now having full control.

Not sure who would risk that dependency.

<comment><USER51> Do you mean HHVM or Hack?

<comment><USER50> Both

</comment></comment></comment><comment><USER52> Sincere question, but PHP is still widely used?

I remember that around the year 2002 it was almost the only choice (besides Perl) on shared hosting, but on this days its just a nasty language and with so many beautiful languages like Python GoLang and Ruby why would anyone use PHP for a new development?

<comment><USER53> Yes, and it keeps growing: [https://w3techs.com/technologies/history_overview/programmin...](https://w3techs.com/technologies/history_overview/programming_language/ms/y)

</comment></comment><comment><USER54> So who is using HHVM other than Facebook? Genuinly curious? Will be interesting to see where Hack goes altogether.

</comment><comment><USER55> I think this is a step in the right direction. PHP's refusal to break BC in the stdlib, among other things is probably the biggest impediment to the language being more widely accepted.

By breaking compatibility with PHP, Hack is going to be able to adapt more quickly and create a stronger language. Hopefully, Facebook will have the wherewithal to promote Hack to PHP (and other) developers, and grow the ecosystem as it can.

<comment><USER56> > PHP's refusal to break BC in the stdlib, among other things is probably the > biggest impediment to the language being more widely accepted.

PHP is one of the most widely used languages on the web. Their backward compatibility is absolutely part of that reason, too. Refusal to break compatibility may be holding it back in some technical areas, but it's certainly not hurting the language in popularity and use.

<comment><USER55> There's no reason not to break BC in 7.4. The people still running 5.3 aren't going to not upgrade to 7.4 because you fixed the array functions.

<comment><USER57> That is a completely false sentence. People develop PHP sites, launch them and expect them to work, even if the server is upgraded to the latest PHP.

Breaking their code on a PHP upgrade is a great way to strand them on old unsupported versions of PHP. Not everyone has resources to change things that used to work because of some "array function" change that doesn't really make any difference.

</comment></comment></comment></comment><comment><USER58> I would have liked "Hack" to be some play on "PHP". Maybe "HPH". PHP++ or PHPPP

</comment><comment> oh-kumudo Which makes sense. Facebook now is big enough to sustain a programming language on its own. And for Hack, I would assume it mainly to replace where the PHP used to be, which is a shallow API composition layer, no heavy lifting stuff. To fulfill that purpose alone, one need not to have super diverse ecosystem providing all kinds of libraries, just focus on a limited core functionality should suffice.

</comment><comment><USER8> Wasn't HHVM created as compiler or interpreter for PHP?

<comment><USER59> Yes but they added so much features that the core became hard to maintain.

</comment></comment><comment><USER60> Does this mean Facebook pulls its resources out of PHP?

Weren't they THE big player that kept PHP alive in the last years?

<comment><USER61> PHP is still more widely deployed for small/medium websites than any other language. WordPress still powers more websites than any other single application, for example.

Facebook was always an anomaly in supporting/using PHP at that scale. PHP was never a major player in very large companies...until facebook. I think this is a return to the mean, rather than a seismic shift in a new direction.

That's not to say PHP isn't fading...it is. But, I don't think this is a huge hit to PHP.

<comment><USER60> I see.

Last time I used it was 8 years ago and I had the impression it would have been gone by now if it wasn't for Facebook pouring money in it.

<comment><USER57> Your impression is completely different from the reality.

Facebook was/is irrelevant to PHP adoption. Their only effect was to increase the speed of PHP.

PHP is widely used because it's really great language for web development. It's better than the other choices because of ease and rapidity of development, and because it was _designed for_ the web, not as a regular language with web things bolted on (Python and JAVA are examples of that).

It is not fading at all. Some developers think it's too easy of a language, so they discount it as for beginners only. That's about it. It's a kind of snobbery, which I'm glad to see seems to be vanishing with the release of PHP7.

<comment><USER61> "Some developers think it's too easy of a language"

Good lord, who thinks that? PHP is a terrifyingly complex and difficult language. I'm not saying it's bad, it's been very successful for its intended purpose. But, it is definitely _not_ an easy language.

It's got thousands of standard functions in the global name space (admittedly, it has been recognized that this was a mistake, but it's all still in there), quite a lot of syntax, and some weird syntax that's unlike any other language, a high level of verbosity in many places (due, in part, to that whole thousands of functions in the global namespace thing, but also due to an apparent admiration for Java during a critical period in PHP development), a variety of quirks and inconsistencies, etc. PHP is a very big, very complex, language, that takes years to master. I can't see how it can be called "easy". Many other languages are much better teaching/learning languages. PHP is popular and widely discussed, which helps with learning it. PHP is also very easy to deploy, because it is the "standard" web language...you just upload your files to the right directory on most hosting platforms and you're done. That's great, but doesn't really make the language easy.

<comment><USER57> > It's got thousands of standard functions in the global name space

There is exactly 0 difference between prefixing a function, and putting it in a different namespace. All those functions have prefixes and are very easy to locate and understand.

It's literally the difference between \foo\bar and foo_bar. It makes no difference for understanding the function.

The only advantage of a formal namespace is you can "own" it, and other code can't put things in there. Not having it does not making the core language harder to understand.

> quite a lot of syntax

It's basically the syntax of C. The most complicated parts are lambda functions and references. And that's nothing. Where are you getting "quite a lot of syntax" from?

Classes have a bit of syntax, but it's hardly "quite a lot", and the nice this is you don't have to learn any of it to get started.

> a high level of verbosity in many places

Where? PHP is not especially verbose. Examples?

> a variety of quirks and inconsistencies, etc.

There's basically just two: Comparing an empty string and the mistake with precedence on the ternary operator. Everything else confusing is the difference between arrays and Key/Value structures, and it's not really not that hard to figure out.

> PHP is a very big, very complex, language, that takes years to master.

It is not very big. The core language can be learned in a week. It's not very complex either - it's among the easiest languages out there.

> Many other languages are much better teaching/learning languages.

Not because they are easier - because they are _harder_!! They are more structured and you have to understand more - that makes them good to teach concepts. PHP was never intended as a teaching language.

<comment><USER61> "Not because they are easier - because they are harder!!"

That doesn't make sense.

I think we'll just have to agree to disagree. I believe there are many languages, including some often used for web development, that are easier (and better teaching/learning languages) than PHP in several regards. Python is the most obvious but Ruby also fits the bill.

</comment></comment></comment></comment></comment></comment></comment><comment><USER62> Welp, so much for "PHP has JIT too."

<comment><USER63> They increased performance of the language enough that it caught up to HHVM. PHP7 is wildly faster than previous PHP versions. In other words, HHVMs value proposition of speed is no longer as relevant.

PHP is still working on a JIT implementation but I honestly don't think it's that important for now.

<comment><USER64> In my experience HHVM is still quite a bit faster once it gets going.</comment></comment></comment>


The original web archive of game manuals - <AUTHOR> http://www.replacementdocs.com <comment><AUTHOR> I was reminded of this website I used a lot in the past (back when game manuals were a thing, back when you might pick up a used game without it). I was reminded of this when writing the article in [https://news.ycombinator.com/item?id=24210766](https://news.ycombinator.com/item?id=24210766)</comment>


Cork or Screw top? Can tech solve the the TCA issue? - <AUTHOR> http://www.bbc.co.uk/news/business-41319135 <comment><AUTHOR> So for wines that are meant to be drunk young screwtops are perfect. If you want to age the wine you need a cork as it allows small amounts oxygen to pass. As a someone with a large cellar I have wines that I have opened that where bad because of TCA however it goes with collecting. The upside of of the cork are just to valuable to how a wine ages to move to a screwtop.</comment>


Veracity: The next step in DVCS - <AUTHOR> http://www.ericsink.com/entries/veracity_early.html <comment><USER2> Some of this is really interesting, other parts not so much.

Versioning directories, pluggable storage layers, decentralized databases...these are interesting, but have been tried, and have not thus far proved compelling. Thus far, I have not seen projects move to Bazaar or Monotone because they were fed-up with Git and Mercurial not versioning directories, nor have I heard of people picking Mercurial or Subversion because of their pluggable storage systems, nor do I see people choosing Fossil and Monotone because they have distributed databases. It's not that these aren't good features--some of them, like properly handling directories and renames, are (IMVHO) definite improvements over Git and Mercurial--but rather, they are not by themselves enough to make people switch what they're using.

The real kicker for me is simply the license. All of the major DVCS players right now are GPL licensed. While Git's been pretty accepting of non-GPL compatible implementations (e.g., JGit, Dulwich), the Mercurial team has indicated that it would view any such project in a very dim light, and I can't conceive of anyone wanting to tempt the FSF by trying that kind of thing with Bazaar. Suddenly having a well-implemented closed-source-friendly DVCS could very easily result in a very sharp and immediate uptake among tool companies. This could completely change the game for corporate shops.

<comment><USER3> GPL covers code. If you take code from Git to write an alternative implementation, yours has to be GPL.

However, if all you do is take the file formats and the over-the-wire protocol, and write original code, it can be under whatever license you want. That seems to be what most of the alternative Git implementations have done.

The Git repository format is remarkably simple. I'm confident that if for some reason all copies of Git disappeared (binaries and source) and I needed to keep working with my existing Git repositories, I could cobble together something that would get me basic DVCS functionality in a couple of weeks.

By basic functionality, I mean the ability to check out revisions, view history, make changes to the working copy, and commit them, and to tag and branch and merge. (Heck, it was only a couple of weeks or so for Linus to write the thing once he decided to go for it, and he didn't have the benefit of having a well-designed and documented repository format and wire protocol handed to him).

Any decent programmer could do the same or better. Thus, I don't think Git being GPL is any significant barrier to adoption by people who need a good DVCS in a closed source project.

<comment><USER2> While I am keenly aware that the GPL only covers code, some major contributors to the Mercurial team have indicated that they do not believe it would be possible to make a compatible implementation without consulting Mercurial's source code. Whether you agree or not is immaterial at that point; why bother doing so when it will at best alienate the community, and at worst end in a messy lawsuit?

<comment><USER3> I'd be curious why they think consulting the Mercurial source code would make the compatible implementation have to be GPL.

Of course, rather than just go ahead and look and then write a compatible implementation from that knowledge, if I needed such a thing in a proprietary product, I'd pay a third party to read the Mercurial source and publish a specification of the file format, protocols, and rules for manipulating the repository (e.g., rules for locking things, and such). Then I'd implement from that specification.

That should avoid any confrontation.

There seem to be quite a few open source or free software projects where the developers think the license has more power than it really does. The reality is that all open source or free software licenses, even the more restrictive ones like GPL, will in fact let people do some things with one's software that one might not like. That's because these licenses are all based on relaxing the exclusive rights of the copyright holder. Unlike the typical proprietary software license, they aren't a mix of relaxing rights of the copyright holder and restricting rights of the user.

Hence, if someone, including proprietary software companies, wishes to do something with with the code or the knowledge embedded therein, and what they want to do is something that doesn't require permission under copyright law, then they are free to do it.

Personally, this is one of the reasons I have used the two clause BSD license for my recent works. People are going to find ways to legitimately do things I might not like. Instead of going with a restrictive free license like GPL and fantasizing that nothing bad can be done with my code and then being disappointed and pissed off when they do, better to just realize the price of giving users freedom is that they might do things I don't like, and not worry about it. Hence, BSD--the release and forget about it license.

What I find kind of funny (hilarious, actually) is that the kind of protection that some developers wish to achieve IS actually available--via patents! The Mercurial developers can get what they want out of GPL by patenting their repository format and their protocols, and then making a free patent license available to implementations that use GPL.

</comment></comment></comment></comment><comment><USER4> a DVCS that can handle enterprise requirements, very interesting. But let's see how it compares to git/hg/bzr in a week :) The pluggable storage layers sounds like something I would use in my company.

<comment><USER5> Well, I guess it depends on how they implement the "database versioning", but if I had a DVCS that would version a sqlite database inside a file (merge support, all the trimmings) in addition to the code surrounding that file, I'd switch away from git/svn in an instant.

</comment></comment><comment><USER6> "The core of Veracity will be open source, but we do plan to sell add-on [proprietary] products built on the core."

When companies do this, doesn't the open source product run the risk of becoming a second class citizen, or even a crippled one with features being implemented in the proprietary product and later migrated downstream or not at all? Isn't this a recipe for conflict of interest?

<comment><USER4> That depends on whether the products they built are "add-ons" or complimentary products.

If they're building add-ons (i.e. apart from authenticated users, premium members can make groups or something like that) then yes, you're getting a conflict of interest. If they'll built a commercial GUI application, or an integrated graphical differ then it will only help develop the dvcs because the ecosystem around it will be larger.

</comment></comment><comment><USER7> It's looking similar to fossil (<http://www.fossil-scm.org>) to me... Though the description isn't very deep.

<comment><USER8> If it is fossil with an easy to use interface that would be a definite value- add!

</comment></comment><comment><USER9> Eric is a very smart guy so I'll be interested to see this released. The pluggable storage layers seems like a feature that might make it a lot slower than git since I believe git uses a lot of file level i/o tricks for speed.

<comment><USER2> I'm sure it'll be slower than Git--literally ever DVCS I know of is, because Linus, as a kernel hacker, built Git around things he knew would be very fast --but precisely for that reason, you can be _tremendously_ slower than Git and still be _extremely_ fast. Mercurial can fall into that category: merely starting Mercurial can take longer than some Git operations take to complete, but that ends up meaning that they take a whopping 150ms on the Mercurial side. Given people generally perceive operations that take less than 250ms as instantaneous, that pretty much literally doesn't matter. While I have no idea whether Veracity will get _that_ close to Git's speed, there's no reason it can't be close if they've written it well.

</comment></comment><comment><USER10> Seems to me stronger user accounts could be bolted onto an existing DVCS quite easily. The hard part would be working out the PKI, but adding digital signatures to commit objects would be easy.

PKI probably would need to be pluggable to meet the variety of project needs out there. I'd imagine enterprise projects would use a corporate CA, some small startups or open source might be comfortable with a quick-start "ring- of-trust" distributed scheme, etc. Github and other hosting providers could offer CA services. Interesting way to prove code ownership in any case.

<comment><USER2> This is actually one of the two things about this product I find most interesting. Having a user-friendly public key system is really tough to get right, even when you're targeting programmers. Look at Monotone, for example: I'd argue they've basically got it right now, but it took them a long time to come up with sane ways for handling things like a user losing their keyring. Veracity will _have_ to get this right from the get-go if they want to nail the enterprise market.

</comment></comment><comment><USER11> That's great. At my last job I used Vault as a replacement to VSS(crap) and found it to be a polished product. I didn't like the dependency on sql server but it is robust. I am glad that they are open sourcing this as more options for the enterprise and business in general are good.

I'm using git now and it is leaps and bounds better than anything else I have used. (I like Mercurial too but the branching as a clone is somewhat of a deal breaker for me. I know that there are extensions to do this but I like the out of the box philosophy of git.)

<comment><USER12> >>I like Mercurial too but the branching as a clone is somewhat of a deal breaker for me.

Not sure what you mean hg branch Branchname creates a branch in the repo.

<comment><USER11> Ah yes you are completely right about the ability. Back when I was looking into mercurial vs. git some of the documentation I found it seemed like cloning a branch was the preferred way to do things in HG land. Not sure if that was the case but it was my impression at that time at least. fuzzy recollection mixed with not using it in a while led to that statement. cheers.

</comment></comment></comment><comment><USER13> The launch of this product makes a lot of sense considering Eric Sink's earlier writings on the topic of DVCSs. For example, in one article, he talks about the diverging trends of Enterprise and Open Source, leading to Enterprise finding it hard to accept a DVCS. Well worth a read: <http://www.ericsink.com/articles/vcs_trends.html>

</comment><comment><USER14> Looks fascinating. One thing that jumps out at me as a git user is the directory/rename tracking.

Directory tracking seems like a great idea.

Rename tracking on the other hand seems like a fool's errand since there is no sane universal definition of what constitutes a rename; I think what git does with superficial heuristic hinting at the UI level is really the best thing there.

<comment><USER2> I could come at that from the opposite direction: maybe getting perfect renaming is impossible, but the incredible slowness of asking Git for a _file_ 's history makes it utterly unusable in some contexts, where Mercurial/Subversion/Bazaar's rename tracking makes the same operation lightning quick. Maybe it's impossible to get it perfect, but if it can get good enough, the reward can be tangible.

</comment></comment><comment><USER15> Anybody know how will the performance be w.r.t large binary assets? Git and Mercurial are notoriously handicapped there.

</comment><comment><USER16> Ooh! Versioning the data in databases!

 _That_ is a feature I'm looking forward to. Rails migrations alleviate some of the traditional pain here, but don't go very far on actual data. Having a database you can check out with real versioning could be a really, really compelling feature.

<comment><USER17> Unfortuantely, that isn't what Veracity is going to do; see the comments from Eric Sink himself elsewhere in this discussion.

</comment></comment><comment><USER18> This sounds a bit like fossil, what with storing stuff in a DB and syncing between databases.

</comment><comment><USER19> I've been waiting for someone stepping into the database schema versioning space for years now. Would be very interesting to see how this would work in Veracity after rolling/maintaining my own solution for years.

And who's this "Vera"? (-:

<comment><USER20> I may be mistaken, but I don't think that he's talking about database schema migration, but that the VCS itself has a versioned database for any extra meta data that isn't really code, but should go along with it. Mercurial 1.6 added something very similar in a key-value store, although I haven't tried it out yet.

<comment><USER19> "Veracity goes beyond versioning of directories and files to provide management of _records and fields_ , with full support for pushing, pulling and merging _database changesets_ , just like source tree changesets."

Okay, I re-read that three times, and I still parse that as some form of database versioning (vs. a database where versioning data is stored)... I mean it talks about records and fields, etc. I guess we'll have to wait a bit to see what's supported.

On the other hand, tghw's interpretation could be very on the mark as well (e.g. simple meta data that goes alongside the sourcecode).

<comment><USER21> tghw's interpretation is closer to being correct.

A Veracity repo can have lots of DAGs (directed acyclic graphs).

A DAG in a repo can either be a "tree dag" or a "database dag".

Veracity's notion of a "database" is a model that is unique to Veracity, although its concepts are quite common. Records. Fields. Multiple record types. Simple constraints. Links between records. Simple queries. It's not SQL.

Nothing here implies that Veracity will help you, as a database developer on SQL Server or Oracle, manage the versioning of your schema and sprocs and so on. Those are interesting features, but they're distinct from (and a lot higher level than) the stuff I was describing.

<comment><USER22> I am very interested in that "database dag". If it works the way I think it does, I think it will be far more significant than the source control part of the product. For example, I'd like to be able to put together a decentralized knowledge base. Who knows, we may see <http://redmonk.com/sogrady/2010/05/04/open-data-github/> sooner than later.

</comment></comment></comment></comment></comment><comment><USER23> There was one key phrase there that makes me think it will be worth looking at: "We are dogfooding Veracity here at SourceGear"</comment>


Google's Rubin split his Android bonus with team - <AUTHOR> http://www.pcmag.com/article2/0,2817,2391334,00.asp

<comment><USER3> I worked for Andy for a few years at Danger. He's a great guy. He's got a great mix of technical skills, business savvy and being a generally nice bloke.

He's also ridiculously generous. Also, he builds cool robots for fun (or at least used to).

</comment><comment><USER4> Hm. I thought this was the most interesting part:

 _The Journal said Rubin was a "central player" in the deal, though Google hasn't commented on the specifics of how the deal was done._

Maybe it's not Larry Page who wants to be Steve Jobs.

Edit: Not that Rubin's appreciation of his staff isn't interesting or awesome. I think that's great, too!

<comment><USER5> That's interesting. It contradicts GigaOm's reporting that Rubin was brought late into the talks between Page and Jha: [http://gigaom.com/2011/08/15/guess- who-else-wanted-to-buy-mo...](http://gigaom.com/2011/08/15/guess-who-else- wanted-to-buy-motorola/)

</comment></comment><comment><USER6> _A shareholder sued Motorola Mobility and its CEO Sanjay Jha over the price paid to the company._

People will sue over anything. Google bought it for 60% more than the stock price at the time, and the analyst consensus was that was quite a high premium.

</comment><comment><USER7> First rule: Do the right thing for your people.

A friend of mine worked as a group leader for a major tech company for years. Put in 14 to 16 hours a day for six months to release a major project. On launch, the company gave my friend a $10,000 bonus, and gave the group pizza and a trophy. He split his bonus with his entire team. He got laid off 3 months later. He immediately started running a consultancy, and hired away most of his group. The company has since tanked.

Do the right thing for your people, and they will lay down in traffic for you if you ask them to. Screw them over, and they will milk your company dry.

Rubin's a smart guy.

</comment><comment><USER8> Definitely an amazing guy! But the deal sounds a bit strange... I mean - <USER2> bonus is his personal income. Why Google executives pay their teams with their personal money, wouldn't it make more sense to re-adjust the bonuses payable with company money? Also, I'm curious how it works from IRS point of view - did he end up paying taxes on that as well?

</comment><comment><USER9> Instantly scored a 150 out of a 100 possible points on my scale, this Andy Rubin.

May God bless your soul. What you've given will come back ten fold.</comment>


Sprawl Recovery - A 12-Step Program - <AUTHOR> http://originalgreen.org/blog/sprawl-recovery---a-12-step.html

<comment><AUTHOR> "Sprawl became an addiction in the same way most addictions start: by providing a huge rush of perceived benefits early on. It became the biggest money-making machine ... and you didn't really even need to think very much in order to participate because of its reductive simplicity. Zoning ordinances, financing mechanisms, and appraisal standards all conspired to grease the skids for the developers of sprawl, with an unspoken side-effect: every other way of building became intolerably laborious by comparison."</comment>


Suicides Have Increased. Is This an Existential Crisis? - <AUTHOR> https://www.nytimes.com/2018/06/23/opinion/sunday/suicide-rate-existential-crisis.html <comment><USER2> > To bemoan the decline of neighborliness,

This strikes a chord for me.

Several years ago my wife and I baked holiday cookies, wrapped them up into clear gift bags with a bow, and went door to door at our townhome/condo complex knocking attempting to spread some holiday cheer.

We had 5 doors closed on us before we gave up.

The immigrant family next door invited us in for a chat, everyone else peaked through a cracked door and waved no thanks.

My mother knew the names of everyone on her block. But it was a different time, people moved into a house, stayed there, raised a family, their kids grew up, and came back to visit their parents. As a kid I went over to the house of the same neighbor my mother visited as a kid.

Now days? Everyone moves. A lot. Chasing jobs, dreams, hopes, and aspirations. We aren't in one place long enough to form a sense of being or community.

I'm actually tackling this with my startup (linked in profile), I'm personally sick and tired of wandering the streets of my city, not knowing the people I pass by.

It does get lonely. The big tech cities are worse to some extent. I'm in Seattle, widely considered to be one of the hardest to meet people in cities in the country. In the dozen years since I've graduated college, I have made 4 solid friends (3 moved away). Something needs to change, we can't all survive being left adrift through life.

<comment><USER3> Strikes a chord for me too. I came to Seattle from the midwest where I lived in a Craiglist house with a gang of besties. I met some people here (also via CL shared housing) but since I've paired up and settled in it's been really hard to maintain good relationships with friends. I looked out at the skyline and though, geez there must be tens of thousands of people within a mile radius, none of whom I have any means to communicate with. I was going to do a nextdoor-like startup for sharing tools, rides, events, etc. (it was too be called "neighborcasting") but I didn't pull it off due to engaging day job.

I've also been discouraged because it seems like very many people simply do not want to meet the people around them. For instance, check out this recent thread on the SeattleWA subreddit about talking on the bus [1]. I was kind of flabbergasted by how much people hate it when a stranger talks to them.

It's like there are just too many people and no one has time to connect with any of them in an unplanned fashion.

[1] [https://www.reddit.com/r/SeattleWA/comments/8stzn9/featuring...](https://www.reddit.com/r/SeattleWA/comments/8stzn9/featuring_classic_hits_like_no_one_ever_talks_to/)

<comment><USER2> > For instance, check out this recent thread on the SeattleWA subreddit about > talking on the bus [1].

Before smart phones it was different. Now an interruption is a distraction from our magic dopamine granting machines.

As someone who worked on early smartphones, I feel a twinge of guilt[0]. The addictive nature of the technology really has destroyed any semblance of mental down time that used to exist.

[0] I'd feel more, but Windows Phone didn't turn into a raging success, so I'll let the Android and iOS engineers contemplate the philosophical implications of their code!

<comment><USER4> > Before smart phones it was different.

Not for me. Crippling social anxiety means that anyone unknown talking to me causes panic. Especially on a bus in London which are reknowned for their, uh, "colourful" characters who may well be a harmless eccentric but could equally well be Stabby McStabberson or Robber McFeralYoot.

<comment><USER5> London has gone down in the recent years, so I've heard. Do you also feel that?

<comment><USER4> No more than when I moved here nearly 20 years ago, really. There's more pressure on people (financial crash, austerity nonsense, etc.) but on the whole it seems fairly similar to me.

</comment></comment></comment></comment></comment></comment><comment><USER6> I think there is definitely an existential crisis in the West. I can't think of a time when society was this pessimistic, this focused on individual improvement and this divided financially, and I was an adult in the 80'ies.

I recently hired for a temporary junior position and the applicants blew me away. It's the first time I've truest vitnessed the product of the competitive state, these 22-24 year olds were spending all of their time trying to prepare for the job market, not because they seemed to want to, but because they didn't want to fall behind their peers, as one of them said bluntly when I asked why she never seemed to take time off.

I can't imagine how terrible that constant performance pressure must be. Especially if you're not in the top 80%.

Ironically I can't really think of a time where things were really better than they are now. So I'm not entirely sure where this pessimism and performance anxiety comes from. Rising inequality is a problem though, if left unchecked it almost always leads to violent instability.

<comment><USER7> Probably a combination of standardized testing, perceived looming economic/environmental/social upheaval, and feedback loops between blind optimization of social media engagement metrics and unwitting narcissism.

I found that social media let me to regularly compare myself with friends, and feel like I was also being evaluated... after explaining why I shut down my accounts, I learned many of my friends felt similarly.

It doesn't help that everyone's social lives are a clixk-away. When someone's feeling down, they can passively scroll through "evidence" supporting those emotions - compared to talking to people, or even imagining their lives (actively thinking).

<comment><USER8> Plus how every company seems to insist on only hiring the best or the rest, no middle ground; either you're a top genius working at hip startups and/or the engineering department at the big internet megacorporations, or you're doing the modern equivalent of a McJob, that is, Uber driver (if you're lucky enough to have a car), delivery guy, warehouse order picker that needs to pee in bottles on the go to get the targets the computer is telling you to reach.

</comment></comment></comment><comment><USER9> My grandfather (end of WO I and WO II entirely as an adult) always said that people have no idea what bad looks like and will not be satisfied if they have not lived through a war (or two) in their own country. We have never had more peace and wealth and yet I see people around me being more and more unhappy and dissatisfied. Possibly my grandfather was right, hope not.

<comment><USER10> What "we" are you referring to? You and your grandfather?

A lot of _other_ people are poor. I promise.

<comment><USER9> No, the world; EU and US had no wars on their soil for large periods compared to their histories.

<comment><USER11> Fully agree with you on the US, but for the EU, it's just ~25 years. Slovenia and Croatia both went through a violent conflict in early 90s (although Slovenian one was very short).

There are EU citizens in their mid-twenties born during the war.

If (and that's a giant "if" considering its fragile state of the moment) Serbia becomes the next EU member (optimistic estimate is 2025), the most recent conflict will shift to late 90s, and you will again have people in their mid-twenties born during the conflict.

That's really not that long.

<comment><USER9> You are absolutely right. Sorry about that oversight (I am from NL; I do know better); too living in my own world. Stand corrected.

Then an interesting tidbit would be if people are struggling mentally as much as they do in north EU or US?

</comment></comment></comment></comment></comment><comment><USER12> I think it's part of the trend of "despair deaths": [https://www.npr.org/sections/health- shots/2017/03/23/5210833...](https://www.npr.org/sections/health- shots/2017/03/23/521083335/the-forces-driving-middle-aged-white-peoples- deaths-of-despair) [https://www.buzzfeed.com/carolinekee/maps-despair-deaths- dru...](https://www.buzzfeed.com/carolinekee/maps-despair-deaths-drugs- alcohol-homicide-suicide?utm_term=.clLwqbqnE#.gwyD060op)

</comment><comment><USER13> Sidebar: it's cheap and disrespectful to people experiencing depression to casually attribute the suicide rate to your pet theory about the decline of society.

<comment><USER14> No, it isn't. You figure things out by theorizing and discussing those theories. In this case about a macro-level social trend. It isn't about any particular one or a dozen or a hundred people who's depression is rooted in something else.

<comment><USER13> You figure things out by collecting and analyzing data to validate your hypotheses.

</comment></comment></comment><comment><USER15> Atheism is mentioned in the article. Facing the naked truth that there is no god can be brutal indeed. It's not surprising that rational people are clinging to their soothing beliefs.

</comment><comment><USER16> The most important thing to reduce suicide rates is to reduce access to means and methods. This is impossible in the US because it means gun owners have to store their weapons in locked cabinets, with the ammunition in a separate place. Or, better, that fewer people own guns.

Some thing that might be possible is to provide training to police so that they don't kill people who are mentally distressed.

It's a bit worrying that this article doesn't mention any definitions or differences in counting over years.

</comment><comment><USER17> No one mentioned food and the gut brain axis, sugar and phlatetes changing our gut composition and the gut brain axis then changing our thinking more rapidly.

<comment><USER18> Is there a decent theory behind this? Any suggestions on a good place to get an intro to the idea?

<comment><USER17> Various links between your gut bacteria and depression, which can lead to suicide.

[https://www.sciencedaily.com/releases/2017/03/170308114709.h...](https://www.sciencedaily.com/releases/2017/03/170308114709.htm)

Google "gut brain axis"

</comment></comment></comment><comment><USER19> A sense of meaninglessness and purposelessness is often behind suicide.

As Nietzsche observed, _" he who has a why to live can bear almost any how."_

</comment><comment><USER20> I wonder what percent of this is related to the current media climate and technology enabling a more relentlessly global perspective and world view. There is the unhealthy war between the media and Trump. Trump sloughs it off, the media loves the sensation, but in my anecdotal observation some people internalize this national/international soap opera in really dark and despairing ways. I see a few people I know who have attempted suicide constantly hitting social media with profanities against DJT and retweeting more of the same. Regardless of what is going on, the stuff is not really relevant to their own problems and well being at the moment. I'm guessing the psychology is something like "well, even if I get my shit together it'll still not a Nash equilibrium because the world is irreparably fucked for me".

<comment><USER21> > _" well, even if I get my shit together it'll still not a Nash equilibrium > because the world is irreparably fucked for me"_

IMO that's exactly it. At certain point I decided that I will work both harder and smarter because I like money and the peace of mind and freedom they enable... but in the end all my aspirations for changing the world for the better won't ever materialize, I am pretty sure of it.

So in the end it turns out that a happy philosophy would be something like in the "Hitchhiker's guide to the galaxy":

"Just do what makes you happy and don't worry about the world."

Even that is pretty hard nowadays because we constantly get bombarded with comparisons. The media REALLY loves turning people on each other.

</comment></comment><comment><USER22> Could all of this be linked to a basic human need of constant "news value"? I mean, does people need to fill their brain in some form of another, if not they go insane? Ways you can fill your brain with news value: Difficult tasks at work, engaging in other peoples lives, gambling, Facebook, Netflix, hobbies, stock market, knitting, programming, voting for a president to make their life more interesting (I did not say better).. If you have a lot of hobbies you are more ok with a boring job, and with a difficult job you are more ok with boring / little contact with your neighbours.

</comment><comment><USER3> If you want to read more thoughts on how having meaning relates to a fulfilling life, check our Viktor Frankl's classic, Man's Search for Meaning [1]. He was in concentration camps and developed a whole theory about the exact topic touched on in the nytimes article.

It's short and very inspiring.

[1] [https://www.amazon.com/Mans-Search-Meaning-Viktor-Frankl- ebo...](https://www.amazon.com/Mans-Search-Meaning-Viktor-Frankl- ebook/dp/B009U9S6FI)

</comment><comment><USER23> I highly recommend the book "Tribe" by Sebastian Junger.

He has also been a frequent podcast guest asked of his opinions on the recent school shooting trend.

While Junger is not a classically trained psychologist, sociologist, or anthropologist he is a keen observer of human group behaviour.

His argument is that people need meaning, people need purpose, and most importantly people need to belong.

I would agree 100%

</comment><comment><USER24> For one, I think people are more selfish these days. I don't mean that as an insult, I'm selfish in the same way and I think it's a luxury we couldn't afford until recently. I don't know if the world made us that way, or we made the world that way, but we're all to blame. Because relative wealth has increased since I was a kid we generally don't need our community the way we used to. When I was a kid, my mom knew all the neighbors really well and nearly every night somebody was borrowing dinner ingredients or something from somebody. Today, my same mom would probably just go to the store and buy what she needs. Nobody needs each other anymore, or at least they don't think they do.

Secondly, there is so much more entertainment now than there used to be. When I was a kid, there was maybe one night/week where something was on TV that I actually wanted to watch. Movies were rented once/week max. So, the rest of the time was mostly spent playing with kids on our block... and our parents would have a beer with the other parents at the same time. It was cheap, fun, and more importantly for our context... there wasn't anything better to do anyway. It was plain simple truthful fun. It was real.

Fucking too. I think people fucked more back then.

Our transition to the mass consumption of entertainment that we have now, including hacker news to some degree, presents an even bigger problem... lies. Plain simple truthful fun is much harder to come by now. The Joneses (or Kardashians) are on your TV all the time on every channel. Mostly unobtainable celebrity lifestyles stream to your pocket in real time. And if nothing good is on in real time then you can consume every night of your next two months streaming 7 seasons of a new show. I know my wife and I definitely have less sex because Game of Thrones and other TV shows are better than most movies. I hate to admit it because it sounds sad, but it's also our choice, we have less sex than we would if TV wasn't so damn good. It's not better than sex, but it's easier to do. You can drink wine while you're doing it. At the end of a long day, you can wind down instead of winding up. It doesn't take any effort, and everything else worthwhile, like talking to your neighbors, is harder than winding down. It is work. You have to think. It shouldn't be that way, but it's just not as relaxing as watching TV or reading hacker news.

Nobody leaves their house anymore. When I was a kid, there were people outside constantly. Nobody in my neighborhood even mows their grass anymore, it's all lawn care services. Nobody does shit that they don't have to do. Kids too. My kids are young, but if I let them start the day watching TV they never want to stop and go outside. I rarely see other kids outside playing anymore. My friends with teenagers say their kids have no desire to get their drivers license, they like being at home, watching youtube, playing video games and texting with friends. Even the number of teens having sex is way down. Even horny teenagers aren't fucking as much anymore!

That's because the entertainment itself is part of the problem. It's good. It's really good. "Binge watching" sounds like an unhealthy disorder because it is an unhealthy disorder. Even "reality tv" isn't real. What? The things they market as real aren't real! Then the lie takes a break to pay the bills through advertising and it's even more lies. Now, don't get me wrong, I've worked in Advertising and there's no grand conspiracy to try and control people, everyone in that industry is just working their ass off to do the best job they can like everyone else in every other industry. If you go to the gym, the girl with the nice boobs -- they might be fake, or that guy with the muscles you want -- he might be doped up. Everything is out of control.

So, it's no wonder people can't find purpose and are killing themselves -- they can't make sense of this world and that is one of the few things they can do that they know is real. They feel out of control and taking their own life is one thing they can do, it's the final and ultimate way to beat this world and prove that they really do have some control.

I used a lot of hyperbole and generalizations but I think this one is true: we need to spend less time with our screens and more time outside with our friends and family. Good luck convincing them.

<comment><USER25> Get off hacker news then! Haha. No, I agree entirely. People not talking to each other is ultimately the problem. My wife was depressed because she had nobody but me to talk to. She went to get help but that didn't do much so we moved back to her hometown and live next to her parents. Now she sees and talks to her mom every day and I have not seen any evidence of depression. Myself, I have on and off moments where I feel like total shit. It doesn't help that I have 0 friends and never go out anywhere.

<comment><USER24> > It doesn't help that I have 0 friends and never go out anywhere.

Find or start a weekly meetup.com group for something you're interested in. Go every week. Within months you'll have friends. I've done it in a couple cities now and it works great. Any adults who are new to your city are in the same boat -- it's hard to make friends, but this plan works.

</comment></comment></comment><comment><USER26> Betteridges law.

It raises a good point though; and I don't want to entirely blame individual things; but I do wonder how much of our psychology is pushed to limits with social media. From what I've seen on social media platforms you have intensely powerful echo chambers (twitter) telling you everything is hopeless, or making you vitriolic and angry at the world. With instagram we get a curated view of someone's life. Perfectly packaged and polished which leads to envy and eventually bitterness. Similar story with facebook and the way that you may perceive attention being lavished on other potentially "more deserving" people.

Personally I feel a little less hope in the world from knowing that I will likely never own my own home. Or have the time to start a family. At the same time there are those having swathes of children without being able to provide for them economically. So the burden goes to everyone.

</comment><comment><USER27> Define crisis first and is it something society even cares about?

I think people are more secluded now, it's a world where you google on your phone instead of asking a stranger or have a discussion with friends. The younger generation is getting robbed with students loans for degrees most don't even need and could just do apprenticeship or internship for a year to prove themselves. A lot of social media exists now showing social status with wealth, traveling and stuff that isn't important but creates envi. The mental health «professionals» are not great and just drug pushers filling a capitalist needed role for pharmaceutical companies. Society is approaching the bottom of the barrel where nobody cares to confront anything face to face.

</comment><comment><USER28> Was this controlled for income and net worth?

</comment><comment><USER29> A solution cheaper than life.

</comment><comment><USER30> Thomas D from Brooklyn said it best...

"I find this essay to be incredibly simplistic.

You blame the increased suicide rate on the diminished role of religion in our lives and a lack of "neighborliness" with our neighbors? Really?

Just off the top of my head, here are a short list of factors you did not consider:

\- The worst income inequality our country's seen in a CENTURY.

\- Most Americans — and statistics back this up — dislike or literally hate their jobs... Which they find meaningless.

\- Millions are working 2 and even 3 jobs on starvation wages.

\- Millions of Americans are overwhelmed with student debt.

\- Our country has no guaranteed paid parental leave.

\- Our for-profit health care system leaves millions uncovered — and millions more "covered," but unable to afford to actually use their coverage.

\- Unlike all other major countries in the world, we have ZERO guaranteed paid vacation.

\- We work too much — we work longer hours than almost any other industrialized country.

\- Because of this sad fact, what time we have left over for leisure and spending time with family and friends is severely limited.

\- We have a deeply corrupt political system in which all of us recognize that it's only the super-rich and corporations who get what they want — decade in and decade out. \- We live in the Wild, Wild West of "anything goes" for corporations — including raping our environment and monopolizing... resulting in higher bills for us, less innovation, little to no competition and so forth.

Need I go on?"

<comment><USER31> Sure, not a lot of substance here. Easy to disprove most of it.

-income inequality is higher but so is standard of living. Moreover, suicidality is pretty strongly inversely correlated with poverty and privilege. If the hypothesis is that people are killing themselves because "wah someone has more numbers than me" the argument crumbles immediately.

-most jobs have always been shit and meaningless. Nothing new here expect maybe a generation that was told they were special when they are not.

\- "2 or 3 jobs" but how many hours? Also, starvation wages? Come on. Nobody in America with a job is poor enough to be hungry. To suggest starvation wage in America devalues actual food scarcity globally. Also, again, poverty and suicidality are inversely correlated

\- you can thank federally guaranteed student loans and useless majors for driving up the cost and driving down the value of college. Still, having 40k-200k of loans contributing to suicidality... I'd like to see the study. Could be right.

\- guaranteed parental leave would help reduce suicides? I mean, we didn't have that in the past. So why does the status quo cause higher suicide rates?

\- the medical services coverage is a strange argument with respect to suicidality. We understand and treat depression way better than we did 50 years ago, so why is it worse now? Plentiful mental health clinics even operate on a "pay what you can" model

-paid vacation, see paid parental leave

\- why wasn't suicide higher when we worked more hours in the past? In the last 50 years as hours worked hasn't really changed, why is suicidality up now and not then?

\- I mean... Leisure time is still a good 6 hours a workday plus weekends and hasn't really gone down. Why don't people who work more for less commit suicide more often?

\- this last one doesn't even deserve a response.

Please go on. Maybe you'll get a single reason if you do.

<comment> King-Aaron > Nobody in America with a job is poor enough to be hungry.

That's an absurdly out-of-touch statement.

<comment><USER32> I think I heard recently on NPR that an American making minimum wage earns enough to buy 100k kcal per day. (Sorry, no source)

If you compare that to countries where people actually starve you should be able to see the difference

<comment><USER8> What about being able to rent or buy a house in addition to feeding yourself?

Besides, there's a lot of "jobs" out there right now where minimum wage does not apply - the service industry (where it has to be filled by tips, which are voluntary, but if you don't tip you're both 'stealing' people's wages and will get shit treatment), the "gig economy", etcetera.

</comment></comment></comment></comment></comment><comment><USER33> This will sound odd but I believe the rise of the independent woman, while a good thing, has some negative unforeseen impacts on society.

I'm so scared to even say that under my normal account because people will take issue with it and try to get me fired from my job.

Some impact is that women are completely able to take care of their self now. They do not need a man and can date who they want or nobody at all (that's a good thing). This has left women able to pick the top men, studies have shown that they are much more selective than men — and they are in much higher demand than men. This has left a lot of men unable to find love or start a family. Men would get meaning from life having a family, now some men are completely denied the opportunity. Women date up. Men date whatever they can get and women are increasingly more educated and doing better than men. If not for foreign women in the US many many would never have a chance with a woman.

With women entering the workforce, basically doubling it, wages have been impacted, a lot of men struggle (though not us in tech).

This is just something we have to adjust to.

<comment><USER34> > This has left women able to pick the top men, studies have shown that they > are much more selective than men — and they are in much higher demand than > men. This has left a lot of men unable to find love or start a family.

I experience that myself... But I wonder how that works. Isn't the ratio of women to men 50:50 more or less? Are multiple women all in a relationship with the same few men? I don't see how that would work for serious relationships. That must mean women are also not starting families anymore?

<comment><USER35> It doesn't help that most (American) men don't seem to be worth dating for reasons that have nothing to do with looks, money, or fame.

Most american men are boring (generally speaking).

NOTE: I'm saying this as an american man.

<comment><USER36> And American women aren't boring?

Pretty loaded statement there that should probably be accompanied with supporting evidence.

<comment><USER35> Are you taking this personally? If we hung out, would we have a good time?

Would we be able to talk all night about interesting stuff? Would i stay up way past my bedtime because I don't wanna put the phone (or whatever communication) down?

<comment><USER36> You've accusing an entire gender of being boring, the least you can do is support it with evidence, otherwise your statement is at best doesn't contribute anything, at worst is toxic.

</comment></comment></comment></comment></comment></comment><comment> q-base It is probably harder than ever to NOT question your current path and position in life. Even IF you are satisfied with your position and path, the attention economy constantly works to make you question whether the grass is actually greener on the other side.

</comment><comment><USER37> Disclaimer: coincidentally, I was 5150'ed today per an email I didn't think through clearly very early in the morning I sent to a family member.

Due to the Werther Effect, does discussing this influence the behavior? Isn't it why all discussions of the topic are banned in certain country's news... not for embarrassment or to hide trauma, but to prevent it from becoming a memetic epidemic?

<comment><USER38> 5150 means you're involuntarily committed due to mental illness where I come from--what happened to you today exactly?

<comment><USER37> It's originally part of the TPS Act in Cali, and it's not a convo for anonymous online discussion.

</comment></comment></comment><comment><USER39> I keep a kit on standby in case things get too bad. I desire to die perpetually and am generally cynical about the human meat sack condition.

<comment><USER28> What's in the kit?

<comment><USER39> 40000 1000 100000 500

</comment></comment></comment><comment><USER40> Some relevant books here for those with a Christian heritage who are confused about what's going on, with a historical perspective.

[http://www.culturewars.com/books.htm](http://www.culturewars.com/books.htm)

</comment><comment><USER41> No.

</comment><comment><USER42> Nytimes complains about suicides, but then it also promote policies and politicians that are causing the suicides and destroying our socities. Some of the policies are: uncontrolled immigration from poor countries bringing crime and causing social distrust. Laws that close the market and give few companies a lot of bargaining power, forcing people to move around like cattle and also making almost impossible to create good economies in towns. Laws that give sociopaths the ability to bring functioning human being in courts for stupid reasons and win, making people not trusting their neighbors. Divorce laws that destroy families. Anti-family propaganda that pushes people to destroy their family at the first difficulties. These things, and many others, make really difficult to create a well-connected society, and people eventually kill themselves because it's really bad out there where you get a little off the track set by thr State and its puppetters.

So, nytimes should know very well that this is not an existential crisis, it's the result of something they supported for a very long time.

<comment><USER43> > uncontrolled immigration from poor countries bringing crime and causing > social distrust.

That's bullshit, sorry. Given same demographics, refugees bring about the same levels of crime as "native Germans" do (e.g. [https://www.zeit.de/gesellschaft/zeitgeschehen/2016-06/bunde...](https://www.zeit.de/gesellschaft/zeitgeschehen/2016-06/bundeskriminalamt- statistik-straftaten-asylbewerber)). The "rise" that is sometimes perceived is largely based on the fact that young, poor-ish males tend to be the social group with the most crime issues.

As for "social distrust", you are certainly correct in the _symptom_ , but not the cause. The cause is not "uncontrolled immigration", but politicians having totally screwed up social security systems and protection laws. For example, fair and equal minimum wage laws and especially actual enforcement of these would prevent the common notion of "the migrants are taking away our jobs because they're cheaper".

> Laws that give sociopaths the ability to bring functioning human being in > courts for stupid reasons and win, making people not trusting their > neighbors.

Laws usually have a reason why they got enacted. Yeah, it's sometimes a mess (especially when it comes to HOAs, per countless debates here and on reddit), but in general, stuff is pretty okay.

> Divorce laws that destroy families.

Care to explain how, other than (in the US!) everything being on the public record and snatched up on the Internet for everyone to see?

> Anti-family propaganda that pushes people to destroy their family at the > first difficulties.

What? And even if that were true: sorry, but a family/environment where there is constant arguing between the parents is _not_ healthy for the kids!

<comment><USER18> > That's bullshit, sorry. Given same demographics

Wait a minute....if you're calling bullshit, why do you lead your disproof with a limiting qualifier?

Does the specific immigration the grandparent comment references arrive with the same demographics, or not?

> As for "social distrust", you are certainly correct in the symptom, but not > the cause. The cause is not "uncontrolled immigration", but politicians > having totally screwed up social security systems and protection laws. For > example, fair and equal minimum wage laws and especially actual enforcement > of these would prevent the common notion of "the migrants are taking away > our jobs because they're cheaper".

Again, I would ask, is this a theory or is it a fact? I'm under the impression that social distrust rises as diversity rises (the underlying reason, and whether it is fact-based or not is irrelevant) - is this belief _false_?

I actually kind of don't agree with your last two points either, but those are more opinion-based so fairly pointless to argue one way or the other.

<comment><USER18> -1 with no response.

ideology > facts</comment></comment></comment></comment>


PSP as a status monitor - Hack a Day - <AUTHOR> http://hackaday.com/2009/03/30/psp-as-a-status-monitor/ <comment><AUTHOR> Built this quick hack a couple of days ago, got tired of hitting the Belkin switch to watch the status of my second computer...

The PSP side is very minimalistic and dumb, you just send it an image in PNG/JPEG format or a short text and it displays it.

The python part is linux specific but you can easily write your own in whatever platform you are using...

Enjoy</comment>


US Department of Defense requests Defense Distributed to remove content - <AUTHOR> https://twitter.com/DefDist/status/332552113014063104 <comment><USER2> Yeah, heaven forbid the masses all take up their little plastic guns that they printed on their $8,000 3D printers and decide to take a stand.</comment>