TIOBE Index for May 2023 – Which Programming Language is Most Popular?

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

It has been stated before, programming language popularity is rather stable. If we look at the first 10 programming languages in the TIOBE index, then C# is the youngest of them all. C# started in 2000. That is 23 years ago! Almost every day a new programming language is born, but hardly any of them enter the top 100. At least not in their first 10 years. The only languages younger than 10 years in the current top 100 are: Swift (#14), Rust (#17), Crystal (#48), Solidity (#59), Pony (#71), Raku (#72), Zig (#88) and Hack (#92). None of them are less than 5 years old. In other words, it is almost impossible to hit the charts as a newbie. On the contrary, we see that golden oldies revive. Take for instance Fortran, which is back in the top 20 thanks to the growing demand for numerical computational power. So, if you have just invented a brand new language, please have some patience! — Paul Jansen CEO TIOBE Software

You can read the details of how and why languages are popular at the TIOBE website. If you are a developer, you will find this information interesting.

Continue reading “TIOBE Index for May 2023 – Which Programming Language is Most Popular?”

TIOBE Index for January 2023 – Which Language is Most Popular?

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Scripting language Lua is back in the top 20 of the TIOBE index. In its heyday in 2011, Lua briefly touched a top 10 position. Whether this is going to happen again is unknown. But it is clear that Lua is catching up in the game development market: easy to learn, fast to execute, and simple to interface with C. This makes Lua a perfect candidate for this job. One of the drivers behind the recent success of Lua is the very popular gaming platform Roblox, which uses Lua as its main programming language. –Paul Jansen CEO TIOBE Software

TIOBE also announced that C++ is the programming language of 2022. You can read the details of how and why at the TIOBE website, as well as see the runners up (C and Python). If you are a developer, you will find this information interesting.

Continue reading “TIOBE Index for January 2023 – Which Language is Most Popular?”

TIOBE Index for March 2022 – Which Language is Most Popular?

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Scripting language Lua is back in the top 20 of the TIOBE index. In its heyday in 2011, Lua briefly touched a top 10 position. Whether this is going to happen again is unknown. But it is clear that Lua is catching up in the game development market: easy to learn, fast to execute, and simple to interface with C. This makes Lua a perfect candidate for this job. One of the drivers behind the recent success of Lua is the very popular gaming platform Roblox, which uses Lua as its main programming language. –Paul Jansen CEO TIOBE Software

You’ll also notice Python has moved to the top, and Java has lost some popularity and is down to 3th.

Continue reading “TIOBE Index for March 2022 – Which Language is Most Popular?”

TIOBE Index for January 2022 – Which Language is Most Popular?

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Python started at position #3 of the TIOBE index at the beginning of 2021 and left both Java and C behind to become the number one of the TIOBE index. But Python’s popularity didn’t stop there. It is currently more than 1 percent ahead of the rest. Java’s all-time record of 26.49% ratings in 2001 is still far away, but Python has it all to become the de facto standard programming language for many domains. There are no signs that Python’s triumphal march will stop soon.– Paul Jansen CEO TIOBE Software

Continue reading “TIOBE Index for January 2022 – Which Language is Most Popular?”

TIOBE Index for November 2021

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third-party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Since the start of the TIOBE index, more than 20 years ago, PHP has been a permanent top 10 player. Recently, we saw PHP struggling to stay in that top 10. PHP was once the master of web programming, but now it is facing a lot of competition in this field. This is not to say that PHP is dead. There are still a lot of small and medium enterprises relying on PHP. So I expect PHP to decline further but in a very slow pace. Two of PHP’s competitors, Ruby and Groovy, gain both 3 positions this month. Ruby from #16 to #13 and Groovy from #15 to #12. Other interesting moves this month are Lua (from #32 to #26), Dart (from #40 to #31), and Kotlin (from #38 to #33). — Paul Jansen CEO TIOBE Software

Continue reading “TIOBE Index for November 2021”

Application Logging Best Practices

As an application developer, you need to think about how your application logs events. Logging is a traditional and essential tool that assists in monitoring certain activities conducted by your application, as well as what the users of your application. By creating a a centralized logging service that can be used by your application, you can log all required activity so that debugging can be a less painful process.

These are some of the Best Practices for logging:

  1. Human Readable – While you may be tempted to create a log of event and errors that can easily processed by a feature inside your application, or even by another custom utility, it won’t always be possible or practical to rely on technology to parse through your logs. Unless you have been writing logs for many years, stick to the simple and make your logs human readable.
  2. Use Timestamps – Add the current system date and time to each logged event. This gives you invaluable information of the sequence of events, how log each event lasted, etc.
  3. Use Text Format – In the beginning, log everything to a text file. You might be tempted to log everything to a database table, or save the values in XML, but those all require more effort and can make troubleshooting the log writing process harder, so keep it simple. Later you can look at Windows Event logs or other methods.
  4. Log Everything – It is easy to assume you just want to log errors, but you probably want to log everything in the beginning. I usually create levels of logging, and allow the user or administrator to set the level of logging unique to that instance. The default might be minimal logging, and you allow the user to elevate the logging to verbose logging if they suspect an issue.  Or you could default to verbose logging until the program has reached a more stable version so that logging can be reduced down to minimal.
  5. Single Line – If possible, log the entire event as one line. That won’t always be possible, but it should be your goal to maintain readability.
  6. Keep it Local – Create and maintain your log files on the local system. How can you log a network issue if you can’t reach the log file on a network server?
  7. Rotate Files – If you program is running over a long enough period, your log files can get very large. If you are writing verbose logs, and you program writes 1 MB of data per day, after one year you might have a 200-365 MB log file. After 5 years you could have a 1 GB log file. Files that large offer very little assistance if you really need to read through them for an actual troubleshooting event. You should decide how long the information is valuable, and either overwrite older events or create a new log file. It is much better to sort through several smaller files to locate the correct file to read than one massive file.

Continue reading “Application Logging Best Practices”

TIOBE Index for April 2021

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Objective-C’s fame came to a sudden stop when, in 2014, Apple announced that there was a new language called Swift that should replace Objective-C. Remarkably, it took a long time before Swift was more popular than Objective-C. Only 7 years after its death sentence, Objective-C is now leaving the top 20. But there is still hope for Objective-C because old languages sometimes strike back. Take a look at Fortran! This dinosaur is back in the top 20 after more than 10 years. Fortran was the first commercial programming language ever, and is gaining popularity thanks to the massive need for (scientific) number crunching. Welcome back Fortran.

Continue reading “TIOBE Index for April 2021”

TIOBE Index for January 2021

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

C is still number one, but it is Python that claims the second position now. Some say that Python’s recent surge in popularity is due to booming fields such as data mining, AI and numerical computing. 

Continue reading “TIOBE Index for January 2021”

TIOBE Index for December 2020

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

C is still number one, but it is Python that claims the second position now. Some say that Python’s recent surge in popularity is due to booming fields such as data mining, AI and numerical computing. 

Continue reading “TIOBE Index for December 2020”

TIOBE Index for November 2020

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

C is still number one, but it is Python that claims the second position now. Some say that Python’s recent surge in popularity is due to booming fields such as data mining, AI and numerical computing. 

Continue reading “TIOBE Index for November 2020”

TIOBE Index for October 2020

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Programming languages used for teaching children to program have made significant movement towards the top 20 of the language lists, but this is expected in light of our current work-from-home environment. Another change is from now on “Visual Basic .NET” is called “Visual Basic” and the old entry “Visual Basic” is renamed to “Classic Visual Basic”.

Continue reading “TIOBE Index for October 2020”

TIOBE Index for April 2020

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Programming languages used for teaching children to program have made significant movement towards the top 20 of the language lists, but this is expected in light of our current work-from-home environment. Another chnage is from now on “Visual Basic .NET” is called “Visual Basic” and the old entry “Visual Basic” is renamed to “Classic Visual Basic”.

Continue reading “TIOBE Index for April 2020”

TIOBE Index for August 2019

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Programming language Python is is now in the top 3 of the TIOBE index. Since Python surpassed C++ and became number 3, it has achieved an all time high for the scripting language of Guido van Rossum. Nothing much has changed recently in the TIOBE index. In the top 10 only Objective-C and Python have made any significant gains. 

Continue reading “TIOBE Index for August 2019”

Visual Studio 2019 Roadmap

Microsoft has released their planning calendar for future versions Visual Studio. In this newly released roadmap, Microsoft detailed some of the features that will be coming to the IDE in Q1 of 2019.

As requested by the user community, there is improved Xamarin.Forms support in Visual Studio 2019, it will also be multi-monitor dots per inch aware (which should help improve clarity on monitors with different DPIs and resolutions), and some services will also be moved to the background to improve load times.

Continue reading “Visual Studio 2019 Roadmap”

How Microsoft made C# Open Source

The powerful C# general-purpose object-oriented programming language was developed by Microsoft (Anders Hejlsberg) as part of its .NET initiative in 2000. The most recent version of C# is 7.3, which was released in 2018 as part of Visual Studio 2017.

Microsoft decided to continue the development of new language features using the open source model, so they completely re-wrote the language in C# and published the source code on GitHub.

Continue reading “How Microsoft made C# Open Source”

TIOBE Index for August 2018

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Programming language Python is getting very close to the top 3 of the TIOBE index. If Python surpasses C++ and becomes number 3, this will be an all time high for the scripting language of Guido van Rossum. In 2005 there was a study what programming language was taught most at US universities and Java appeared to be a clear number one with 60% of all introductory programming courses. Similar research was conducted almost 10 years later in 2014 and the outcome was different. This time Python was a clear winner with more than 70% “market share”.

Continue reading “TIOBE Index for August 2018”

TIOBE Index for December 2017

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

This month R and MATHLAB have made huge improvements, but the big news is Visual Basic.Net has dropped out of the top 5.

Dec 2017Dec 2016ChangeProgramming LanguageRatingsChange
11Java13.268%-4.59%
22C10.158%+1.43%
33C++4.717%-0.62%
44Python3.777%-0.46%
56C#2.822%-0.35%
68JavaScript2.474%-0.39%
75Visual Basic .NET2.471%-0.83%
817R1.906%+0.08%
97PHP1.590%-1.33%
1018MATLAB1.569%-0.25%

The TIOBE Top 10 for this month:Read the entire results at this site.

Highest paid jobs in programming for 2017

Stack Overflow has asked developers each year since 2011 about their favorite technologies, coding habits, and work preferences. This includes how they learn, share, and earn more money. This year over 64,000 developers took their annual survey.

They learn something new every time they perform the survey, and this year is no exception:

  • A common misconception about developers is that they’ve all been programming since childhood. In fact, we see a wide range of experience levels. Among professional developers, 11.3% got their first coding jobs within a year of first learning how to program. A further 36.9% learned to program between one and four years before beginning their careers as developers.
  • Only 13.1% of developers are actively looking for a job. But 75.2% of developers are interested in hearing about new job opportunities.
  • When we asked respondents what they valued most when considering a new job, 53.3% said remote options were a top priority. A majority of developers, 63.9%, reported working remotely at least one day a month, and 11.1% say they’re full-time remote or almost all the time.
  • A majority of developers said they were underpaid. Developers who work in government and non-profits feel the most underpaid, while those who work in finance feel the most overpaid.

So what can you learn from the answers collected during this survey? How about what languages pay the most, or are in the highest demand?

Most Popular:

Image: Stack Overflow

 

Highest Salary:

Image: Stack Overflow

 

You can get much more detail directly from the Stack Overflow survey results.

TIOBE Index for April 2017

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

This month Visual Basic.Net has moved up sightly, but the big news is the PHP replacement language called Hack.

The TIOBE Top 10 for this month:

Apr 2017Apr 2016ChangeProgramming LanguageRatingsChange
11Java15.568%-5.28%
22C6.966%-6.94%
33C++4.554%-1.36%
44C#3.579%-0.22%
55Python3.457%+0.13%
66PHP3.376%+0.38%
710Visual Basic .NET3.251%+0.98%
87JavaScript2.851%+0.28%
911Delphi/Object Pascal2.816%+0.60%
108Perl2.413%-0.11%

Read the entire results at this site.

Top Programming Languages in 2017

What computer languages will be the most popular in 2017? This is actually a relevant question for new and long-time programmers if they want to make sure they are learning and using a popular (an potenially marketable) computer language.

In this article byMahesh Chand, we see his research into what the most popular languages are for now:

The most in-demand programming language can be directly proportional to the number of jobs available in the market. Based on the data gathered from Indeed, a report published on CodingDojo lists the languages, given below, as the most in-demand in 2016:

  • SQL
  • Java
  • JavaScript
  • C#
  • Python
  • C++
  • PHP
  • Objective-C/Swift
  • Ruby/Ruby on Rails

Business Insider ranks the languages, given below, as the most in-demand.

  • Java
  • PHP
  • Perl
  • C
  • Objective-C
  • JavaScript
  • Visual Basic
  • Ruby
  • Python
  • CSS
  • R

TIOBE Index for September 2016

Have you seen the latest TIOBE rankings report?

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

This month C has moved to an all time low, but is still in second place. Java is still strong in the number 1 spot. High performance Assembly is still holding onto it’s recent top 10 spot.

The TIOBE Top 10 for this month:

Aug 2016Aug 2015ChangeProgramming LanguageRatingsChange
11Java19.010%-0.26%
22C11.303%-3.43%
33C++5.800%-1.94%
44C#4.907%+0.07%
55Python4.404%+0.34%
67PHP3.173%+0.44%
79JavaScript2.705%+0.54%
88Visual Basic .NET2.518%-0.19%
910Perl2.511%+0.39%
1012Assembly language2.364%+0.60%

Read the entire results at this site.

C# Best Practices

Writing your programs using C# in Visual Studio assumes you understand the best practices that make your program maintainable and well structured. In this article by Eman Mughal, we get his take on some of the general best practices to make you a better programmer.

General

  • Simplify your code
    • First point in simplification of your code is that does anyone with 2 or 3 years of experience can understand your code? Depending on experience programmers can write much elegant and beautiful code with in fewer lines but does that code understandable with a person with less experience?
  • Method should only do one thing
    • Normally we write methods those can perform more than one tasks, So its better to split your tasks into smaller sub methods so that each method can do only one task.
  • You should be consistent with your naming conventions.
  • During the construction of your application think about classes and design patterns you can take advantage from.
  • Use properties instead of public variable
    • Properties can give you access methods getters and setters.
    • So by using getter and setters you can have validations in Set method or you can use threading support by using Lock statement in get method. Performance wise they are same but using properties and getters and setter allows your application to be extendable.
  • Use Runtype vs compile time constants
    • Use readonly instead of const keywords. It provide flexibility at runtime while const keyword define constants at compile time. 

Using string

  • Format() or Stringbuilder class
    • String concatenation operations are expensive. When we do concatenation a new copy of string is created in memory.
    • If you are using single concatenation like string + string then its fine. But if you are going to use complex concatenations like, looping through and building complex strings then use string builder class or string.format method.
  • Use String.IsNullOrEmpty
  • Use String.IsNullOrWhiteSpace rather than mannualy checking for null or empty
  • Use Foreach loop instead of index based loops
    • Using foreach loop compiler will generate optimized code
    • Foreach also allows you to work better with collections of particular type. It provides you maintainability. If you want to change the type of collection then maintaining this change is more easy and less error process in foreach loop, but on the other hand if you will write loop with integer counter, in that case, you will need to rewrite the entire loop logic and rewriting loop will open the doors of errors as well. So by using foreach loop it is good practice.
  • User variable initializers instead of initializing variables in contructors
    • Initializer
      • Public class Customer {
      • Private string Name = “Will”;
    • Assignment
      • Public employee() {
      • Name = “Will”;
    • It’s not related to performance it’s related to maintainability issue. So in constructor initialization if you want to add multiple constructors then you need to repeat initialization code in each and every constructor. But if you will initialize your variable right away then you will not need to repeat same initialization code again and again for each constructors. Yes you might be thinking that we can call one initialization constructor from each constructor. That is true, but again there are chances that you might miss, and secondly in case of variable initializer you do not even need to call initialization constructor with each of your other constructors.
  • Casting is one of those things that can get you in trouble
    • Customer customer = (Customer)user;
    • //this can throw an exception
    • If (user is Customer)
      • customer = (user as Customer); //it will return null when exception occurs
    • So in the above example using “is” and “as” will be best practice instead of casting.
  • using” keyword manages object disposal
    • Using (MyClass myclass = new MyClass() ) {
      • //use MyClass
      • } //MyClass is Disposed
    • So above code is more cleaner and elegant instead of calling Dispose() method explicitely.
    • So by in order to use “using” statement you need to implement IDisposable interface with your classes. And then provide the implementation of Dispose method in your classes. By using this technique you can use “Using” statement. Which will automatically call Dispose() method of your class. And In that class you can write code to free external resources like connection objects, streaming object, file handlers etc.

You can read the entire article here.

Using Unreal Engine in Visual Studio

Unreal Engine is designed to integrate with Visual Studio, allowing you to quickly and easily make code changes in your projects to immediately see results upon compilation. Setting up Visual Studio to work with the Unreal Engine can help improve efficiency and the overall user experience for developers using this powerful tool.

You can read some step-by-step instructions for installing the Unreal Engine in Visual Studio in this article from The Visual Studio Blog.

The Unreal Engine is a cross-platform game engine targeting DirectX 11 and 12 for PC and Xbox, OpenGL for iOS, OS X and Android, and WebGL for the Web.  Console development on Xbox One and PlayStation 4 is also available on the Unreal Engine for registered developers of those platforms. Unreal Engine also supports virtual reality development targeting platforms including Oculus, PlayStation VR, SteamVR and Gear VR.

Unreal Engine games can be programmed using C++ and Unreal’s visual scripting framework called Blueprints.  Visual Studio serves as a powerful code editor and debugger when using C++ for Unreal development.

Unreal C++ code inside Visual Studio

Visual scripting with Blueprints

RedMonk Programming Language Rankings for Q3 2016

Looking a how popular a programming language is on Stack Overflow and the popularity of those same languages on GitHub allows for a analysis of what languages are most popular. The article by Stephen O’Grady reads: “The idea is not to offer a statistically valid representation of current usage, but rather to correlate language discussion (Stack Overflow) and usage (GitHub) in an effort to extract insights into potential future adoption trends.”

  • To be included in this analysis, a language must be observable within both GitHub and Stack Overflow.
  • No claims are made here that these rankings are representative of general usage more broadly. They are nothing more or less than an examination of the correlation between two populations we believe to be predictive of future use, hence their value.
  • There are many potential communities that could be surveyed for this analysis. GitHub and Stack Overflow are used here first because of their size and second because of their public exposure of the data necessary for the analysis. We encourage, however, interested parties to perform their own analyses using other sources.
  • All numerical rankings should be taken with a grain of salt. We rank by numbers here strictly for the sake of interest. In general, the numerical ranking is substantially less relevant than the language’s tier or grouping. In many cases, one spot on the list is not distinguishable from the next. The separation between language tiers on the plot, however, is generally representative of substantial differences in relative popularity.
  • GitHub language rankings are based on raw lines of code, which means that repositories written in a given language that include a greater amount of code in a second language (e.g. JavaScript) will be read as the latter rather than the former.
  • In addition, the further down the rankings one goes, the less data available to rank languages by. Beyond the top tiers of languages, depending on the snapshot, the amount of data to assess is minute, and the actual placement of languages becomes less reliable the further down the list one proceeds.

Top 20 Languages as reported by RedMonk

  1. JavaScript
  2. Java
  3. PHP
  4. Python
  5. C#
  6. C++
  7. Ruby
  8. CSS
  9. C
  10. Objective-C
  11. Shell
  12. R
  13. Perl
  14. Scala
  15. Go
  16. Haskell
  17. Swift
  18. Matlab
  19. Visual Basic
  20. Clojure

Writing Unmaintainable Code

Programming is rarely ever complete. Change is a constant in an enterprise software systems, and making a program difficult to  or expensive to change is an opportunity to cost to your business money.  Poor code quality in your software will jeopardize your company’s future, make agile changes impossible, and make maintenance a nightmare.

In this article by Roedy Green helps us understand how easy it is to make a program difficult to manage and impossible to update without significant risk.

In the interests of creating employment opportunities in the Java programming field, I am passing on these tips from the masters on how to write code that is so difficult to maintain, that the people who come after you will take years to make even the simplest changes. Further, if you follow all these rules religiously, you will even guarantee yourself a lifetime of employment, since no one but you has a hope in hell of maintaining the code. Then again, if you followed all these rules religiously, even you wouldn’t be able to maintain the code!

You don’t want to overdo this. Your code should not look hopelessly unmaintainable, just be that way. Otherwise it stands the risk of being rewritten or refactored.

General Principles

To foil the maintenance programmer, you have to understand how he thinks. He has your giant program. He has no time to read it all, much less understand it. He wants to rapidly find the place to make his change, make it and get out and have no unexpected side effects from the change.

He views your code through a toilet paper tube. He can only see a tiny piece of your program at a time. You want to make sure he can never get at the big picture from doing that. You want to make it as hard as possible for him to find the code he is looking for. But even more important, you want to make it as awkward as possible for him to safely ignore anything.

Programmers are lulled into complacency by conventions. By every once in a while, by subtly violating convention, you force him to read every line of your code with a magnifying glass.

You might get the idea that every language feature makes code unmaintainable — not so, only if properly misused.

%d bloggers like this: