I am java developer but I am wondering if it's worth to use it or better to learn RoR/Django to startup.
It will be great if I can have some advices or your experiences about it.
In general, if you're already comfortable using Java, and can't identify any specific advantage that another programming technology would give you, sticking with what you already know would probably be the fastest path to a working product.
Depending on the project. getting something done faster could be easier with a modern web framwork like Ror or Django (I use Django). But it really depends on what are you trying to build.. Also you should remember that python/ruby enhanced productivity comes with some learning curve, especially for someone coming from java, which is different (not as syntatic but mainly in idioms, best practices etc).
You may want to consider Play framework. another modern web framework that uses scala - which is actually an enhanced and more productive java (and if I recall correctly can compile plain old java as well.. )
I would recommend Play Framework if you want a modern Java stack. If you want the functional programming niceties of Ruby or Python, you can use Scala wherever you'd like. You can intermix both Java and Scala.
I'm using it within my company and for my personal projects. It's very easy to get started.
To give more details about what I want to do. I want to build web app to match between users' need and shops' offer.
It will be not real time at the start but it is going to work I will add kind of real time to notify each part.
Does anyone know of Groovy being used as the primary language for a significant codebase outside of some other language or framework? Every use I've seen of it involves helping along Grails web artifacts or existing Java classes. And most uses of Groovy in Github are as the language for a sole Gradle build script, to build a project written in another language. You'd be taking a big chance using Groovy as the primary language to build something if there's no known track record elsewhere for this use.
In general I'm on board with the idea that you should use the language and development platforms that you are best at, this will provide a great advantage. This idea goes out the window in situations where the platform cannot meet the requirements of your system.
Lastly I'm of the feeling that learning a new language is going to really impact your ability to put best development practices in place as you will be working to overcome 'basic' hurdles like learning the system API, stack, conversions, etc...
I guess for you is best way is to start doing it with java and in some time further switch to scala - for example you be able start developing with Play framework which is support both java&scala in one project.
RoR/Django is good for prototyping and for fast start, but if you don't know it's it no sense I guess, you will make it more faster with Play/Scala.
As it has been mentioned here. If you are efficient in one programming language or technology then use it. Your initial gains and knowledge will allow you to work faster and smarter at a time when time is at a premium.
I know of two people who started web based startups one java and the other PHP and asked the same question. Both ended up choosing a new technology and regretted the decision.
Learning a new technology isnt just about writing the code to get a working prototype or finished product as quickly and easily as possible.
Its about the learning about the things that a particular programming language cannot do and its short comings.
Thanks for all your comments. I think you are right the issue is not with which language to code it's the way to get a product people wants.
If you don't mind. I got another question (from your experience) how to get/interact with users to understand what they want before to start build something let's say MVP?
15 comments
[ 3.2 ms ] story [ 47.4 ms ] threadYou will end up throwing out much of the initial code, but use what you know in order to get in front of customers and collect feedback.
Your customers don't care what language/framework is being used, they only care that you are easing a pain point for them.
You may want to consider Play framework. another modern web framework that uses scala - which is actually an enhanced and more productive java (and if I recall correctly can compile plain old java as well.. )
http://www.playframework.com/documentation/2.0/JavaHome
I'm using it within my company and for my personal projects. It's very easy to get started.
Lastly I'm of the feeling that learning a new language is going to really impact your ability to put best development practices in place as you will be working to overcome 'basic' hurdles like learning the system API, stack, conversions, etc...
RoR/Django is good for prototyping and for fast start, but if you don't know it's it no sense I guess, you will make it more faster with Play/Scala.
I know of two people who started web based startups one java and the other PHP and asked the same question. Both ended up choosing a new technology and regretted the decision.
Learning a new technology isnt just about writing the code to get a working prototype or finished product as quickly and easily as possible. Its about the learning about the things that a particular programming language cannot do and its short comings.