Don't fall in love with your technology
prog21.dadgum.com
prog21.dadgum.com
Funnily, this statement sounds a lot more like it is spoken by someone who has fallen in love, in this case someone infatuated with multi-touch interfaces and so on.
It sounds like the author is arguing that new is automatically better. I mean, I think I understand the point he is trying to make about being trapped in the familiar and being unable to appreciate new approaches, I just don't think it's said very well here. Is he claiming that input interfaces and power consumption are areas of technology that are seeing high innovation and rapid adoption of new ideas, in contrast to the area of build systems and editors? That seems patently absurd to me. Input devices have barely changed at all since the typewriter (the exception would be the invention of the mouse), and although touch interfaces have uses in some areas, in others they are not an improvement at all - one new piece of input technology making it into general use since the sixties does not rapid innovation make. Oh, and build systems and editors are the two things where there are new approaches popping up all the time. The latest I heard was that google Go will ship version 1 with their own build system, for example.
And what does that have to do with makefiles? Is there suddenly some magical "miniority report" touch wand that replaces them? (yes, I know there are alternative systems, but they're generally a new syntax for representing the same thing)
"Absurd" is indeed the appropriate word. Too much of the tech brochure cool-aid...
But it can't be Linux-based? Or use makefiles?
To "make something" you do need to care about details. At least a bit (depending on the complexity).
I did the read the last paragraph of the OP, and I tried to summarize my interpretation of it in my post. If you disagree, perhaps it would be helpful if you shared your point of view. Just telling me to read it again is not very informative.
No value judgment there, just an observation.
These days I get far more satisfaction from putting something new that's useful or fun in front of users and I don't care much exactly what it took to get it there.
I blame this mindshift on the prevailing focus on shipping something useful ASAP that can be seen here :).
[1] - to the point that yesterday, after spending few hours researching available software and technologies, I decided to pay few bucks for a solution that I would normally strive to code myself.
There's nothing wrong with deriving pleasure from deep analysis of a programming language - similarly with all of art or mathematics.
Feel free to fall in love with your technology, just realize it's not as likely to make you rich if your goal isn't to ship product.
I freely admit that being very familiar with older tools and paradigms will make me unfairly biased against new approaches that may in fact be objectively better. But network effects being what they are, I'm not particularly keen on striking out after novel approaches (Plan 9 sounds like a massive improvement on Unix paradigms, but whose got the time?).
Of course I don't really have a problem shipping. I tend to keep my eye on the ball, sharpening tools only as an occasional distraction, so I guess the article isn't directed at me.
Disclaimer: Church of Emacs
vim/emacs are nice (I'm a vim user) but gosh... have you ever tried the latest JetBrains offering? PyCharm? RubyMine? the JS editor.
The only reason I'm using VIM is because I'm just that _weird_. My dream setup would be a 11"/13" laptop with nothing other than a console and a web browser. If IDEs can fit that screen (which they can't right now...) I would dump vim in an instant and never look back.
On a slightly related topic, I've started investigating writing a console based email client recently in Python using Urwid for curses stuff that's a little less archaic than mutt.
If you like coding as a hobby, then feel free to fall in love with the technology, but realize you might not be taking the best path to creating something useful or solving problems.
Ipad software is not written on an ipad.
I think I'm being trolled, therefore I'm removing it's feed from my reader.
I hear quite some complaints that Ubuntu/Debian/kernel changes are going too fast, more than that it is going too slow. Seems the conservatists complain a lot (about the new UIs, about new logging systems, about new init daemons, about new process IPC systems, etc) but are not really that influential on the actual projects.
What am I missing?
Yes, there is benefit to being able to get kernel messages during boot over an RS-232 link, but note that the whole infrastructure of TERMCAP files and cursor addressing is not needed for that capability, and yet TERMCAP files and cursor addressing remain an integral part of Linux -- if your TERMCAP file is misconfigured or your TERM environment variable is set wrong, you might be unable to get to a shell prompt.
Part of the reason this "cursor addressing" infrastructure is still integrated into IIUC all of the important distros is that reducing technical debt in a distro is a thankless task, but (since the complete dominance of the ncurses library for cursor addressing makes ("made"? Mabye ncurses is no longer completely dominant -- I've been away from Linux for a few years) it fairly easy to remove TERMCAP files, etc, from the set of things that have to be configured correctly to get to a shell prompt) I think that part of the reason that if your TERMCAP file is messed up, you might not be able to get a shell prompt is the hesitancy to change the design of the parts of a distro that come from the Unix of Bell Labs in the 1970s, which is frequently talked about in reverential tones.
(Yes, I know that cursor addressing might not date back to the 1970s, but it does date back to the 1980s and is now considered fairly integral to one of the things (the PTY) that was in Unix from the beginning.)
Note that it is possible for Linux to suffer from conservatism and from unnecessary design churn at the same time. For example, the design churn might be restricted to the parts of Linux that do not come from the Unix of the 1970s.
For a second example of conservatism in Linux, consider the persistent of /usr as discussed recently in
What would you propose as a replacement? There have been ideas of using HTML/JS, streams and objects instead (see TermKit), among other things. Which certainly has some advantages. But for most things, the current terminal works fine. The terminal is mainly used as fallback anyway, new developments mostly focus on GUIs.
Don't get me wrong: it would be great if people agreed on one TERMCAP format and threw away the rest (just like I'd love people to just settle on UTF-8 encoding for text). But that seems to be the case in recent distro's. They work out of the box. I haven't had to bother with TERMCAP settings in Linux in like 10 years... with Solaris it's a different issue...
And I agree that the /usr directory structure being cleaned up was long due.
No offense but I'd rather not elaborate except to refer you again to Plan 9 as a proof of feasibility: thousand of man hours have been spent by people using Plan 9 to interact with remote shells.
[1] http://www.osnews.com/story/25556/Understanding_the_bin_sbin...
EDIT for clarification: layers upon layers upon layers of virtual directory structures don't count. It only adds complexity and makes the system more obtuse.
Traditional desktop interfaces will survive, but they will survive in the same way that, say, Emacs survives -- as a niche product for that tiny market segment, not as the default way the Teeming Millions interact with their personal tech.
We should strive to support open protocols instead of closed APIs which are controlled by single companies.
Then everybody can use whatever User Interface they prefer and everbody can come up with new User Interfaces any time.
The AIM/ICQ/MSN vs. XMPP world illustrates this principle. Even if someone supports the closed protocols with a multi protocol client, the support eventually gets deliberately broken by the controlling party.
Protocols are way more important than the currently popular implementation of it.
Hm, but only as long as the saturation of "computers" is increasing rapidly. If you were to focus on a developed country with good smart phone penetration, I think it's possible that the percentage of coders is increasing as old people die and young people take to new technology more readily. I guess maybe it depends on where you draw the line between power user/script kiddie/programmer.
I doubt this statement. The number of people that write code is bound to increase in the future, not become smaller. And that has (among other things) to do with mobile devices getting cheaper and more capable. And generally with further increase of automation / software complexity. And with more people that want to be producers instead of consumers in the computer age...
Then we can forget about windows/osx/gnome/kde/...
There has been over 30 years of research and field experience with the WIMP paradigm. The code bases (source trees) for the three most "popular" (most relied-on) desktop OSes are over 20 years old. (Yes, I know that the code base for Windows XP and later differs from that of Windows 98 and earlier, but the code base for XP and later, namely, the NT code base, is itself over 20 years old if you count the final 18 months or so of its pre-release development.) I concede that there is a good chance that iOS and Android and Windows Metro will eventually kill the desktop OS, but that is going to take another 10 years and probably significantly longer.
There is no inherent reason that people need to use a virtual desktop, remote controlled by a mouse. The desktop metaphors, overlapping windows, cascading menus, constant nagging popups, files and folders, hardware drivers, blue screens... all this stuff is a nightmare for average users. They are already abandoning the desktop model because it never worked very well.