… Apple may be replacing the top row of the MBP keyboards with a a context-aware touchscreen, and y'all assume somehow that this means they're getting rid of ALL of the fn keys?
No, you're still gonna be able to dim your screen and mute your speakers and yes cancel modal dialogs.
It's a political thing: if they replaced Caps Lock by Escape by default then emacs users would scream murder. If they replaced it with Control then vim users would probably start looting nearby stores.
And thus, the status quo is maintained.
But seriously, like with almost everything keyboard layout-related it's just there because people are used to it.
One of my favorite things: map caps to escape on tap, and control when used as a modifier. I've got it set up that way on my linux machine and it's amazing. I'm sure you can do it on OS X with Karabiner or something.
I'm still surprised when I see people using caps lock instead of shift for typing a single uppercase character (This being the keyboard peckers who still use one finger for everything).
The fact that you haven't had it enabled for years is probably why you can't understand its usefulness. It's just not part of your workflow because its not available. It does in fact provide a lot of value. As an example, entering uppercase alphanumeric codes is annoying without capslock (switching from holding shift for uppercase letters to remembering to let go of shift to enter a number really slows down entry).
That's not really an example of why something in all caps is useful, though.
The only time I've seen anyone using caps lock is in a call center where people think it's the proper way of entering data into a form (my opinion is it's totally not).
I see this sentiment all over the internet but I don't really understand it. Not trying to be snarky but can you explain why you want the caps lock key gone?
I know personally I don't use it too often, but it's nice to have if I want to type in all caps which happens occasionally. Holding down shift with a pinky for a anything more than a few key presses can be a little uncomfortable so I appreciate the caps lock key.
You can have the best of both worlds with Karabiner. After remapping caps lock to Control, you can add a Karabiner setting to send Escape when you tap Left Control. Holding caps lock in combination with another key will still act as ctrl-<key>
I tried mapping jj to esc, but even after a few days I couldn't really get used to it. Always drove me crazy when it would switch modes when I just intended to type 'jj' as a variable name in loops. At least it got me to use more meaningful names!
Your latter suggestions are brilliant, I'm going to steal them right away.
If you like the space bar leader you might want to try spacevim or something like that. (I switched to spacemacs and I love it... Vim is a great style of editing but the plugins are bad and feel broken and half assed. Spacemacs fixes that by combing the best of vim with the best of Emacs. That feels dirty to type but it's true.)
One of the screenshots shows function-like buttons. I'm assuming you'll be able to map spaces of the OLED strip's screen to arbitrary keys. Also I'm sure that, given some time, you'll be able to have ESC show up only when macvim/term is in the foreground :)
I have a setup on my work computer (windows) where capslock is control when pushed in combo with another key, and is escape when pressed and released on it's own.
People replied with some ways to do it on mac, but I haven't tried yet.
I've heard of this before. Do you have to hit some sort of modifier to get them? Does that not make indexing arrays extremely annoying, or is it really not that big a deal?
To be fair, () are more common than [] in most programming languages, and you need modifier keys to get () for most keyboard locales. Yet not many people complain about ().
In the German Mac keyboard layout, brackets [ ] and curly braces { } need the ALT modifier. “[” is ALT + 5, “]” is ALT + 6. You get used to it. With smart editors, writing “[” automatically creates its counterpart “]”, same for curly braces, so the typing effort is kept within limits.
(I have never used a US keyboard layout. Maybe typing programming symbols could be so much easier and I have never experienced it.)
I don't think it's a huge difference. Both () and {} require shift modifiers on US layouts, and they are both used extensively in most programming languages, far more than [] and nobody seems to complain.
Actually, there is, because indexing elements in arrays is a fairly common operation and when I use a US layout, it's so much easier. In fact, a lot of the contortions we have on EU keyboards are a pain to go back to once you've gotten used to a US layout, because there are decades of lore and history around US-layout TTYs that influenced programming language designs.
I've been touch typing on Programmer Dvorak for more than a decade. If you type programming symbols all day long it's unbeatable: http://www.kaufmann.no/roland/dvorak/
It's annoying as hell. {} is even worse though, shift-alt-8/9 iirc (I've moved to a US layout years ago precisely because of this, and haven't looked back)
Or you know, they won't not buy one. I really don't get the appeal of Macbooks for developers, the price tag is quite heavy compared to the specs one gets.
Because macs offer UNIX environment which is great for Devs, but also a full-featured UI with lots of high-end commercial apps (and good audio engineering) which is not as easy to get in a Linux laptop. And, the support and ease of using the system is appealing compared to the more hands-on approach of maintaining a Linux distribution.
Plus they are quite dependable hardware overall, and lots of easy OS updates.
I have several Thinkpads running *BSD and they are great and all, but at the end of the day I gotta use Skype and the Office suite for communicating with clients so I default to working with macOS most of the time.
UNIX + great desktop support and apps + pkgsrc offers an unmatched experience depending on what you work on.
I spend 90% of my work hours developing on a Mac. I have reverse engineered dozens of Cocoa libraries to get my apps working, because of insufficient documentation. I have dug into the XNU source code to find out why things are happening.
Say what you will about Windows, but I don't have to spend hours debugging random out of memory reads causing kernel panics in the OpenGL drivers on that OS. (For example, calling texture2DMS in a vertex shader on anything other than the first row of a texture reads from random memory; still not fixed as far as I am aware.)
I do live in the terminal, and I couldn't be happier with Bash on Windows. I use the XFCE terminal connected to a local X server and it's the same experience I get on Linux.
Nowhere near the same. Last I checked, Microsoft kinda put it over in the corner, where it can be it's own little thing, but not a first class citizen of the system like UNIX is on macOS.
That isn't what the parent's claim was about though -- the claim was "first-class" citizen.
I'm well aware of homebrew and the like having used it myself; I still think the current situation is now better on Windows than macOS, which is bizarre.
Except that so many platforms just don't work well under Windows, and if you use languages like OCaml with OPAM, or other incredible tools like Elixir or Erlang, you can expect hiccups. You can get them working, but you have to do more heavy lifting [0]. In some cases it took the maintainers of major packages years to get them working properly on Windows because of its strange environment compared to most of the rest of the industry, and these tools are often still unstable. Which is why so many developers who choose to use Windows usually have a duel boot or VM into Linux, which is an extra layer of inconvenience a lot of the time.
I used to work on Windows only and had a VM, for 2 years this was my daily workflow. When I finally just switched to Mac, it was amazing how much more time I felt like I had during the day to spend on my real work, how fewer VM issues I had to deal with, and just enjoy working on the native OS.
Except we weren't talking about Windows -- we were talking about *NIX stuff, which implies the Windows Subsystem for Linux.
I won't claim it's fully there yet, but given how macOS is these days, it will be more stable very soon.
Ask the Go language team how they feel about all of the little breakages in various syscalls/apis that Apple introduced.
Ask graphics programmers how they feel about the lack of modern OpenGL.
Pretty soon Windows will be a far more compelling development platform than macOS (unless you have to do Apple development of course, but then there's always Visual Studio for remote development for some Mac/iOS things :-P).
> Except that so many platforms just don't work well under Windows, and if you use languages like OCaml with OPAM, or other incredible tools like Elixir or Erlang, you can expect hiccups.
I disagree. I listed several issues with XNU's implementation of POSIX above.
A large portion of the WSL complaints are around the lack of inotify. You know what other system doesn't have inotify either?
Another example is ptrace(): on XNU, it doesn't work; you have to use Mach instead. On the other hand, Microsoft went to the effort of actually making ptrace() work properly. This has actual user-visible ramifications: gdb works great in WSL, while it works not-so-great in current versions of macOS. strace works fine in WSL, while on Darwin you have to use the heavily underdocumented dtruss.
Syscalls are underdocumented in macOS, so Valgrind doesn't work well; it constantly breaks on OS updates. On the other hand, Valgrind works great on WSL as long as you compile from source. A lot of this is because Linux has a stable and documented syscall interface, unlike Darwin.
Well, I don't use Windows any more so I cannot speak from personal experience on the matter. But in my free time I experiment heavily with new platforms and languages, and as I'm working through support forums, freenode, blogs, there is a tremendous amount of noise from fellow experimenters trying to get something going on Windows [0]. Perhaps the really smart folks out there don't have this problem, but for the average joe blow developer who just wants to have some fun exploring technology, it is very obvious that things just go a lot more smoothly when installing and compiling and running various platforms on OSX compared to Windows. There is rarely any difference between the OSX and Linux steps to get all setup, while the Windows steps are often a non-trivial obstacle for the average developer. And many environments carry disclaimers about known issues on Windows that can affect operation. Even WSL often needs to be patched just to support a platform that works fine on OSX. Or we hear, "you can do this better in the next version of WSL..." sigh, that's not what most people want to deal with.
You are perhaps well above average and so these issues don't affect you. But that doesn't help everyone else who struggles in the Windows environment for things that prioritise Linux/OSX.
[0] Heck, even one of the principal Clojurescript developers doesn't even support Windows, he just asks for patches from Windows users who managed to figure out how to get something working. That is not an isolated attitude.
I cannot disagree with you enough. Last I saw, you cannot interact with the rest of the system from Windows bash. I can install Sublime Text on my Mac, and launch it from the terminal, for example. I can't do that with the Windows system.
It's actually entirely similar to the way BSD is grafted onto Mach in Darwin.
lxss.sys is a much better implementation of POSIX, honestly. In WSL I've never had to deal with incredibly broken stuff like ptrace(PT_CONTINUE) panicking the kernel from untrusted userspace with "TODO" messages (I wish I were making this up) or having the kernel close file descriptors sent via sendmsg() in flight if the sending end of the Unix socket is closed in blatant violation of POSIX.
Not actually much more expensive than other comparably-high-quality laptops.
That glowing Apple on the back means you won't be personally blamed if something on it fails to work—say, if your wifi decides to cut out every five minutes due to a quirk in a particular hardware pairing, or it doesn't like a certain projector and refuses to work with it, and the meeting at your client's site ends up being more about your broken shit than the client's needs. If your $500 Dell running Arch and covered in penguin stickers does that, you might be personally blamed for it, and/or the quality of your judgment and competence might suddenly be on everyone's mind.
- many ports so you can utilize the pro-ness of it w/o a dock or another extension (my micro-sd card is about as large as my ssd)
So half of the reasons I bought are no longer present or not really applicable because equal or better apps are now on Windows.
I get it, they want to add all these cool features, but based on the rumors I have heard (and their 'updates' since 2011) the 'Pro' Macook is getting less Pro with each release. Thankfully, my laptop has held up quite well and I primarily use it for dev, so I'm hoping it will hold up for sometime so I can continue working on it...but I don't see the advantage of paying $1000s for what amounts to a more powerful 12-in Macbook. Better to buy a mini (specifically for iOS dev) and a laptop that isn't a beefed up consumption device.
Actually, the Apple hardware and specs are usually better than you can get in a comparable Windows laptop for the same price.
The Windows machines are cheaper right now only because Apple has gone two and a half years without updating the Macbooks Pro without lowering the prices. Apple does awful things like that sometimes so you have to be careful about what you buy, but you have to be careful with Dell and HP and Lenovo also, so that's not really different.
But try finding an equivalent 3lb, silent, big glass reliable touchpad, extra long battery life, solid reliable build, color corrected retina screen laptop with similar specs to the new Macs next week and you'll find Apple has the best prices in the market as usual.
---
Plus, as others have mentioned, UNIX is like a smooth creamy dream compared to the droning misery and shocking horrors of Windows.
You might want to tell Apple, they think they released it in April 2015.
Meanwhile as best I can tell, the Dell was out in August of 2016.
I have no horse in the race. I'll be upgrading my Mac with another Mac. But it's not Dell's fault Apple has been neglecting its entire computer range: over a year since the last iMac bump, 18 months for the MBA, 2 years for the Mini and nearly 3 years for the Mac Pro (I love how they're still charging full retail for the Pro components, or worse, $280 for 64GB ECC, but $1200 from Apple).
According to Everymac, the following changes were made:
- CPU went from a i7-4578U to a i7-5557U (Haswell to Broadwell)
- memory was upgraded from 1600 DDR3L to 1866LPDDR3
- SSD was given extra lanes of PCIe
- Iris 5100 went to Iris 6100
- Force Touch - "more advanced", not cheaper
- Battery life improvements
In fact the summary is that "internally, the 13-Inch "Mid-2014" and "Early 2015" MacBook Pro models have little in common except that both have soldered memory, "blade" SSDs, and batteries that are glued in place."
One gets a hardware-compatibility-guaranteed unix workstation. There really aren't many cheap options for that. If you want to suggest an unsupported linux laptop, I can suggest a hackintosh.
Decent tradeoff of ease-of-use and "just works" factor with unixy tools. Not as good as Linux for the latter (which in turn may not be as good as BSD, depending on who you ask) but way better for the former.
- nice extra features if you have an iphone like iMessage
- can develop apps for android and iOS without janketyness
- can develop for Linux/Windows/Mac
- some don't play many games anyway on a dev laptop
I think it's nice to have the development flexibility. i like being able to start coding anything possible because you never know when an idea may need a quick prototype.
If I do need macOS, don't want to jerk around with hackintosh in a VM.
My experience the last few years has been that Linux works good enough on most laptops but that there are some rough edges. Everything works, but the laptop will only go to sleep 50% of the times you close the lid or the display brightness will automatically drop to 10% when you leave the laptop for 2 minutes and not go back when you start using it again or the wifi will drop for half a minute every 30 minutes.
Nothing dealbreaking really, just annoying. But I don't experience these kind of things when using the OS the laptops was shipped with (OSX/Windows) and would love to see more Linux certified hardware like Dell's XPS.
Running Debian Unstable on a 2008 Macbook 4,1 and it's working quite well. The GPT partition was a bit tricky, but after that all has gone well but the camera, which doesn't work without proprietary firmware from yonder the repos. It's pretty cool to see an 8-9 year-old laptop with good battery life and reasonable performance. First time I ever fussed with a Mac and I'm glad I did. Also, I totally nixed the Mac OS partitions, for single boot.
I can't find a great windowing environment still, mind sharing your setup? For me, quartz is still light years ahead in the quality department over things like gnome and kde, though some of the new work on wayland wms looks promising