What’s up with nano?
asty.org
asty.org
I'm not actually a Comp Sci major or anything, maybe that matters?
This is the part I'm most curious about. Why didn't GNU let him become a maintainer?
You can argue (and it has been, to death) whether copyright assignment is right or wrong. When it comes to GNU projects, it's the rule of law. Based on mailing list posts and contribution history, it seems like the project had probably been in questionable GNU territory for awhile, given Benno's strong role and his unwillingness to assign copyright. I'm curious to see how the GNU project will respond.
There's more discussion here: https://news.ycombinator.com/item?id=11953703
Because it makes it easier for them, as owner, to deal with copyright violations.
Do you mean FSF here?
It's up to the individual projects whether they want to assign copyright to the FSF.
I think nano helps fulfill the GNU project's original goal of a flexible OS. I think of emacs and nano as having a similar relationship as wordpad and notepad. That's a bad comparison, but you could say both tools are valid and functional for the purposes they were designed for.
As it stands I think nano is better off hosting development on github or the like. People go to great lengths to install and customize their text editors, so hard core users will seek out the best nano. What sucks is I would be surprised if the next version of OSX includes a non GNU nano, thus fragmenting even further.
This is my 2 cents, and I'm mostly talking through my hat.
With vim/emacs you'll have super opinionated users and they will make sure that they use whichever is the best/most stable version, but in this case I really think politics plays a much bigger part.
Quick workaround: Firefox has a reader mode (the little book-icon at the right side of the address field) that renders the main content of a page black-on-white in a very eye-friendly (read: huge) font size. I used to wonder what that was for, but these days I come across unreadable or unreadably ugly pages more often, and I have come to like it.
$ ldd /bin/nano
linux-vdso.so.1 (0x00007ffc72add000)
libmagic.so.1 => /usr/lib64/libmagic.so.1 (0x00007f3eca793000)
libncursesw.so.5 => /lib64/libncursesw.so.5 (0x00007f3eca52b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3eca193000)
libz.so.1 => /lib64/libz.so.1 (0x00007f3ec9f73000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f3ec9d6b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3eca9bb000)
$ ldd /usr/bin/vim
linux-vdso.so.1 (0x00007ffd69bfd000)
libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007efe2d7d3000)
libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007efe2d5b3000)
libXt.so.6 => /usr/lib64/libXt.so.6 (0x00007efe2d33b000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007efe2cfdb000)
libm.so.6 => /lib64/libm.so.6 (0x00007efe2cceb000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007efe2ca8b000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007efe2c87b000)
libgpm.so.1 => /lib64/libgpm.so.1 (0x00007efe2c673000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007efe2c46b000)
libc.so.6 => /lib64/libc.so.6 (0x00007efe2c0d3000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007efe2becb000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007efe2bca3000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007efe2ba9b000)
/lib64/ld-linux-x86-64.so.2 (0x00007efe2d9e3000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007efe2b893000)
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007efe2b68b000)
There probably are stripped down versions of vim out there, but this makes nano more reliable in the case of say a corrupted disk where libs are corrupted...less points of failure at least. $ ldd $(which nvi)
/usr/local/bin/nvi:
Start End Type Open Ref GrpRef Name
0000047a80c00000 0000047a8106c000 exe 1 0 0 /usr/local/bin/nvi
0000047d4d9f6000 0000047d4de50000 rlib 0 1 0 /usr/lib/libncursesw.so.14.0
0000047c97a14000 0000047c97e20000 rlib 0 1 0 /usr/lib/libutil.so.12.1
0000047ca1ba9000 0000047ca2073000 rlib 0 1 0 /usr/lib/libc.so.88.0
0000047d3bf00000 0000047d3bf00000 rtld 0 1 0 /usr/libexec/ld.so
$ ldd $(which vi)
/usr/bin/vi:
Start End Type Open Ref GrpRef Name
0000106784500000 0000106784956000 exe 1 0 0 /usr/bin/vi
00001069ee8ed000 00001069eed47000 rlib 0 1 0 /usr/lib/libcurses.so.14.0
00001069f097f000 00001069f0d8b000 rlib 0 1 0 /usr/lib/libutil.so.12.1
00001069a8f41000 00001069a940b000 rlib 0 1 0 /usr/lib/libc.so.88.0
0000106a02600000 0000106a02600000 rtld 0 1 0 /usr/libexec/ld.so$ ldd /usr/bin/ne
linux-vdso.so.1 => (0x00007ffc22abf000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1c2d4ee000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f1c2d2c5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1c2ceff000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1c2d7ff000)
For a pretty full featured text editor ne has surprisingly few dependencies.On ArchLinux I get the following:
ldd /usr/bin/vim
linux-vdso.so.1 (0x00007ffdcebf9000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f1a49617000)
libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007f1a493aa000)
libacl.so.1 => /usr/lib/libacl.so.1 (0x00007f1a491a1000)
libgpm.so.2 => /usr/lib/libgpm.so.2 (0x00007f1a48f9a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1a48d96000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1a48b79000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f1a487d8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1a4991b000)
libattr.so.1 => /usr/lib/libattr.so.1 (0x00007f1a485d3000) $ ldd $(which nvim)
linux-vdso.so.1 => (0x00007fff75590000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f821b0ea000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f821aecc000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f821acc7000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f821a9c1000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f821a7be000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f821a3f8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f821b301000)So you might be right, the stripped out version makes a difference.
$ otool -L /usr/bin/nano
/usr/bin/nano:
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0)
$ otool -L /usr/bin/vim
/usr/bin/vim:
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)Once I got more comfortable with how things work I was confident enough to use it and I would not want to miss it any more.
Oh man, I remember googling that years ago now. That was fun. Now I use Vim and Visual Studio Code for all my editing, but because my Vim is so customized, if I remote into a server I'm more likely to reach for nano instead.
Its a terminal editor that uses hotkeys that you more commonly find in GUIs.
These aren't the types to go run off and learn vi or Emacs because, at the level they're playing at, there's not much advantage. They are in the command line text editor only occasionally for a simple edit here and there. nano is relatively intuitive, vi and Emacs aren't.
Moreover, I think it may be under appreciated, especially here on HN, just how many technology professionals are in this category. They know what they know and get by with it.
EDIT: I should make clear, that "lower sophistication professionals" don't have anything to be ashamed of nor are they somehow lesser in what's important; I just don't know how to say it in a way that doesn't have a tinge of sounding derogatory. It's not intended.
I stick to Sublime on Windows, and when I need to tinker on my HTPC, I jump into nano, mainly because the command is memorable and the editor is very easy to use.
That same audience is also likely not choosing their editor much of the time. I've found that nano is the default editor often and if it's good enough, why would you mess with it?
I know when I search for something that is not a core interest of mine, I go with the first thing that Google shows me that meets my requirements.... I don't overthink that which is mostly unimportant to me.
Also, i guess pico/nano style key combos more "friendly" than the sequences joe uses (ctrl-k then another key to do anything).
And best i can tell nano happened because pico was popular but was part of the pine email client.
Also, from what i can gather joe was left unmaintained for a number of years, likely leading to people picking up pico, and then nano, as an alternative.
When I need more features, I'd rather be in a GUI editor: Sublime or Atom for plain text editing, and the JetBrains IDEs or Visual Studio for projects where we're using a full IDE. I've yet to find anything in my workflow that would make it worth the time and effort to learn emacs or vim, beyond the basics needed to get around just in case one of them is the only thing available (coughGit for Windowscough).
That said, I noticed you labeled folks who use it "lower sophistication professionals". I don't think it's fair to label anyone who works with different technologies than you as such. They may work in a different part of the industry than you but that hardly makes them "less sophisticated". Maybe you find their tasks less challenging/exciting than the ones you work on but in all fairness they may find your tasks less challenging/exciting than the ones they work on.
After all Zuckerberg was at Harvard as a psychology major, Andrew Mason has a degree in Music, Tim Westergren from Pandora has a degree in political science and they are all examples of people who don't fit the uber nerd Steve Wozniak like programmer mold. There is hardly a reason to call people that build companies of that size "lower sophisticated professionals" yet they likely can't navigate emacs like you can.
That really doesn't come across well.
I've learned that in forums such as this, there is always someone to pick nits, drop context, read too literally, or otherwise not see the forest for the trees.
I've also learned not to worry about it.
Enjoy the rest of your day.
I have an emacs book on my shelf, and intend one day to learn emacs, but due to the nature of my work and spare time activities, I don't spend enough time in a text editor. It seems like it would take quite some before I was more efficient in emacs than I am with nano and a grep.
I started using nano (although I think I'd type pico to invoke it?) back when I used pine as my only email client. It has the same shortcuts as pine IIRC, so was easy to pick up.
In more recent years, I've oddly enough become much more directly involved in software development. I live in Sublime Text and occasionally an IDE... Eclipse, Netbeans... QT Creator a fair amount. But I've been learning Emacs: I need to write estimates and, depending on the engagement, track time and such. I've found that, of all the online services and other software I have, the best tool to get things done was Emacs & org-mode with some fairly extensive config to customize the org-mode behavior; I even got Gnus up and running. I couldn't use it for coding because about 75% of what I do is database development (PostgreSQL schema stuff, PL/pgSQL) and I couldn't get the damn indentation behavior behaved so now I'm in both: Sublime Text for development and Emacs for organization.
Vim and Emacs seem impenetrable to someone coming to them after they've been around for so long. Documentation and code is scattered all around, their concepts are not intuitive and there's so much stuff (modules, modes, whatever) available for both that I just feel paralyzed trying to decide what I need and what I don't. And then there's learning all the crazy key combinations and commands.
In contrast, the manpage for nanorc can be read in a few minutes. Keys work as expected and there's a helpful menu at the bottom. Shortcuts are all Ctrl+<something>. It's small, it's fast, and it does what I expect it to do: allow me to painlessly edit text files.
... Ok, that's a lie. I also know /, n, N, :noh for searching , dd to delete lines, and [{, ]} for jumping to delimiters.
Vim and Emacs both have excellent built-in manuals.
If I'm ever held back by nano, I've got sublime text and rsub set up on my servers, so I can type "sublime /etc/whatever" on the remote computer, and it will pop up on my home computer.
I use Sublime or Spacemacs for Real Editing, Writeroom for distraction free writing. Ten second config file tweak? Doing something to J. Random Remote Server? nano's got my back.
I am a thorough Vim believer. I have been for a long time. If I ever accidentally find myself on a nix system with nano or pico as the default editor, I exit and install Vim.
However, in my almost 15 years using nix of all flavours, I have spent considerable time using Emacs as well, both on the GUI and the command line. Eventually, I gave up Emacs in favour of Vim. I've stuck to it since.
And checking wikipedia i see that pine's license was at one point changed from a BSD-like to one that restricted third parties from distributing altered versions of pine. Something that naturally riled up the FSF.
Meaning that the line break behavior kinda makes sense if your primary goal is writing emails, or similar long texts.
But for any kind of programming of config file editing it is indeed a problem.
Thankfully there is multiple ways to turn the behavior off.