I'd agree. This is the sort of stuff that lead to me dumping my MacBook in 2009.
I found that most of OS X worked pretty well and the UI looked good, but when it came down to actually being consistent and productive, it fell over pretty quickly. There were a lot of nuances and rather basic problems which got in the way of literally everything I did from my iPod not playing certain mp3s (very frustrating!) to import and export problems in iWork, automator deadlocking, iCal losing data, Mail sending emtpy messages.
I had some hardware problems as well (not charging and cable fraying after about a month) and while they dealt with them instantly, they shouldn't have occured.
Not a great experience. I've switched to Lenovo and Windows and everything pretty much just works.
Windows 7 really does just work. I don't know why more web developers don't try it when files are usually stored/executed on a remote Linux server anyway. The Lenovo X1 Carbon is a great example of a solid device.
WAMP is a pain in my ass. If I have to do my dev work in a VM just to get my dev environment to somewhat match my deployment environment, that's a problem. MAMP for web development is where it's at, or LAMP if you can swing it.
Did I ever say to use WAMP or run a VM? I said to run everything remotely. Just set up a Samba share on the Linux server and mount it on the Windows machine. My SSH client of choice is KiTTY[0], though there are obviously a million options out there.
Then you can use whatever editor you want. I usually use Notepad++, but Vim, Sublime Text, etc. are available.
That's still less convenient than working locally. Working locally, I can hit one key combo and be previewing my changes in the browser instantly. Not to mention being independent of a net connection to develop.
> Working locally, I can hit one key combo and be previewing my changes in the browser.
Something I can do as well. Local vs. remote plays no role here.
> Not to mention being independent of a net connection to develop.
This is true, but seems like an edge case to me. Wifi is available pretty much everywhere you spend significant amounts of time, and a mobile hotspot is a must if you're a mobile developer anyway.
Besides, I'm always looking stuff up while coding, so I need the connection anyway.
Truth about needing the net connection anyway; I was reaching on that one. I guess I could add a remote staging server to my setup, which is a non-issue, and I'd still push to the git master repo from my local repo.
So you have it set so one key combo from your editor saves the file you're working on, copies it to the appropriate location on the staging server automatically, and refreshes the page in the browser? That doesn't sound so bad actually; maybe I need to rethink my VM plan for Windows web dev, which turns out to be very timely for me.
[Oh, I see, you don't even keep a local copy; you edit the remote copy directly. I wonder if the Github client for Windows can watch a remote dir.]
Even if I were using a Linux or Mac development machine, I would still have/want to develop everything remotely by mounting a network share, but that's just my situation/preference. Either way, I don't see it as a big deal. In fact, I think it's better to test the code on a remote staging server that matches your live environment than it is to use a local Linux/Mac setup that might differ from the live environment.
And yes, the remote files are directly edited. There's a volume (i.e., Z:\) on my laptop that is the remote directory I've mounted. I use Samba, but you can also use NFS by installing the necessary client software from Add/Remove Programs, if that's what you prefer.
I don't know anything about the GitHub client, so I can't help you there.
If I was on a Mac, I'd install OSXFUSE[1] and mount the server share through SSH. I must admit I'm a bit wary of poking an SMB hole in my server; maybe my fear is unfounded.
Sadly not all software is posix compliant, there's still tons of stuff that just doesn't work in windows without lots of painful work. For example, if you use nodejs, around 40% of the npm modules that use native code doesn't compile properly in windows. The only way to do development is to run a VM. If you're a developer, the only reason to use windows is if you're developing for windows related platforms, otherwise it's just a pain in the ass -- use linux on the laptop and run windows in a VM or use wine.
> I don't know why more web developers don't try it
I'll list my own reasons (beyond Linux "just working"):
- Unusable command line (unless you install Cygwin)
- Lack of tools (unless you install Cygwin)
- Case-insensitive filesystem (in 2012!)
- Drive letters (in 2012!)
- You can't delete open files (in 2012!)
- It's ugly - Windows 95 GUI elements often poke through everywhere
- No package management - I have to download software from sites all over the web
- If I'm deploying on Linux (or other Unix) why deliberately use the most different OS possible
Don't get me wrong. If you are developing for Windows or other Microsoft platforms, there is nothing better than Windows to develop on. It's just that it doesn't make sense in any other case.
Most of these things don't matter if, as I already explained, you just mount a network share from a Linux machine and edit the files over the network.
What are the advantages? You can test all browsers, including IE.
> - It's ugly - Windows 95 GUI elements often poke through everywhere
Not in Windows 7.
> - No package management - I have to download software from sites all over the web
What sort of software are you talking about? I don't have any development tools on my local machine except for Notepad++ (text editor) and KiTTY (SSH client).
> - If I'm deploying on Linux (or other Unix) why deliberately use the most different OS possible
To the contrary, I'd say it's the most similar OS. Windows will be the OS used by the majority of your site's visitors. They will be accessing the site from a Linux server, which you will be also be using, for development.
Your approach sounds dangerous: if your development machine is shared, how does your team manage versioning and avoid conflicts? How do you test individual changes? If your development server is yours only, I fail to see the point: your real development machine is the remote one and your Windows box is nothing more than a glorified VT-100.
> if your development machine is shared, how does your team manage versioning and avoid conflicts? How do you test individual changes?
Of course the machine is shared, but our development workspaces are not. We all have separate accounts on the staging server. The idea is that the staging environment is identical (in terms of software) to the live environment. Of course, we would have to coordinate any sort of hardware stress testing in order to get accurate results, but that's a rare edge case and would be true even if you were developing locally (since stress testing on the local machine wouldn't give useful results).
> If your development server is yours only, I fail to see the point: your real development machine is the remote one and your Windows box is nothing more than a glorified VT-100.
Oh come on, don't be obtuse. The reason I use Windows is because Windows 7 is a genuinely good OS that helps me to be productive. The UI is well-designed and I have direct access to all the various browsers I need to test sites on. I have good text editors and SSH clients. I have a solid laptop with features that I desire (easily upgradable, TrackPoint, much more durable than a MacBook). The only downside is that Windows comes filled with bloatware, but that's a matter of just installing a clean copy of it.
Your constant mentioning of cygwin tells me its been a long time since you've dipped your feet in microsoft OSes. Windows 7 has an extension called Subsystem for UNIX-based Applications (SUA) that basically makes a full POSIX compatible layer and a full shell (and you can install all your GNU tools).
I think they pulled an OSX and embraced and extended to deny cygwin their market. Typical. But whatever you think about the strategy, SUA works really well.
At a mini-conference I attended recently, I noticed that practically every speaker with a Mac was having a hard time getting their computer to play nice with the projector. The PC users were not having this problem.
I'm still quite happily using both, but OS X has been spiraling downward and Windows has been spiraling upward for a while now. I wonder if I might find myself thinking back on that conference as the moment when I realized that one overtook the other.
It's pleasing (but also frustrating) to see that there is still some back and forth between different OSs.
Dual monitor is something that really really should be a solved problem.
Many developers use more than one monitor. Many professional (with big budgets) customers use more than one monitor. Multiple monitors make great sense for many people and many user interfaces.
And yet sometimes it's a hideous kludge. randr, xrandr, etc are for most people impenetrable gobbledygook. You've seen people struggling to get modern computers working with projectors. People on HN often mention the frustrations of weird behaviour with multiple monitors.
Apple should stop making their own productivity software as it is pretty poorly done. Mail is OK, but I would not recommend anyone to use it. I works is probably some of Apple's weakest software. They should really just retire the suite.
The three components to "I works" (or iWork, as it's more commonly known) are now sold individually through the App Store. And they vary in quality from poor to excellent.
Keynote is probably the best presentation software available on any platform, in my experience.
Pages is the word processor and page layout tool. It's just OK for light word processing but pretty good at page layout.
I haven't used Numbers much, but apparently it doesn't provide the advanced functionality offered by Excel. But I certainly prefer it to the Google's web-based spreadsheet tool.
I actually agree, I don't use Numbers often, but it does whatever I need for basic at-home use without a hitch.
In Numbers' case, I was going by claims I've heard from Excel power users, who say it lacks Excel's advanced functionality. I edited my original post to reflect this.
I have no idea what is wrong with Mail or why you wouldn't recommend someone use it.
Mail was Steve Jobs' baby ever since NeXT, and it was built to be used (and useful) internally at NeXT/Apple. It's the best mail client I've ever used, in a sea of extremely poor mail clients.
On my Macbook pro:
Mail is horribly slow with my 5gb of Gmail. And searching in Mail is even slower and worse, unreliable.
I have had better luck with Sparrow, but even that has its bouts (its slows down all of a sudden and then comes back, which makes me suspect its doing some background compaction/garbage collection).
Even though I am no longer a huge fan of the Gmail web interface, it still works the fastest.
And the converse is true too. Any properly designed PPT or ODP fails on other office suites, because you just designed it with stuff that is implemented either differently, or absent.
Then I might as well use the best tool available to me, and that's Keynote, hands down.
If one collaborates to produce a presentation across suites, you should focus on content and use the common denominator, which works perfectly fine. If it's distribution problems, well, sharing a presentation is always lacking. Slides by themselves miss most of the content. Anyway, Keynote has an interesting export system which creates an MPEG 4 video with chapters and stop points. That's the only way to produce a result with 100% accuracy (unless you design your slides in HTML5).
Sure. Why do you expect that to work? The import/export is obviously only for emergencies. You should never try to integrate it in workflows with other office platforms. That's true for every single office platform. There is no way around that.
Ok, then it's not for you. Simple. LO is an Office clone, something iWorkdoesn't even attempt to be. I don't want iWork to be an Office clone. LO sucks because of that. (And import/export is far from painful.)
S/he switched, so it was not for her/him. S/he spent some money on things you kinda expect to work, s/he may have the go to say why s/he switched and paid the price for not knowing beforehand, literally.
Sorry but what does OSX have to do with your iPod not playing MP3s ?
And I don't really understand why you think your anecdote is relevant considering you switched 3 years ago to Windows Vista. Which lets be honest was universally recognised as not being Window's finest release.
I don't understand the hate for windows vista. I used it happily for years; XP didn't work on my motherboard. It was basically windows 2000 with a stupid skin on top, but so was XP.
Vista was such a clunky OS, a transition between XP, which was snappy but required lots of configuration, to something that worked well from the start (Windows 7). That's why I am not touching the next Windows OS, it's another transition and to me an OS should be virtually invisible, not a nuisance.
I can tell you from personal experience that there are many concrete reasons to dislike Vista. My family runs a small business out of the house and I was the go-to tech guy for all the laptops in the office. This can't be anything but anecdotal, but all the time that I spent trying to figure out how to configure things, how to explain kludgy "innovative" interface quirks, and in general dealing with a beast of an unresponsive OS? I do not believe for a second that that time was a result of some bandwagon hatred.
The annoying interface that gets between you and diagnosing internet problems (beyond the 'giant X on the line between you and "internet"' diagnosis) was frustrating. Ok, I get it, I'm not on the internet. Where do I go to get more information so I can start diagnosing it?
For the sake of 'usability', Windows Vista hid a lot of functionality behind 'ease of use' features that served only to provide the user with less information, making tech support more difficult for no real benefit. Users still have no idea what's going on, but receive no error messages that indicate why.
Vista also added helpful features like the whole 'Let Windows find a solution!' concept, which is great in theory but, in my limited, anecdotal experience, has never once actually provided any sort of solution. The closest I've seen was yesterday, when Windows 'found a solution', tried to implement it, and failed.
They spent a lot of time and engineering making a 'usable' OS on the surface, but all it was was a pretty sheen over top of an OS that didn't, at its core, work significantly better in a lot of areas.
Windows XP was an OS I disliked strongly, but tolerated grudgingly. Windows Vista was an OS I actively discouraged people from getting. Windows 7 is the first version of Windows I've ever recommended people upgrade to, but Windows 8 looks like another step in the wrong direction.
Imagine if Apple released the iOS device, but the UI responsiveness was like Android pre-jellybean.
Sure, Vista works (and had for many many people), but XP set a responsiveness standard that Vista did not meet - and to be honest there were real, major issues pre SP1 (file copy crawling while music playing was the most egregious).
Meanwhile, Apple was slowing getting better and better with OSX, and right around that time, the Linux-powered netbooks first hit the stage and were quite good for the time and price.
Thanks to DWM (the compositor) in Vista, if you had decent enough graphics card, it was way faster than XP. Most of the UI issues were either that the GFX card was crap or the classic theme was enabled.
Vista was from a technical point of view, like going from MacOS9 to OSX...
They introduced a new kernel transaction manager, entirely new audio subsystem, new scheduler, new network stack, SxS, UAC, new display driver model, entirely new graphics stack, new power management stack, new crypto API, a whole load of new fonts and a proper stable 64-bit environment.
iTunes is the only mac application I ever tried to use (~5 years ago). That program is a joke. How you can make a program with so little features so complicated to use, I can't fathom.
It boggles my mind that iTunes is as bad as it is. As the main interface between users' desktops and Apples' iOS devices (their cash cows), it should be extremely refined, polished, and usable. Yet it remains bloated, unintuitive, and slow (and I'm on a Mac. I've heard it's much worse on Windows).
They keep trying to push the Album Cover view, yet flipping through hundreds of album covers is an idiotic way to navigate a large music collection. Ping seemed like a half-baked idea destined to fail, and its iTunes integration was so poor. At least they're cutting their losses and yanking that.
I'm not aware of a better alternative though. What program to play, organize, and upload music to your devices do you recommend?
Slightly related anecdote: A number of years back (at least five or six) I noticed that if you made a smart playlist with a time range constraint the "max" time would increase by one second each time you edited/saved the playlist. I sent in a little bug report (through an iTunes feedback form on their website).
Right now I can't check whether the bug still is present in the Mac version, but I can see it still exists in the Windows version.
I may be biased cause I've been using iTunes since I can remember, but it doesn't seem complicated to me.
I've tried a lot of stuff, but nothing can manage well libraries over 10GB. There may be alternatives now, I haven't really looked for one in years (as I said, works for me and I like it).
To be fair, ID3v2 is a ridiculously complex and over-engineered "standard". It reeks of second-system syndrome, despite not being created by the same person who created the original ID3 format. What was needed was a basic key-value store. What was delivered was a custom container format with an over-complex frame system, a bunch of redundant frame types, an unsync scheme, etc.
iTunes is hardly the only software with issues related to ID3v2 reading/writing.
I found that most of OS X worked pretty well and the UI looked good, but when it came down to actually being consistent and productive, it fell over pretty quickly. There were a lot of nuances and rather basic problems which got in the way of literally everything I did from my iPod not playing certain mp3s (very frustrating!) to import and export problems in iWork, automator deadlocking, iCal losing data, Mail sending emtpy messages.
I had some hardware problems as well (not charging and cable fraying after about a month) and while they dealt with them instantly, they shouldn't have occured.
Not a great experience. I've switched to Lenovo and Windows and everything pretty much just works.