Announcement

Collapse
No announcement yet.

Facebook's Last HHVM Release With PHP Support Set For December

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Facebook's Last HHVM Release With PHP Support Set For December

    Phoronix: Facebook's Last HHVM Release With PHP Support Set For December

    HHVM that started out as Facebook's project for a high-performance PHP implementation and morphed into the basis of their Hack programming language will cease to support PHP...

    http://www.phoronix.com/scan.php?pag...0-Last-For-PHP

  • #2
    So, it seems like a common development pattern is to build something and then later rewrite it in another programming language as their needs change.

    I find it genuinely interesting that Facebook is taking a different route. Start with PHP and then evolve a new language from PHP to fit their needs. I'll be curious to see where Hack ends up.

    By their own admission in the blog post they plan to evolve the Hack language rapidly. So they're not looking for wide adoption yet, they want the language to mature before they put big efforts into promoting it. I'm not sure that makes a lot of sense - I would think a selling point for other users would be the same one for Facebook, a way to improve your PHP code without a full rewrite. If Hack goes through some major changes, migrating existing PHP code to hack might be too much work. And without that killer feature, Hack is a harder sell.

    Comment


    • #3
      Originally posted by Michael_S View Post
      So, it seems like a common development pattern is to build something and then later rewrite it in another programming language as their needs change.

      I find it genuinely interesting that Facebook is taking a different route. Start with PHP and then evolve a new language from PHP to fit their needs. I'll be curious to see where Hack ends up.

      By their own admission in the blog post they plan to evolve the Hack language rapidly. So they're not looking for wide adoption yet, they want the language to mature before they put big efforts into promoting it. I'm not sure that makes a lot of sense - I would think a selling point for other users would be the same one for Facebook, a way to improve your PHP code without a full rewrite. If Hack goes through some major changes, migrating existing PHP code to hack might be too much work. And without that killer feature, Hack is a harder sell.
      I guess the point is they're not trying to sell it, they're using it to scratch their own itch

      They don't want others using it and complaining that it's moving too fast

      Comment


      • #4
        This is just a continuation of creating a language, runtime and libraries to suit your needs. FB has Hack, Google has Go/Dart, Apple created Swift, MS has the .net ecosystem with C#/F#, and an IDE company created Kotlin. Each language/runtime has created footholds outside the respective companies, but you clearly know who is controlling the language/runtime and possibly even subsuming any large-enough outside footholds. Go/HHVM/C# and Java require a corp CLA, Swift/Kotlin seem to be far better.

        These languages have been optimized for developer productivity. In that way, I think they're all mimicking the success of Python/Java/JS, but I can't imagine any of them being as successful. The languages pushing the boundaries for performance and higher level language features are Mozilla with Rust, WebAssembly, new C++ standards and FP languages like Scala/Haskell. Better to stick with these for personal projects. Even Python seems to have added some static typing features with 3.6.
        Last edited by audir8; 09-13-2018, 03:27 PM.

        Comment


        • #5
          Originally posted by audir8 View Post
          This is just a continuation of creating a language, runtime and libraries to suit your needs. FB has Hack, Google has Go/Dart, Apple created Swift, MS has the .net ecosystem with C#/F#, and an IDE company created Kotlin. Each language/runtime has created footholds outside the respective companies, but you clearly know who is controlling the language/runtime and possibly even subsuming any large-enough outside footholds. Go/HHVM/C# and Java require a corp CLA, Swift/Kotlin seem to be far better.
          Well, I think there's a difference between creating a new language to do what you want versus evolving an existing one. My understanding is that Hack started out as extensions to PHP, and went from there. I guess that would make Typescript similar, since from what I understand it is really Javascript plus some add-ons. Or if you go back in time, I guess it covers the origins of C++ and Objective-C too.

          Go, Dart, Swift, C#, F#, and Kotlin borrow ideas from other languages but as far as I know they didn't start as add-ons to other languages.

          Originally posted by audir8 View Post
          These languages have been optimized for developer productivity. In that way, I think they're all mimicking the success of Python/Java/JS, but I can't imagine any of them being as successful. The languages pushing the boundaries for performance and higher level language features are Mozilla with Rust, WebAssembly, new C++ standards and FP languages like Scala/Haskell. Better to stick with these for personal projects. Even Python seems to have added some static typing features with 3.6.
          In industry and in universities people are always claiming that advanced static type checking and functional programming are going to conquer the software engineering industry. But Ocaml is 22 years old, Haskell is 28, Scala is 14 and possibly less popular today than it was five years ago. If these things were going to becomea reliable indicator of better software quality or developer productivity, they should have been wildly popular long before now.

          I started learning Haskell in 2008 because I was convinced it was the next big thing in our industry, and there are only two or three jobs that reference that language in indeed.com for NYC today - and 4000 Java and 4400 Python developer job listings.

          I'm not trying to assert that static types or functional programming are bad. I like both. I use both. I just think we overstate their value or underestimate the resistance to change in our industry - both in business and open source projects. Hundreds of millions of lines of high quality, production-tested code is in use across the world written with weak static type systems, dynamic type systems, and object oriented or imperative programming styles.

          Comment


          • #6
            Originally posted by Michael_S View Post

            Well, I think there's a difference between creating a new language to do what you want versus evolving an existing one. My understanding is that Hack started out as extensions to PHP, and went from there. I guess that would make Typescript similar, since from what I understand it is really Javascript plus some add-ons. Or if you go back in time, I guess it covers the origins of C++ and Objective-C too.

            Go, Dart, Swift, C#, F#, and Kotlin borrow ideas from other languages but as far as I know they didn't start as add-ons to other languages.



            In industry and in universities people are always claiming that advanced static type checking and functional programming are going to conquer the software engineering industry. But Ocaml is 22 years old, Haskell is 28, Scala is 14 and possibly less popular today than it was five years ago. If these things were going to becomea reliable indicator of better software quality or developer productivity, they should have been wildly popular long before now.

            I started learning Haskell in 2008 because I was convinced it was the next big thing in our industry, and there are only two or three jobs that reference that language in indeed.com for NYC today - and 4000 Java and 4400 Python developer job listings.

            I'm not trying to assert that static types or functional programming are bad. I like both. I use both. I just think we overstate their value or underestimate the resistance to change in our industry - both in business and open source projects. Hundreds of millions of lines of high quality, production-tested code is in use across the world written with weak static type systems, dynamic type systems, and object oriented or imperative programming styles.
            I'm not sure forking from a language is a distinction worth making. You could just say it was primarily influenced by one language. There are probably many examples of this, but a midsize company I know moved to HHVM for their PHP code, didn't move to Hack, and moved back to PHP7. They're separate languages for all intents and purposes after this announcement.

            The trend from JS to Coffescript/Dart/Typescript/WA, PHP to Hack/PHP7 strict typing, Python adding type checking I think does mean an inflection point for static vs dynamic typing. The later will still be around as long as JS runs on the browser, but at some point, more code will be typed than untyped. Something I'm not sure you could've said without getting into a flamewar 10 years ago.

            I would agree FP isn't as big as it's hyped in some places, but I didn't learn it in College and I wish I had. Here in the bay area, Scala meetups have only grown in size, as have jobs. Scala 3 and Scala Native are very much worth looking forward to. FP concepts have been introduced in almost every language, especially immutability and lambdas (C++ 11), if not typeclasses. It's not world changing, but it's not nothing for progress in the last 10 years. There is a silicon valley bubble though, and I probably can't escape it.

            Comment


            • #7
              Originally posted by audir8 View Post

              I'm not sure forking from a language is a distinction worth making. You could just say it was primarily influenced by one language. There are probably many examples of this, but a midsize company I know moved to HHVM for their PHP code, didn't move to Hack, and moved back to PHP7. They're separate languages for all intents and purposes after this announcement.
              Good point. Hack might have effectively been PHP++ for a while, but that's no longer true.

              Originally posted by audir8 View Post
              The trend from JS to Coffescript/Dart/Typescript/WA, PHP to Hack/PHP7 strict typing, Python adding type checking I think does mean an inflection point for static vs dynamic typing. The later will still be around as long as JS runs on the browser, but at some point, more code will be typed than untyped. Something I'm not sure you could've said without getting into a flamewar 10 years ago.
              Interesting point. I'm trying to think of languages currently growing in popularity that don't offer type checking, but none come to mind. My favorite languages to toy with, if not to pay my mortgage, are Perl 6 and Racket - and they both offer static typing (unlike Perl 5 and most other Scheme dialects, respectively).

              Originally posted by audir8 View Post
              I would agree FP isn't as big as it's hyped in some places, but I didn't learn it in College and I wish I had.
              Heh, it wasn't even offered as a topic at the university I attended. But I think that's a bad indicator for the CS program at my school, not a bad indicator for FP.

              Originally posted by audir8 View Post
              Here in the bay area, Scala meetups have only grown in size, as have jobs. Scala 3 and Scala Native are very much worth looking forward to. FP concepts have been introduced in almost every language, especially immutability and lambdas (C++ 11), if not typeclasses. It's not world changing, but it's not nothing for progress in the last 10 years. There is a silicon valley bubble though, and I probably can't escape it.
              My impression, which could be wrong, was that Scala's growth was meteoric and then it hit a wall and started to lose ground. I wouldn't mind being wrong about that, I like just about everything about the language except SBT. We have one Scala application at work that I maintain, and in the two years I've owned it I've done about three person-days of Scala development and five person-weeks of wrestling with SBT.

              Comment


              • #8
                I moved from Maven to Gradle, and now I've been looking at Mill or Bazel. Though I've been a happy camper with Gradle for a few years. Seems like SBT will be with us for Scala 3 and Scala Native as well, though you can see my overly rosy view is based on mostly having avoided SBT.

                I hadn't really looked at Perl 6 before, it seems interesting. It also made me lookup Parrot VM. Has it seen adoption like perl 5? Would be good to see it if it has.

                Comment


                • #9
                  Originally posted by audir8 View Post
                  I moved from Maven to Gradle, and now I've been looking at Mill or Bazel. Though I've been a happy camper with Gradle for a few years. Seems like SBT will be with us for Scala 3 and Scala Native as well, though you can see my overly rosy view is based on mostly having avoided SBT.

                  I hadn't really looked at Perl 6 before, it seems interesting. It also made me lookup Parrot VM. Has it seen adoption like perl 5? Would be good to see it if it has.
                  Right now Perl 6 has a dedicated but tiny user base. But the language has everything and the kitchen sink for features, without all of the implicit variable shortcuts that let a sloppy or too-clover-for-their-own-good developer write obfuscated code as in Perl 5. The Parrot VM project is basically dead, though, the primary P6 implementation is on something called MoarVM. There is work underway for a JVM backend and JS backend, but they're barely (not even?) alpha quality.

                  How hard is it to build Scala code with other build tools? I thought options were basically SBT or bust? I don't like Maven but I'm familiar with it, I'd love to port our Scala code build to use Maven.

                  Comment


                  • #10
                    Originally posted by Michael_S View Post

                    Right now Perl 6 has a dedicated but tiny user base. But the language has everything and the kitchen sink for features, without all of the implicit variable shortcuts that let a sloppy or too-clover-for-their-own-good developer write obfuscated code as in Perl 5. The Parrot VM project is basically dead, though, the primary P6 implementation is on something called MoarVM. There is work underway for a JVM backend and JS backend, but they're barely (not even?) alpha quality.

                    How hard is it to build Scala code with other build tools? I thought options were basically SBT or bust? I don't like Maven but I'm familiar with it, I'd love to port our Scala code build to use Maven.
                    Maven and Gradle both have mature support for Scala. Maven was how I first used Scala with Java, and then got tired of dealing with imperative XML. If you want to build a relatively vanilla project with dependencies and tests, Gradle is by far the easiest, terse, and fastest build system I've come across. Even with more complex builds, being declarative helps, and the incremental building has worked out of the box for a long time, even before it was reliable on SBT. It's also the default build system for Android, so it has a user base.

                    Bazel seems very make-like, but not very easy to get started in. Mill and a few others are new for Scala, but it might offer the best of Gradle and make. I don't know how much that helps, but I really like using Gradle with Scala and would fully recommend using it.
                    Last edited by audir8; 09-14-2018, 08:30 PM.

                    Comment

                    Working...
                    X