Ask HN: best cheap easy setup for initial development
What is the best cheap setup for initial development? Low cost, easy to change to different languages (or web server) if first choice doesn't work, easy to move to a colocation site if that time ever comes and easy to administer. GUI isn't required.
My last webserver was circa 2000 with Apache and Redhat.
32 comments
[ 2.9 ms ] story [ 95.1 ms ] threadFor that I recommand, Visual Studio.
1- It's 100% free of cost (express edition), you get the editor (Visual Studio Express) for free and .net frame work is free to install and compatible on Windows versions
2- It's very easy to use and Object Oriented. It also has a lot of power and by learning .net you can develop for windows, web or mobile interface.
3- You can code a program in different languages with Visual Studio
Also lot of videos and tutorials can help you getting started with it
Ubuntu + Eclipse IDE = develop pretty much any language, for free.
Might not be a show stopper for some people but it's not ideal.
Call me cheap, but I think choosing Visual Studio is like training yourself to spend money. I'd stick with Eclipse or Notepad++ or Gedit plus Apache and Django or Rails, or something in that direction. Especially for web development, money doesn't buy you much beyond bandwidth.
I should shut up now though.
If you start building your project on a particular stack and then need to move, there will always be a transition cost.
I'm not trying to start yet another OSS vs. MS war here, but all other things being equal, with one option you have to pay money for server/DB licenses (and then constantly worry about compliance), and with the other you don't.
I understand why companies use Windows - they need common desktop apps, they need Office. But the question was about web development. There is little advantage to using MS tools, in fact most of my web dev associates would say they are worse. Worse, and expensive, especially the databases.
Why sign up for that kind of trouble? Stick to OSS.
Microsoft has a BizSpark program that lets you have access to their entire suite of development and desktop applications for $100 at the end of 3 years. That's cheap! Almost free.
But still, I'm talking about Vendor Lock-In and transition costs. For example, say it takes you 2 years to build your product, you start on Microsoft and then need to transition to Linux. How much would that cost?
What if it turns out you just can't find enough developers on OSS to move your product forward or they cost too much and you want to move Microsoft, because all the metrics say the TCO on the microsoft side is actually lower. How much would it cost to escape the OSS lock-in?
"Free" OSS is not actually free. The product is free, but services still cost money. The OSS community neglects the services cost from the TCO, but they are very real.
And the reason you'd need to move is because Windows is costing you too much, at which point you realise you're locked in! So, yet another reason to avoid Windows like the plague.
I won't bother to respond to the rest of your laughable shilling.
Easier access to support with OSS web platforms than .Net. I find OSS proponents much more open and willing to blog about difficult issues that they have solved and provide free code and workarounds. This is not as true in the .Net realm, but it is getting better.
Third-party libraries/plug-ins cost money in the .Net world. Its much easier to find free IDE plugins and libraries/apis for your platform in the OSS world. in .Net the alternatives cost money usually a small amount, but it does add up. (I'm guessing because it's cheaper for corporations to spend a small amount to solve a problem than hire a dev to custom build a solution, and .Net has a large corporate install base.)
However, I have to disagree with the statement about the tools and database. I gave them a try recently and actually found the experience much more pleasing than I thought... in fact going back to eclipse for work on the monday had me missing a few features in Visual Studio. I can't speak about SQL Server in a prod environment, but the db dev tools with the express version of visual studio are pretty cool. Rather than going by third person reviews, try it out yourself, you can get the web installer at http://www.microsoft.com/Web/downloads/platform.aspx and the MVC tutorial at (http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-n...)
Personally I think the tutorial just proves my original point if you do work through it. Its a chapter from a book by the creators of .Net MVC and whilst free, the whole book is not, most other popular frameworks would release the full book as a free download.
I think you're onto something there, although we could expand it into an even more general rule: "Anyone who has ever done any standards-compliant web development at all, ever, hates Microsoft".
Fair?
If, by "fair," you mean, "Is what I just said true?" Then no.
Free software is chosen not because it's free, but because it's /good/ software. Hackers have helped develop their own tools and fixed bugs themselves, so most stuff is very stable. And when there's a need for a new feature, they make it, so it's very capable. It's like survival of the fittest for software.
I think a lot of people (and companies) have the idea that you can't get anything good for free. In the software world, that just isn't true.
Companies like Slicehost realize this, and give you full control over your slice. Before you deploy though, you could probably just do with a ubuntu box shoved under your bed.
If you already have a Mac you could decide to stick with the Mac OS for development instead (I use it; it works fine), though you will almost certainly not be running Mac OS on your server. So you'll have to figure out Linux anyway sooner or later. The Slicehost tutorials make it much easier -- a lot of the grunt work has been figured out and documented.
Edit: I went Ubuntu-only on my desk a few years ago, previously Debian-only (well, one computer still have a Debian partition too and I also have a Mac). I'm asking about servers.
For initial development, you probably don't even need a server. There's pretty much always an easy way to have a local server run on your computer for development.
When you are ready for a server (probably not until you're about ready to go live), I'd suggest Slicehost. They're well-documented and cheap ($20/mo. for their smallest server!), and you can scale the server all the way to 15.5GB of RAM in just a couple of minutes.
You could look at Linode too though. It seems like you get a little more RAM for your buck, especially on the smaller end, but you can only go to ~2.8 GB of RAM on one server.
As for your development computer, I love Ubuntu, but it really depends what you want. If you want to do everything through an IDE, it depends on your language, but the best IDE may be for Windows. If you want to do much of anything through the command line or think you might in the future, develop on either Mac or Linux. Their shells are just way better. There is always Cygwin, which sorta fixes the problem, but I think true Unix works better.
Went through everything from old office computer used as web/subversion server while still on windows xp to slicehost. It all depends on the details... but if you're not sure what they are keep it simple.
Depending on what you feel more confortable with you could either slap ubuntu on an old computer, or take a small slice at slicehost. The second has less bandwith (then a local computer) but overall it's much more flexible.
I'd suggest getting it the day you start your project.
First: twenty-five bucks a month, seriously, what are you even doing thinking about this ($5 extra for backups, which is another "why are you even thinking about this" item).
Second: source control from the very first line of code. The production webstack, from the first line of code. The production deployment procedure, from the first line of code. etc, etc
I use GitHub, so I wasn't thinking about version control, but yes, definitely set version control up somewhere immediately.
This prepares you for the day that you go live, as going live won't be a completely new experience, it will be a new experience, but if you iterate on hosting a blog and sandbox apps, then you are much better prepared than if you go VPS cold with a new product.
I agree with this. Having the server sitting there ready and waiting, and costing you money, has a certain motivating effect. Every time that monthly accounts email comes in, and you haven't gone live yet, you're gonna feel like an idiot, and that feeling is good for you.
It's like a gym membership, just sitting there sucking your money, mocking you and shaming you into action. It appeals to the exact right part of your psyche - you're paying for this, where's the results?
Take the step. If you're serious, sign up for a server first thing, I say. Buy a domain and wire it up. Load your blank page and stare at it and feel like a loser. For best effect tell all your friends about it and make all sorts of grand promises, and then stare at your blank page some more and feel like even more of a loser until finally you cross the threshold of shame, get started and then - you're on the track my friend!
Ah, blackmailing yourself into action. Tried and true. Shouldn't be necessary but hey, we're only human, and the only thing that matters is results.
So in our case we wrote the code on whatever laptop we liked best (I did most of the coding for first few versions our software on a 12" PowerBook, other folks used ThinkPads or Dells with Windows).
But having a beefy server box with enough memory/disk to host a few different VM environments (various QA, staging, multiple different DBs etc.) and the ability to rapidly set up new ones was killer. It makes the laptop choice more a matter of personal preference, and keeps a consistent environment where it counts.
Tactics: Fedora (It will become CentOS after polishing) everything already packaged - Django, Ruby, nginx, apache with tens of modules, etc.
Hint: Forget Java.
Debian or Centos as the operating system that you run as a VM inside VirtualBox.
You should be able to easily install Python, Ruby, TCL, Lisp, etc. on either platform for development language; Apache or NGINX or Lighttpd as the web server; Emacs or Eclipse or whatever as the editor.
Ticket tracking is a Google Spreadsheet w/ some formulas to calculate ticket sort orders, estimated completion dates, etc.
Works well for us on the budget we've got.