1. 2

    From the end of the article:

    Remember, this is an opinion piece and we’re all entitled to our opinion. I’m not trying to tell people what to think; this article was supposed to be tongue-in-cheek. Please take it as it was intended.

    Ahh yes, the old “I was only joking!” defense!

    1. 3

      The full 1.0 PDF is linked on this page for free if that piques your interest.

      1. 5

        After scanning the book and checking out a number of entries, I’m a little bit disappointed. The tagline is ‘Sharing the History of Computer Role-Playing Games’, and there is some of that, but all of the entries I read are essentially reviews. On the website, the list of entries is linked in the navbar as ‘Review Index’, so maybe I shouldn’t have been surprised.

        If you’re looking for a summary of what the considered games offer in the tone and style of modern game reviews, you’ll like the book.

        If you’re looking to understand the historical evolution of game design in this space, there isn’t as much present as you might hope for.

        If you’re looking to understand the core design of historical games you probably haven’t played, this really isn’t where you’ll find that.

        Edit:

        It has been bugging me and finally clicked. The difference is between reviewing the content of the game and its deeper design.

        A point like “There are many story and optional missions, all presented by great voice acting” (taken from the Dawn of War II review) only makes sense as a review of the content, which is ultimately about giving an up/down, play/pass opinion.

        Here is a bit more, from the next paragraph:

        Your units all gain experience as they battle, allowing you to customize their skills and equip them with the Diablo-like loot you find. This aspect of DoW2 is extremely satisfying – there’s a lot of freedom in how to build your squad so their abilities complement each other, and finding items such as Terminator armors and Power Swords will have any 40k fan grinning.

        Notice how each of these points makes most sense answering the question “would you enjoy playing this game”. You gain XP and customization, there is loot progression, the 40k lore is good. Do you like those things? Then you’ll like this game.

        The missions are called “rather repetitive” in the next paragraph, which is absolutely true, but the crucial why question at the heart of a design review is missing.

        I played a lot of Dawn of War II, so allow me:

        The core tension of each mission is “can you kill the things on the map”. All the objectives ultimately reduce to this question, and there are few meaningful degrees of success, so execution rarely matters. The enemies all present more or less the same challenges, both strategically of your choices and mechanically of your skill. Progression is through XP and gear, but it all shakes out numerically to be your stats vs the enemy’s, which are always stay close together.

        The only real variable then is how badass your Spacemarines are. Coolness is the biggest factor is gear progression: for the mission everything has been building up to you finally get to equip a squad with terminator armor. For the next major milestone, you get storm hammers and storm shields for your assault squad. A power fist. A plasma cannon. A holy relic mounted on your commander’s back. Unlocking the breadth of the Blood Ravens codex is the driving force of the campaign, and using it to ensure victory in beautifully rendered battles in the core appeal.

        1. 5

          I think Matt Barton’s 5 part history of CRPGs from 2007 does what you were hoping this book would do. I don’t know if he wound up publishing it elsewhere, but the Gamasutra pages were crawled by the Wayback Machine. Here is part 1: http://web.archive.org/web/20070302065824/http://www.gamasutra.com/features/20070223a/barton_01.shtml

          I was transfixed by this when it came out. I remember printing out the pages so that I could read them on the subway. (No, there was not a WAP version of Gamasutra!)

          1. 3

            Yeah, that’s a fair point. I wasn’t really expecting an integrated historical treatment, since the entries were written separately by different people, which isn’t a method that works for tracing development of features and design influences. But even as separately written, standlone per-game entries, it’s true that they’re written more for someone who wants review-style advice on which historical CRPGs they might find worth pulling up in an emulator, vs. design analysis like your example. I’ll still skim it, but yeah, I’d personally prefer writing more along the lines of what you were looking for.

          2. 1

            Some of the links in that PDF need to be updated, for example the one for Grid Cartographer takes you just to page telling you that it has moved to http://gridcartographer.com

          1. 24

            Bring back IRC I say

            No need to bring it back, it’s always been there. The problem is convincing everyone else to use it.

            1. 33

              IRC has a fair share of problems which are often circumvented by layering additional services like bouncers on top of it. I like it for its ubiquity, but let’s not pretend it doesn’t show age everywhere.

              1. 19

                I think matrix could very well be the successor to IRC. Open, federated, secure, multi-device sync and good support for bridges to other protocols.

                1. 13

                  I can’t bring myself to like a communications protocol that’s based on HTTP+JSON, with the reference client written as an Electron app. It just all feels so… inefficient :(

                  1. 4

                    The very core of matrix is just the graph behind it all. JSON is just one representation of the information and HTTP is just one transport. Those are the only reference implementations right now, but others are possible, if I’ve understood correctly. But someone more knowledgeable should probably weigh in.

                    1. 2

                      Those are the only reference implementations right now

                      The problem with reference implementations is that, by inertia, they end up being the only implementation.

                      1. 1

                        Would you rather there wasn’t an implementation? But, in this case, there are several other implementations. There’s the next generation reference home server dendrite (in golang instead of python like synapse) and ruma (in rust). And there are lots of clients. I think only riot supports e2e crypto, but I hope others will start supporting it as it stabilises.

                    2. 4

                      To be fair, Riot can run perfectly happy standalone. In fact, I have it running right now on my OpenBSD box. Also, there are many other clients!

                      1. 5

                        HTTP+JSON isn’t all that inefficient, just a bit of extra headers, whatever.

                        Matrix is actually fundamentally inefficient in a different way — it’s not ephemeral message passing like IRC or XMPP, it’s a replicated database — and it’s worth it.

                      2. 6

                        I stopped using IRC and my bouncer 2 weeks ago for Matrix/Riot on my own server with my own IRC bridges and couldn’t be more pleased. Works incredibly well.

                        edit: was an irssi+irssi-proxy user for over 15 years. Tried every other bouncer. Hated them all. Had a perl script to send my phone a pushover notification for mentions. It worked, but it sucked trying to open up IRC app and find the conversation with no scrollback and respond.

                        Now I have: consistent chat client on every device, always have scrollback, all my logs are stored in Postgres, logs are searchable in every client and the search is handled server-side, and I can do E2E encryption with my friends on Matrix. I will never experience Slack bloat because the federation means I only need one server connection and account.

                        1. 4

                          The Riot web app can also serve as a nice IRC client (+bouncer, email notification, etc) if you only need the networks they bridge to.

                          1. 3

                            I haven’t been impressed with the quality of tooling or clients yet. Their Debian package documentation is incorrect and commands tell you to… run the same command you just ran. I haven’t seen a client I’ve been terribly impressed by either; Riot is your typical Electron fare.

                            1. 3

                              Riot is your typical Electron fare

                              The electron wrapper is completely optional, why do so many people say such things, that’s unfair :( I just use it as a pinned tab in Firefox.

                              1. 3

                                Even without the performance concerns of Electron or running in the browser, there’s still the fact these overgrown web apps feel alien in UX on every platform.

                                1. 2

                                  I’ve found it to be very unperformant and laggy.

                              2. 1

                                Didn’t know about this. Thanks for the tip.

                              3. 10

                                The IRCv3 working group is attempting to standardise a lot of interesting extensions to the old IRC protocol in a backwards-compatible manner. Amongst other things, they seem to be working on history, standardised registration/authentication, and metadata such as user avatars.

                                1. [Comment removed by author]

                                  1. 1

                                    It’s really too bad IRC v3 is moving along slowly

                                    It is, isn’t it? I am watching their repo on GitHub and get excited every time I get a notification, hoping that it’s about something major like a good history extension. If I had more time I would love to contribute. Wish they had a Patreon account, or something similar.

                                  2. 2

                                    One aspect of Slack I’d be interested to hear any progress on is the fact that it combines chat and fileshare for groups.

                                  3. 1

                                    Is Twitch still running this way?

                                  4. 5

                                    Maybe if it was written in JavaScript, used a million npm packages, invented some new Json/Jose derived protocol,.. then you might have a hope.

                                    In all seriousness, I ask myself that question all along. At work we use lync and skype for business and those still feel like a step backwards compared to old Skype, man, icq, and irc. In fact we had logging turned on for a while but the fat xml logs are up our entire email box so it was turned off company wide.

                                    1. 5

                                      Additionally, Slack supports IRC. I just use tmux + issi to connect to Slack and other IRC networks.

                                      1. 6

                                        Slack’s gateway is highly lossy though.

                                        1. 2

                                          What do you mean? I haven’t had a single issue.

                                          1. 12

                                            You lose formatting, inline replies (so you will see out of context messages), that kind of thing.

                                            1. 1

                                              Ah, gotcha. Thanks for the clarification.

                                      2. [Comment removed by author]

                                        1. 14

                                          IRCcloud comes pretty close to that.

                                          1. 3

                                            IRCcloud has a couple of interesting issues when using it in a business setup. For example, for simplicities sake, they load twitters, facebooks and stripes JS libraries into their webapp, giving third parties access to that data. We talked to them about this and they said they were looking into it, but never ended up doing something.

                                            It’s nice otherwise, but I prefer to only use it as a bouncer. Finally, it costs ~5$, so it’s not a feasible chat for many people outside of companies.

                                          2. 6

                                            It’s been done (minus the open source). Used to be called Convore, then changed names to Grove: https://grove.io/

                                            In fact, they conceded defeat to Slack: https://grove.io/blog/closing-shop

                                            1. [Comment removed by author]

                                              1. 5

                                                Those are really hard to iterate on without a lot of people. You’d have a hard time keeping up with Slack’s fire and motion around you.

                                                Possible though. Particularly if you used their IRC gateway to counter their network effect advantage (until they close it).

                                                1. 2

                                                  You just want a native slack client?

                                              2. 6

                                                I think Jabber would make more sense as a modern communication platform than IRC. There’s not much that IRC provides that Jabber conference rooms don’t, but Jabber provides a lot more extensibility than IRC (especially without add-on services like Chanserv, Nickserv, etc.). In which case there are already commercial packages like Cisco Jabber and Openfire that are quite popular.

                                                1. 1

                                                  I liked PSYC back when I was comparing them directly since Jabber seemed too complicated:

                                                  http://about.psyc.eu/Jabber

                                                  http://about.psyc.eu/PSYC

                                                  Whatever we use needs to be really simple and efficient at the core. Then, layers or plug-ins for more complex stuff from there. Preferably, super-easy for library users to add or remove. What’s closest any of you know to that which has a decent chance of being converted into a Slack competitor? Other than IRC.

                                                  1. 2

                                                    There aren’t many that are federated like IRC. I can only think of Jabber/XMPP and Matrix. But if you look at slack, which doesn’t seem to be federated, you have lots of options, like mattermost, rocketchat, hipchat, …

                                                2. 5

                                                  You can’t offer Slack’s UI on top of the standard IRC protocol (it lacks links, images, replies, authentication, history…). Proposals to extend the IRC protocol have not been welcomed by the IRC userbase or by established networks. You could tunnel a custom protocol over IRC with magic strings etc. but this would be inherently clunky and the user experience from any other client would be very similar to using Slack’s IRC gateway. You could publish your custom protocol but what would you gain from that? What’s the value proposition where this idea improves over what Slack offers?

                                                  1. [Comment removed by author]

                                                    1. 3

                                                      Why would this “eat Slack’s lunch”? Theoretically an open protocol would make it easier for others to integrate with you, but Slack attracted plenty of integrations (which now act as a competitive advantage precisely because their protocol isn’t open). Other than that, what’s the advantage of making the protocol public?

                                                      1. [Comment removed by author]

                                                        1. 1

                                                          Well I explained that that particular issue doesn’t seem to have been a disadvantage for slack, quite the opposite.

                                                          Building a protocol as an extension of IRC is inherently going to be more expensive than building it without regard to compatibility with IRC, not cheaper.

                                                          1. [Comment removed by author]

                                                            1. 1

                                                              Slack extensions are not interoperable. IRC bots have been written for decades.

                                                              All true. And yet for so many services one might use when developing (e.g. CI), it’s so much easier to find a good Slack integration than a good IRC integration.

                                                    2. 2

                                                      Proposals to extend the IRC protocol have not been welcomed by the IRC userbase or by established networks

                                                      Not sure whether you’re talking about some specific extensions, but from what I can see there are multiple IRCv3 extensions that are implemented by common servers.

                                                1. 8

                                                  It took me a while longer than I’d like to figure out what that code does, but I think that’s more because it’s not very idiomatic ruby. I’d be happy to let this more readable single line into the codebase, because it’s somewhat more readable:

                                                  @sentence.split(" ").map(&:capitalize).join(" ")
                                                  

                                                  Although I’d probably go for something more along the lines of @jamesjporter’s suggestion, given a gnarly enough one-liner that I don’t fancy rewriting right now (or some nasty implementation that future programmers shouldn’t have to care about at the call site.)

                                                  1. 3

                                                    @sentence.split(“ ”).map(&:capitalize).join(“ ”)

                                                    This is a good point about a not-so-great example. If I read this I wouldn’t even bat an eye.

                                                    1. 1

                                                      @sentence.split(“ ”).map(&:capitalize).join(“ ”)

                                                      Splitting on whitespace is the default behavior so you can just do this:

                                                      @sentence.split.map(&:capitalize).join(" ")
                                                      

                                                      Furthermore, there is some handy shorthand for that join, but I feel like the join is more readable:

                                                      @sentence.split.map(&:capitalize)*" "
                                                      
                                                    1. 7

                                                      Just adding that I’m in support of this.

                                                      1. 24
                                                        var weAreConnected = Math.floor(Math.random() * 10) > 5;
                                                        
                                                        if (weAreConnected === true) {
                                                          this.setState({
                                                            isConnected: true
                                                          })
                                                        } 
                                                        else {
                                                          this.setState({
                                                            isConnected: false
                                                          })
                                                        }
                                                        

                                                        What? It’s difficult to take the article seriously after that. Seems like a purposely obfuscated example for saying:

                                                        var connected = Math.random() > 0.5;
                                                        this.setState({isConnected: connected});
                                                        

                                                        And it’s not about not being fluent with JS either. This is just basic boolean stuff.

                                                        1. 6

                                                          The connected variable isn’t reused anywhere either so couldn’t you just do this?

                                                          this.setState({isConnected: Math.random() > 0.5});
                                                          

                                                          I’d use a ternary statement for setting the color too, but I know some people don’t like those.

                                                          1. 4

                                                            The connected variable isn’t reused anywhere either so couldn’t you just do this?

                                                            Yep, absolutely, in this simple case, i wouldn’t mind either way. But splitting the calculation into its own variable, even though the variable is not reused anywhere else, has some benefits:

                                                            1. Each line is does a one simpler thing: first determine whether we’re connected using a random value, and then set the component state to that.

                                                            2. The code is more debugger-friendly. You can easily tell the value of the connected variable before setting the state by stepping between the two lines.

                                                            I’d use a ternary statement for setting the color too, but I know some people don’t like those.

                                                            Well, ifs in JavaScript are not expressions, so i’d use ?: too :)

                                                            1. 1

                                                              I’d use a ternary statement for setting the color too, but I know some people don’t like those.

                                                              Do you know why ternary statements would be frowned upon? I don’t like nested ternaries, but other than that I find them extremely useful and they aren’t really that hard to use…

                                                              1. 3

                                                                It’s because they’re often used with poor taste. I use them for one-line assignments all the time, but they’re sometimes used nested or with conditions/values complex enough that they span multiple lines.

                                                                1. 1

                                                                  The new do expression in the early parts of the standardization process will make this process much nicer if it makes it.

                                                                2. 2

                                                                  I had a CS professor from Bulgaria in college that would always chastise me for using them in C telling me “You’re being clever; be clear, not clever.”

                                                                  1. 2

                                                                    To me, any C code is clever, not clear.

                                                              2. 6

                                                                You’re just too much of a hacker. Not everybody can write this kind of code.

                                                              1. -2

                                                                I’m sorry to be disrespectful, but this is the most disappointing “Emacs clone” I’ve seen to date. I understand it’s a personal project and only a week old, but at least dial back the expectations and call it “Emacs-like”. If it can’t load (and use) my .emacs file then it’s not a clone.

                                                                The whole phenomenon of “cloning” Emacs in different languages makes very little sense to me.

                                                                1. 9

                                                                  Uh, the standard of “it should be able to read my .emacs” is absurdly high for calling something a clone. Even during the heyday often a .emacs would work on GNU Emacs but not XEmacs or visa-versa and they were both fully-fledged implementations.

                                                                  To be honest, I’d be surprised if any non-fork of GNU Emacs could ever (correctly) interpret a .emacs initially written for GNU Emacs without significant modification.

                                                                  1. 2

                                                                    I’m fully aware of that, but that’s what it means to “clone” something.

                                                                    I don’t see the big deal in admitting there’s no intention to support ELisp and calling it Emacs-like. Calling it a “clone” implies a much more impressive level of effort and support for existing Emacs code which most of these projects simply aren’t going to do.

                                                                    I’m also aware that 30 years ago there were numerous incompatible “Emacs” implementations, but that was a long time ago and nowadays Emacs is synonymous with GNU Emacs (and maybe XEmacs), and everybody who sees “Emacs clone” will be thinking of GNU Emacs.

                                                                  2. 2

                                                                    The word ‘possibly’ tells me that @dwc has a refined definition of ‘clone of emacs’. EDIT: actually the phrase came from larsbrinkhoff, the author of this fmacs… And that guy is also the author of ‘emacs-cl’!

                                                                    I could be wrong!

                                                                    For me, ‘an emacs’ is something that binds key-presses to functions, and some of those functions can edit functions… Really that’s it. That basic functionality is what emacs is built on top of. (See ‘temacs’[0].)

                                                                    Forth is known to be good at building a lot from a little… :)

                                                                    0: https://www.gnu.org/software/emacs/manual/html_node/elisp/Building-Emacs.html

                                                                    1. 2

                                                                      The word ‘possibly’

                                                                      I took this to mean “maybe in the future”

                                                                    2. 2

                                                                      OK so people are mis-using the word “clone” a bit. Probably should be saying “an emacs-LIKE editor written in FORTH.”

                                                                    1. 3

                                                                      This version of macOS 10.12 cannot be installed on [Macbook Pro, mid 2009]

                                                                      shakes fist

                                                                      I don’t see any technical reasons why it wouldn’t work.

                                                                      1. 3

                                                                        Ars Technica’s review couldn’t find any rational thing in common across the hardware they dropped. The most likely thing was simply that they’re making software support match the 7-year hardware support window,

                                                                        1. 2

                                                                          Quite often if it’s not a technical reason people will soon find workarounds to trick the installer into running.

                                                                          Edit: as an addendum to this even if there IS a technical reason, workarounds are sometimes found, I believe the 2006ish Mac Pros could be tricked to run Mavericks IF you upgraded the graphics card.

                                                                          Edit 2: http://dosdude1.com/sierrapatch.html

                                                                          1. 1

                                                                            Yep, there’s an active community of people who run OS X on unsupported Macs. AFAIK 2006 Mac Pros can run El Capitan and, I’m pretty certain, Sierra.

                                                                            It does get trickier with non-upgradeable hardware though - eg, older MacBooks and Mac Minis, which can experience graphics issues when newer releases are shoehorned in (primarily because Apple removes the drivers for that hardware and so drivers from older releases are hacked in).

                                                                          2. 2

                                                                            I’ll probably be staying where i’m at with my MBP 2008 for two more years until security updates stop coming. I guess the choice comes then as to what to do. Switch to xubuntu or try these workarounds people will come up with.

                                                                            1. 3

                                                                              You must be really looking forward to the MBP refresh :)

                                                                            2. 2

                                                                              Weird, considering that 2009 MacBooks and iMacs are still supported (and AFAICS both the 2009 MacBook and MacBook Pro have NVidia 9400M graphics). Sadly my mid-2007 MacBook Pro didn’t last long enough to make it onto the “unsupported” list - it was killed by the infamous NVidia GPU issue.

                                                                              1. 2

                                                                                Sometimes it’s graphics; sometimes it’s CPU or chipset issues. Apple doesn’t do this purposefully to make people upgrade; they just make a cost/benefit analysis when a planned feature would cause some older machines to fall out of their support window.

                                                                            1. 3

                                                                              I won’t be upgrading just yet:

                                                                              1. Karabiner is broken
                                                                              2. Fujitsu ScanSnap software (which I use with my ScanSnap scanner) has all sorts of problems (see also this post). Urgh, it’s been available to developers for ages - why have Fujitsu not fixed these issues yet, although they suggest it’s a macOS bug?

                                                                              :(

                                                                              1. 4

                                                                                Fujitsu ScanSnap software

                                                                                Ugh, why are printer and scanner companies so bad at software across the board.

                                                                                1. 2

                                                                                  Re-reading the issue, it’s a weird one. It seems that you don’t even need to use a ScanSnap to suffer the problem - somehow old files just scanned by a ScanSnap can get corrupted. That sounds like an OS issue, but Fujitsu are working on a fix? Or maybe they’re working with Apple on a fix?

                                                                              1. 5

                                                                                This article is from 2010. I think in 2010 the backlash against PHP was in full force as everybody was riding the Rails wave. I think the “Ewww PHP” attitude was stupid then, but it’s even more stupid in 2016 where we have some perspective on what Rails (or Ruby in general) is best at vs. what PHP is best at vs. what Node is best at, and the fact that ultimately it’s down to developer preference to select the right tool for them for a given job.

                                                                                We use PHP on my team because the applications we work with were written in PHP. If someone says “eww PHP” I wouldn’t even consider hiring them. It shows a serious lack of maturity.

                                                                                1. 20

                                                                                  “Hey, sewer rat may taste like pumpkin pie, but I’d never know ‘cause I wouldn’t eat the filthy motherfucker”

                                                                                  And PHP might be the greatest thing since sliced bread for solving your business problem, but I’ll never know because I refuse to subject myself to using such a bad API and toolset day in and day out.

                                                                                  1. 5

                                                                                    Yeah this is exactly the crappy attitude that I was talking about.

                                                                                    PHP has its problems but JavaScript, Ruby, Python, etc. all have problems too. Nothing is perfect.

                                                                                    Being so closed minded about PHP or anything else just makes you into a worse developer than you could be otherwise for no good reason.

                                                                                    1. 15

                                                                                      PHP has its problems but JavaScript, Ruby, Python, etc. all have problems too. Nothing is perfect.

                                                                                      This isn’t a binary though, it’s a matter of degree. Maybe PHP is better now, but historically PHP was a complete mess. So saying “nothing is perfect” is a useless statement. Nothing being perfect doesn’t mean everything is equal.

                                                                                      Being so closed minded about PHP or anything else just makes you into a worse developer than you could be otherwise for no good reason.

                                                                                      Why? Is there a particular conceptual framework PHP has that other languages don’t? Is there something about PHP I cannot learn in a week if I already know other imperative languages? What exactly is one missing out on by having no interest in learning PHP?

                                                                                      1. 9

                                                                                        Well you’re missing out on learning Hebrew, and a window into the psychology of Rasmus Lerdorf. All kidding aside there was a day and age when PHP made sense for web development, and that time has come and gone. Anyone using it today is wasting money and time.

                                                                                        1. 1

                                                                                          Is there something about PHP I cannot learn in a week if I already know other imperative languages?

                                                                                          Thinking you can master any language in a week shows a lot of hubris and/or ignorance.

                                                                                          Every language has things to offer. I don’t know what your current skillset is so I can’t tell you what you’d learn by working with PHP, or working with various applications or frameworks in PHP.

                                                                                          The reality is a lot of the web is in PHP, so by choosing to remain completely ignorant of it you’re choosing to be ignorant about a large portion of the web.

                                                                                          I’m not personally a fan of WordPress but it is the dominant web application at the moment, and it’s written in PHP. It’s only the most obvious example of how you’re keeping yourself (and nobody else) in the dark by choosing to stay ignorant.

                                                                                          I’m not here to convince you to pick up PHP specifically. If having this affectation of “I’m above PHP” is really important to you, then great. I am glad I will never have tow work with you.

                                                                                          1. 12

                                                                                            Whoa, who said anything about “mastering” PHP? One isn’t going to master it off some casual inspection of it either. My point is that the basic tenets of PHP are pretty much the same across any imperative language, so there isn’t some fundamentally interesting aspect of PHP other than it’s own idiosyncrasies that make it worth learning. Similarly, the differences between Python and Ruby is not so severe that learning one “just cause” will impact one’s life considerably.

                                                                                            1. 10

                                                                                              The reality is a lot of the web is in PHP, so by choosing to remain completely ignorant of it you’re choosing to be ignorant about a large portion of the web.

                                                                                              This mans absolutely nothing. The web does not require PHP in any way, it is perfectly possible using and developing for the Web without any knowledge of PHP. It’s not like it’s some sort of fundamental technology like HTTP. It’s not even close to JS because client-side coding requires JavaScript in some way even if just as a compiler target but there is just nothing that would require you to know about PHP.

                                                                                              Also, WordPress ist just an application and there are plenty of alternatives for getting the issue at hand done without requiring WordPress.

                                                                                              1. 5

                                                                                                Every language has things to offer.

                                                                                                Again, it’s not a binary. Some languages have a lot to offer; some have very little, and given limited time it makes sense to prioritize the better ones.

                                                                                                I’m not personally a fan of WordPress but it is the dominant web application at the moment, and it’s written in PHP.

                                                                                                It is; it’s also awful. It has a terrible security track record and an awful comment system (you have two tickboxes to configure what kind of reply notifications you want. No possible combination of those tickboxes will give you the obvious correct configuration that you actually want, that sensible comment systems (e.g. disqus) give you by default). There are much better alternatives available in other languages, so if WordPress is the best argument for PHP then I’m happy to stay away from it.

                                                                                            2. 8

                                                                                              The difference between javascript and PHP, is if you’re writing for the web you literally cannot avoid javascript, you however can avoid PHP. I have learned and used PHP, It’s only good to learn because it shows you what terrible decisions can be made in language design. PHP was designed for personal homepages and for that problem it’s passable, but for any professional project you’d be burning money to choose PHP. There’s just no reason to work that hard, and that slowly. Secondly because the number of PHP programmers are dwindling you’ll be paying an arm and a leg to hire any new talent.

                                                                                              1. 0

                                                                                                It depends what you’re doing on the web. If you’re a freelance developer making websites for SMB good luck avoiding PHP. WordPress is the dominant force out there.

                                                                                                You claim to know PHP but then you say that “It’s only good for personal home pages.” Why is that? How does that claim make any sense? I would actually argue the exact opposite. The only way to write good PHP code is to actually use the OOP aspects of it. PHP has tools to write solid, unit tested classes especially in 7.

                                                                                                Also, you can totally avoid JavaScript if you really want to. It’s probably stupid to do so, but you don’t have to, for example, write a single page application using JS. But I would think any developer worth her salt would do try her hand at writing a single page web application at some point using JS (either vanilla or with a framework.)

                                                                                                Anyway this conversation is getting dull. I’m clearly not going to convince any of the willfully ignorant people in this thread so I’m gonna stop replying now. Good luck, I hope you grow out of your current mindset.

                                                                                                1. 8

                                                                                                  I’ll try and leave behind some of the salt. I am fairly certain that you are capable of writing a good large project in PHP, but I am equally certain that you could do much better with nearly any other language. While PHP does not scale well, is prone to errors in ways that no other language with type safety struggles with, and is slow with no benefit to usability. I concede that if you’re going to any project which is already written in PHP, you have no choice. I also concede for personal projects, it really doesn’t matter and if you enjoy PHP by all means keep using it. I am not trying to make you upset, but I am trying to prevent people from falling into the trap of thinking PHP is as good as it gets. Or the maintenance trap that they should start any larger project in PHP. Would I work at any place that used any PHP? maybe.

                                                                                                  Would I work at a place that mainly uses PHP? absolutely not.

                                                                                          2. 18

                                                                                            If someone says “eww PHP” I wouldn’t even consider hiring them. It shows a serious lack of maturity.

                                                                                            If someone said “eww X” during an interview, that would be a serious red flag for me, which doesn’t have anything to do with PHP, it’s just not a very grown up reaction. I think if a candidate said that they really were having trouble getting past the PHP thing, I would take that seriously and try to convince them (if they were otherwise good). Or maybe look at making a non PHP initiative within the organization of growth was important.

                                                                                            1. 1

                                                                                              This obsession with seeming grown up seems bizarre and foolish to me. Older workers and older companies seem to place a huge amount of value on it (even at the expense of actual productivity) and I just don’t get why. Does it make you happier?

                                                                                              1. 2

                                                                                                Let me provide some context incase it’s unclear what I meant. And by “obsession” I’m not sure if you are characterizing my response as such or a general observation. But in the situation of a job interview, one of the dimensions I look for is a candidate acting in a respectful way relative to the situation. An interview is fairly formal and as such I expect thoughtful answers. I think saying “Ewww X” (unless somehow the context allows it) would be a red flag. The candidate, if hired, might be sensitive situations with a customer or talking to the CEO, etc, where it’s needed to act in a particular way. So that doesn’t mean if I work with someone I don’t expect some childish behaviour.

                                                                                                1. 1

                                                                                                  Come on, nobody just goes “EWW GROSS” at an interview. I’ve had the “Eww” reaction in an interview, but it sounded more like “Well, it ain’t my favorite tool, for a variety of reasons that I’d be happy to explain in another context; if that’s the tool you’re using, then I’ll use it too.”

                                                                                                  1. 5

                                                                                                    Come on, nobody just goes “EWW GROSS” at an interview

                                                                                                    You’d be surprised.

                                                                                            2. 6

                                                                                              I don’t think you’d have to worry about hiring them, because they wouldn’t want to be hired if they didn’t like php.

                                                                                              1. 2

                                                                                                Yeah, I’ve developed in PHP before, but prefer several other languages over it. If I had some job offers and one of the companies used PHP while another used Python, all other things being equal, I’d take the job working in Python.

                                                                                              2. 9

                                                                                                I wouldn’t hire anyone who would not say ewww to PHP. Seriously, you could literally roll your own language that would be better than PHP in less than 6 months. Learning how to use Haskell so that you have a decent tooling to do so included.

                                                                                                1. 19

                                                                                                  Seriously, you could literally roll your own language that would be better than PHP in less than 6 months.

                                                                                                  That is the attitude that creates the next PHP.

                                                                                                  1. 10

                                                                                                    I disagree. That is that attitude where computer programmers learn to write compilers. Most people who try it usually end up being better programmers that no longer want to roll their own compiler. Unlike the PHP guys who refuse to either stop or learn how to do it better.

                                                                                                  2. 15

                                                                                                    I wouldn’t hire anyone who would not say ewww to PHP.

                                                                                                    If you aren’t joking, that’s a really unfortunate attitude to have. I personally don’t have any love for PHP, but I’d never discriminate a hire because they didn’t fall into line with my personal feelings on technology choice. I’ve built products in PHP before, and while the language and stdlib leaves a lot to be desired I didn’t hate it either. These days I work on large-scale graph processing systems for $dayjob and sling Rust/Haskell in my free time. But, by your criteria, I’d never have been hired.

                                                                                                    Seriously, you could literally roll your own language that would be better than PHP in less than 6 months.

                                                                                                    PHP is the product of many man-years of efforts. It’s not even a diamond in the rough, but it’s crazy to think you could create a language with as much utility, stability, and performance as PHP in 6 months.

                                                                                                    If there’s actually one thing I miss about PHP it’s keeping an editor open in one window, making a change, and refreshing the page to see the change. That feedback loop was unbeatable. Even now, my Java/Scala services usually take a restart to show a change (hot-reload has huge limits).

                                                                                                    1. 1

                                                                                                      Try Clojurescript with Figwheel - you don’t reload the page at all, just write your changes and they’re automatically loaded in the browser.

                                                                                                      1. 1

                                                                                                        It’s not a bad idea. I know Clojure has this tooling working considerably better than the rest of the JVM ecosystem at present.

                                                                                                    2. 0

                                                                                                      you could literally roll your own language that would be better than PHP in less than 6 months.

                                                                                                      This shows you are totally clueless. PHP has problems and a lot of bad design decisions but there’s just no way you could make something better from scratch in 6 months. That’s just delusional.

                                                                                                      If you tried to rush and make a full language in that amount of time you’d probably make as many or worse mistakes than the PHP developers did.

                                                                                                      1. 9

                                                                                                        Just how long do you think it takes to write an llvm backed lisp or ml?

                                                                                                        1. 4

                                                                                                          PHP is not just a simple parser, it’s also a collection of a ton of libraries.

                                                                                                          1. 6

                                                                                                            Then make something that does interop with Java, JavaScript or Ruby to have access to a ton of libraries.

                                                                                                            1. 5

                                                                                                              Just llvm alone buys you all the C interop you might desire; e.g., http://www.stephendiehl.com/llvm/#external-functions

                                                                                                              I wager that a great majority of devs reading lobsters could create their own lisp or ML within 5-6 weeks of dedicated effort, and then spend 3 months finding and linking up libcurl, libmysql, etc., if libc wasn’t deemed good enough.

                                                                                                              The big problem with the 6 month language would be that nobody else would be using it, so you wouldn’t have stack overflow. That’s the big benefit of php and node.js: the hundreds of millions of developer solutions you can copy-paste into your code and have at least a 45% chance it’ll work.

                                                                                                              1. 2

                                                                                                                Just llvm alone buys you all the C interop you might desire; e.g.,

                                                                                                                ABI is not interoperability, and parsing headers, hooking into GC, understanding and making sense of headers, macros, and so on is not trivial.

                                                                                                            2. 3

                                                                                                              Yeah, honestly I’ve always thought that’s the selling point of the language. It binds against a couple hundred important C libraries and links them in by default, which means there’s no need for most PHP developers to worry about installing dependencies.

                                                                                                              I wish that didn’t outweigh language-design praxis, but it’s a real advantage. :/

                                                                                                              1. 1

                                                                                                                But libraries aren’t part of the core language. The argument isn’t about building the ecosystem and having the same tooling, it’s about the core language.

                                                                                                                1. 1

                                                                                                                  When one is arguing that people should stop using it, all these factors are relevant, however unfair it might feel.

                                                                                                            3. 5

                                                                                                              Interpreted, dynamically typed language without a JIT compiler, with MPS as the GC and GMP for large numbers would take about 3 months. I would basically copy scheme semantics (first class functions, lexical scoping, left-to-right evaluation) and throw in Racket-like generics instead of OOP. Module system would roughly copy Python semantics.

                                                                                                              Rest is stdlib, FastCGI, an alternative parser for jinja2-inspired templates and integration with database client libraries.

                                                                                                              I am not saying that making it stack-less via CPS conversion, adding fast tail-call optimization, JIT backend, and a better GC would not make it over-multiple-years effort, but those are not features PHP fancies.

                                                                                                              I am also not saying that I would recommend doing that. Why should I? I’d be basically re-writing something between Scheme, Python and Ruby with zero community support. I am just saying that PHP is an extremely primitive tool also done wrong and anyone not seeing that / not trying to use something better would be a bad hire for anything else than maintenance of an old PHP application we can’t just kill yet.

                                                                                                              Also, after writing in anything at least a bit more advanced language and then returning to PHP where you feel like both your hands are cut off should leave at least some ewww. But as with most things, this is just my weird opinion.

                                                                                                        1. 1

                                                                                                          I actually work with this material every day. In the fiber optic world it’s one of the standard materials for the ferrule the fiber is terminated in inside of a connector.

                                                                                                          1. 1

                                                                                                            inb4 complaints that the landing page doesn’t work with javascript and custom fonts turned off.

                                                                                                            (Very pretty site though)

                                                                                                            1. 5

                                                                                                              Oddly enough the site is VERY readable in w3m.

                                                                                                              1. 3

                                                                                                                It works well enough with everything turned off to at least find the github link. If you just scroll down.

                                                                                                                1. 2

                                                                                                                  oh jeez – is that a big thing here? To each their own I suppose…

                                                                                                                  1. 6

                                                                                                                    It is with certain people here who do everything in a terminal, or who disable that stuff for security reasons. As you say, to each their own. :)

                                                                                                                    At least the user who constantly complained about sites not being accessible through Tor isn’t here anymore, though he was banned for other reasons than just that.

                                                                                                                    1. 2

                                                                                                                      Can’t argue with security! But some things are made for browsers, some for Terminal… those in favor of the latter can always head directly to GitHub ;)

                                                                                                                    2. 3

                                                                                                                      For accessibility reasons, overriding fonts specifically is rare but very important to some users. It does break most of the web, so you’re in good company…

                                                                                                                      1. 3

                                                                                                                        A very good point – this has been added into our issue tracker… we aspire to deliver a better (more accessible) experience than most of the web! :)

                                                                                                                        1. 1

                                                                                                                          Little late, but good for you! Thanks for making the web a better place :)

                                                                                                                    3. 0

                                                                                                                      inb4 “inb4 on lobste.rs”

                                                                                                                    1. 1

                                                                                                                      Even scarier than the keystroke recognition mentioned in the title is this:

                                                                                                                      Some recent work, namely WiHear, uses CSI values to extract the micro-movements of mouth to recognize 9 syllables in the spoken words

                                                                                                                      1. 3

                                                                                                                        Here’s another one of these but more in depth and without the pictures: http://users.cms.caltech.edu/~mvanier/hacking/rants/cars.html

                                                                                                                        1. 48

                                                                                                                          I have met many programmers that don’t like to code in their spare time, and that has reliably revealed them to be sub-par developers.

                                                                                                                          I loathe this attitude and find it absurd. Imagine saying the same thing about aerospace engineers, or physicians.

                                                                                                                          If you wanted to say something like “the traits that make a good developer include a boundless intellectual curiosity, and this can manifest itself in coding as a pastime or any number of other active learning hobbies” or something that’s fine, but please stop demanding that we all work outside of work.

                                                                                                                          1. 25

                                                                                                                            Yeah, it’s the same nonsense that says every developer needs to have an active GitHub (on which your abilities will also, of course, be judged). Some people (like me) like to program in their spare time, and do have an active GitHub. But this says nothing at all about how good you are at programming. A very good friend and coworker of mine is a much better programmer than me (we’ll often get to the same code, but he does it a lot quicker and easier than I do). He has a GitHub, but there’s barely anything on it, and he doesn’t often program in his spare time. You know why? He’s married, and has two young children that require a lot of his time and attention. If he were judged solely on his GitHub with the mindset mentioned above, you may think he’s a terrible developer not worth your time to hire, and thereby miss out on a really skilled and talented person.

                                                                                                                            1. 16

                                                                                                                              It’s another sorting mechanism by which groupthink is enforced. It’s “culture fit” nonsense, no more no less, and not in any predicative of any actual ability to do the work required, unless that work is furthering the given culture.

                                                                                                                              1. 9

                                                                                                                                While I agree with your premise, I think of it a little bit more softly: nobody really knows precisely what makes for successful workers of various kinds, so people tend to select for “similar to myself”. When those actually-squishy, please-more-people-like-me criteria are treated as objective, that’s a really unpleasant cultural complex.

                                                                                                                                1. 4

                                                                                                                                  It’s not predicative but it is predictive! The set of people interested in programming in their free time is better on average than the set that isn’t. For starters because they do more of it, also because they’re more engaged when they do it.

                                                                                                                                  1. 8

                                                                                                                                    If we refine this to “the set of people calling themselves programmers who are interested in programming in their free time”, etc, then I don’t think that’s true. I think this is a fair refinement, since 99% of the population can’t program, so your assertion is then true but not for the reasons stated.

                                                                                                                                    I think that the set of programmers who program in their free time is going to have a higher percentage of people who can at least write code that roughly works, simply because they’ve got more practice. There will be many more programmers in the latter set and some of them will produce a far higher quality of code than the median in the first set. I state this because many of the people in the first set are younger and less experienced programmers, not yet with families, who may be brilliant technically but haven’t yet learnt enough about maintainability or robustness not just against external vagaries but against less skilled programmers making unwise changes and catching them early.

                                                                                                                                    So “programs in their spare time” is a filter which will reject many people you want, but those who do get through will at least meet a certain minimum bar. If you’re not prepared to put the time in at recruitment to test beyond that, then you’ll get a monoculture and it may work for you. You can win in business/recruiting with this strategy. That doesn’t mean it’s wise.

                                                                                                                                    This then leads into broader issues of what should make up a team.

                                                                                                                                    1. 2

                                                                                                                                      This is an important part of the interviewing equation too: unless you really know what you need quite exactly, you’re using tests that are inexact: tests for things that correlate with or are proxies for the really desired quality/skill/capability. And when you find a good candidate, then you hope(!) that the correlation holds.

                                                                                                                                      I think that inability to accurately define the set of needed capabilities and unwillingness to train people of evident aptitude are the two cardinal sins for those who “can’t hire enough qualified people!!!!”; their punishment is they have to struggle on, somehow, staffing up with a subset of the people who could do the work.

                                                                                                                                  2. 5

                                                                                                                                    Exactly - in this and so many ways, everyone is different. There have been times when I have coded quite a bit outside of work, however for me this has often corresponded to my doing a job with relatively limited intellectual stimulation or new learning. I find myself now learning several exciting new technologies at my job and working in a relatively fast-paced environment where I am learning and being productive most of the day, most days. I don’t have a whole lot of mental energy left after a fully realized workday to spend hobby coding, but I am the best at my job that I’ve ever been.

                                                                                                                                  3. 7

                                                                                                                                    Agreed. I used to spend a lot more free time on programming-related hobbies. Then I had kids. If anything, my rate of programming self-improvement has gone up with less time spent on it, because I focus only on the most valuable things, not every shiny new toy that comes along.

                                                                                                                                    Of course, I also view it as part of my job’s responsibilities to explore different programming approaches as appropriate, so I get a decent bit of exploration built into my workday.

                                                                                                                                    1. 4

                                                                                                                                      “the traits that make a good developer include a boundless intellectual curiosity, and this can manifest itself in coding as a pastime or any number of other active learning hobbies”

                                                                                                                                      That’s a good way to put it. Similarly, when hiring technicians for our optical lab I have found asking if they change their own oil in their car has correlated with good fits for the job. It’s not that I wouldn’t hire someone who didn’t, it’s just that doing that lines up with some of the things that made someone excel at that roll: hard working, mechanically inclined, and good with their hands.

                                                                                                                                      1. 5

                                                                                                                                        When I hire people I ask them if they can do a switch hardflip. It’s not a dealbreaker but it definitely shows technical ability.

                                                                                                                                      2. 1

                                                                                                                                        Learning is self-reinforcing. Spending offhours learning reinforces your on hours learning. This advantage accumulates over time, it becomes obvious over time.

                                                                                                                                      1. 4

                                                                                                                                        This article feels so… I don’t know… fear mongering? I know exploits get found in software all the time, but how often are they described with words like “terrifying” and “gaping hole”

                                                                                                                                        1. 4

                                                                                                                                          Whenever they affect Apple products.

                                                                                                                                        1. 1

                                                                                                                                          Full disclaimer, I don’t think Apple is still caring about their computer business in a way that deserves respect in many ways. I still feel the message is important about everything we do. The littlest details beget the bigger details.