TIOBE has published their yearly Programming Community Index and it got me thinking... What is the most commonly used programming language in the Slashdot community? What language did you learn in the last year?
Personally, I've just started working in Groovy this year which has entered the TIOBE list at number 35. The biggest mover on this list seems to be Lua and Lua's rank on this list is enough for me to decide to check it out.
jwagon sent me these mind bending groovy class manipulations in a chat today:
#!/usr/bin/env groovy
class AA {
def msg
AA(something){ msg = something }
}
def c = { a, b ->
def x =a.newInstance(b)
println x.msg
}
c(AA, "foo")
Or how about....
#!/usr/bin/env groovy
def m = java.lang.String
def n = m.newInstance("foo")
println n
I was remembering how much I loved working in Europe but how the exchange rates ruined my contract there making it impossible to stay. I was paid out of Texas in dollars but I was living physically in Germany. A bad combination.
I wonder how hard it would be to get a job in London, paid in British Pounds, living on the British economy... as an American citizen. Has anyone ever done this? Is it possible for a geek? Do they need Software Engineers or Informaticians over there bad enough to entertain the idea?
I just had a conversation with a promising young help desk attendant. He wanted to get into programming and asked if I could teach him. I told him that I could teach anyone to program... but just like singing... only some of us will ever do it well.
When someone shows up on American Idol and sings their heart out and the totally and utterly suck. How do you tell them? How do you tell the young bright and highly motivated student that they don't "think like a programmer" or that no matter how hard they work they will never become a great programmer. How do you tell?
I am convinced that anyone can learn to program and I can see a day in the not too distant future where every child is taught to program just as they are taught to use a keyboard and mouse today. The day is out there on the horizon.
Every child is taught science but only some will learn to become world changing scientists.
Every child may take music and art but only some will become musicians and artists. Their talent will be spotted early. They will be mentored to become better in their area of interest. They may even get to specialize on a particular skill.
One day programming will follow this path too. Just as promising young mathematicians and engineers are singled out and nurtured due to their skill. So too will the young budding programmer.
Today a child with an interest in medicine can visit a hospital and spend a day with a real nurse. An aspiring lawyer can visit a court room. An aspiring accountant (yes I've met children that aspire to be accountants) can visit an accounting firm and learn more about it.
Aspiring young technologists can visit Red Hat summer camp.
But, how do you evaluate that young dreaming no-talent that thinks he can be the next American Idol but clearly doesn't have the chops? What do you say to the young no-talent that wants to be a programmer?
I told my young charge that I can teach anyone to program but only some people will be great at it. Just as anyone can be taught the mechanics of writing and can write a 300 page novel if only they have the determination and willingness to learn. However, only the innate talent and skill developed by the pupil can turn them from merely a trained student into something great.
The teacher can give you voice lessons. The pupil can study. But only that intangible gift called talent can make them great. Study under the best. Work your hardest. And, it could pay off... if you don't try at all there is no way you will succeed. But, at the end of the day there is this intangible thing called talent that no one can give you.
You can paint a picture but no one may want to look at it.
You can write a book but no one may want to read it.
You can sing a song but no one may enjoy it.
You can write software but it may not be something others want to use.
Still, how else should you proceed? So you pour everything you have into your skill and into your art. You sculpt yourself and hone your abilities.
"Do you see a man skilled in his work? He will serve before kings; he will not serve before obscure men." Proverbs 22:29
You have to believe that or else not try at all. You have to believe that all your effort and sacrifice will pay off. You have to believe you can serve before kings.
New growth areas will continue to arise from rapidly evolving technologies. The increasing uses of the Internet, the proliferation of Web sites, and mobile technology such as the wireless Internet have created a demand for a wide variety of new products. As individuals and businesses rely more on hand-held computers and wireless networks, it will be necessary to integrate current computer systems with this new, more mobile technology.
So I've decided that jBPM is definitely the "Right idea"(TM) because it represents a real innovation removing the information flow from laborious flow control constructs and putting them into a Graph Oriented Programming environment. Yes, I'm a GOP-er. I think the reason that being able to draw flow control is such a big deal is that it is very likely more natural to think this way. But not just that... thinking from graph to code forces the programmer to think in modules.
It is so very important to working in large groups for the programmer to be able to really see how each functional component can get re-wired into a new whole. This type of thinking doesn't come naturally to the developers I normally work with. I usually have to coax it out of them.
Now if only this tool existed for Perl, PHP, Python, and Ruby... anybody?
Why, for example, is MySQL a big business now and not PostgreSQL? What makes on project succeed where another starves out? What makes Ubuntu the new wonder kind and Gentoo a fading star? What happened to RedHat and the spot light? Why does one project capture our attention and another fade into obscurity? Is it only technical superiority? Is it all about marketing? Is it politics? Is it community?
I don't know, I'm asking.
Numeric stability is probably not all that important when you're guessing.