What happened is that Ken Thompson came to Berkeley and brought this broken Pascal system, and we got this summer job to fix it. While we were fixing it, we got frustrated with the editor we were using which was named ed. ed is certainly frustrating.
We got this code from a guy named George Coulouris at University College in London* called em - Editor for Mortals - since only immortals could use ed to do anything. By the way, before that summer, we could only type in uppercase. That summer we got lowercase ROMs for our terminals. It was really exciting to finally use lowercase.
So we modified em and created en. I don't know if there was an eo or an ep but finally there was ex. [laughter] I remember en but I don't know how it got to ex. So I had a terminal at home and a 300 baud modem so the cursor could move around and I just stayed up all night for a few months and wrote vi.
Linux Mag then asked: "So you didn't really write vi in one weekend like everybody says?"
Bill Joy wrote:
No. It took a long time. It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200 baud now is pretty slow.
9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore.
The people doing Emacs were sitting in labs at MIT with what were essentially fibre-channel links to the host, in contemporary terms. They were working on a PDP-10, which was a huge machine by comparison, with infinitely fast screens.
So they could have funny commands with the screen shimmering and all that, and meanwhile, I'm sitting at home in sort of World War II surplus housing at Berkeley with a modem and a terminal that can just barely get the cursor off the bottom line.
It was a world that is now extinct. People don't know that vi was written for a world that doesn't exist anymore - unless you decide to get a satellite phone and use it to connect to the Net at 2400 baud, in which case you'll realize that the Net is not usable at 2400 baud. It used to be perfectly usable at 1200 baud. But these days you can't use the Web at 2400 baud because the ads are 24KB.
code::blocks is good and all but I prefer wxDEv-cpp, it is easy to get libraries in and I just like the interface. I currently used Dev-cpp on this computer and code-blocks on my personal one as I don't use allegro on it and thus don't need the easy library implementing capabilities of dev-cpp :D
I've recently started using CodeLite, and I have to say, it's my favorite "non-Visual Studio" C++ IDE. There are a few bugs in the interface, but overall, it's very easy to use and stays out of my way. It lets me write my own Makefiles too, so that's a plus.
Actually, I still don't understand Notepad++. It seems rather easy to use but internally it's a mess and externally, there are various bugs when going into advanced setup. It uses cross-platform libraries but then used WinAPI directly for windowing and widgets? Qt, GTK+, wxWidgets, pick your poison but why remove flexibility to use WinAPI directly? They didn't even wrap it so it can be extended later.
I mean that it doesn't use those libraries and chooses to use the WinAPI directly which removes any chance of portability. I don't mind that entirely since one may not have preference for the stated widget libraries but at *least* wrap it up so the implementation can be changed later with ease.
It does use Scintilla which is its only dependency that I know of.
Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.
From the front-page of the site. It's a design choice, to reduce overhead, ensure optimal execution speed and reduce power consumption by using OS APIs directly and using language standard features instead of bloating the program with useless libraries and dependencies.