Vapor vs. Perfect: What Do Developers Think
As Swift becomes ever more popular on the web, I set out to find out which framework is the most used and why. Since I have not used any of these frameworks in production, I decided to survey the Vapor and Perfect communities directly to see what developers had to say about the two most popular frameworks. Here are the thoughts and opinions I received from various individuals; without any personal bias.
Talking with the Vapor Community
I asked the Vapor community to highlight some of their experiences with Vapor and Perfect. These are the things I gathered:
I started a year ago with perfect, but never liked it, project structure and calls from Vapor are more readable.
Predictions may be unkind and hard, which may be perceived as critical, but in the context of the conversation and the questions I was asking, Joannis responded with points that he believed to be factual:
Perfect is not involved with the community and refuses to accept that community projects can do some things better than they can do. They're not involved and don't interact. That's what I think will be their downfall.
He went on to describe how he wants his own framework, OpenKitten as another modular approach to web development with Swift, taking advantage of a plug-and-play ecosystem. He stated that such an implementation would prove difficult with Perfect. Not many other strong opinions were shared regarding the Perfect community or framework. Instead, a majority of developers I talked with described the "vibe" of the Vapor community, even more so than the features of the framework. Tim described the fun aspects of being part of such a group:
There seems to be a far better community behind Vapor. It's more like a startup (fun) and less [like a] corporate
Kindness and camaraderie aside, I think Toby Griffin provided a good deal of insight. I chatted with Toby in the original Swift slack community and he informed me that he had worked with Perfect and Kitura before switching to Vapor:
"I settled on Vapor and have been an active contributor for some time now. It felt the most 'natural' as well as the most feature-complete at the time. [...] Things I like very much about Vapor as opposed to Kitura/Perfect: the 'batteries included' approach, with an ORM, a hasher, authentication, a client for third-party APIs; the way the core developers are open to entertaining ideas and accepting PRs from the community, pretty much anyone with a good idea is encouraged to contribute; and as a result of that, the Slack community is so friendly and helpful, even to complete beginners. It's a positive community, there's almost never a complaint."
-- Toby Griffin
These comments gave me some great insights into how admired the Vapor community is. However, I had a rather small sample size with some one-sided examples. It's worth noting that I didn't get a chance to talk with the founders, Logan and Tanner during my inquiry. Regardless, the Vapor developers that I talked to were knowledgable, welcoming, and kind. When directly asked to compare and contrast the two frameworks, not a single person bashed on Perfect to justify their points in preferring Vapor.
Talking to the Perfect Community
I proceeded to ask te Perfect community to highlight some of their experiences with Vapor and Perfect. Here's what they said:
I think that Perfect starts out slim and you add components to it as you build & that Vapor start out much larger and you need to strip things you aren't using out (if you're concerned about bloatyness). At least that's my take away from what I've seen with [Vapor]. These could be pro or con depending on what you're looking for.
-- Kyle Jessup
Kyle seemed very proud of what Perfect had become, and didn't really think that the two frameworks should even be compared. The sentiments of the main founders of Perfect was that it was more of a toolbelt and less of a web framework, and thus most of the community felt like comparing Vapor and Perfect was analogous to comparing apples and oranges.
Yet, the community has been making these comparisons for nearly a year. I cannot speak one way or the other on whether Perfect and Vapor are competing to become the next web framework. But I can share the culture of these communities and the conversations I have come across during my research:
"Perfect is amazing. [...] Are you a novice developer? [...] Reading your comment history, you seem more like a Vapor fanboy (or author?) looking to piss on another great project and get people to join your "kewl kids club". [...] Keep your high-school clique-making to yourself."
Is there a winner?
It seems that if you are looking for a community that you will enjoy, then you should choose Vapor. Theirs is open, positive, and very considerate. If you want to work alongside of the top brass, then look no further than Perfect. The two communities seem about as opposite as they can be, but that doesn't make either of them "bad" per se.