20 ms·
From Mac to Linux: Web Development with Linux
- marktangotango 10y agoThe apt-get install for damn near anything is a big one (for Debian based distros obviously) in my opinion. I think the access to build tools and packages is big too. I had case recently where I needed to make a one line change to an Apache module; wget the source, make the change, configure, make, make install, exactly the same as on the prod server. Unfortunately the author delves into text editors, which can be flame inducing.
- Yaggo 10y agoHomebrew comes pretty close to apt-get on Mac. Of course the whole OS being open source & community driven (sans driver blobs) is nice thing, althought benefits are mostly idealogical than practical. The argument "dev env == production env" is overrated IMO, because you typically want more conservative/controlled production environment anyway and/or you may prefer different distro for workstation use. For serious use you anyway need proper test environment etc. Editors are editors. (Vim being slower on Mac is hard to buy, unless the author refers to some non-commandline variant.)
- Veen 10y agoMacVim can be a little laggy on rare occasions, but that doesn't impact it in the terminal.
- Latty 10y agoI ran a Macbook Pro for a while and found Homebrew to be a really poor imitation. I had a lot of issues with it (broken packages, manual intervention required, etc...), things didn't seem as up to date as I'd expect, and the range of packages was poor. It was also only usable for a small subset of the software I'd want.
- recentdarkness 10y agoWell TBH, I did go the other way around and I have to say that the advantages of MacOS are for me much more worth it. All what the articles says I do achieve simply by using docker and I have all the nice integrations around. I can have any target environment setup and switch between them in seconds. And since I can mount my code directories directly into the docker containers I don't need to do any complicated scp like deployments. Well, but in the end it's a matter of personal taste. I am happy where I am :-)
- andrew_shini 10y agoSo what is so much better on Linux than Mac? You can use nvm, etc
- pimeys 10y agoThe user interface. The package manager that handles everything. Not being locked to Apple's ecosystem, e.g. needing to install Xcode to get your CLI ecosystem working. Not having yearly updates that change everything. Using an open source operating system and not being bound to Apple hardware.
- konart 10y ago>Not having yearly updates that change everything Yeah, right. >not being bound to Apple hardware. Not an issue for years already, unless we are talking about some very specific hardware. PS: not trying to advocate for either of systems, worked on both linux (ubuntu, arch, centos) and macOS. Both have their share of pros and cons.
- adamors 10y agoI'm using a Hackintosh for 4 years now. It's definitely not true that one is bound to Apple hardware.
- mugsie 10y agoWell, from a legal perspective you are bound to their hardware. A Hackintosh is a breach of the EULA, and no company should allow one to be used for their development, as it can create a potentially massive liability for them.
- pjmlp 10y agoWhile true, EULAs aren't valid in many countries, regardless what companies wish for. Having said this, I also don't agree with using Hackintoshs.
- 10y ago
- _joel 10y agoWhilst I work with Linux on a daily basis and understand that `apt-get install {package}` is really handy, how does this change from a brew install? (granted brew is 2 commands extra to install if you include the xcode installation) Also, given the prevalence of various types of virtualisation - is this still overly relevant to the developer? (Genuine question, keen to understand how people work) I'm writing this now on a mac running vms for ubuntu (14/16.04) as well as OpenBSD. I don't necessarily feel like it's a blocker but understand we all work differently.
- trengrj 10y agoHaving the same environment on your local machine as on your target server is a real productivity saver and a good reason to use Linux. Additionally I've recently started using elasticsearch docker containers and I found Linux is a far better host than Docker for Mac (as it still runs a tiny Linux vm with associated slower disk access).
- digi_owl 10y ago> Having the same environment on your local machine as on your target server is a real productivity saver and a good reason to use Linux. And this is why MS has gotten all buddy buddy with Canonical.
- apeacox 10y agoYou can see the differences between linux and macOS when you consider your environment as a desktop workstation rather than a simple dev machine. I've switched from linux to macOS after 13+ years because, IMHO, the linux desktop overall experience sucks for everyday use.
- jameskegel 10y agoThat's interesting; what challenges did you run into most often?
- Yaggo 10y ago(I'm not your parent poster.) I made similar switch from Linux workstation to Mac workstation about 10 years ago. The biggest challenge with Linux workstation were hardware related issues: accelerated graphics / suspend-to-disk / battery life, etc. Too much endless tweaking. Mac offered "ready-to-use" solution with familiar unix tools & DE with virtual desktops. I guess the driver situation is now somewhat better but I'm now too accustomed to Macs & Apple ecosystem. No other laptop manufacturer can really compete with Apple in objective quality. No Linux DE feels "smooth" or polished enough after using macOS for long time, at least for me. In the end, almost all open source / "unix-like" software runs fine on Mac. Still it's difficult decision between supporting "the ideogically right choice" and enjoying admirable industrial design.
- apeacox 10y ago1) overall integration between desktop apps 1b) desktop apps availability/quality 2) drivers and support 3) With mac, I open my laptop and I can use it like a toaster, without thinking how to fix this or that issue after a software update bonus) iphone/appletv/ipad smooth integration PS (especially for downvoters): I've used linux since 1999, I have a sysadmin background, I used to build my desktop/servers from scratch or by using gentoo (that is almost the same), I wrote kernel modules. So I'm not afraid to tinker with a linux system down to the kernel details. Again I switched to macOS because I was tired of all those little issues that made my daily work a crappy experience (eg: why my Bluetooth device doesn't work today?)
- mugsie 10y agoI use a Mac, but just as a terminal to a Linux workstation. Unfortunately, I work in a place where we need access to Outlook (and its calendar), and Skype for Business / Lync. There is not really a good story for these things on Linux still (and I doubt we will ever see a Skype for Business for Linux), and even with Thunderbird + Exquilla, email is tough. That said, my laptop mounts my workstations home dir, and then I use iTerm's fantastic tmux integration to connect to the shell. (My personal PC at home is still Linux though :) )
- kondor6c 10y agoI use Outlook's webmail which has improved vastly compared to earlier versions. I'm not sure if Skype of Business supports their web interface, but you could give it a try https://web.skype.com https://web.skype.com
- mugsie 10y agoYeah, I used to use the web interface, but found it lacking, especially with meeting invites. Skype for Business has no web interface :( . I tried windows VMs, dialing in, mobile apps, 3rd party apps - but nothing was reliable / usable enough for daily use.
- iammyIP 10y agoIt's no surprise that linux is by far the best development system for everything, since it is not a consumer product, but a collaborative meta tool.
- fdomig 10y agoHonestly, nice if that works easy for you when using just developer tools on the terminal or a text editor. As a web developer, though, you might end up using more than that. A Mac offers so much more commercial applications that just do not exist on any Linux distribution. Gimp is no replacement for Photoshop and Inkscape is not replacement for Illustrator, ... Btw, mostly everything you install with `apt-get` can be installed with `brew` as well (MongoDB, Elastic, nvm, etc.).
- pmontra 10y agoAs a web developer I never had to use Photoshop. A graphic designer does that for me. Gimp or anything way less powerful is enough to crop the images I receive. The same goes for Illustrator. A much better example would be the native clients for GitHub or tools like those. I use the web ones and I'm happy with them.
- Freak_NL 10y ago> Gimp is no replacement for Photoshop and Inkscape is not replacement for Illustrator Nor is Photoshop a replacement for the Gimp, or Illustrator a replacement for Inkscape. They are not cheap clones forever playing catchup to the commercial packages, but mature tools in their own right. Sure, the FOSS tools might miss some of the advanced features the proprietary tools have, but for web development both of them offer plenty of features — and they are free to boot! Whether or not one can replace the other is mostly a matter of what you are used to. No alternative is going to satisfy you if you've intensively used Photoshop for a decade.
- contingencies 10y agoDefinitely. I prefer Illustrator for multi-page documents requiring irritatingly precise typography, and Inkscape for SVGs. Although I pretty much mastered Photoshop perhaps 20 years ago, I've gradually come to loathe it and happily use GIMP or Darktable instead.
- laurentdc 10y agoHonest question, why should a developer need Photoshop and Illustrator? I thought .psd mockups and HTML slicing were a thing of the past, and vector work (logos, etc) should be done by a graphic designer. Not to mention most icon/graphic assets can be provided by Bootstrap or FontAwesome.
- rayalez 10y agoTo me a huge selling point of linux is i3wm. If you haven't used this thing yet, you absolutely have to try it out! It is the best tool that I have discovered since emacs. It allows me to easily and conveniently manage dozens of windows, and it's hard to describe how convenient that is until you get used to it. I usually have around 10 workspaces open: 1. Emacs with personal notes, goals, todo lists. 2. Emacs windows I use for development and code. 3. Terminals for all sorts of servers and processes running in the bg. Django, compass, webpack, stuff like that. 4. Terminal for "practical" tasks - updating git, ssh, all sorts of commands I want to use. 5. Nautilus. 8. Video player with tutorials and courses I'm watching. 9. Photoshop and other graphical/visual stuff. 10. Chrome. I can switch to any of those with one hotkey, and navigation is super easy and convenient. It is so awesome that I'm thinking that it's almost the main reason I'm not going back to mac. Oh, and also Ubuntu 16 is fucking great. Everything works pretty much out of the box, everything is easy to install, just perfect. The only drawback of linux is editing graphics and videos. At the moment I'm using Photoshop with wine for design and kdenlive for video editing. They are good enough to work, but do have bugs and inconveniences, not as great as you would want.
- pritambaral 10y agoWhich version of Photoshop are you using?
- toxican 10y agoIf Adobe supported linux, I could almost do my entire job without Windows. The only missing piece would be support for Exchange-based email. But for now I've got two machines, 3 monitors, and make great use of Synergy. I feel like a luddite though because I use and love linux, but have never taken the time to learn and use the workspaces feature. It would probably be cheaper to learn it than to keep throwing monitors at my space issues :P
- se6 10y agoFor Exchange-based email you can use DavMail (http://davmail.sourceforge.net/ http://davmail.sourceforge.net/) At work I have the only Linux workstation and DavMail + Thunderbird + Lightning works a treat. I have pretty much all the functionality that my Outlook fellows have. (email, calendars, LDAP corporate address book, etc...)
- gm-conspiracy 10y agoAnybody have success with Linux on a Surface Pro 3 or 4? I am considering the purchase of a Surface Pro 3 i7 w/ 512GB for Linux web-dev.
- gravypod 10y agohttps://wiki.archlinux.org/index.php/Microsoft_Surface_Pro_3 https://wiki.archlinux.org/index.php/Microsoft_Surface_Pro_3 Follow these steps and you should have at least moderate success. Check out Manjaro, it's an easier to use arch-based distro.
- kzisme 10y agoIs this post part of a series (intentionally short?) while I liked the post it wasn't long enough for me. It was only: 1. Apt-get is cool 2. Vim 3. Sublime 4. Atom? I felt a little more effort could have been put into this post (similar to a tutorial?)
- gravypod 10y agoThe problem with most apt-based distributions is I've found that a lot of packages are out of date. Try out a pacman-based distribution some time. The idea of a rolling distro is great in my mind and most of the packages in the repo are up to date. If something is missing there is usually an AUR. If you use zsh with oh-my-zsh then you're going to have a much easier time finding whatever you need to install. Pacman has an autocomplete written up for it. Also, everything is near-perfectly documented in the arch wiki.
- liuw 10y ago> The problem with most apt-based distributions is I've found that a lot of packages are out of date. If you want APT based distro + rolling update, Debian testing is what you need. (Obviously if you're satisfied with Arch, there is no need to change.)
- gravypod 10y agoThere is still an issue of youtube-dl being out of date. Even in testing from what I've heard. You also don't have an AUR for Debian and there are many things that just aren't in the repos. Teamspeak 3, for example, is completely absent.
- Latty 10y agoThere are upsides and downsides. I love Arch and run it myself, but I'd never recommend an 'easy Arch' variant, because I imagine it'd suck. Arch with it's rolling release setup works, in my experience, because I know my system - all except the most core of the core components I'm never going to touch were installed by me and I know they are there and how I configured them, because I did it manually. No magic. When something goes wrong, I know why, and where to look to fix it. Rolling release adds a small amount of instability (although far less than you'd think), and I imagine that combined with the 'magic' in a more pre-built distro would be really annoying.
- codecurve 10y agoI recently switched to using a Mac (for work) after 5-6 years only using Linux. Again and again the most painful aspect of the Apple ecosystem is that Apple have already decided what is going to be best for me. By default, it's impossible to use workspaces without frequent switches to the trackpad, which wouldn't be so bad, but without installing third party software it's not really possible to create shortcuts or start remapping keys either. Even once you've installed and started Kwm, Karabiner and Seil, the botched keyboard layout renders the Alt key useless for wm shortcuts. There's not even a keyboard shortcut that makes a window fullscreen without removing it from its workspace! So much of the system lives in this unconfigurable space. As a Linux user, if my window manager isn't working for me, then I just install another one and start again with a fresh _and customizable_ blank slate. Ironically the things that don't frustrate me about the chance from Linux to Mac are the things the author identified in the article. My editor works just the same in both OSes and Homebrew could be a lot worse. And I get it, the OSX experience is a system that is averaged out to be comfortable and intuitive for everyone from musicians to graphic designers to programmers and business people. As a result, the user experience punishes power users the most. If you primarily identify as a programmer and use a Mac on a day-to-day basis, go pick up a cheap Chromebook, throw a linux distro on it, and see how it feels. If it's not quite right, tweak it. If you get it working, great - you've just saved yourself ~$1000 and a vendor lock-in. If not, all you've lost is $150 and a few hours of your life.
- contingencies 10y agoChromebooks are interesting but the key concern with Linux + mobile hardware is "is it well tested?". The initial chromebooks had virtually no local storage. Has that changed? Another concern with Chrome is DRM. Also, there are so many potential driver hassles... wireless, touch, suspend, weird trackpads, brightness controls, power management efficacy in general, etc. Although an issue with mobile hardware review is that many issues appear only over time, and so are missed in reviews... is there a decent resource for Linux-oriented reviews of this class of hardware? I can't find one. Anyone want to start one? Random idea: We could take anonymized (eg. via proxy legal association) affiliate commissions on resulting sales so that editorial independence is maintained.
- subway 10y agoInteresingly, the "'apt-get install foo' and it just works!" aspect of Debian-like distros was what initially got me hooked, but has since become the bane of my existence. Debian has a policy of shipping a sane default config, and generally enables/launches services for you. This is friggin awesome when you're experimenting and learning. apt-get install nginx, and bam, running webserver. Unfortunately you then start automating processes, and it becomes quite painful. Wanna build a MySQL host with a non-default size innodb log? You get to install the package, stop the service, reconfigure mysql, blow away the log files created when the service was started by dpkg, then start the service back up. Compare this with RHEL/CentOS/Arch: Install package, configure service, start service. These are 3 discrete operations. (Yes, there are workarounds for this, such as using policy-rc.d, but they bring their own complexity to the table.)
- ohstopitu 10y agoAs someone else mentioned, linux (Ubuntu) + i3wm is perfect for most development needs (sure, still need a mac for iOS/OS X/tvOS apps) but if the following apps or feature complete alternatives were on linux...it's be near perfect 1. GUI git client (yes, i know how to use a terminal, but at times, you just wanna get work done and not google a command - I used to use sourcetree, and now Tower but there's nothing great on linux. The best I could find is Smartgit which is ok at best - but not on par with the others I have mentioned). 2. UI development - Sketch/XD etc. 3. Adobe Suite I want to add games to that list, but we have recently got Rocket League so that and along with various valve games and Minecraft seems to be enough for casual gaming right now.
- pavlik_enemy 10y agoThis kind of crap on HN? Srsly? The problem with desktop Linux is poor hardware support. I have Ubuntu on a desktop and on a relatively recent HP laptop. Here's a short list of problems I've experienced - incorrect Nvidia drivers installed by default, random crashes after screen lock, brightness controls don't work out-of-the-box, Wi-Fi dies after waking up, fingerprint scanner doesn't work and never will. I never had to deal with such crap on a Mac.
- type0 10y agoDoes your laptop has a sticker: designed for Windows?
- vladimir-y 10y agoApple has a predefined and very limited line of hardware, so it's obvious that Mac OS is well integrated with Apple devices.
- deleted 10y ago[deleted]
- pavlik_enemy 10y agoI'm talking about end result here, developing on Linux requires delving into stuff I don't really care about.
- vladimir-y 10y agoAll new dev tools do come from the Linux first, I think it has a reason. I'm personally fine do software development using Linux based laptop. I confirm Linux has some issues with hardware support, but nonetheless I'm still not ready to switch to the glossy Macbook screens.
- pavlik_enemy 10y agoOf course there's a reason, that's because people deploy production systems on Linux servers. As far as overall experience goes, I'm ok with Linux as DE because I don't really need much - as long as it runs terminal, editor (with not completely horrible fonts) and browser it's fine.