I am looking for something less verbose than Java but more robust than PHP.
I have been exposed to software as a product manager for several years and have witness how much longer coding in Java takes and how less scalable, less organized and consistent PHP is
I would say that if your area is web development, your best options are the Ruby language and the Ruby on Rails framework, or the Python language and the Django framework.<p>You really can't go wrong with any of those.<p>I come from a .Net background and currently learning Ruby and Rails, and I'm impressed. Ruby is a very expressive language, not at all verbose, has good libraries and the community for the Ruby on Rails framework is impressive.<p>Before making the choice of what I wanted to learn myself, I spent a bit of time comparing the two and decided to go with Ruby.
Python is currently Very Popular. I'm not a fan, but the popularity does give you access to lots of docs and help.<p>I would suggest C# is a good language for starting on Windows. It's popular, widely supported, and doggone easy to write GUI applications.<p>If you are working on Linux, Perl is good. It's almost everywhere, and can get everything done that isn't hard-real-time. It's also optimized for text processing.<p>The traditional route for ground-up understanding is C or C++. Those force you to deal up-front with a lot of low-level machine issues that only come up later in other languages.<p>If you are looking for the pure abstract programming language without worrying about usability, Scheme is likely your best bet.<p>Each of those languages provokes strong responses for and against. When choosing a language for a project, it is a engineering decision based on the tradeoffs.
Consensus is: python/ruby, the "P" in LAMP (Heh. actually, the P" was perl or php). These 3 (including perl) let you absorb language syntax quickly so you can start learning the disciplines of coding:<p>- OO and basic FP techniques<p>- composition, delegation vs. inheritance<p>- test-driven, mock/stub dependencies, what are your edge and corner cases?<p>- benchmark, profile, optimize where needed,<p>(stuff like that)
As mentioned, Python or Ruby/Rails are your best bets; if you wanted to do something a bit more unusual, you might consider a functional language like Haskell (as functional languages are an up-and-coming development paradigm)...<p>Check out Real World Haskell: <a href="http://book.realworldhaskell.org/read/" rel="nofollow">http://book.realworldhaskell.org/read/</a>