Hear me out. I'm a UX designer by trade; while not a developer, I do understand software and technology very well. I spend a lot of time testing and tinkering with ideas by trying to hack them together the best I can. My goal is to build a small but real feeling version of my idea to understand and test if there's actually value. I continually hit the wall or spend hours getting caught up on something trivial (I understand this is part of the learning process). Like for most people, time is an issue for me and I'm really looking for something to help me prototype quickly. I consider Ruby and Python too big for that (am I wrong)? What should I focus on, a Javascript framework, just jQuery, something like Haskell, etc.? 

First, it's admirable to want to learn something new.  Programming is a tough discipline to master.  In spite of every startup CEO telling you they themselves coded their launch project, and that you should just learn to code it all yourself, this is not a practical approach.  The statistic we don't have is how many of those startups continue to be a success without having their code re-written by competent programmers.

That said... there's a big different between prototyping and building for production.  I'm glad that's clear to you.  The trick is that - and if you're a UX designer by trade, you should already know this, so I have some skepticism - prototyping is pretty easy to do on paper.  In most cases, it's probably easier than trying to iterate code through a design review process.  Sure, it's not clicking buttons on a screen, giving you the feel, but you should at least be able to determine if your idea has value from paper prototypes.

I think the bottom line is this:

You shouldn't be programming anything.

There are many questions remaining in your request.  What type of app are you building?  Is it for desktop?  Web?  Mobile?  What platform, Windows, Mac, or Linux?  Are there collaborative features?  Realtime updates?  All of these questions lend toward choosing the best language for the project.  But if all you want to do is prototype, use paper.  Or get a copy of Axure.

After you prove out your ideas on paper, pay a developer to build your live prototype for you.  They'll know what they're doing and do it faster and better than you will, even if you learned a programming language.  Not only will you see a result faster than you would if you have to learn to code while you go, but if your developer is worth his salt, you'll have a prototype that can be used to help move your product forward to production.  Ultimately, you will have saved money.

Sadly, you'll probably get a bunch of responses like, "Use jQuery," or worse, "Use Ruby!"  These recommendations coming without any questions about what you're trying to build are most likely from novice fans of a particular language.  I can't blame anyone for being a fan of the language they love, but all too many times I've heard (especially with Ruby) things like, "Oh, I never understood programming until I tried X language.  It'll be perfect for you, too."  Don't be fooled by this.  There is no perfect language for your application, especially when nobody's even heard what the application is!

I'm a big proponent of the best tool for the job, wielded by the best craftsman.  Get a recommendation from someone who knows how the different languages compare, has used all of them, and is qualified to make a recommendation.

Comments

There are no comments on this post.

Sorry, commenting on this post is disabled.