Related
I have been playing around with php-gtk recently and in the past I have experimented with Java to make GUI 'hello world' apps.
However both these types of applications have had a bit of a clunky (almost childish) look and feel to them. I cannot deny that they are handy for making apps for in-house use (and I totally respect the amount of community effort that goes into these projects). But I would not necessarily be proud to sell it as a commercial application with a price tag of, say, £450 or £1,000.
If I wanted to make an application that had the look and feel of, say, Firefox for Windows, or Adobe xyz, what GUI/language should I use?
Is the 'professional sheen' or smart look and feel 100% down to the designers or is it the case that, no matter how good a designer is, picking the right GUI framework is essential to get that look?
There are a few aspects to having a polished UX for a piece of software.
Using the most native framework for the platform. Win32/WPF for Windows, Cocoa for Mac etc.
Application's visual artefacts are coherent - this includes images, graphics, toolbar icons etc.
Following the platforms guidelines and best practices.
It's overlapping a bit with Igor's reply, but here's my take:
Native Control Look - UI controls today have a rather complex appearance. There are many visual cues we instinctively derive from them, and even if it's a white rectangle with some frame, with the wong shadow it looks strangely out of place. A context menu often doesn't just open today, it slides in from some direction, or fades in.
Native Control Behavior - Even more complex than UI, there's a lot of detail to behavior: different context menus depending on click position, different "hot" areas when selecting or dragging items, keyboard shortcuts, etc.
Attention to detail - There's a lot of consistent UI behavior to discover on any platform. Just the way arrow keys work in a tree control WRT selecting, opening and closing nodes.
Just look at Windows: Most non-native toolkits get the basic keyboard navigation wrong - Arrow keys, Home, End, PgUp and PgDown, behavior modified with Ctrl, extending selection with Shift gives up to 32 behaviors. Copy & Paste is traditionally with Ctrl+C/Ctrl+X/Ctrl+V and Shift+INS,Shift+DEL, and missing. Mouse double click often selects a word, mouse triple click sometimes a sentence, line or paragraph.
Response time and Muscle Memory - There are, basically, two UI operation modes:
act-look loop, where you wait for the response before deciding the next step,
playback from muscle memory, which is much faster and requires less mental processing ressources.
There are, however, two requirements for that: response must be uniform and "instant", and the next action must be registered correctly immediately (at least within 10 ms)
Often enough, with non-native toolkits, this gets hard by the response lagging behind one or two actions (the mind locks on the discrepancy), and by toolkits that take 50ms or more to show a menu, in which time a click isn't registered as intended.
A polished UI takes long to get right - A good control library can solve most of the per-control issues, but there's some final 10% taking 90% of the time, and you have control interactions. You have to try different approaches, you have to expect users with FPS-trained reflexes, you have to try all kinds of workflows.
Cross-Platform toolkits can't get it perfectly right - they are stuck between a rock and a hard place: They can opt for internal consistency independent of the platform, or being consistent with platform they currently run on. To get it right, the latter often requires platform-dependent code in the calling code, the actual thing you are trying to avoid.
Always try to use the GUI framework that's used by your desktop environment. .NET's libraries are probably the best for creating Windows apps. GTK+ is always the best on GNOME, while Qt works well on KDE - even though all three work on each other's systems, their visual appeal decreases with their lack of visual integration.
The GUI API/language used is utterly irrelevant to UI design, although some APIs make it easier or fasterto implement.
Good UI is about:
Good graphic design/artwork (visual balance and symmetry, complementary colours, visually 'pleasing' shapes and layouts, visual consistency within your app and with the other apps around it - consistent positioning, sizes, gaps, colours, etc)
Understanding the user's workflows and making what they want to do easy and intuitive. This often means implementing 3 or 4 ways of achieving the same action (e.g. "Copy and paste" can usually be achieved by: main-menu->copy/paste, context-menu->copy/paste, ctrl+c/v, button:copy/paste, drag-and-drop)
Keeping everything simple. Remove as much as possible to cut the UI back to just what the user needs and no more.
Being intuitive and not surprising the user. Controls should look like the controls the user knows, work like the controls the user knows, and be located in the places a user expects given their previous experience with the computer.
Following the conventions (position OK/Cancel buttons in the standard locations, use the OS-defined colours for highlighting selected objects etc)
To get this, you need to look at lots of "good" applications and dissect what makes them good. Get a good artist/graphic designer to draw you good icons etc. And spend a lot of time thinking about the user's workflows.
Make sure you separate the business logic from the UI - this will allow you to re-skin the app easily to improve the UI. And usually the data the program needs is not related to the way the user needs to use the application - don't be tempted to just expose your x,y,z variables in editable fields! UI is the layer that hides your implementation and makes it usable!
I don't care for the way Java application GUIs tend to look using the usual toolkits. If you like the way Firefox looks, you might look into XUL and the GUI framework shared by most Mozilla applications. Komodo Editor/IDE use the same tools (along with several other applications). GTK is very powerful, and I really doubt it is what is preventing your applications from having that professional sheen. Keep exploring it's features, and rethinking the best way to display your components, and I'm sure you'll stumble upon an arrangement that feels better.
On the other hand, it isn't all about the toolkit. Good interface design is an art, and interfaces like Firefox have evolved through endless amounts of feedback. The best thing to do is talk to users and find out what will make them more comfortable using your application. I've found that software tends to look good when it is also functional.
I would recommend spending a lot of time in software that you find pleasant to use. Make notes of the way things are done, and look for commonalities among interface elements. Most software sticks to a pretty common set of principles that make using the software easier, and the more you explore the software you find appealing, the sooner patterns will start to emerge.
Good luck!
I'm looking for free lightweight editors that can be run directly from a flash drive, without any install.
I would like editors that support as many languages as possible, I have notepad++ but I don't particularly care for it.
Edit: Forgot to mention I'm looking for editors for windows.
I'm a big fan of vim and Portable GVim makes the goodness of vim portable.
It's got syntax highlighting for more languages that I can name and all kinds of vim goodness.
I swear by notepad2 ,which isn't exactly a code editor, but it has support for syntax highlighting for many text formats, and they just don't come any lighterweight or more portable.
I like SciTE, and there's also jEdit.
JEdit is a fairly lightweight text editor with all the trimmings. You can dowload loads of plugins. It's written in java, too, so you can use it cross-platform.
Portable version here, thanks to #redsquare for the link.
SciTE # http://www.scintilla.org/SciTEDownload.html
The list of supported languages in very impressive. Includes most features of modern editors - syntax highlighting, code folding, unlimited undo/redo, find/replace with regular expressions, auto indent, etc. It is rock solid - never had it crash or bug out in the 5+ years I've been using it.
Check out Programmer’s Notepad , which does have a portable version. I wouldn't say however that is better that notepad++. In fact, I don't think you can get any better than this in the free world.
What about Emacs?
Emacs for Windows should do it. It has been known to run off of CD before. A flash drive should be a cinch compared to that.
To check, I just went and downloaded the latest "bin" version from http://ftp.gnu.org/gnu/emacs/windows/. It unpacked to a 45MB directory. If you can't spare that much space, you are in trouble.
For comparison's sake (and for those of you who prefer another editor) I went through the downloads for everything mentioned here to find the (uncompressed) sizes.
Emacs (without Lisp or code sources) - 45MB
GVim - 22MB
Notepad2 - 300MB
JEdit - 15MB
Scintilla (self-uncompressing version) - 500K
Programmer's Notepad - 6MB
Notepad++ Portable - 9MB
If it were me, I'd try them out in order of editor preference, (from my most to least favorite), then stop with the first one that fits in the space required.
The choice on portableapps.com is a bit limited: http://portableapps.com/apps/development
There's NVU which looks to be more full-on than notepad++ but personally notepad++ hooked into winscp is my tool of choice for web development at the moment. Anything else gets a bit clunky and unresponsive.
Not sure if it will work from a flash drive but Intype looks promising aswell.
PSPad is decent, also if you don't mind me asking, what is it exactly you dislike about notepad++, and you do realize with a portable IDE you need the whole works to go with it or you are just carrying around a bloated editor (not matter how lightweight the IDE).
Here is a good site to find all sorts of portable software and here is the editors page.
It sounds like what you're really looking for is a text editor, not an IDE. I have long been a fan of Crimson Editor. There are many great editors for Windows, but I found Crimson Editor to have a really nice interface, and every feature I could want in my text editor, so I've always come back to it for any time I'm not using vim/gvim.
Looking at portableapps.com the only other app I can see that might work for you is Abiword but that's more of a word processor than just a text editor, but might be worth checking out anyway.
Then there is Akelpad, which seems very lightweight: http://akelpad.sourceforge.net/en/index.php
Edit: This is a relevant and researched answer. Can whoever rated this down please explain why in the comments? That would be good netiquette and manners, it doesn't make any sense.
Although not free, ultraedit has always been a favorite light weight editor for me. I think I definitely got my money's worth with that one.
My machine is seriously underpowered, and I think I need to start conserving every spare cycle. I know that my Gnome environment seems to underperform compared to my coworkers' KDE setups. But if I'm going to make that big of a switch, I might as well consider running something even lighter.
Is it possible to survive on a lightweight window manager and still run modern apps (Firefox, Eclipse, OpenOffice)? What's a good candidate window manager for me to try, and what do I need to know?
The window managers listed below all subscribe to the lightweight and fast approach.
They are faster than fully fledged window managers like KDE or Gnome and trim down on most visual distractions. Which one you pick will be mostly determined by your own taste and what you can get to run.
There's a subfamily of these window managers, notably those which attempt to let you do everything by keyboard and let you tile your applications with minimal screen real estate waste. These can feel funny if you come from mouse-oriented window managers. XMonad and ratpoison are members of this family.
xfce
ratpoison
fluxbox
awesome -1, cannot handle minimize to tray
XMonad
dwm
fvwm (codebase for another WMs)
icewm
Englightenment
wmii
openbox
pekwm
I like XMonad. It's very stable, has very low overheads, and has an active user/developer community.
XMonad is almost as minimal as ratpoison, but it displays multiple windows by tiling them, and even allows floating windows if you really need them (e.g. for modal dialogues or GIMP). It's certainly given my underpowered Ubuntu box a new lease of life!
Edit: I forgot to mention: XMonad is keyboard-based rather than point'n'grunt, so there's a bit of a learning curve, but once I got the hang of it I found that I was much more productive.
Fluxbox is a good alternative and very lightweight.
http://www.fluxbox.org/
Icewm is quite nice and lean (used it for a while on an underpowered box but moved to KDE when the box was upgraded).
The first thing you should would be to build your own kernel, with just the things you need. That will save tons of resources.
Then, choose a lightweight WM. Ive found Enlightenment very light and awesome, give it a try.
Later, you should look for lightweight replacements of the apps you use.
You can replace OpenOffice with Abiword, Gnumeric.
Just google, and you will find very nice alternatives to those ram-eater software.
The thing I would recommend will be to avoid Java software, they'll run VERY slow on a low resources PC.
Also, check for the services that are currently running on your PC, and disable the ones you don't use.
Consider changing your current distro for a low resources distro. I found Debian very customizable and lightweight.
Good Luck!
I use FVWM for 7 years. Most of WM based on FVWM, but strip any flexibility of FVWM.
FVWM is just "interface" to Xlib so it bring to you all what in Xlib.
If you want currently popular tiling - just: FvwmPiazza::Tiler
Google for ~/.fvwm/config as get own from scratch is too difficult, this good one from which I started: http://zensites.net/fvwm/guide/
Also look to:
https://wiki.archlinux.org/index.php/FVWM
http://wiki.gentoo.org/wiki/FVWM
https://wiki.debian.org/Fvwm
I'll second xfce, it's probably the most popular of the lightweight WM's out there (perhaps due to its inclusion in Xubuntu). I've also had good experiences with Fluxbox (it came with Damn Small Linux when I used that as a lightweight Linux VM (back when VMs were slow :-) ).
There is definitely an ease-of-use learning curve to reckon with when migrating to these more lightweight WMs, but the performance benefits aren't hard to see on older hardware (menus appear instantly, navigation is pretty snappy).
I used Fluxbox for a long time, which is great for people used to having windows floating around like in KDE, Gnome etc. It's pretty small, pretty fast and highly configurable, plus it doesn't look as ugly as some other "minimalist" window managers. ;)
A few weeks ago I switched to awesome because I like how efficiently it places and resizes my windows. It's perfect for me since I almost always have just a full screen terminal on one screen and a browser on another screen. It also supports mixed window styles, so you can have windows managed by awesome and floating windows on one screen (e.g. I have almost always a managed full screen urxvt open and a small floating mplayer window in one of the corners). It's as lightweight as fluxbox, if not even faster, but doesn't offer as many options for customizing the look and feel.
I am using fluxbox too. Compared to a desktop envionment, using only a window manager is not as convenient. You choose every component yourself which is both a strength and a weakness. ROX file manager and usbmount are great companions to fluxbox. Also take your time to find some dockapps that may be useful.
Enlightenment (v16) is actually very lightweight compared to gnome/kde these days, and it is very configurable (although, nothing seems to be as configurable as fvwm) Florian's suggestions are all good, but if you're used to gnome/kde, then you probably won't like ratpoison / xmonad.
icewm has done me good for several years. I don't need most of the crap that the big-time desktops offer, but i do like a clock and CPU usage monitor running in the bar along the bottom - icewm does have these. It is noticeably lighter in feel than the popular desktops. No weirdness such as tiled windows or anti-mouse attitude. Customizing the root menu is also easy, much easier than doing so in KDE or Gnome, which i never did figure out adequately. At one place i worked, the sysadmin saw my screen and decided to give it a try. AFIK, he's still using it.
I'd recommend openbox. Its lightweight, very configurable, and works great without getting in the way. Very functional, and can do pretty much anything you want. I love it.
I tried PekWM for some time. I really liked it. It allowed me to group programs of the same type, for example: Terminals.
I myself have used 'lwm' or lightweight window manager for quite a while now and have been very happy with it. I use it with xfce4-panel which I use for a clock and better window manipulation. Lwm is truly light weight even more than xfce, icewm, pekwm and others.
I've used everything at one time or another, but I keep coming back to WindowMaker. I like the concept of the clip, the multiple workspaces (I keep one for each type of task) and the fact that it looks good with theming that is ridiculously easy.
Docker is an essential app to add to the desktop to keep nm-applet and other applets in the WindowMaker dock.
Don't judge it by the default theme. Use the Wprefs tool to customize it to your liking.
Cheers
KG
Over the years, I've downgraded the WMs of my machines. Since the more mainstream WMs, like Gnome or KDE become more and more resource hungry, it wasn't long, before I replaced Gnome with XFCE on laptops and desktop computers.
In fact, I've been using XFCE longer than any other WM. It seems to me, as if the niceties of things like Gnome and KDE are great when seeing them for the first time, but after using them for a few weeks and months, the novelty wears off, and it makes more sense to go back to a more streamlined environment.
The problem with XFCE is, that it's not as lightweitght as it needs to be for some of the older laptops I still have. I decided to use LXDE on those, and to be honest, I kinda have a love/hate relationship with that. It works fine, in the sense that it's quite resource friendly, and it's quick to log in, etc. But certain things don't seem to work that well. One of which is the task bar. It seems some of the icons don't fit, because they were designed for things like Gnome or XFCE. The icons still do work, but it's next to impossible to make the whole LXDE experience look the part.
Blackbox (+ bbkeys) is a little bit weird, but pretty nice thing. Also you can check the comparison table of window managers.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
Other than Notepad++, what text editor do you use to program in Windows?
Another vote for gvim (about, download). I think once you learn the keystrokes to control it, you won't want to use anything else.
Plus, there is the added benefit of being able to use it on just about any platform, including the nice Windows port.
Sublime Text is amazing.
GNU Emacs is my preferred text editor and it works well on Windows (copy/paste actually works as expected) It's also available on all major platforms so you can reuse your knowledge if you jump around OSes like I tend to do.
I really like JEdit as well. It's a good text editor for code and random text. It's a nice middle ground between Notepad and Eclipse.
If you want something just a step above Notepad for quick, efficient editing I would recommend Notepad2. It's really useful when you replace the standard Notepad with this version. You continue to have a fast startup but the syntax highlighting is a real boon. I replace Notepad with Notepad2 on every one of my Windows machines.
I use SciTE
I'm a massive fan of Notepad2 - it is so quick!
For quick simple editing of text for me it's close to perfect. It has syntax colouring for Xml and code and can be extended easily.
We use Dreamweaver and Visual Studio for larger coding efforts.
UltraEdit is my second home. It is a great general purpose text editor.
Textpad is what I would use for random text editing (checking out HTML source, quick hackery, scripts and the like).
For actual Java development it's Eclipse all the way, although people tell me the IDEA is the cat's pyjamas.
E-TextEditor
Is a bit buggy, but beats the pants off any other editors I've used due to it's using the Textmate bundle format (and the bundles) - also gets updated very regularly. I use it every day and would gladly purchase it again.
Note that I primarily work in C/C++. For C/C++ code, I use Visual C++ Express Edition or Visual Studio Professional. For the little bit of Python I'm learning, I use the editor in the PythonWin IDE. (Mostly because it does a bit of code completion.) For everything else, I use GViM.
Tip:
After you install ViM on Windows, if you right-click on any file in Explorer, you see the Edit with Vim option in the right-click menu. This is very useful for peeking into and editing every kind of text file without having to bother about specific editors. GViM can understand most formats and thus displays them with syntax coloring. Get used to doing this and soon GViM becomes your defacto generic text editor on Windows. (Even replacing Notepad.)
Thej already recommended it, but to elaborate:
SciTE - Free, has preset colouring for many languages, and it's multi-platform (Windows & Linux), and lightweight.
alt text http://scitedebug.luaforge.net/scite-debug.png
gvim. I also use Dreamweaver for web stuff.
Notepad2
Syntax highlighting for html,c#,javascript,css,xml,sql,python,bat
Rectangular selection, regular expressions
Indentation, back/foreground customization
Downside: No tabbed windows.
I'll echo the others who have endorsed Emacs. I program every day on, at a bare minimum, OS X, Windows, and Linux. Having the same IDE on all three systems gives me an enormous productivity boost. That said, the vanilla version of GNU Emacs...well, it sucks. I'd strongly encourage you to try EmacsW32 instead. In much the way that Aquamacs makes an OS X-friendly version of Emacs, the EmacsW32 project makes Emacs out-of-the-box work just like a Windows text editor. Mind you, all of Emacs' power (and complexity) is there, but if you don't already have muscle memory built up, there's no reason not to use Ctrl-C/X/V as copy/cut/paste instead of M-w/C-k/C-y just to be cool. EmacsW32 also brings Windows-compliant open/save dialogs, sane CRLF file handling, and quite a bit more. If you've ever had an itch to try Emacs, give it a shot. You won't regret it.
Not everybody uses Notepad++, it's not that good.
Crimson Editor
http://www.crimsoneditor.com/images/overview.gif
EditPlus is my editor of choice. All the features you'd need, and no more.
I know this is my own question but I came across this text editor Sublime Text and thought it was pretty sweet. There are a few features in it that i have never seen before. It has multiple line select ( lines that are not continuous ) and a birds eye view navigation. It's a little pricey but I am having fun playing with the free version.
I use EDIT.COM for a lot of things, believe it or not. Old habits die hard.
Commercial product (Windows): UltraEdit.
Freeware (Windows): Notepad++, PSPad.
Cross-Platform: JEdit. It's written in Java and runs on almost anything.
If you don't mind taking a performance hit under Windows, JEdit has some amazing capabilities. For native performance on that platform, I would go with one of the others. I tend to switch back and forth between Notepad++ and PSPad. Notepad++ probably edges it out for most tasks. It has section folding, which is very handy. However, you did ask about products other than that one.
I have used UltraEdit for years... If I'm working on a project I prefer to use a real IDE, but nothing beats it for quickly making changes to source files, or especially for those small PHP projects where you're just hacking away anyway. The killer feature for me is the compare functionality.
I personally like ConTEXT.
A lot of people gave their suggestions for favourite text editor here:
https://stackoverflow.com/questions/10238/text-editor-or-ide#10391
I strictly use jEdit.
My personal favorite is EditPad Pro. Not because it is superior in any way, but because it was the one I started to use.
UltraEdit it my favorite text editor. Too bad I have to pay for it. You can't beat the ability to highlight vertically vs. horizontally.
Textpad replaces notepad for me. I couldn't live without it. Some key features that I use with Textpad are:
Find in files (along with open all, replace all, save all, close all).
Block Select (along with copy/paste of a column).
Clip Library
Syntax highlighting
Ability to attach externals tools (compilers, etc.) and capture the output to a window.
I use Eclipse for Java, Visual Studio for C++, C#, and VB.NET, JellyFish Pro for PowerBasic, I still use Visual Studio 6 for Classic VB, and I use TextPad for perl, python, Powershell, vbscript, SQL, HTML, and batch files.
I hate to sound like a broken record, but Vim is my choice. It works the same way everywhere and you'd be hard pressed to find a more powerful editor.
I don't code much on Windows, but e text editor is my choice. As far as free editors go nothing beats Emacs.
Notepad2, apart from Notepad++
Visual Studio, notepad2, notepad++.
Visual Studio for .Net development. Currently working with VS2008, but seems to be not quite finished yet. 2005 is probably the most stable and complete. Anything else for that would seem quite futile for .Net development
I use e-TextEditor for most other things. It covers most of the topics above including syntax highlighting, multi-select/edit, column select, TextMate bundles for auto-complete.
As you can see, asking about a preferred editor will get you a lot of responses. For me: UltraEdit - robust:
Notepad++ - lightweight
Also tend to use the IDE that comes with various tools (e.g. VB, C#, etc.)
But, the best advice is to pick a decent editor and learn it thoroughly. You will be spending a whole lot of time using it. So, the better you know it, the more time it will save you in the long run.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I searched for this and found Maudite's question about text editors but they were all for Windows.
As you have no doubt guessed, I am trying to find out if there are any text/code editors for the Mac besides what I know of. I'll edit my post to include editors listed.
Free
Textwrangler
Xcode
Mac Vim
Aquamacs and closer to the original EMacs
JEdit
Editra
Eclipse
NetBeans
Kod
TextMate2 - GPL
Brackets
Atom.io
Commercial
Textmate
BBEdit
SubEthaEdit
Coda
Sublime Text 2
Smultron
WebStorm
Peppermint
Articles related to the subject
Faceoff, which is the best text editor ever?
Maceditors.com, mac editors features compared
Thank you everybody that has added suggestions.
I thought TextMate was everyone's favourite. I haven't met a programmer using a Mac who is not using TextMate.
I haven't used it myself, but another free one that I've heard good thing about is Smultron.
In my own research on this, I found this interesting article:
Faceoff: Which Is The Best Mac Text Editor Ever?
Emacs
Vim
But I use TextMate, and can say that it is, without a doubt, worth every penny I paid for it.
Sublime text is awesome (http://www.sublimetext.com/2). Excellent search features, very fast and lightweight. Very decent code completion.
I also use RubyMine and WebStorm a lot (http://www.jetbrains.com/). They are excellent but not all purpose like TextMate.
MacVim and SubEthaEdit are two nice options
I've tried Komodo out a bit, and I really like it so far. Aptana, an Eclipse variant, is also rather useful for a wide variety of things. There's always good ole' VI, too!
If you ever plan on making a serious effort at learning Emacs, immediately forget about Aquamacs. It tries to twist and bend Emacs into something it's not (a super-native OS X app). That might sound well and all, but once you realize that it completely breaks nearly every standard keybinding and behavior of Emacs, you begin to wonder why you aren't just using TextEdit or TextMate.
Carbon Emacs is a good Emacs application for OS X. It is as close as you'll get to GNU Emacs without compiling for yourself. It fits in well enough with the operating system, but at the same time, is the wonderful Emacs we all know and love. Currently it requires Leopard with the latest release, but most people have upgraded by now anyway. You can fetch it here.
Alternatively, if you want to use Vim on OS X, I've heard good things about MacVim.
Beyond those, there are the obvious TextEdit, TextMate, etc line of editors. They work for some people, but most "advanced" users I know (myself included) hate touching them with anything shorter than a 15ft pole.
CotEditor is a Cocoa-based open source text editor. It is popular in Japan.
Best open source one is Smultron in my opinion, but it doesn't a torch to TextMate.
There's a new kid on the block - PHPStorm. I used it for a whole year. Its not free but offers an individual license of 49$ for a year, free for Open Source Developers.
Speedy for an IDE - Its based on Java so looks somewhat like Eclipse/Netbeans but smokes them to dust in terms of speed (not as fast as Coda/Textmate as this is an IDE).
Keyboard shortcuts galore - I seldom touched the mouse while developing using PHPStorm (that's what I didn't like about Coda)
Subversion support built-in - Didn't need to touch Versions or any other SVN client on Mac
Supports snippets, templates - zen-coding is supported as well
Supports projects, though in separate windows
File search, code search
code completion, supports PHPDoc code completion too
BBEdit makes all other editors look like Notepad.
It handles gigantic files with ease; most text editors (TextMate especially) slow down to a dead crawl or just crash when presented with a large file.
The regexp and multiple-file Find dialogs beat anything else for usability.
The clippings system works like magic, and has selection, indentation, placeholder, and insertion point tags, it's not just dumb text.
BBEdit is heavily AppleScriptable. Everything can be scripted.
In 9.0, BBEdit has code completion, projects, and a ton of other improvements.
I primarily use it for HTML, CSS, JS, and Python, where it's extremely strong. Some more obscure languages are not as well-supported in it, but for most purposes it's fantastic.
The only devs I know who like TextMate are Ruby fans. I really do not get the appeal, it's marginally better than TextWrangler (BBEdit's free little brother), but if you're spending money, you may as well buy the better tool for a few dollars more.
jEdit does have the virtue of being cross-platform. It's not nearly as good as BBEdit, but it's a competent programmer's editor. If you're ever faced with a Windows or Linux system, it's handy to have one tool you know that works.
Vim is fine if you have to work over ssh and the remote system or your computer can't do X11. I used to love Vim for the ease of editing large files and doing repeated commands. But these days, it's a no-vote for me, with the annoyance of the non-standard search & replace (using (foo) groups instead of (foo), etc.), painfully bad multi-document handling, lack of a project/disk browser view, lack of AppleScript, and bizarre mouse handling in the GVim version.
jEdit runs on OS X, being Java-based. It's somewhat similar to TextMate, I think.
Editra looks interesting, but I've not tried it myself.
TextMate not for "advanced programmers". That does not make sense, TextMate contains everything an "advanced programmer" would want. It allows them to define a bundle that allows them to quickly set up the way they want their source code formatted, or one that follows the project guidelines, quick easy access to create entire structures and classes based on typing part of a construct and hitting tab.
TextMate is my tool of choice, it is fast, lightweight and yet contains all of the features I would want in a tool to program with. While it is not tightly integrated in Xcode, that is not a problem for me as I don't write software for Mac OS X. I write software for FreeBSD.
Definitely BBEdit. I code, and BBEdit is what I use to code.
You might consider one of the classics - they're both free, extensible and have large user bases that extend beyond the Mac:
Aquamacs - emacs for OS X (emacs in a shell window is also an option)
Mac Vim - VI with a Mac-specific GUI (vim in a shell window is also an option)
I prefer an old-school editing setup. I use command-line vim embedded in a GNU Screen "window" inside of iTerm.
This may not integrate well with XCode, but I think it works great for developing and using command-line programs. If you spend any significant time working in a terminal, GNU Screen is worth the 30 minutes it takes to master the basic terminal multiplexing concepts.
Coda's great for PHP/ASP/HTML style development. Great interface, multiple-file search and replace with regexp support, slick FTP/SFTP/etc integration for browsing and editing remote files, SVN integration, etc.
It now supports plugins and the plugin editor can import TextMate bundles, so there's a bright future there. There aren't a lot of must-have plugins yet because the plugin support was newly introduced with version 1.6 a few months back. It's a popular app, though, so I expect more in the future.
The "killer features" for me are:
* Seamless editing of remote files
* Code navigator (symbol browser; pane that lists functions etc)
Most people aren't really into using symbol browsers but as I have to maintain a lot of unfamiliar code I find them invaluable.
I'm not sure that Coda has the "raw power" of TextMate though. I plan on getting familiar with TextMate next.
I make use of Komodo IDE. It supports a huge number of languages, and is customisable but is a bit expensive (my company bought me a copy). A really good alternative is the free version called Komodo Edit. Loads really quickly and has a decent feature list and I find myself turning to it rather than the full IDE for a lot of jobs.
Smultron is another good (and free) one.
I actually prefer EditRocket over TextMate. I use it on both my Mac and Ubuntu machines. It is nice to use the same editor on multiple operating systems.
Textmate is state of the Art editor, but if someone is thinking about developing on several platforms without awkward memory eaters monsters like jedit, eclipse, netbeans etc take a look at geany (geany.org). It is free. The only problem the editor has not esthetic look and feel on Mac OS X :)
Fraise is a nice free option. It has some rough edges, but you can't beat the price. I believe it's a fork or successor of Smultron.
SubEthaEdit
Coda
DashCode with OS X 10.8 or older
Eclipse and its variants.
Netbeans
I use Eclipse as my primary editor (for Python) but I always keep SubEthaEdit handy as my supplemental text editor (free trial, 30 euros to license). It's not super-complicated but it does what I need.
Another vote for Smultron. I used it when doing some XQuery programming and being able to define a keyword files for syntax color highlighting was great.
I have installed both Smultron and Textwrangler, but find myself using Smultron most of the time.
I would love to use a different editor than XCode for coding, but I feel, that no other editor integrates tightly enough with it to be really worthwhile.
However, given some time, TextMate might eventually get to that point. At the moment though, it primarily lacks debugging features and refactoring.
For everything that does not need XCode, I love TextMate. If I had another Mac-user in my workgroup I would probably consider SubEthaEdit for its collaboration features. If it is Emacs you want, I would recommend Aquamacs (more Mac-like) or Carbon Emacs (more GNU-Emacs-like)
I've been using BBEdit for years. It's rock-solid, fast, and integrates into my Xcode workflow decently well. (I'm not sure anything integrates into Xcode as well as the built-in editor, but who has time to wait for the built-in editor?)
For small team projects which don't use a source control system, or for single user editing on multiple machines, SubEthaEdit comes highly recommended.
Eclipse and Netbeans have text editors among a whole lot of other stuff. I don't think you would want to wait 10 seconds for your text editor to become ready :/...If you are going to spend some serious time coding then spend some time and learn to use vim (emacs too but, I recommend vim)