Ask HN: How do you quit agonizing over your choice of app stack?
The idea is solid as in the functionality it should have is planned. The idea has been validated. I've even got the server all set up to run anything I throw at it... The problem is, I'm agonizing over what to use!
The choices are PHP or Rails and I've been paralyzed by that decision for about a month now! It's sick! First I agonized over Apache v. Nginx but that's finally over. I've always dveloped in PHP and I could knock out a functioning prototype in a matter of weeks. It seems like the obvious choice but there are some key things that have me paralyzed:
1. Silly as it is, people look down their nose at PHP. I don't want to be the one uncool guy who isn't using Python or Ruby. I know you can write bad code in any language but knowing that isn't helping.
2. I really want to learn Rails. I've been toying with Ruby for a short while and I'm comfortable with Capistrano, I can feel may way around Jekyll, and I've basically got the language basics down (variables, loops, arrays, and on and on) but it would take me far longer to do the same thing in Ruby just because I'd have to learn as I go.
I read that you need to just fucking build something then I read that you need to learn language/framework X, then I read 15 more conflicting articles and I've become a victim of analysis paralysis. It's easy to tell people how not to fall into it but try telling yourself when it happens to you!
So I'm asking if it were you, would you build what you love using what you know or would you build what you love using tools you don't know but would really like to?
12 comments
[ 2.1 ms ] story [ 26.1 ms ] threadDon't read any more articles yet. Put your prototype together with the tools you're familiar with. (I'm into Ruby, don't really like PHP and this is still my advice to you).
When the finished product is rendered in the browser and your users love it, they don't care what tech you used.
Just use what you know and and focus on the product!
But if you are building this as a learning/practice experience, take a chance and learn something new!
Many people view this as adding unnecessary risk to a project, I view it as the opposite, because if the project fails I don't look at it as a total loss, rather I can reflect on the project as a self directed tutorial, where I gained valuable knowledge, knowledge that a lot of people pay to learn. As well the cold hard reality is a lot of projects fail to become companies, so I use the learning as motivation against that reality. Further with each new switch the time of being able to make switches becomes more rapid, which has value in itself. What took me a month to learn from my first languadge to my second now takes me a few days when adapting to a new languadge. So depending on your perspective choosing a new stack can actually make it a less risky proposition for sinking your time into.
I am currently working on a new project in Clojure because I have wanted to learn a LISP dialect for a long time. To me it has already paid off, because LISP is a elegant as everyone says it is. Even if the project goes nowhere I am profoundly more valuable from the knowledge I have gained. I just wish I would have gotten around to picking up a LISP dialect sooner.
In the end it comes down to your ambitions, but projects should be about what drives you. If you truly have a desire to learn new technologies then by all means add that as a goal to your project. If your only overarching goal is to get to market ASAP then stick with what you know. But by all means, don't do it just because of other peoples opinions. Some technical people can be the most bloated wind bags out there. The kind of people that believe that only their way of doing things is right. People that act like that are universally wrong because development is an art as such it is subjective, the tools we use are like paint, some people express themselves in watercolor other in oil. Languages and technology stacks are very much like this and they reflect human thought, some languadge reflect how some people think better than others, but that does not mean that they reflect how you think best. Anyone that claims differently is just practicing dogma and should be ignored.
The fact that your framework choice is so agonizing shows that you might have become way more interested in gaining cred with the cool kids at HN than you have being an effective entrepreneur.
Other than that, I agree with all the comments here. Users couldn't care less about your technical decisions.
On the other hand if you are like me, I have an idea and I want to implement it. But if it fails I alteast want some new technical knowledge. For eg, I learn xcode and write an iPhone app and it bombs but I know iphone app development and that is valuable.
The way I'm tackling my tech stack dilemma, is to look at other successful websites find their tech stack and see if that fits my needs. Good luck!