views:

178

answers:

7

I have a decent idea in mind. I don't see a lot of stuff around for what I have in mind and stuff that is around is implemented badly. Kind of like expert-exchange vs. stackoverflow.

I have not worked on a project by myself before, I've just been involved in working with teams for last couple of years. So I am scared to tackle what I have in mind by myself and doubting skills I already know. Language/framework I consider myself proficient in is Java/Struts2 However, I've been wanting to learn RoR or Grails. So I need advice whether on I should implement initial version of the idea with tools I already know (Don't worry, be crapy) or start with learning new tool and side by side implement the idea?

+2  A: 

I would go for a new language (and I did when I was in your place).
It makes it even more fun, and you will "kill" two birds with one stone.
If you want business approach, then do it in the technology you are most familiar with. b.t.w You might want to make it a WIKI, or be down voted.

Itay Moav
A: 

I would use this as an opportunity to learn a new tool. Start out by implementing a few tutorial examples in each the new tools you're considering, and go with the one you feel is the best fit for your new project.

Even if your idea doesn't pan out, you'll gain valuable new experience.

J. Peterson
A: 

I would say it depends on what you're trying to do. If what you know is what is the most commonly used thing for what you want to do, then stick with what you know and expand that knowledge. If a new language has been known to do what you want to do better, then by all means, go and learn the new thing.

aberrant80
A: 

Is the idea is business related or simply a pet project?

If it business related I will probably go with what I am best at. I don't want to have a learning curve at the beginning of my business. If the idea works, then at some point I could ported to a more suitable language.

If it just a pet project, then learn a new language. That's the best way to learn a new language.

Freddy
+7  A: 

It depends:

  1. Are you willing to wait for the learning curve?
  2. Is this idea so original that it will wait for you?
  3. Is this idea so great that I would have very few bugs/ enhancements when released?

If so, learn a new language, If you have the time then it would be just great!!

but if

  1. There is a business time limit ( ie. you want it before the next SuperBowl or Christmas etc. )
  2. Nobody is thinking about it ( everybody thought Q/A was a solved problem when SO came into scene )
  3. You may be victim of your own success and the lack of updates would allow your competitors add the requested features in copycat products and that would kill you.

Then make it in the technology you command right now. But make sure it does what you need and that technology may be up to the challenge.

Using the right tool for the job is the best, always, but I you need to cut a table TODAY an you only have a Hammer, start punching already!!!

OscarRyz
A: 

I understand that Spencer's answer seems subjective ( java is dying part).But having worked on both Struts and ASP.NET , I would definitely recommend the latter for better tooling, community and resource availability. It definitely made me more productive.

I would also recommend learning something new. Could be asp.net or python,ruby or php. Because it is rewarding in that it gives you a different perspective.

krishna
+1  A: 

It depends on your goals, and what languages you're looking at.

If your goal is primarily (realistically) to learn and to have a fun side project, learn the new language. Learning a new language is a fantastic way to improve as a developer, especially if the new language is radically different (not C# to Java).

If this is really a business venture, and the new language isn't drastically more suited to the project, stick with what you know. But be realistic here about whether it's likely to be a real business venture or not. Knowledge has value, even if the project fails.

If this is a business venture, and the new technology/language is much more suited to the problem domain - you're still probably better off learning the new language. Using rails/ASP/PHP for a web page, even if you don't know the language up front, is (likely) going to be a lot better even in the intermediate term than trying to write a web-based service in C++.

kyoryu