[ Direct Download: TeXShop 3 for Lion | Lion Source | TeXShop 2 | Version 2 Source ] [ Contact ]

Brief TeXShop History

Tiger; PDF Kit

On April 29, 2005, Apple released Mac OS X 10.4, Tiger. This release contained PDF Kit, a software framework to display PDF code. I converted TeXShop to that system, replacing Shishikura's code with Apple's version. As a final complement to Shishikura, Apple's system was mostly parallel to his, so the conversion was easy. Shishikura's code is still in place to display some image formats. Developers working with the TeXShop code base may wonder why there are two objects, MyPDFView and MyPDFKitView, in the code. Now they know.

The conversion to PDF Kit was the right move because Apple continues to develop PDF Kit and TeXShop then automatically inherits their improvements. This conversion also marked the end of TeXShop's 1.** system of releases, and the beginning of the 2.** releases which only work on Tiger and higher systems.

There is one very significant bug in Tiger's PDF Kit implementation. That bug causes significant memory problems when a pdf document is changed and the display must switch to the new version. Of course, TeX often changes the pdf output as source files are retypeset.

On Tiger, TeXShop has some "band-aid" code to work around this bug. That code causes TeXShop to retain old versions, gradually using up system memory. The PDF Kit bug was fixed in Mac OS X, Leopard, released on October 26, 2007, and TeXShop automatically adjusts and removes its band-aid code. For that reason, the TeXShop web site for many years has stated that "System 10.5 or Higher Strongly Recommended."

Leopard and Snow Leopard

In the Leopard and Snow Leopard years, the most significant change in TeXShop was a rewriting of the code base by Max Horn. As Horn improved the code, certain features of TeXShop became more stable and worked faster, while other features stopped working entirely. I found the process rather frustrating, but as I look back on the process, I realize that it was extremely important to make these changes.

I'm sure Horn was frustrated, too. He switched TeXShop to use svn, an entirely reasonable change. But I found svn impossible to use. Occasionally users would suggest a TeXShop improvement, I'd add the improvement, and then do battle with svn and the improvement wouldn't be released. Later I began releasing versions of TeXShop that weren't in the svn and the entire process fell apart. In the end, Horn wasn't able to complete his revision because someone (me) wasn't cooperating.

I tell you these details to explain that the life of my collaborators hasn't always been a picnic. Collaboration has worked best when a developer submitted code with changes clearly marked, and allowed me to select those changes to include. More professional collaboration, of the type used for most open source projects, hasn't worked because the guy in charge, namely me, isn't competent enough to adjust. Apologies all around.

After Horn's changes were released, in version 2.10, other collaborators again began advancing TeXShop with new localizations, improvements in the Key Bindings and Auto Completion editors, improved handling of matching parentheses, and many other changes. Consult TeXShop's version history web page for details.

Since the release of Tiger, TeXShop has not made use of operating system advances except in minor details, and version 2.43 still runs on Tiger. Of course Apple deliberately didn't change the interface in Snow Leopard, concentrating instead on fundamental changes in the underlying foundation of the system. One opportunity these later systems afforded was the ability to rewrite programs for 64 bit operation. I wasn't convinced that this change would improve TeXShop and didn't switch it to 64 bits until very recently.


But Lion is different. Using lessons learned form iOS, the iPhone, and the iPad, Apple has modified the user experience in very significant way in this system, and provided new interfaces for developers to exploit. And TeXShop begins to take advantage of these new opportunities.