Well, it happened; Panic finally released the long-awaited version two of their popular code editor, Coda. But does it live up to the hype? Well, that depends on what type of coder you are. Read the full review after the jump!
When Panic initially unveiled the tour video for their new editor, I was taken aback. The massive file icons only appeal to a very specific type of coder - and I'm not that person. I, as well as many others, found them to be considerably unattractive. Perhaps they'd be appealing, if you exclusively work on static designs, but as someone who stares at an image-less, black background for the better part of each day, these icons only take up space.
Luckily, they can easily be reduced to simple text, at which point the editor becomes infinitely more attractive. The icons are a gimmick.
Clearly, Coda is playing to its core audience: PHP developers. While you can certainly code in any language, PHP receives the bells and whistles.
As a PHP developer myself, I won't deny that "WAT" is scattered throughout the language. Even after years and years, I still frequently refer to the PHP.net documentation to remember which order a function's parameters should be passed.
Do I set the haystack as the first or second parameter, when using
This is one area where Coda shines. It provides instant documentation in the sidebar as you type.
Coda's native clippings feature has received a substantial upgrade as well. Rather than the awkward floating bar from Coda 1, the new version rests as its own panel in the sidebar.
Notable additions include multiple (tab separated) insertion points, and the ability to assign both tab triggers and keyboard shortcuts.
The standard "Sites" layout is back in Coda 2, which allows you to assign either local or remote directories to one click icons. No notes here; it's helpful, and the new ability to group sites into "lists" (or categories) is very much welcomed.
In Coda 1, the CSS GUI was available via its own tab, or panel; however, with this new version, it's baked into the editor. For instance, as you type
background, the option to use a GUI to create a gradient will be provided, though I must admit that setting values and percentages wasn't overly intuitive.
Note: did you notice in the image above that Coda only adds a single Webkit prefix? Yeah, we'll cover that shortly! :/
This same functionality is available for other properties too, such as
Honestly, these aren't features that I'd ever imagine using; they'd only slow me down. But still, for newcomers, I'm sure they'll prove to be helpul.
It's nothing new, but, if you need to quickly switch between files, you can press
Control + Q, and type in the name of the file. It's not nearly as fast (or responsive) as Sublime Text's implementation, but will get the job done.
The popular Transmit engine is essentially baked into the editor. This provides you with a full file browser for, not only your local files, but also through FTP, SFTP, WebDAV, and S3.
This is a huge plus for some, though, for me, I don't remember the last time that I uploaded files to my server with (S)FTP. Still a nifty feature, though, and the ability to publish a project with a keystroke is handy!
Introduced in the first release of Coda, the Terminal panel is back. If you're not the type of coder who has Terminal open at all times, accessible through a keyboard shortcut, then this will be a welcomed feature.
Really? No multiple cursor support? Coda provides a "block edit" functionality, but it's confusing, and not nearly as intuitive as Sublime Text's implementation.
In this editor's opinion, it was a massive mistake to not make multiple cursor support a top priority. I can't imagine using an editor that doesn't give me this ability.
Odd CSS Support
From a distance, Coda's CSS support appears to be fantastic. Auto-completion for the new CSS3 properties, a GUI for creating gradients and box-shadows, etc. What more could you want?
Well, yes that would be true, if those implementations were flawless - but they're not. For example, remember the nifty documentation functionality that I noted above?
It's very helpful…and limiting at the same time. You might be surprised to find that, if I type the official
transform property, nothing shows up in the sidebar (there's also no auto-completion for the property). The documentation only registers if I specificially use
-webkit-transform. Yep, the official version doesn't work - and neither does
-moz-transform (or any of the other versions, for that matter).
Oh, and as for Opera and Microsoft prefixes (
-ms, respectively), you can forget about it. Zero auto-completion support. They might as well not even exist.
Webkit Love Affair
There's no denying that Coda's Webkit-based support is fantastic. It makes sense; the live preview uses the Webkit engine, so they need to ensure that the gradients (and other CSS3 properties) that the GUI produces will render correctly.
But, particularly when considering the huge debates that have centered around CSS and Webkit in the last half year, Panic's decision to seemingly endorse Webkit-exclusive CSS3 properties is a terrible one. Why will it auto-complete
-webkit-animation, but not any of the others (
moz)? Why does it render a Webkit gradient, but not for the other vendors?
When questioned (on Twitter), Panic noted that it's incredibly simple to manually add the other prefixes. True; no one is denying that. But why should we have to? Do it for us.
If convenience were the only downside, that would be one thing, but the problem is that their decision to only provide Webkit generation and auto-completion endorses the notion (especially for newcomers) that it's okay to tailor designs specifically for one engine. Note: a smattering of Mozilla prefixes are provided, but not nearly as many.
If, behind the scenes, Coda would maintain a list of every CSS3 property, along with its required prefixes, that would be huge. Don't make me memorize whether or not Microsoft now provides its own prefix for gradient support. Be a good role model, and do it for me. Sheesh, don't make me build a tool, like Prefixr, to get around this.
Git integration in Coda 2 is certainly not a minus, but more of an "ehh." The previous version of Coda provided Subversion support (while the community moved to Git). So, sure, adding a UI for Git was a smart move.
It very well might be helpful to those who aren't entirely comfortable in the Terminal, but, still, I wonder how many of these folks are truly using version control. Do they understand what a branch, stage, or commit is? My instinct is that, if you do, then you'll absolutely prefer to perform these sorts of commands in the Terminal - likely using your own custom aliases to speed things up.
Nonetheless, it's a feature that might be helpful to some - just not me.
Considering the fact that Sublime Text 2, in barely a year, has become the golden editor amongst web developers, you would think that Coda might adopt some of the most touted features in that editor.
Why isn't there a helpful command palette that allows me to specify which action to execute with text? I can't always remember the keyboard shortcut for creating a split; why can't I pull up the command palette, and type "split"?
At this point, I consider a command palette to be essential in my workflow, yet Coda is missing one entirely.
We're still in the early days of Coda 2; as such, there currently aren't any plugins available on Panic's website. Hopefully, once some are released, there will be an easy, Package-Control-esque method for installing them. Please don't make me manually download and install these.
In Sublime Text, if I want CoffeeScript syntax highlighting, I can literally have it in ten seconds, without leaving the editor. Will Coda provide this same convenience? My instincts point to "no," which is not a good sign. The success of an editor has more to do with the community's involvement than anything else.
The success of an editor has more to do with the community's involvement than anything else.
Remember when I noted that Coda was made for a very specific type of coder? Yeah, well that type of coder likely doesn't use Vim (or Git-based deployment). For me, though, it's the difference between using Coda and not. I'm heavily dependent upon these keyboard commands, but Coda has left me in the dark. Why? Sublime Text offers Vi (Vintage) support; even Chocolat does.
I'd imagine that, at some point in the near future, support will be provided through a plugin, but, nonetheless, when considering the resurgence of Vim in the last few years, shouldn't support should be baked in as an option? Maybe so, maybe not; the truth is that the huge majority of Coda users have no interest in this feature, so I won't knock Coda too much for this!
Only Four Color Schemes
I grant you that this is petty, but why does Coda only provide four color schemes for the editor? Why not offer a dozen or so? We coders love our themes, but will now have to resort to scouring the web for custom skins. Or, when considering the fact that Solarized is one of the most popular, cross-editor themes on the web, why not provide that as a built-in choice? Chocolat does.
Admittedly, things like this are small annoyances, but, still, they're just that… annoying.
A Great Sidebar...But
Clearly, Panic spent a great deal of time on the new sidebar functionality. With all of these helpful features, though, why I am limited to just one view at a time? Maybe I want a file browser on top, and the documentation viewer below? It would be far more convenient if I could stack these panels.
The irony is that I consider this to be one of its best features! I have control over everything! Need to change the tab-width, font-size, or a keyboard shortcut? Easy - it takes five seconds. What about on a per-file basis? That's doable too. With Coda, though, I virtually have no clue how to configure it to my preferences - beyond the basic settings that are provided in the Preferences pane.
The updates aren't indicative of today's modern developer.
As I proof this article, I realize that it has come across as somewhat critical. The truth is that Coda 2 is a solid editor - much better than its predecessor. While it does have some bugs, it was just released. Give the amazing Panic team time to listen to community input and release updates/patches. And, certainly, missing functionality can often be provided, via plugins.
I'm only capable of reviewing an editor based upon on my own needs. Personally, I'm most concerned with speed, convenience, and Vi support. Instead of Panic focusing on what will make me more efficient at my job, it sort of feels as if they've tacked on a lot of eye candy that doesn't necessarily help me much. The updates also aren't indicative of today's modern developer. Where is Less, HAML, or CoffeeScript syntax highlighting? So yes, it's a solid editor, but, at the same time, it's not one that was tailored for more serious developers.
When considering Coda's stand-out features:
- File Icons - It's a gimmick; do people really want massive file icons?
- FTP Integration - Helpful, but in a modern world, where we deploy websites and applications with Git (whether to Heroku or PHPFog), I'll very rarely make use of it.
- Built-in MySQL - Again, helpful, but you'll likely find yourself resorting to more powerful dedicated apps, such as Sequel Pro or Querious. It feels tacked on for eye candy.
- Git Support - I'll stick with Terminal. You likely will too. (But hey, Coda has a built-in Terminal panel.)
I wish that they had instead focused more on speed - not necessarily the speed of the editor, but the speed of my workflow.
How can I accomplish my daily tasks more quickly?
From this perspective, Coda 2 doesn't provide anything new.
While I've only had a day with Coda, I must admit that something feels a bit…off. It doesn't feel as intuitive as I would have expected from Panic. Frequently, I find myself confused over how to execute simple operations. "Oh, I have to double-click to open this file." There's also no denying that the following is initially very confusing:
So we have a sidebar of files, then another panel in the middle for files, and then, lastly, remote files. This is what I was greeted to after opening Coda for the first time.
I've since learned that you have to get away from the notion that the traditional sidebar is specifically for displaying files. In the image above, it just happens to be set to the "Files" tab, which accounts for the doubled-files issue. Nonetheless, it took me a moment to come to grips with this.
Will I Switch to Coda 2?
There's this part of me that wants to use Coda. It's beautiful and feels modern. But, then again, the simple fact is that I'm far more efficient in Sublime Text 2. After years of waiting, I was hoping for more. Bells and whistles are great, but, when you get down to it, there's nothing overly innovative here. But that's just me; what do you think?
You might be wondering why I haven't mentioned the new Air Preview feature. Well, I'd very much like to, but haven't yet been able to get it to work. I'll update this article once I do!