Slashdot Mirror


TextMate

OSXCPA writes "TextMate is a closed-source, GUI-based, extensible text editor that looks and behaves like a mashup of GNU Emacs ("Emacs") and NetBeans. This book is a primer and reference for TextMate. The blurb on the back of the book identifies the target audience as 'Programmers, web designers and anyone else who regularly needs to work with text files on Mac OSX.' After working with TextMate and reading through the book, the target audience is spot on. For example, the book briefly covers basic text editing, but provides in-depth information about basic operations (keyboard shortcuts, customizations, etc.) more advanced users will want to know and beginning users should know." Read below for the rest of OSXCPA's review. TextMate: Power Editing for the Mac author James Edward Gray II pages 193 publisher Pragmatic Programmers rating 8 reviewer OSXCPA ISBN 097873923X summary Excellent for the more complex scripting features of TextMate

I am reviewing TextMate: Power Editing for the Mac ("TPEFTM") by James Edward Gray II, published by The Pragmatic Programmers LLC, which I received from O'Reilly Media because I am the organizer of the Forest Park Ruby Meetup group. I received no compensation other than a copy of the book. I am relatively new to Ruby and Rails, but studied C and Java at University using Emacs and NetBeans. I am not a professional developer by any means, so if I can make sense of a tool and follow a book or manual, newbies should have no trouble.

The book and online manual are targeted at completely different audiences. The online manual clocks in at 97 very terse pages (print-previewed as-is in Internet Explorer) while the book is 193 pages. Despite the 100+ page difference, the online manual is intended for the hardcore geek and covers much more detail with less hand-holding. The book is written in a conversational tone that occasionally borders on distracting (e.g., "The Ruby executor is quite clever...") but no more so than other Pragmatic Programmer books.

Beginners and road warriors will find the book very handy, literally. I am a 'dead tree' book fan, especially regarding 'how-to' style documents. I like my books splayed open on my desktop so I can go from book to book as I work. At 193 pages, 'TPEFTM' does not like to sit open and flat, but it does fit easily into a laptop bag. The book does not come with a CD, but all the code is available on-line. I prefer this delivery system since besides the fact that I hate ripping CD envelopes out of books, TextMate is only available as a download anyway. Links to various third-party automations, commands and code are included throughout the book, and most of these 'ad-ons' are some flavor of open-source.

The book is organized in order of increasing complexity, so it is a good introduction for someone new to IDE-based development in the 'big tool that does many things' school. TextMate consciously mirrors some of the complex functionality of Emacs, albeit in a more accessible form, and the book eases the reader into this world in small, logical steps.

This is not to say the hardcore geeks won't find the book useful. There are many tips and tricks throughout the book that help a reader work faster and more efficiently (lots of keyboard shortcuts and scripting).

I tend to put sticky notes in my books, especially manuals. Find a code recipe you like? Sticky-note the page. The book contains many shortcuts ("Command Line TextMate", "filename matching") that inspired sticky-notes for later tinkering. The ordering of the tools is such that the reader can sit at the keyboard and work the examples straight through, read it start to finish 'offline', or use it as a reference book. I would encourage at least one straight-through read to ensure seeing every passage once. Browsing the index, chapter or page headings will not yield everything on offer.

TextMate is primarily viewed as a Ruby on Rails development tool. The book expressly acknowledges this (the code examples are mostly written in Ruby), but provides detailed instructions for handling syntax highlighting in Java, C and other languages via Automations. I did not try this out, but the instructions seemed fairly straightforward — someone with the passion to write Haskell in TextMate could probably set it up.

When deciding whether to buy this book or not, the key consideration is 'what does the book give me that the online documentation does not?' Textmate has several features that require elaboration, especially for newer users. TextMate supports various 'shortcut' and 'script-like' technologies — code snippets, macros, automations and two different types of commands — plain *NIX shell commands and TextMate 'automation commands'. Chapters five through 12 cover these tools individually and when combined. Purists may say 'well just use Emacs and write LISP' but the TextMate framework is more accessible to someone with less developed skills (and with less time to develop LISP-Fu). It provides a stepping stone for ambitious users, but allows for 'just getting it done'. I found these chapters to be the most compelling in the book both because they cover the most valuable features of the TextMate environment and they introduce skills a newer user should have (*NIX scripting, pipes, etc.) and more experienced users already have, but will want to implement in the TextMate context. While the online manual covers the technologies in detail, the book provides a more structured, user friendly introduction with enough detail to get work done and lay the groundwork for future development.

For $29.95, I do not expect exhaustive coverage of every feature. While 800+ page tomes have a place, it is nice to have a manual that fits in my bag. The coverage is very good for the basics and excellent for the more complex scripting features. I would definitely recommend this book for newer users, anyone who wants a readable, portable guide and those who plan on using the advanced scripting features, especially in conjunction with preexisting NIX system skills.

You can purchase TextMate: Power Editing for the Mac from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

6 of 226 comments (clear)

  1. Re:What is ir again? by misleb · · Score: 4, Informative

    To quote the review: "TextMate is primarily viewed as a Ruby on Rails development tool. The book expressly acknowledges this (the code examples are mostly written in Ruby), but provides detailed instructions for handling syntax highlighting in Java, C and other languages via Automations"

    It is a text editor with some ability to integrate with a development environment (but not quite an IDE) that is most commonly associated with Ruby on Rails development, but can be used to work in other environments. Which part of that isn't clear?

    -matthew

    --
    "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  2. The golden age by DoofusOfDeath · · Score: 4, Interesting

    You know what's great? Open-source software has developed to the point where I can usually say to myself, "That product is closed source? I'm not going to bother."

    I.e., there will probably always be the exception where a closed-source product is so good that it's worthwhile accepting its closed-ness. But for things like text editors, etc., those exceptions are rare enough that I can defer looking at the product until I hear every tech news site praising the product from the rooftops.

    It's a happy state of affairs for a software consumer.

  3. Been demoing it myself. compare to BBEDIT by goombah99 · · Score: 4, Informative

    I've been running it side by side with BBEDIT this last week. Made a serious commitment to write real code in it.

    If I did not already have BBEDIT i'd have been very impressed. It also spurred me to look for features I liked to see if they were actually in BBEDIT and surprise they were there all along, I just had not noticed them. On the whole BBEDIT is more powerful and with more thoughtful distribution of things across the menus for easy access. But each has some specific features that might make or break the difference to specific users.

    The big selling point of TextMate, is it's powerful active templating and macros. BBEDIT has text factories and lets you write filters so in principle simmilar behaviour might be possible. But TextMate has huge libraries of these already.

    For example, when writing python, pull down the python template for a class and it gives you boilerplate class text, but then as you fill in the dummy fields it, for example, the args, it also automatically typing self.arg = arg in the function. Is that helpful? well probably yes in most cases.

    likewise tabbing, will move between he dummy fields. And you can ask it to autocomplete a variable name for you and it will do the autocompletion from a dictionary it builds from scanning the document itself and finding variable names. In python which allows silent typos, that could be helpful.

    Both BBEdit and Textmate have roll-up functions and oddly enough both implementations are buggy and don't properly recognize the ends of functions.

    Both have emacs key bindings avaialble.

    as textmate grows and add more and more language templates, it's ironically making those hard to access since the menus are getting too long.

    both have grep search. Beedit has multi-file search too.

    BBEDIT does a better job of exposing some basic text ops like, zapping invisible chars or converting line endings. It also shows tabs stops better.

    A couple of things I have not yet figured out how to do in Textmate yet that I really am jonesing for are
    Line numbering, and the ability to mark a set of lines and change them to comment lines in a language aware fashion.

    A big marketing advantage for BBEDIT is that there's a free version. This way I can use the full price bbedit on my main computer but still have a nearly idendtical envirnoment on all the computers I use less often without paying for it. (for example, I can't legally use my work lic on my home computer, but I can use the free one).

    So far I'm much preferring BBEDIT, though I wish it had the autocompletion and the active templating. My productivity is still higher in BBEDIT. But part of that is familiarity.

    Both have command line invocation.

    both are very good text editors and I could live with either. I suspect BBEDIT will be the winner of my test. THe free lite-version I use at at home forces me to continue using it even if I select TextMate for work.

    For those of you in the Linux and Windows World who never had BBEDIT. I pity you.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Been demoing it myself. compare to BBEDIT by Jacques+Chester · · Score: 4, Informative

      "A couple of things I have not yet figured out how to do in Textmate yet that I really am jonesing for are
      Line numbering,"

      View -> Gutter -> Line Numbers

      " and the ability to mark a set of lines and change them to comment lines in a language aware fashion."

      Command-/ (apple key + slash) will do just that.

      --

      Classical Liberalism: All your base are belong to you.

  4. Re:Surprise! by petrus4 · · Score: 4, Insightful

    from the Unix world without giving anything back.

    I can't adequately describe how sick I am of seeing this particular whine constantly being made on Slashdot. Really a case of ESR's gift culture at work there, guys.

  5. Re:Underwelmed by TextMate by Jacques+Chester · · Score: 4, Interesting

    "...which can be that much harder than putting up with yet another proprietary editor scripting language"

    TextMate gets a lot of its cleverness by working through the shell. Most TextMate hackers use Ruby for extension, but you can use shell scripts, Perl, Python, whatever you like that can be called from the shell.

    You may be thinking of the language grammars, which are driven by Perl-like regular expressions. Is that right? I'm just struggling to see how you came to the conclusion that TextMate uses some new language.

    --

    Classical Liberalism: All your base are belong to you.