Wednesday, January 27, 2010

Adobe CS UI gets slower over time

I'm a software engineer and also work as a private video editor. I create short feature clips for various clients. I started my career using Ulead MediaStudio 7.0 later switched to Adobe Premiere 1.5. When Adobe Premiere Pro 2.0 and CS2 came out I upgraded my older version and still using it. I'm kind of disappointed about newer Premiere releases. A few months ago I downloaded CS4 trial and noticed a significant GUI slowdown, that really annoyed me - saw drawing trails of panels from top to the bottom, timecode was flickering when I was seeking in my sequence. Also this was the case when I switched to 2.X from 1.5, while handling of multimedia files speeded-up (for example there were really good improvements in seek-time in compressed-content eg. MPEG-2), but it was acceptable.

I have the proper drivers come from the manufacturer of my video hardware and the slowdown occured on every kind of video hardware where I saw Adobe apps. I don't really want to go deep into hardware and technical stuff, but a music creation software like FL Studio has about the same amount (even more) of buttons, controllers, and panels as Premiere (or Audition if we talk audio-related) and it is smooth, even on a more than ten-year-old video card (Geforce 2 by NVidia) in a 500 MHz computer. It gets slow though when needs a lot of CPU for audio processing. Adobe UI is already slow on a not state-of-the-art but quite fast video card and computer when nothing is being done, even slower if something (eg. indexing or conforming) is going on in the background. I don't claim Adobe is unusable because of this but I believe developers should pay more attention on writing small, efficient code rather than raising the requirements and avoid bloaty solutions that will end up in a multi-gigabyte application. I'm sure people in Adobe team know what I'm talking about, but it seems optimization would be too expensive for them. They don't care about code-efficiency at all, they are satisified enough if they can sell what they make. People interested in video editing all have high-end computers, so "no problem if this or that is a little slower".

Most of the time developers explain slowdowns as they come along with the implementation of new features. They should not be. Another good example is Photoshop. I rarely use it, but have stuck at version 7.0 since it was released, because it offers all features I need plus the GUI of newer versions have been all bloated like Premiere's. I got PS CS2 trial once, and opened an image. Wanted to zoom into it, so I dragged the slider. It got really slow when needed to draw the zoomed picture onto the whole area of the screen. This was smooth in 7.0 (with the same image of course) and the reason of "implementing new features" is unacceptable in this case, because there are no new features in zooming. Photoshop never used any re-sample filter at zooming (not resizing) for a view that would cause slowdowns and still doesn't use such method, so the slowdown is a fault of the GUI that got bloaty and inefficient.

I guess GUI slowdowns became a common problem of Adobe applications in the past years. Since CS versions were released they got a new global, unified GUI that is the same in every application. And what does this new GUI offer compared to the older one? The only thing I know about is the Brightness setting. And this is worth it for slowing down a whole app? I don't think so. Nevertheless, each Adobe app using this implementation has a slow-responding, bloaty GUI. Adobe applications don't take much advantage of hardware-rendering. While video cards available in the market support wide-range rendering tasks that could be used as well in video editing, Adobe products don't really use their capacity. They render everything using the CPU. Even After Effects' OpenGL support is too standard, too basic, and bloaty. While 3D games can make the video hardware render a high-detail 3D object with textures at nearly 100fps, Adobe After Effects hardly reaches 10-15 fps at a 25fps project while rotating a solid before a black background (this was tested using AFX 7.0).

I don't understand if for example Sony and Image-Line (creator of FruityLoops, also known as FL Studio, best and fastest GUI I ever seen) can design a fast-responding and smooth GUI why Adobe can't (1.5 GUI was pretty good though - but it slowed down over time) and why system requirements are scratching the sky over the releases. I don't reckon Premiere Pro as a professional software. It nearly offers everything that a common video editor needs for his/her work, but when we talk about offering detailed options and precise particular technical settings (fine-tuning), it fails at all levels (Adobe Media Encoder may be the only exception).


What does bloaty mean at softwares? What is bloatware?
See Wikipedia definition.

Do you think this is just a rare opinion?
See what others think: Erna Mahyuni on TECH.BLOGRE | Erik Vlietinck on IT.Enquirer





What is this? Definitions

This is a blog dedicated to inform people surfing the world-wide-web about applications that were not written efficiently, are resource-wasting or just useless.

What is shameware?
There is no real, world-wide accepted definition of shameware, it's just a word I made up. This definition of mine combines the meaning of bloatware, hypeware and even more software-related properties like has a lot of features but some basics are missing, labelled as professional but still remains a simplicity-driven, even lamerized software that won't offer any advanced settings.

What is lamerized?
Lamerized software is a disfigured phrase for softwares that were designed for end-users who don't need any tasks other than simple ones. They don't care about software-related issues (CPU-efficiency, memory-efficiency, hardware-efficiency, ergonomic values, etc.), they just live their lifes and want to get their job done, doesn't matter how efficiently. I call these people lamers, so because these softwares were designed for them, I call them lamerized.