Posted on 02/02/2013 6:53:38 PM PST by SeekAndFind
Microsoft's C# has been crowned the number one programming language of the year by the PopularitY of Programming Language (PYPL) index.
Although Java is still the most widely used programming language in the world, C#'s popularity grew by 2.3% in 2012 - more than any other programming language during the same period. The growth of C# is thought to come at the expense of C and Visual Basic.
Java had a 28.3% developer share in 2012, even though its usage went down 0.3%. PHP, whose market share was down 1.6% to 15.4%, was the second most popular. C# and C++ came in joint third, each with a 10.5% share.
C and Javascript, both dropped down two places, from third to fifth place and fifth to seventh place respectively. Python dropped from fifth to sixth place, despite growing 0.9% in popularity and becoming the second most popular language in the US.
The PYPL index is created by analysing how often language tutorials are searched on Google. The more a specific language tutorial is searched, the more popular the language is assumed to be.
According to Nat Friedman, CEO of cross-platform app creation platform Xamarin, the launch of Windows 8 has played an important role in the growth of C# in 2012. C# remains the dominant language of third-party application development on Windows devices.
However, other features such as asynchronous programming, garbage collection, type safety and the ability to execute applications quickly have all contributed to the popularityof C# among mobile developers. The potability of C# is also key, according to Friedman.
"Between Windows, iOS and Android, your C# code can run on over 2.2 billion devices. And beyond mobile, C# is highly portable in a wide range of environments across the spectrum of mobile, embedded, desktop, and server computing," he said in a blog post.
The results of the PYPL index conflict with those of the better known TIOBE Programming Community Index, which ranks language popularity based on the number of skilled engineers world-wide, courses and third party vendors.
TIOBE is broader in scope, in that it uses Google, Bing, Yahoo, Wikipedia, Amazon, YouTube and Baidu to calculate the ratings. However, it uses the word "programming" in the search phrase rather than "tutorial", which PYPL claims is "misleading".
According to TIOBE's December 2012 results, Objective-C is the language of the year, rising 4.3% in popularity during 2012. C had the greatest developer share (18.7%), followed by Java with 17.6% and Objective-C with 11.1%.
Meanwhile, C# dropped a place to fifth place with a rating of 5.5%, and PHP was placed sixth.
"TIOBE is a lagging indicator. Among other things, it counts the number of web pages with the language name. Objective-C programming has over 28 million pages, while C programming has only 11 million. This explains why Objective-C has a high TIOBE ranking," stated a post on the PYPL web page.
"But who is reading those Objective-C web pages? Hardly anyone, according to Google Trends data. Objective C tutorial are searched 6 times less than Javascript tutorial. Javascript has a 7.9% share of search, so Objective-C has a share of 1.3%."
TIOBE will announce its own programming language of the year 2012 later this month.
This, like "I could care less" instead of "I couldn't care less." is said by people all the time and is actually the opposite of what you mean.
The learning curve is a graph of knowledge acquired vs. time. A "nice" learning curve is steep. A shallow learning curve means you've have been working a very long time and have not acquired very much knowledge.
Tonight's Pedantic MomementTM has been broguht to you by Bristol-Meyers.
PERL is the web application COBOL. It is still used all over the place in legacy apps.
What about JQuery? That is essentially JavaScript, but I’m not sure if it gets considered as JavaScript.
I am a big fan of Apache Wicket to develop Java-based web apps....I can build my HTML file and get all of the CSS goodness worked out in any HTML design app, then code the matching Java class to pop the data onto the page. Writing reusable components is a snap. And it really works well with toolkits, like Twitter Bootstrap.
Well, I am writing most of my Master’s project in python and some c, but I really like C#. It’s one of Microsoft’s better accomplishments.
Regex is one of those things everyone hates, but nobody has ever found anything better to replace it with.
Somebody asked me once if regex was left-brain or right-brain. I told them writing them is right-brain and reading them is left-brain.
Au contraire: http://en.wikipedia.org/wiki/F_Sharp_(programming_language)
FWIW, a residual reason to pay attention to MSFT.
However, most folks in the field will gravitate in the Haskell direction.
Isn't C♭ a little dated? Maybe this will help point you the right direction?
Still around.
And it gets even better. They’re now owned by Micro Focus, most well known in the early PC era for Micro Focus COBOL.
It looks like they’re primarily development tools these days, and still do COBOL. Don’t see anything about Pascal. I know some guys who do smartphone development who use Silk, one of their tools.
For simple things RAD is great; though I believe that it's done a huge disservice to the world -- namely the "code-behind" style. [At least] half of the applications I've had to maintain in C# had the propensity to use labels as a sort of global variable (this possibly in addition to the variable/property that label's value comes from -- introducing sorts of aliasing/synchronization problems).
For my own new development, I try to (a) build the algorithms (and state-machine/-variable interactions) first, then (b) slap the GUI on, displaying what's needed as necessary -- this avoids the problem of making the program overly-dependent on the GUI.
That said, I'm a fan of Delphi, and I can see Ander's [Delphi] influence/experience in C#. So it's not all bad -- but then again, I've been working in Ada on my home projects for a few years and it's a real pain to go back to languages that weren't designed for both correctness and maintainability. One such feature is case-coverage, validating that every possible value in a discrete type (esp. enumerations) appears in a switch-statement, which is impossible in C# because enumerations are really 'int'. (It is technically impossible to implement general case-coverage in C#: the simplest reason being that it allows switch on strings, which can be of arbitrary/unbounded length.)
I've found DataGridView to be a very flexible and easy control to use.
It may be simpler to use [in general practice] than my experience with it has been; but again I am doing upkeep/extension on software likely originally written by someone in a "just get it done" mentality who was unconcerned with maintainability (judging by how the program is structured and the amount of cut-n-paste/code-behinds -- you know, like when the guy has a print button and a preview button and both contain the same code instead of, say, having the same handler attached to both with a little prolog before the main portion determining which option [print or preview] was pushed). -- Given some of what searches turned up regarding some of my troubles it looks like it's not always easy-to-use.
IMO, PHP needs to die. Its fast and loose playing w/ types is, I believe, cause enough for legal liability in any system dealing with finances.
As an example, consider the translation of some numeric string to an integer which is done automatically. If the string's value is "06" or "07" then the integer-result is that number, but if it is "08" or "09" then the resultant integer is 0 -- this is because the translation views the leading 0 as a flag that you are dealing with Octal, and 8 or 9 are not valid octal numbers so the value 0 is returned (indicative of an error in the parsing); it is because this error-value is itself a valid output that there is thus no way to catch the error.
(There are many other problems, but that one lends itself to a short, obvious explanation illustrating the dangers of PHP's design philosophy.)
Or, instead of time it could be "effort/work" (thus payoff vs. effort) and in this case there's a radically different meaning -- indeed it would be [roughly] the transposition of the X and Y coordinates in the aforementioned "knowledge vs. time" (it would be exact iff the ratio of work to time was fixed).
They are fun, aren't they? ;)
Personally, I never left Turbo Pascal for a high-level language. And there's always assembler for important stuff. ;)
TP was pretty good stuff, certainly superior to C/C++ as far as reliability/maintainability go; with the philosophy of detecting errors at the earliest possible point (statically, at compile-time, if possible), means that it is inherently a better choice for developing large systems.
Though I believe Ada to be superior to even TP -- it was designed with reliability and maintainability in mind, looking at both programming-in-the-small (generics, type-attributes, subtyping) and the large (packages [which can be generic], task-types, true spec/body separation)... I find it slightly saddening that more languages forgo [any?] thought on maintainability.
TP became Delphi, which was spun-out/sold-to another company -- I think there was several sales, or talks thereof, because I vaguely remember worries that it would become like WordPerfect -- however, that fear has not been realized as Embarcadero is still around and doing [active] development on the product, IDE, and language... while WP seems to be getting the breadcrumbs left over from Corel's focus on its image/video software.
This is incorrect; Ada has a wonderful generic system.
subprograms can be parametrized on a type (or other functions, ranges, tasks, values, packages, etc.), as can packages themselves; wikipedia has an entry about Ada's generic-system on it's generic programming page.
The consequence of the above is you can make programs with a high amount of safe reuse (decomposing common elements); for example:
Now some people think that the template/metaprogramming ability is more powerful than the generic facility of Ada because it is Turing-complete; this is actually quite a step backward WRT safety -- because it is Turing-complete you can state your problem in the template itself, which is not guaranteed to finish (precisely because it is Turing-complete).
Do you're the person I need to hunt down and kill! [j/k]
But on a more serious note, I absolute loathe regular expressions -- as most of my career has been maintenance/additional-development regex always becomes a pain in the ass.
Example:
The original requirement was validating the phone-number was 7 digits, now it has to be 7-digits w/ the '-' optional in NNN-NNNN form... oh, now we need it to recognize area-codes (NNN)-NNN-NNNN, oh now it also needs to accept NNN-NNN-NNNN... oh, now it needs to understand country codes... oh now it needs to accept the proper format based on the country-code.
*Sigh*
-Author Unknown
A collary, seen recently:
"You have a problem. You decide to solve it using threads. problems Now have two you."
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.