Domain: tiobe.com
Stories and comments across the archive that link to tiobe.com.
Comments · 266
-
Re:Does anybody still use Java?
Seems he was referring to the Tiobe community index at: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Yes, it's controversial and probably a bit off the real numbers, but real numbers are near impossible to get. How do you want to know what people use in their closed projects? Nobody ever publishes that data.
Now if you check out a different chart, the language distribution of Github projects, you'd get a totally different picture: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html , but it's also not very representative for the entire ecosystem.
-
Re:Does anybody still use Java?
Seems he was referring to the Tiobe community index at: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Yes, it's controversial and probably a bit off the real numbers, but real numbers are near impossible to get. How do you want to know what people use in their closed projects? Nobody ever publishes that data.
Now if you check out a different chart, the language distribution of Github projects, you'd get a totally different picture: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html , but it's also not very representative for the entire ecosystem.
-
Re:Does anybody still use Java?
I suppose he is quoting the tiobe index because the numbers match: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html - however, taking this as an estimate of the amount of code that has been written in a given language is a wild guess at best.
If I had to take my own wild guess off the top of my head, I think I'd give Java more than 18% of the code written in 2010, though. C and C++ added together get quite more popularity than Java, but I don't think their usage in the enterprise is comparable to that of Java.
-
Re:Somebody should tell us what this really means
While resorting to name calling is the sign of a weak mind and/or weak argument, it's apparent from the rest of your post that you, my friend are the one with an intelligence deficit.
For that reason, I'll spell this out as if you were completely clueless (which nothing in your post would indicate otherwise).
You are wrong on so many levels, it's hard to know where to start, but I'll give it a shot.
First, Java was not a temporary measure for Android. Among other things, Java is a computer language. Android applications are written in the Java language. Even if Google declares Go the "blessed" language for developing on the Android, they will continue to support Java since nearly all applications up to that point will have been written in Java.
Second, Android is open-sourced (under the Apache license) and is not owned by Google. While they do have a great deal of control over it (mostly by way of their dominant influence in the project), they are part of the Open Handset Alliance which controls the project.
Third, while I will grant you, Google does not need Java (however you defined "need" here), a statement like "Google does not like Java" is a completely nonsensical statement. I don't even know what it means for a corporation to "like" something. Google adopted the Java language because it immediately gave them an immense base of software already written that could be ported to the Android platform. Google's continued development and investment into the platform (Android SDK, GWT, acquisition of Instantiations) show no sign of abating.
Fourth, Google's response (to the Northern California District Court) regarding the Oracle suit makes the following points:
The patents weren’t valid
Android didn’t infringe on the patents
The patents had been open-sourced
Oracle waited too long to bring the suit, and
Oracle has no right to sue since it’s not being damaged by Android.
What part of "The patents weren't valid" do you not understand?
Fifth, as far as their "own" language (Go), only time will tell how popular it becomes.
According to the Tiobe index ( http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ), which tracks computer language popularity, in 2009 Go had just surpassed Pascal in popularity moving to #15, but in 2010 it has dropped to #25. Java has been #1 since the index started (in 2002) and it's rating increased again in 2010 by 0.14%. If Go is to replace Java, it' better get "go"ing.
Finally, my advice to you is to see a therapist about your obvious superiority complex. -
Sources that track Programming Language Popularity
From Wikipedia article on "Measuring programming language popularity": "Combining and averaging information from various internet sites, langpop.com claims that in 2008 the 10 most cited programming languages are (in alphabetical order): C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, and SQL." Checking the site now, this set of languages appears to have held steady ever since then. Also the TIOBE index is good, but it based solely on search frequency. However it is updated once a month: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
Re:Objective C
I can't help but wonder if that one has peaked already. Just a general leery feeling about anything whose popularity hinges on the cell phone market. People seem to change phones with a greater frequency than they change their socks. iOS one day, everyone wants a Droid the next.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
Re:Umm, .NET?
For starters, one is a client side technology that doesn't even run in a JVM (its compiled down to javascript for christ sake) and one is a server side technology.
Again you have a limited grasp of the technology you are arguing about, since all you know is (a limited set of the)
.NET technologies. GWT is both client and server side. It is interactive and developing for it is a dream compared to crufty old page-oriented server side technologies.This is utterly false and complete vitriol. I challenge you to dig up a single, verifiable reference that somehow makes
.NET as a specification more tied to Windows than any other platform.Who cares about the language specification? pretty much only language hobbyists and academics. As in any software technology it is the libraries that matter. Without the libraries a wonderful language and runtime don't do much.
.NET's libraries will always work better (or only, eg. WPF) on Windows. This is intentional by the vendor (it's why the invented the tech after all, if you were around then).All the same with Mono, so what exactly is your point?
My point was *your* previous claim that Mono was better than Java for cross-platform work was bollox.
.NET is the superior spec from a technical standpoint. Java has a far bigger cross-platform ecosystem, but people are jumping ship and moving over to
.NET in droves.Again, the spec is less relevant than the libraries for practical use. If you are actually building real application software (cf. as opposed to working on Mono itself) you would know this. As far as implementation goes, why do you think the
.NET licensing terms did not permit benchmarking? It's because in general the JVM is faster (I'm sure there are specific exceptions to this, but this is the general trend). The statistics also disagree with your second assertion about .NET growth. The trend is modest growth with a lot of fluctuation but not the 'droves' you claim. The droves are going to Objective-C and Android (Java-esque). Please see the following for the facts:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
In fact, both Java and .NET should lose further popularity as people move to Android and Objective-C as that is where all the market growth is. What you used to need a desktop or server for is slowly being marginalized for specialized stuff.I really don't care if you prefer java, as long as I don't have to maintain your crappy software. But your preference doesn't make java superior.
You wouldn't maintain my software. I'd never hire someone who eschews objective facts for unreasoning fanboyism with above-normal arrogance to boot. Face it, Mono is neat tech that is hasn't got much traction and is not going anywhere fast - not because it is misunderstood, but because it is well understood. That's why Java still has around three times the ecosystem as C# (according to the approximate figures given by Tiobe). If people want
.NET they get the real thing, and if they're for Open Source they use other technologies instead (C/C++/Java etc). Enjoy Mono and the paycheck you get with it. -
Tiobe IndexSee the Tiobe index:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java (as much as I hate it) - and C++ (as much as I lothe it) aren't going away or drying up - but they have flatlined
You can see the "fast risers" like Ada (WTF?), Objective-C (i.e. iPhone/iPad), etc. - but these are generally very vertical (specfic-purpose) languages.
-
Re:Alternatives?
Really, if JVM went away currently there is nothing that can replace it.
Not instantly, but eventually...
Let's take a look at the alternatives. We have Python, C and C++, as well as plenty of non-proprietary widget platforms, of which Qt is also well supported on mobile devices. I've kind of had it with companies who bait you inside their ecosystem only to trap you there. When you spend more time looking over your shoulder for fear of patent lawsuits than programming, something's wrong.
-
Re:Thank god he's gone from Oracle
So far ahead?
How many platforms does .NET run on? [answer: 1 - Windows]. If you customer is big (bank, government department, military etc) they simply aren't running their biggest systems on Windows and .NET is not even a contender.
What approximate percentage of the development market (projects, jobsm tools, conferences, books, etc) does C# have relative to Java? [answer: approx 25% according to Tiobe.com; even PHP is a more popular development tool than C#]
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
What development platform has had no epidemics of vulnerabilities when deployed to be the Internet? [Answer: Java; contrast the ASP.Net platform that is was discovered to be *very* badly remotely exploitable in the last few days so much that Microsoft had to issue an emergency out-of-band patch]
Which development platform is conservative adding features (not worrying about 'trendy' features that get deprecated on the next release) so that massive investments on code are not deprecated by the need of a vendor to sell you a new IDE version every two years? [Answer: Java, not .NET]
You can keep your shiny new features that affect 2% of your codebase and survive for two years before something replaces them. I'll stick to saving myself time, my customers money, all the while keeping their systems safe. .NET is good for the desktop, it blows in the enterprise (fortunately most enterprise developers know this; only folks with less than a decade of enterprise development experience seem to be under the delusion .NET is a better strategic choice [although it certainly has tactical advantages, but only n00bs get excited about them]). -
Re:C-sharpActually, according to the Tiobe index there's about 400% more Java out there. Since C# and Java are more similar than different viz-a-viz other languages (no suprise, C# is the Microsoft evolution of Java via the intermediate development language "Cool").
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
With the diversity of platforms starting to increase again the one-platform pony of C# would be a more restrictive choice than Java.
-
Re:learn python
While learning Python isn't the only reasonable option, it's way up there. It has several key advantages:
1. Object oriented
This is one of the key paradigm shifts since you were coding, and Python embodies the principle more cleanly than Perl or C++ . In fact, learning Python will probably make it easier to understand C++, Objective C and Java, which are arguably more awkward embodiments of OO.
2. Interpreted
The rise in interpreted languages is another major development since the 80s. It also helps speed the edit-test-debug cycle, making it faster to learn.
3. Popular
Python is one of the top 10 most popular languages at the moment: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. It's pretty much eclipsed Perl, which has been on the wane for a while. Interest in Ruby (the other "hot" interpreted language) also seems to be flagging.
-
Objects...
This is a good move. I found it surprising that C was still more popular than C++, given C++ benefits. See http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html.
-
Re:Tiobe also explains how it determines it rankin
It would probably be because most of the other Top 10 languages have been at (or near) the Top 10 for years, while Objective C has jumped up from #39 a year ago.
Here you can see the change in Tiobe's ratings for Objective C over time:
http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.htmlCompared to other languages like Java:
http://www.tiobe.com/index.php/paperinfo/tpci/Java.htmlPerl:
http://www.tiobe.com/index.php/paperinfo/tpci/Perl.htmlor PHP:
http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html
That is a significant change.
Now Tiobe's methodology may be crap overall, but it is measuring a big sea-change
... not a change you'll probably like, but eventually you'll realize that the world rarely goes out of its way to please you. -
Re:Tiobe also explains how it determines it rankin
It would probably be because most of the other Top 10 languages have been at (or near) the Top 10 for years, while Objective C has jumped up from #39 a year ago.
Here you can see the change in Tiobe's ratings for Objective C over time:
http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.htmlCompared to other languages like Java:
http://www.tiobe.com/index.php/paperinfo/tpci/Java.htmlPerl:
http://www.tiobe.com/index.php/paperinfo/tpci/Perl.htmlor PHP:
http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html
That is a significant change.
Now Tiobe's methodology may be crap overall, but it is measuring a big sea-change
... not a change you'll probably like, but eventually you'll realize that the world rarely goes out of its way to please you. -
Re:Tiobe also explains how it determines it rankin
It would probably be because most of the other Top 10 languages have been at (or near) the Top 10 for years, while Objective C has jumped up from #39 a year ago.
Here you can see the change in Tiobe's ratings for Objective C over time:
http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.htmlCompared to other languages like Java:
http://www.tiobe.com/index.php/paperinfo/tpci/Java.htmlPerl:
http://www.tiobe.com/index.php/paperinfo/tpci/Perl.htmlor PHP:
http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html
That is a significant change.
Now Tiobe's methodology may be crap overall, but it is measuring a big sea-change
... not a change you'll probably like, but eventually you'll realize that the world rarely goes out of its way to please you. -
Re:Tiobe also explains how it determines it rankin
It would probably be because most of the other Top 10 languages have been at (or near) the Top 10 for years, while Objective C has jumped up from #39 a year ago.
Here you can see the change in Tiobe's ratings for Objective C over time:
http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.htmlCompared to other languages like Java:
http://www.tiobe.com/index.php/paperinfo/tpci/Java.htmlPerl:
http://www.tiobe.com/index.php/paperinfo/tpci/Perl.htmlor PHP:
http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html
That is a significant change.
Now Tiobe's methodology may be crap overall, but it is measuring a big sea-change
... not a change you'll probably like, but eventually you'll realize that the world rarely goes out of its way to please you. -
Re:Atleast they still allow Java
C may not be the most common language in the industry
It most likely is.
-
Re:nr.11
As Carewolf said, it's a change from almost 0% to more than 2%. Did you even follow the link to the specific info on Objective-C?
-
pythons rating graph
I am curious if anyone has any insight on what happened in 2004 to cause such a spike in python's "Rating". http://www.tiobe.com/index.php/paperinfo/tpci/Python.html
-
TIOBE methodology is so flawed it's pointless
Go ahead, read it for yourself, and tell me how this is supposed to give any meaningful results. They aggregate together things of all kind, to the point where an aggregate doesn't make any sense at all (I mean, hits such as "programming in PHP sucks" or "you must be an idiot to write production code in VB" would count as +1 for PHP and VB, correspondingly!). You can have one language having many job postings, another having many books, and yet another having many basic "how to?" questions and dumbed-down tutorials, and they'd all get the same rating.
In any case, most certainly, at these numbers (Java 18.051%, C 18.058%), speaking of one overtaking another is completely pointless, given the margin of error.
Anyway, if you want to know how popular a particular language/technology is, the simplest - and much more accurate! - way of doing so is to check any popular job search web site. Just keep in mind that preferences vary in different regions, so if you are making career choices, stick to local/national postings, and if you want to see an overall worldwide trend, you have to aggregate data from enough sources.
-
Not relevent? Maybe one day
However, in the meantime Java is still the most widely used language:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java is also about the JVM - which is increasingly useful for other languages such as Scala, Python, and Ruby. Have a read about why the JRuby guys like the JVM:
http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/
Java and the JVM are going to be around for a long while yet.
-
Re:Not very persuasive...
I'd say check the Tiobe index for a more accurate record. You'd think that a major corporation like Microsoft could garner more popularity than PHP instead of less than half.
Wow look at Objective-C go ! Microsoft missed the boat again chasing Java with
.Net when the Next Big Thing was developing a decent touch and mobile development platform. -
Re:Not very persuasive...
Lots of questions means lots of confusion. I think all you proved is a severe lack of documentation or how newbies are confused as hell by it.
Or, maybe, lots of questions just means lots of newbies?
Or it could even mean that StackOverflow is historically more
.NET-centric, so that's where you go to ask .NET questions; and Java ones are asked elsewhere.I'd say check the Tiobe index [tiobe.com] for a more accurate record. You'd think that a major corporation like Microsoft could garner more popularity than PHP instead of less than half.
TIOBE index is extremely unaccurate due to their, ahem, "methodology", and they even tell so themselves.
It is particularly inaccurate with respect to
.NET, because you need to extract VB.NET out of all BASIC job offerings, add C#, and then add all positions that just say ".NET" without specifying the language (which isn't even tracked on TIOBE), to get a real figure.Then, also, think about what it measures - if you look at what is found by googling for "PHP programming" (which is what TIOBE does, pretty much), it's mostly various tutorials/howtos. So, it effectively measures the amount of learning material available online for a given tech, including any low-quality and duplicate ones. It's no secret that there's a crapload of that for PHP. In fact, by your logic, it would indicate that PHP is so bad, since it needs so much tutorials to teach people to do things, no?
Instead of TIOBE, why don't you open your nearest job search website, and look at the number of available
.NET positions vs Java ones? (the ratio will vary quite a bit by region/country, by the way) -
Re:Not very persuasive...
Lots of questions means lots of confusion. I think all you proved is a severe lack of documentation or how newbies are confused as hell by it.
I'd say check the Tiobe index for a more accurate record. You'd think that a major corporation like Microsoft could garner more popularity than PHP instead of less than half. -
Re:Python or Java
If Java is horrible for beginners and too restrictive for experts, then why is it both the most popular teaching language, and the most popular business language? See here:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
What exactly is it about Java that makes you think it's too restrictive for 'experts'?
-
Re:OpenGL on par with Direct3D11I like C and C++ after having programmed for a decade with them. However, the real weight in development is in Java - although it's use has decayed to that of C in recent years due to the bifurcation of new languages in recent years. Just look at:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htmlIncidentally, I use JoGL for a lot of OpenGL projects I used to use C++ for. I find I'm more productive and the OpenGL runs just as fast (since it's mainly on the GPU anyway).
-
Re:Sun's handling of Java: Reason for Sun's failur
Right, they totally failed.
That's why Java went into a tail spin and became the most widely used language in the world: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Damn management failures, making the product so successful!
-
Re:C and future employment?
I took a C-programming job after a decade of C++ and I've been wondering whether I'm employable in the long run. Especially so, because I'm not doing low-level stuff. I think that were I do embedded, I'd be just fine.
The decline of C++ really surprised the hell out of me.
Both the iPhone and Android platforms support C development. Since all the OSes support C your skill moves to just about every platform out there.. All you need to do is show the initiative to work on a few different platforms. As for the languages that are "safe" I'd think these would be C and Java for different reasons and different business domains. In any of these I would personally see to it that I could work in at least two domains that my language of choice could move between.
I do check in on: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Maybe you should play around with iPhone or Android Native code for a bit to be able to say you can do either/or? It takes more than knowledge of a language to secure a job these days. Pick where you want to go next and start learning in that direction.
Overall, I think C developers will be fine for the foreseeable future. OTOH, not so for flavor of the month programming language guys. I have a hypothesis that scripting languages move in 10 year fads. Those poor guys may have to learn a new programming language ever *gasp* 10 years.
Now that I've said that it doesn't seem so bad.
-
Re:I think they made a small mistake.
-
Re:Algorithms
Hmm, when your algorithm is exponential to the input size, you can spike a cpu with 100 elements. That's a real example from a bug experienced by real paying customers.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Java - 18%
C - 17%
PHP - 10%
C++ - 10%
VB 8%Java's already stagnated and sinking (1 yr delta is -1.9%) Unless CS programs plan to stick to (the incredibly venerable) C, people will always complain that they're sticking to the wrong languages.
-
Re:Encourage use of MS tech by making the SDK free
4% is hardly a quarter of the industry. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
Re:Oooooooohhhh....
I agree. Why learn the languages that 60% of all new code is written in when you can learn the latest niche language that barely accounts for
.3% of all new code written and will probably be forgotten when Twitter rewrites itself in the newest and greatest flavor of the month in a couple of years. Clearly the GP is the stupid one in this.
Source: http://www.tiobe.com/content/paperinfo/tpci/index.html -
Re:Assembly
I agree with your last statement but the rest of your post I can do without.
Assembler is great but it's a horrible choice for a first language. It was fine as a first language 30 years ago when people had simple expectations for software. I'm not saying to never learn it, but it's unnecessary as a first language.
C is not the most widely used commercial language and it certainly does not lead the way in open source (the open source movement started with Java). Both those categories belong to Java. As to my first point, look here: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. That said, there's nothing wrong with learning C but it's hardly the future so I don't really recommend it except for the purpose of getting a background in procedural programming, pointer manipulation and manual memory management.
C++ it utter trash and a disaster of language that nobody should learn or use except to learn what not to do when designing a language.
learning Java and Python are good choices (although Java is getting a little long in the tooth but exposure to the JVM is a good thing). -
Re:One of these things is not like the OOthers
One of these things just doesn't belong
hmm.... let's check the rankings at tiobe.com..
python: 5.548%
ruby: 2.692%
objective-c: 0.134%
smalltalk: 0.125%
PHP: 9.921%So apparently PHP is the one that is not like the others, because the ranking for PHP is more than the rankings for everything else combined.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
Re:The Best I.T. News I've Heard In A Long Time
"If Java were really all that great it would have become a major force long before now."
http://www.tiobe.com/content/paperinfo/tpci/index.html
Smalltalk isn't even on the list.
"Java still compares unfavorably to Smalltalk in many ways"
LOL. Smalltalk died in the 90s for good reasons. No one uses it anymore. Get over it. -
Re:Java Was:C++
Sorry to say it, but I've followed your links and I do think he's completely wrong (the he being Neil Gafter). Java is supposed to be maintainable first. I do think that all Java programmers will understand closures. And I don't think you should add to the platform each time someone shouts that he needs to have feature X, because closures will not be the end of it.
See, that's what I mean when I say that Java becomes a "legacy platform". You're afraid of new things because you view them as threats to maintainability.
There is no simple answer to that, but I will try. This stage is always passed as languages develop. For some time, new features are considered "academic" and "radical" and "not buying much" and "hard to understand". This was the case with non-deterministic garbage collecting not so long ago, with OOP back in the days of Simula, and with structured programming replacing GOTO even before then. But if the feature is actually useful, it is developed and polished, efficient implementation approaches are devised, and eventually it becomes mainstream.
Now back to closures. At this point, they are mainstream. If you look at the top 10 languages (let's assume those are "mainstream") according to TPCI, you'll see that all those either have closures already in some shape or form, or are planning to get them in the next major version (C++0x), with two exceptions: C and Java. Why C won't ever have them is fairly obvious, I think - apart from being essentially preserved as is, it also frowns upon such high-level constructs with non-transparent implementations. So we can safely say that out of mainstream high-level programming languages, Java is the only one which does not have closures, and does not plan to add them either. That's a clear mark of not getting along with times.
I mean, think about it: today, Visual Basic, the language traditionally labeled as one for the "less bright" programmers, has lambdas/closures!
Yes, of course closures won't be the end of it, just like OOP wasn't. Evolution of language design keeps going on, and I strongly suspect that typeclasses will be the next big thing, for example. But that doesn't mean one shouldn't try to keep up.
I don't care if they are main stream. They are not sufficiently OO, they are not required in any way and in general they are very difficult to read. If every language must include constructs that are present in every other language, then we get a mess of languages that all try and do all things. That's not a healthy situation at all.
And I will need to understand what is going on while doing it. I've seen lots of code *in presentations* on closures that I don't directly understand, and I've got +10 years of programming experience on a university level.
I'm not sure what you mean by "programming experience on a university level", but if anything, it seems to be an indication of how bad things are. If you ever had exposure to Scheme in the uni, you should have absolutely no troubles understanding how closures in any language works. On the other hand, if the only thing you've ever dealt with is Java (and maybe C/C++), then you really missed a lot more than you know about.
Ok, that was a bit too short. I've had languages, parsing techniques and programming classes in my CS study at university. Besides that I have 10 years of design/programming experience. Most of that time was spent in the core Java language (and cryptography). I try out many languages including scripting languages that include closures. I find them very strong, and very difficult to read (thus to maintain). Especially Lua I found extremely strong for such a small language, and completely wrong for enterprise development.
In general, the pressure to add things to a language is huge, but shoul
-
Re:Java Was:C++
Sorry to say it, but I've followed your links and I do think he's completely wrong (the he being Neil Gafter). Java is supposed to be maintainable first. I do think that all Java programmers will understand closures. And I don't think you should add to the platform each time someone shouts that he needs to have feature X, because closures will not be the end of it.
See, that's what I mean when I say that Java becomes a "legacy platform". You're afraid of new things because you view them as threats to maintainability.
There is no simple answer to that, but I will try. This stage is always passed as languages develop. For some time, new features are considered "academic" and "radical" and "not buying much" and "hard to understand". This was the case with non-deterministic garbage collecting not so long ago, with OOP back in the days of Simula, and with structured programming replacing GOTO even before then. But if the feature is actually useful, it is developed and polished, efficient implementation approaches are devised, and eventually it becomes mainstream.
Now back to closures. At this point, they are mainstream. If you look at the top 10 languages (let's assume those are "mainstream") according to TPCI, you'll see that all those either have closures already in some shape or form, or are planning to get them in the next major version (C++0x), with two exceptions: C and Java. Why C won't ever have them is fairly obvious, I think - apart from being essentially preserved as is, it also frowns upon such high-level constructs with non-transparent implementations. So we can safely say that out of mainstream high-level programming languages, Java is the only one which does not have closures, and does not plan to add them either. That's a clear mark of not getting along with times.
I mean, think about it: today, Visual Basic, the language traditionally labeled as one for the "less bright" programmers, has lambdas/closures!
Yes, of course closures won't be the end of it, just like OOP wasn't. Evolution of language design keeps going on, and I strongly suspect that typeclasses will be the next big thing, for example. But that doesn't mean one shouldn't try to keep up.
And I will need to understand what is going on while doing it. I've seen lots of code *in presentations* on closures that I don't directly understand, and I've got +10 years of programming experience on a university level.
I'm not sure what you mean by "programming experience on a university level", but if anything, it seems to be an indication of how bad things are. If you ever had exposure to Scheme in the uni, you should have absolutely no troubles understanding how closures in any language works. On the other hand, if the only thing you've ever dealt with is Java (and maybe C/C++), then you really missed a lot more than you know about.
In general, the pressure to add things to a language is huge, but should be contained - it's always easy to say: hey, we're missing this and that, please add!
Of course, which is why academic languages tend to add them first, then experimental derivatives of mainstream languages, and then finally mainstream languages themselves. With closures, at this point, we are long past stage 3. Time to wake up.
Let Microsoft be the one that does to try it all. It's great to try and understand each of the
.NET runtime languages when trying to browse through the mess they call an API.I'm not going to pick up the bait regarding the "API mess", though I have to note in passing that Java APIs aren't significantly better there. As for the question at hand - if you refer to stock libraries that come with
.NET, then they're all written in C# (which you'd have known if you actually ever looked at the code...); the only stuff that's in VB is -
Re:Good News!
C#? Really..?
According to tiobe, Java, as well as C++, beats C# and VB combined..
-
TIOBE index
This web site basically gives an indication of the most popular langauges.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
As you can see, C comes very high on the list. -
Theory and Science, Not Language
I'm a firm believer that the theory, science, and logic of programming is far more important than the language itself. Once you understand the important aspects of elegant design, the rules of most languages are the same. I graduated in 1996 - a while back now - but remember that the thing I thought most sorely lacking from my education was a firm understanding of database architecture and design. That is going to be just as important as understanding solid programming in any job. If a database is well designed, the code should almost write itself, once you understand end users requirements.
After that mouthful, Tiobe does a fairly good job at monitoring trends in programming language popularity. Java/C/C++ are 1/2/3 according to them. You can see their full list and trends here:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Regards,
-Flip
-
Re:skillsets
Look at this site which rates languages by popularity of use:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
My suggestion is to read Kernigan's The Practice of Programming .
Debugging the Software Development Process by Microsoft Press -
Re:Chuck'em out
"Since anything you're taught about computers is mostly obsolete in a few years..."
You're not a programmer, are you? I ask because no programmer would ever say that.
The C programming language came out in 72, and C++ came a few years later. Both are in the top three most popular programming languages "based on the number of skilled engineers world-wide, courses and third party vendors" and they make up 25% out of the top 20 languages in the list. Although the number one language, Java, makes up 19%, it "derives much of its syntax from C and C++" and Java came out in 1995.
Other sources say C is still responsible for nearly 50% of new open source projects, followed by Java with 28%.
So even if you took a programming class 30 years ago it would still very much apply today. -
Re:c-derived languages?
Here's a MUCH better ranking: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Basically Java > C, but C | C++ > Java. However C# PHP, so not all is lost. There's no mention of ObjC on there at all
... which may or may not be odd. -
An alternative list
Tiobe maintains a list that is updated every month that tells a different story.
For January 2009, rounded; Java, 19%; C, 16%; C++, 10%; VB, 9%; PHP, 10%.
-
Re:Regarding the "SaaS kills developers" article..
Well, dont know, but the stats e.g. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html don't exactly convince me that Java is dead..
-
Re:Netcraft confirms it
it might help to look at the context of the ranking in order to see things in perspective. coming in 8th out of 50 is hardly "dying." and if Perl is dying then Python (7th) isn't far behind, and JavaScript (9th), Ruby (11th), Lisp/Scheme (19th), and Lua (20th) are all definitely dead. not to mention the rest of the ranked languages:
21. ActionScript
22. MATLAB
23. FoxPro/xBase
24. Fortran
25. Ada
26. Transact-SQL
27. Prolog
28. RPG. (OS/400)
29. Erlang
30. NXT-G
31. Awk
32. LabVIEW
33. Haskell
34. ML
35. Objective-C
36. Focus
37. Groovy
38. Smalltalk
39. Euphoria
40. CL. (OS/400)
41. Alice
42. Tcl/Tk
43. Scala
44. Caml
45. Bourne. shell
46. Q
47. Forth
48. Natural
49. APL
50. R -
Re:I have to say they are working really hard....
Actually, I said "arguably, the most widely-used language on the internet"
And according to, you know, actual facts...
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
-
Re:No one made it cause no one cares
They don't? The methodology isn't perfect, but we're not talking about calculating tolerances for a bridge or determining what hunk of tissue to excise during brain surgery here. In other words, a blunt metric is all we're looking for (and is certainly more reliable than a quote from an individual with a direct interest in promoting the language).
And it's not like there aren't corroborating sources like Google trends, Sourceforge statistics (a bit old but still relevent), book sales and so forth.
-
Re:No one made it cause no one cares
Oh, and here, or more specificly here is one metric reflecting a significant drop in popularity for Perl relative to other languages.
That isn't to say Perl is "bad" or going away any time soon. The huge installed base and extensive module repository ensures its longevity (and even as it wanes a larger job market) but as time goes on fewer new projects (both public and internal) are choosing Perl as the implementation language. It was never particularly strong as a desktop application language - Python seems the leader there - and it has long since been eclipsed by PHP as a web development language.
Perl's strongest area is in it's roots as a quick and often dirty language used by administrators. Unlike developers admins are relatively unlikely to go language shopping and most of the deficiencies of Perl are relatively unimportant for that type of work.