5 ms·
You have to realize that MacOS, Windows, even typical Linux Desktop is not an optimal environment for a professional programmer, or for any other computer based
by hydandata 10y ago
You have to realize that MacOS, Windows, even typical Linux Desktop is not an optimal environment for a professional programmer, or for any other computer based job which involves a lot of writing, reading and maintaining flow state.
The reason is that these environments are designed with user-friendliness in mind. Now what does that mean? it means that stuff should be easy to find, simplified enough for somebody who is learning how to interact with the machine, trying to remember what, where and how. As a professional programmer you should not care at all about that. You are not a user, you are a frigging master of the computer universe.
You should care about avoiding unnecessary clutter so that you can focus easier, minimizing time from thought to action to avoid breaking the flow, about flexibility so you can adapt the environment to your personal needs and increase productivity. Erik Naggum nailed it long time ago [0].
You can have a tablet and do your non-work related activities there, iOS, Windows, whatever, but when you are working use your workstation! if you don't have one create it. You will be amazed by how much more productive you can be, how much happier you can be.
I use StumpWM, Emacs, Conkeror, Ergodox with a custom layout and blank keys, and a trackball. The only thing a "user" can do on my machine is move the pointer and pull out the power cord, but in my hands this thing flies!
[0] http://www.xach.com/naggum/articles/3065048088243385@naggum.no.html http://www.xach.com/naggum/articles/3065048088243385@naggum....
Edit: Let me be clear, this is my personal journey from Windows to MacOS and finally to a custom setup on Linux and the reasoning behind it. I certainly do not mean to preach.
I concede that thinking hard is and always will be the main component of professional work, but perhaps from time to time we should ponder what an environment could be like if it was made for professionals not for users. If we simply keep accepting what is available and let others think for us we will only get more of what Apple does and less of what might be best for us. We are not the majority of Apple users, and probably never will be, it is not in their best interest to put us ahead of them when making various decisions.
- mbernstein 10y agoYour preferences aren't necessarily optimal for others in the same way that macOS, Windows, and Linux may not be optimal for various people. Many assumptions about what a "real" developer is. I don't develop on Windows, but I know a few engineers that use Windows are some of the best, most productive engineers I've met. I went to college with one that's been at a few high profile places and live-streamed and his workflow is pretty amazing. As for me - environment is never the bottleneck for me when it comes to solving hard problems, and those are the problems I care about.
- hydandata 10y agoMy preferences are just that, yours should be yours. My point is that if you are choosing where to work, you should choose something that is optimized for your field of work and for your demands as professional, not a mass market solution which by definition cannot be.
- hyperpape 10y agoBut you didn't write "I" in your post, you wrote "you".
- hydandata 10y agoThat is a good point. Let me be clear then, this is my personal journey from Windows to MacOS and finally to a custom setup on Linux and the reasoning behind it. I certainly do not mean to preach.
- jokr004 10y ago> My preferences are just that, yours should be yours. I can agree with that, but your original comment strongly implies that your ideas about what makes a workstation should apply to everyone.
- Klathmon 10y agoI'd like to think i'm one of those windows devs. All the servers I work with are linux based, I wouldn't know the first thing about managing a windows system, but i'm significantly more productive in windows than I am on a linux workstation. I just can't seem to find a stable well-working linux workstation after years of trying. I end up spending more time fixing my display manager or messing with config files broken in an update, or farting around with driver issues and running the multiple screens than I do actually getting shit done. I'm now using windows 10. It works great. I have my 3 monitors, beefy hardware, and just about everything I use is cross-platform or web based anyway, so it all works great. Throw in git-for-windows so I have a linux-ish environment (at least a handful of the GNU tools and most of bash), and i'm happy as a pig in shit. (Yeah, I do know about the bash-on-ubuntu-on-windows thing, but it's not quite ready for me yet)
- nailer 10y agoWindows has borrowed a lot of the tiling concepts from nix WMs recently. I spend most of my time with 2 or 3 apps tiled (browser, Sublime, Conemu). Also the flat look of Windows compares well to the decoration used as default in Linux WMs - what purpse to the shiny bits behind all these icons serve other than making them look less distinct? http://cialu.net/images/apple-linux-desktop.png http://cialu.net/images/apple-linux-desktop.png
- GFK_of_xmaspast 10y agoAs a professional programmer, this is total bunk.
- awt 10y agoDid you read the Naggum link? He is not easily dismissed.
- scholia 10y agoHe does have a point. On the other hand, the two decades since he wrote that have been marked by "the consumerization of IT". Even before 1997, it was individuals rather than IT departments who first demonstrated business uses for PCs. I'm not taking a position on either side of this debate, just pointing to the trend....
- awt 10y agoI'm currently re-individualizing my personal IT. It is work, but I own the results and they won't be erased by the next minor os "upgrade."
- UnoriginalGuy 10y agoI did. It is just raw elitism. The ironic thing is that in 1997 there were many more, what they consider, "professional" programmers. Today most programmers are targeting the web, and therefore wouldn't gain anything from ultra minimalism. Frankly arguing for a enviroment so minimalist that it wouldn't contain a web browser is a non-starter for almost all professional programming jobs in 2016. And even for the few non-web development jobs that still exist (e.g. game development), you're still dependant on platform libraries in MacOS/Windows/Linux (e.g. OpenGL). Ultimately people can continue this course, but the world has already decided their argument is wrong since this environment doesn't actually exist and it has been almost twenty years. I personally don't know a single development job that would work in such a cut down environment.
- awt 10y ago
- alkonaut 10y agoI launch my IDE, and that is a customisable interface created specifically for developers. In my code/debug cycle it launches the desktop app I'm developing, (which is a user interface created specifically for another type of professional). I agree that ergonimics is important, especially in terms of hardware. For developers, hardware is screens and keyboards, and pointing devices. As for operating systems, window managers etc., I couldn't care less. I basically don't use the OS while developing. I launch one app and that's it. I'd go so far as to say that if my IDE would run on only one OS, then my professional machine would simply run that OS. And I'd be fine with it. If I'm using XCode today but Visual Studio tomorrow, I'd be happy to switch. The IDE matters, the hardware matters, but the OS not so much.
- hydandata 10y ago> I'd go so far as to say that if my IDE would run on only one OS, then my professional machine would simply run that OS My workstation is my IDE. Or as close to it as I can make it. > As for operating systems, window managers etc., I couldn't care less And we should not have to. So I personally go out of the way to rid my workstation of stuff that is not what I care about.
- alkonaut 10y ago> My workstation is my IDE. Or as close to it as I can make it. This is a point I have been making too: everyone has a "DE". Whether you integrate it yourself by tiling a text editor and a shell or two, or if emacs or Xcode does it for you doesn't matter. What matters is that when you are in your development environment - it's free of distractions and promotes your workflow. When I launch an IDE, the IDE is now my window manager. I never need to leave it. Just like your OS is your development environment, the equivalent is that my IDE is my "OS" for doing work. And by the analogy that you don't want unrelated crap in your OS - an IDE is often created only as a tool for professional development. So that's why I don't care if my OS looks cluttered behind my IDE, or if it comes with 100 apps I don't need. It's exactly as if your development OS was a VM running inside any other OS. When you are developing, you would not care what the host OS was.
- 10y ago
- awt 10y agoOut of curiosity where did you first hear of Naggum? My route to his threads was a bit circuitous. His work as extended my career, to say the least.
- linkmotif 10y ago> You are not a user, you are a frigging master of the computer universe. Great line and great comment. I've seen people like you and it's always remarkable to watch. Some day when I have time I hope to spend acclamating to this type of environment. For now my best approximation is tmux/Vim.
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- lobo_tuerto 10y agoWhy can't I have my cake and eat it too? I really like my development environment in Ubuntu. I like the power user stuff + desktop user friendliness in one place. And I tried to like OSX, I even bought a MacBook Pro Retina, used it like a year or two but ended installing Linux on it a couple of weeks ago, heh.
- deleted 10y ago[deleted]
- Aaargh20318 10y agoThe reason I, as a professional programmer, use macOS is exactly because it's user friendly and gets out of the way. I'm supposed to work on the code my boss is paying me to work on, not tinkering with some OSS project to get it just the way I like it. Basically, my OS needs to be able to launch an IDE, a shell and not bother me with irrelevant shit ('Windows just found an USB mouse...').
- hydandata 10y agoWhat I run today would have looked the same 20 years ago. How many times have Desktop Environments changed during this time? One has to constantly devote time to keep up with changes mostly aimed at typical consumers, and sometimes they are detrimental because they are aimed at the majority. Setting up something complex definitely takes time and has its cons but that time is definitely finite, I am not saying that I magically got to my setup, it did not take me a year either. And once it is yours, it is yours. Moreover, when the environment is easily extensible like Emacs and StumpWM are it is easy to mold them to a new task that lands on your table.
- Aaargh20318 10y ago> How many times have Desktop Environments changed during this time? This is one of the nice things about macOS, every update is just a small refinement of the previous years OS. Most of the time when you update to a new major release you have to go looking for things that changed. Sure there may be new features but many of them you only notice when you dive deeper into some of the functionality. The basic desktop is still the same.
- markatkinson 10y agoMy Ergodox arrives tomorrow. A little nervous but keen to migrate from a Microsoft Ergonomic to a mechanical with programmable and macro combos.
- hydandata 10y agoNice! I learned to touch type two years ago, and I still practice from time to time. Here is what switching to Ergodox from Model M looked for me https://postimg.org/image/i2791e2fn/ https://postimg.org/image/i2791e2fn/ hopefully it will be easier for you :) I should add that after mastering it I type way faster than before, with better accuracy and also have no pain while doing it. Ability to easily tweak the layout is awesome. I use home row shift f.e. and it is super comfortable.
- eva1984 10y ago> You have to realize that MacOS, Windows, even typical Linux Desktop is not an optimal environment for a professional programmer It is pretty subjective though. And what you can create is pretty much irrelevant to what platform you are using, it more about your brain.
- jlg23 10y ago> You have to realize that MacOS, Windows, even typical Linux Desktop is not an optimal environment for a professional programmer, or for any other computer based job which involves a lot of writing, reading and maintaining flow state. I had to do professional sw-dev work in windows and osx environments. Both are not primarily aimed at sw devs, but can easily be coerced to be almost as efficient an interface as any unix. I still prefer my fbsd with evilwm, but the alternatives are not this bad.
- sidlls 10y agoI'm a programmer, and I get folks to pay me for doing it. I reckon that makes me a "professional" (for some value of "professional"). The kinds of programming I do: 1. Machine learning 2. Distributed infrastructure (systems programming type stuff--message queues, data pipeline services and such, for example) 3. Scientific computing 4. Game development You know what "environment" I find suits me just fine? A terminal window with a combination of some muxer (e.g. tmux) and emacs, in the default WM/GUI environment that comes with whatever flavor of Linux I'm working with. I don't need a lot of extreme tailored environment to do my work and be efficient at it. I also don't think I'd care one way or another whether a "user" could use my laptop or not. It wouldn't be a point of pride for me if they couldn't, or if they could. I simply don't care.
- deleted 10y ago[deleted]
- GrinningFool 10y agoI'd heard of neither StumpWM nor Conkeror. The WM looks like almost exactly waht I've been trying to find (currently using Awesome... it works for me because I know it well, but it breaks in weird ways too). How up-to-date is Conkeror in terms of handling "things most modern websites use"? In any case, thanks for posting this - it gave me some more things to look at.
- tnones 10y ago>you are a frigging master of the computer universe. Strange because this is exactly why I love OS X. Because it's empowering and gets out of the way. For instance, it's the only OS where multi-touch gestures for desktop/window management works instantly and controls everything as I'm doing it. A common thing to do is to select some objects on one desktop, click and drag them with the trackpad, then swipe with 3 additional fingers to move to another desktop, before dropping. It just works. The browser works like a tablet and I can zoom and pan and navigate back easily. The OS is smart enough to reposition all my windows to their previous location when I unplug and replug an external monitor, instead of giving me a bunch of cropped apps in the corner. Renaming or moving a file makes apps pay attention and save to the new location. Preferences apply just by changing them, labels and controls everywhere update to track underlying changes, every listing is live. I can instantly preview anything with a spacebar tap, without losing keyboard focus on the finder window I was working with. Even the little icon in the titlebar of a document window is interactive, letting me drag a file I have open to a new place without making me go find it again, or right click it to get a dropdown menu to all parent paths. Plugging in devices and drives, managing audio inputs and outputs, managing network interfaces and VPNs, backing up to external devices, it's all right there and instantly accessible, without 3 layers of legacy control panels or a bunch of config files to go dive through. All of these things preserve my flow state by letting me manipulate the objects and the state of my desktop without having to make a chore out of it, by acting exactly like the natural and traditional objects around me. When I turn on the light, I don't open the "light preferences", click a checkbox and hit "Ok", I don't go edit /etc/light.conf, I just switch on the light. Why "professionals" think it should be any other way keeps amazing me, but then, I recall a study a while back that said that when it takes a lot of small steps to perform a particular task, it seems faster, even if it actually isn't.
- st3v3r 10y agoI'm sorry, but I cannot agree with your point. A professional programmer should not value things being easy to use? What kind of fake machismo bullshit is that? I should want to take the hard way every time I do something?