What's your favorite text editor/IDE?
spreadsheets.google.com
spreadsheets.google.com
I'm currently using version 2, too, and the developer is pushing updates on a weekly base (http://www.sublimetext.com/2). I even requested a change in the forums once; the developer kindly responded to my thread, and shipped my requested change with the new version.
Awesome work, seriously!
* Auto-completion has been improved, in that you can now continue typing when the suggestions pop up;
* Other UI changes (new tab design, mini map has been moved to the right side, side bar, you can hide the menu when in full screen mode, etc.);
* A lot of other changes; I'd therefore recommend you to have a look at the change logs for more information: http://www.sublimetext.com/2
I had been using ST1 for quite some time before starting using ST2, and I already was a fan of ST1.
Something like this for Sublime Text would be great: http://www.zeldman.com/2010/08/13/how-to-use-textmate/
I think I first heard that from Tom Christiansen when he was heavily involved in the Perl community back in the mid '90s.
Even today, some of the most productive programmers I know only use X/Gnome/KDE(/OSX) as a means of organising terminals on modern hardware.
Acme has that neat feature of interpreting text as potential hypertext -- each of several addressing formats [3], when clicked, opens indicated file or resource, at the indicated point. Click on compiler error message and you get there. Prepare a command, click on it and you execute it. Etc., etc.
Also, unlike the mainstream IDEs and editors, those two work surprisingly well over network.
----
[1] http://en.wikipedia.org/wiki/Sam_(text_editor)
[2] http://en.wikipedia.org/wiki/Acme_(text_editor)
[3] implemented via http://en.wikipedia.org/wiki/Plumber_(program)
There are two main branches of Plan 9: the official, Bell Labs one [3], which is somewhat conservative (nonetheless the install iso is updated frequently), and 9atom [4], maintained by Erik Quanstrom, which has some more experimental features.
The core of the OS seems to be mostly established; both the 9P protocol (current version called `9P2000') that binds everything, several important fileservers and baseline libraries.
Probably the best is to look through contrib [5], which is where the userspace stuff is brewing.
Aside of the P9 proper, there is plan9port [6] maintained by Russ Cox -- collection of most of P9 utilities ported to generic POSIX environment (Linux, MacOS X etc.) [[and that's what I am using daily]] and 9vx [7] -- P9 ported to run in vx32 virtual machine.
In general, both classics like LaTeX and the newest, like Google's Go are ported to Plan 9 -- either natively, or, in some cases, through APE.
----
[3] http://plan9.bell-labs.com/plan9/
[4] http://www.quanstro.net/plan9/9atom/
[5] http://plan9.bell-labs.com/wiki/plan9/Contrib/index.html and http://plan9.bell-labs.com/wiki/plan9/Contrib_index/index.ht...
In my mind, if it's not background compiling your code as you type, it's not an IDE in the modern sense.
Scripting languages don't need this though.
Did you miss the reason why we're compiling while you type? It's so that our IDE knows your codebase and can help you. It'll autosuggest things based on context rather than simply matching strings. It'll inspect your object model and stick in the right include directives for you. It'll let you rename things without having to search&replace&hope.
So yes, scripting languages do need this. At least if we're talking about things that your development environment needs to do to be considered a modern IDE.
I don't think this would be too difficult to write in vim, which has built-in auto-complete functions.
I doubt Linus thinks "compile while you type" is a good idea, I'm not sure how much further down you need to scale until it does become a useful feature.
https://spreadsheets.google.com/ccc?key=0An4bm34gQOpddHhwMm9...
And you are most welcome to "mine" it too (please share the results) ;)
At university (1985-9, EE major), there was (MS-/PC-)DOS (CP/M had faded into oblivion). Unix was something heard of but not seen. There was no internet (for starving students). The only sanely priced own-it-yourself computing platform was IBM-PC (clone). I bought a used Sanyo MBC-775. I scrimped to afford the Borland and MS C compilers w/student discount. The Borland IDE was nice, but the MS compiler seemed qualitatively better. And the MSC package had this powerful text editor M. It had almost no UI, but with its "reverse polish" command syntax, box, stream and line selection modes with commands accepting all arg types, I found it tremendously intuitive, Completely customizable key assignments. A macro language. Unlimited undo/redo. It could edit files > 640K (Borland's could not). The manual was well done for those days, and included an API and build process for "editor extensions" (basically DLL's before there were DLL's), which I was soon writing. I was hooked. My brain-finger editor mapping was soon cast for life. Shortly MS replaced M with PWB, which I tried but discarded (bloatware), sticking with M. Years pass, during which I wrote a M clone, now a Win32 console app. Which I use today. While I'm fond of unix (use it for servers at home), all of my employers have been Microsoft-only shops, so my investment in developing my own text editor, which I can change as my needs require, has been worthwhile. Editor vendors in this market have come and gone (Brief, Codewright to name a few of the more popular), and their users have been disrupted. I just "keep on truckin" with my own... If the need arises, maybe I'll port to Linux/BSD.
- installed autocomplete (with drop-down lists and tooltips)
- org-mode is the first daily planner to impact my life
- run lint by hitting a button, linked to sourcecode lines
- use REPLs
- integrate different features naturally (like hyperlinks between my
day-planner and sourcecode or a webpage; or hitting a button to
clear/reset a bash terminal and restart the program in it)
Haven't gotten around to using emacs for email though... When I do, things like org-mode will become even more powerful.When used with inheritance, virtual functions, overloading and templates, C++ is much different semantically than the relatively straightforward C. Thus a different tool is to be preferred.
----
[1] that's my experience with the http://cscope.sourceforge.net/
I've started with DreamWeaver in 98 or so. Around 2000 I started to jump from one editor/IDE to the other until I settled with TextMate in 2006 or 2007. 5 months ago I commited to attack Vim's legendary learning curve. Now I'm almost as productive as I was with TextMate and I LOVE Vim.
Lately I've dutifuly downloaded and tested the latest "advanced editors" for Mac (Coda and Espresso) and found them totally useless: less useful features than TextMate (which they aim to replace thanks to the delay of TM2), too much focus on style… Pouah!
The only feature I really miss in gedit is "Replace in selection". I use this many times in refactoring code. There have been many requests for it but the developers are refusing to add this basic feature.
(If you decide to take the plunge with emacs, hit me up via email [it's in my profile] and I'll send you a link to my config file.)
As for the link: some terrible choices. ActivePython is an IDE?
https://spreadsheets.google.com/ccc?key=0An4bm34gQOpddHhwMm9...
AFAIK, there is no formal (canonical) definition of a programming language, but the first sentence of http://en.wikipedia.org/wiki/Programming_language pretty much nails it.
For how I'm typing in the code, I'm a happy camper.
I have various copies of Visual Studio and SQL Server Management Studio (SSMS). My reaction to these two: I deeply, profoundly, bitterly, hate and despise the intentions and the results.
I looked up their 'intellisense' in a dictionary and didn't see it. So, their 'intellisense' is more undefined gibberish.
Similarly for 'dockable'. It's not in my Funk and Wagnalls. So, more inarticulate, illiterate programmers making up gibberish.
When I start Visual Studio, I see tiny windows, 'panels', as sub-windows of the main window. The 'panels' are too small to be useful, and I have no hint or clue about the purpose or usage of any of these 'panels'.
No, I don't want to see language key words and my identifiers in different colors on the screen.
No, I don't want to type 'If' and have some software automatically type 'Else' and 'End If' or type 'Try' and have some software automatically type 'Catch' and 'End Try'. The idiot is that software and the fools who wrote it, not me, and I don't want to be treated like an idiot.
No, I don't want some software to reformat my code. I have some tools to format my code, and I do NOT want some 'studio' software to ruin what I already did.
No, I don't want popups, pulldowns, rollovers, or upchucks.
No, I don't want command completion or argument list suggestions.
No, I don't want a program for "Hello world" to start with some dozens of files in several subdirectories taking up 50 MB of space. And when things break, I don't want to have to figure out what's in each of those dozens of files to diagnose the cause of the break.
No, so far I've had no need for line by line interactive debugging changing values of variables, etc.
No, I don't need Visual Studio to be able to create a DLL. The Visual Basic command line compiler creates DLLs just fine with just a simple command line option that takes only a few minutes to find, learn, use, and confirm that it works.
I got told that of course I'd really need to use Visual Studio: As I made progress from command line programs in Visual Basic to a working Web site with Visual Basic, ASP.NET, and ADO.NET, there were super happy days as I learned that, step by step, I didn't need Visual Studio.
I DO like the command line Visual Basic complier: It's fast, easy to use, with meager necessary command line options, with decent error messages, so far, for me, 100% bug free, and generates surprisingly small EXE files, has no trouble finding the 'namespaces' in Import statements, etc. I'm happy.
I have used SQL Server Management Studio to inspect the results of what I did with T-SQL statements executed with the standard program SQLCMD.EXE. Still, even for system management and administration of SQL Server, I preferred to write T-SQL scripts, GREATLY preferred.
Now that I've had some experience with SSMS, I can see that it's not good: E.g., if use T-SQL to grant permissions to a user, then at least commonly there will be no evidence of that in SSMS.
Besides, at first glance SSMS is a total train wreck: E.g., Name dbo is a user, a role, and a schema, and THAT'S confusing. Then, what is in the role and the schema is not easy to discover. Really apparently SSMS is not based very directly on T-SQL but on another, Microsoft proprietary API called SQL Server Management Objects (SMO). Gee, I just want to get MY work done, for database as much as possible with just T-SQL, and for me SMO is a big detour. Thus, so is SSMS.
So, for my 'IDE', I use my favorite text editor KEdit. I've been typing into versions of KEdit for 25 years so have good facility and, thus, don't want to type into anything else. I do a lot of typing and do nearly all of it into KEdit -- blog posts, e-mail, notes, abstracts of Web pages of documentation, letters, technical papers, Windows command line scripts, KEdit macros, other code, etc.
So I'm thrilled that actually KEdit works fine for writing Visual Basic .NET ADO.NET, ASP.NET, more usage of .NET, C, etc. Still so far all or nearly all programming language source code is in just simple text -- GREAT!
Here's where IDE's go wrong:
(1) Software still has to be typed in, and a good editor is a good place to type; the editors for IDEs suck, major suckage.
(2) IDE designers believe that what the 'beanbag cognitive psychos' at Xerox PARC with 'graphical user interfaces' (GUIs) has to be the foundation for all human-computer interaction. WRONG.
(3) The IDEs are conceptually constipated and obsessed with a single 'window' into which they try to cram many 'panels'.
Instead, there is lots of 'windowing' functionality with just Windows. Currently as I type this, I have 13 windows open, arranged with the UL corners on a line from UR to LL so that I can easily find any window I want and see it without moving any windows. Net, when I write software, I have lots of windows open and, thus, ready access to much more information than in just the little IDE 'panels'.
(4) With a good editor, e.g., KEdit, I can write macros, some for general purposes, some for more specific ones. These macros are keys to my productivity.
E.g., in my code, at some point where I should have a reference to some documentation, I put a comment with the tree name of the file, often HTM, on my computer with the documentation, and then a simple KEdit macro let's me display the documentation with one keystroke.
As we know, a lot of code is really quite standard. So, with a good text editor, can readily copy in standard pieces of code. More generally, the ubiquitous Windows 'copy and paste' as the main way to copy blocks of text is not good.
In my work, in a single function, I have standard integer variables return_code, message_tag, and error_code and within the function set these values as needed. Then I have a simple macro that numbers these sequentially in the code. So, I don't have to number them myself. Then, when the code runs, I can take one of these values, look in the code, and see where the value came from. Works fine. That's too much to ask of an IDE!