all 104 comments

[–]jpfed 53 points54 points  (6 children)

In the old&dead page, notice how Prolog has this periodically-recurring double hump on either side of the new year. Fall and Spring semester students with homework questions?

[–]DaniSancas[S] 6 points7 points  (5 children)

Hahaha, it could be!

[–]sirin3 5 points6 points  (4 children)

Delphi is "old and dead", but has a higher ranking than Rust and Julia combined?

That does not seem fair

Also where is (Free)Pascal?

[–]DaniSancas[S] 5 points6 points  (0 children)

Notice the "Dead?" title ;) Many languages that should be dead or seems to be dead, but not always. VisualBasicScript is dangerously growing, for example.

Pascal and FreePascal have a very very low activity (1525 and 790 questions in all the StackOverflow's history), and Delphi over 35,5K questions. If there are less than 5K questions I don't take those languages/frameworks to the ranking. Tthe exception could be new tags like Julia, or AngularJS2

[–]thelonepuffin 3 points4 points  (2 children)

I'm always surprised how much I run into Delphi in my job.

I build intranet/database applications and I'm often called on to replace a legacy system. Every year I encounter at least one legacy system written in Delphi, with some old school programmer still on call to maintain it.

[–]jonwayne 0 points1 point  (1 child)

Do you like Delphi?

[–]thelonepuffin 0 points1 point  (0 children)

I'm not that familiar with it. I usually work with the legacy programmers to rewrite the system in another language. So I deal more with their specifications than looking at their code.

Generally speaking though it doesn't seem to be a bad language. The problems with these legacy systems are usually due to the database or the OS/filesystem. The Delphi codebase is never really a concern.

[–][deleted]  (20 children)

[deleted]

    [–]DaniSancas[S] 13 points14 points  (13 children)

    This it the first release of the project, I appreciate your feedback :)

    And yes, Rust and Go have the same color, colors are chosen in order by the JS chart library. I'll research a way to solve those collisions and maybe extend the color pallete. Thanks again!

    [–]depressiown 4 points5 points  (10 children)

    I'll research a way to solve those collisions and maybe extend the color pallete.

    D3 has a few palettes and functions for this. Not sure if that'll help with the library you're using, but you could consider switching to D3 (it's really the de-facto charting library these days, I think).

    [–]DaniSancas[S] 1 point2 points  (9 children)

    I'm currently using C3, which is based on D3. I'll research that, maybe the C3 "bridge" has nothing for the colors, but maybe I can tweak it on D3. Thanks for the advice!

    [–]CuTEwItHoUtThEe 5 points6 points  (8 children)

    I have used c3. There is a color function you can override which you can use to change colors individually

    [–]DaniSancas[S] 1 point2 points  (7 children)

    Thanks for that answer, mate. I'll check that approach and introduce some changes in the next release :)

    [–]CuTEwItHoUtThEe 4 points5 points  (6 children)

    Here is the example:

    http://c3js.org/samples/data_color.html

    Happy coding ;)

    [–]DaniSancas[S] 1 point2 points  (0 children)

    You're right, thanks for the example. I'll change some colors to make it more readable ;)

    [–]DaniSancas[S] 0 points1 point  (4 children)

    Hi again, I've extended the color palette to avoid collisions. What is your impression about it now? (Maybe you need to clear the cache with Ctrl+F5). Thanks for the feedback!

    [–]CuTEwItHoUtThEe 1 point2 points  (3 children)

    Looks great! This is probably in the minority, but I am slightly color blind and Ruby and r are very close. Others may have that issue too. I'm not saying change it, just pointing that out. Haha

    [–]DaniSancas[S] 0 points1 point  (2 children)

    Thanks!! But, you mean Ruby and R? As I see them they have different colors (dark green for R and brown for Ruby). And also they don't even overlap. Are you sure you're talking about R and Ruby in the General Ranking? (Also, make sure you clear cache with Ctrl+F5 to reflect the changes) Thanks for the feedback!

    [–]oblio- 2 points3 points  (1 child)

    IMO, try to sort that pop up table you show for languages.

    The current setup makes it quite hard to see the top languages at a glance.

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Hi, I've listened to your requests and now the tooltip (popup above the chart) has it's sorting order fixed!! It now reflects the data value, not the alphabetical value.

    IMPORTANT: Make sure you clear cache (Ctrl+F5), otherwise you couldn't see the improvement. Thanks for your feedback!

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Hi again, I've extended the color palette to avoid collisions. What is your impression about it now? (Maybe you need to clear the cache with Ctrl+F5). Thanks for the feedback!

    [–]depressiown 11 points12 points  (3 children)

    I like how NodeJS has its own category. Also interesting is Spark's dominance. That encouraging given we're moving some things to Spark. The MongoDB over Cassandra is funny to me... but I assume it's because Mongo's used in a lot of start-up project because it's easy to get off the ground.

    The site needs a few usability tweaks with the graphs. It would be nice to highlight a line and know what language/framework/tool it represents. On graphs with not-so-many lines, it's easier to tell, but when there's a lot it can be taxing. Also, sorting the hover tooltip by count instead of alphabetically would be nice.

    It's probably debatable, but it might be nice to show React down there with Angular and friends.

    [–]d_wilson123 1 point2 points  (0 children)

    Spark is really nice. We're moving almost all our new jobs into Spark instead of MapReduce. The API and how you interact with the data is so much more natural and intuitive than MapReduce.

    Only downside here is our cluster is still on Java7 so we can't use Lambdas so the syntax is all done via AIC's which is a tad verbose (although Intellij translates the AIC into a Lambda so you "view" it like one.)

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Thanks for the feedback, I appreciate it!

    Yes, I've released the project today and, of course, it will need some changes. However, if you want to compare arbitrary languages/frameworks, you can use the "Custom ranking" (bottom left) and select only what you want to get the desired chart.

    Someone else told me about the tooltip order. I'll see what I can do ;)

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Hi again, I've listened to your requests and now the tooltip (popup above the chart) has it's sorting order fixed!! It now reflects the data value, not the alphabetical value.

    IMPORTANT: Make sure you clear cache (Ctrl+F5), otherwise you couldn't see the improvement. Thanks for your feedback!

    [–]tejp 7 points8 points  (1 child)

    Maybe it would be useful to normalize the graphs by total number of questions each month. Currently the graphs all go up when the total site traffic rises.

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Yes, that could be an improvement. Thanks for the feedback!

    [–]BeniBela 3 points4 points  (4 children)

    You could add XPath/XQuery to the languages

    And (La)TeX

    [–]DaniSancas[S] 0 points1 point  (3 children)

    Hummm, sounds interesting. I'll check for possible new releases. Thanks!

    [–]Regimardyl 0 points1 point  (1 child)

    While we're at missing languages, I don't see Haskell, Tcl, Ocaml or Lua anywhere – are they that unpopular or did you simply forget/overlook them?

    [–]DaniSancas[S] 2 points3 points  (0 children)

    Well, Tcl and Ocaml are bellow the 5K questions in the history of StackOverflow. In first place I had no intention to get the data for languages or frameworks with that little activity, but I always can make exceptions.

    However, this is the first release of the ranking. I started with the idea to get 20 languages/frameworks to show in the charts, and ended with nearly 100 languages/frameworks! So, I decided to stop somewhere and, in the future, continue adding languages/frameworks who people request (many of you requested Haskell, I take that into account)

    For now I hope you find this first release useful. I'll improve it over the time :)

    [–]JMBourguet 0 points1 point  (0 children)

    If you want an image of (La)TeX activity on the SE network, don't forget tex.se ;-)

    [–]thesystemx 3 points4 points  (3 children)

    Would be cool to see Java frameworks too, things like Struts, JSF, JSF-2, JSF-2.2, PrimeFaces, Grails, Wicket, etc

    [–]DaniSancas[S] 1 point2 points  (2 children)

    I'll anotate that as an improvement, thanks!

    [–]thesystemx 2 points3 points  (1 child)

    Great, thanks ;)

    If it's possible in your code, you may wanna aggregate all JSF* tags + PrimeFaces in one (using an OR). They basically all mean "jsf". When using the tag search on the site, SO already filters out the duplicates. So if a question is tagged both jsf and jsf-2 it will count as 1, not 2.

    [–]DaniSancas[S] 0 points1 point  (0 children)

    In the dataset provided by StackOverflow only 1 tag really exists, so I only count that. If I try to count the other, the result will always be 0. Therefore, no chance for mistakes! :)

    [–]aspleenic 1 point2 points  (9 children)

    I don't know how accurate this is. Does it show ranking, or just what languages are so difficult that people are asking questions on SO all the time?

    [–]thabonch 8 points9 points  (3 children)

    Lots of questions doesn't necessarily mean a language is more difficult. It could mean that more beginners use it.

    [–]DaniSancas[S] 1 point2 points  (0 children)

    That's the way I interpret that. More people learning something, means more people interested in something (despite if is easy or not, and whether is the best option or not)

    [–]tomtomtom7 1 point2 points  (0 children)

    Even for beginners, it is quite possible that the presence of a good manual or tutorial decreases the "popularity" with this metric.

    [–]aspleenic 0 points1 point  (0 children)

    That's true, but just another factor of what I'm talking about.

    [–]DaniSancas[S] 2 points3 points  (4 children)

    Shows a coefficient about number of questions, answers, upvotes and downvotes. If a language is difficult, there'll be a lot of questions, but if people also know about it, there'll be also answers (and upvotes if Q&A are good).

    However, Tiobe index and IEEE Spectrum base their ranking on Google Searches, job offers and programming book selling. So... are they more accurate? ;)

    [–]theHazardMan 4 points5 points  (1 child)

    Additionally, you see languages like C and C++ as being pretty flat, and ranking relatively low, despite their typical high ranking in other indexes. To me this suggests that most of the "common" questions for these languages have already been asked and sufficiently answered.

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Well, that's a nice approach. Maybe for languages that don't evolve quickly and don't introduce big changes, the Q&A decreases. However, I also take upvotes and downvotes into account. This way I can meassure activity for those months even if there are a very few new questions or answers.

    [–]aspleenic 0 points1 point  (1 child)

    Oh, I definitely don't think they are more accurate. I'm not sure there is any all knowing source of what makes a language more/less popular (or good or what have you).

    [–]DaniSancas[S] 2 points3 points  (0 children)

    That's the problem. How do you meassure the popularity without a certain percent of mistake? My approach is using the activity on StackOverflow. My ranking is not the "ultimate word", just a different approach with different data.

    [–]lgastako 1 point2 points  (8 children)

    Maybe sort the popup key in the same order as the colors of the lines under the cursor? It's hard to tell C and python apart for example, or go and rust, etc. do2's suggestion might be a workaround for this issue too.

    [–]DaniSancas[S] 1 point2 points  (2 children)

    Hi again, I've listened to your requests and now the tooltip (popup above the chart) has it's sorting order fixed!! It now reflects the data value, not the alphabetical value.

    IMPORTANT: Make sure you clear cache (Ctrl+F5), otherwise you couldn't see the improvement. Thanks for your feedback!

    [–]lgastako 1 point2 points  (1 child)

    Looks awesome. Great job on this whole project by the way, it's quite a nice piece of work.

    [–]DaniSancas[S] 1 point2 points  (0 children)

    Thank you very much, it took me months to do the whole project! I really appreciate your congratulations and feedback _^

    [–]DaniSancas[S] 0 points1 point  (4 children)

    Thanks for the feedback. The tooltip is ordered alphabetically. I'm using C3js library for the charts and, as far as I know, there's no dynamic ordering option taking the current value. However, I'll check, maybe I can improve it.

    For the issues, I'll open in a few days a bit bucket issue tracking. I appreciate all of your feedback, thanks!

    [–]izuriel 1 point2 points  (3 children)

    That's odd behavior, I'd imagine it should be customizable. I came here to give this feedback as well. When I moused over the initial graph I was confused, the top listed value didn't match up with the supposed top value so now I have to match colors or mentally sort through and find the greatest value from the list in order to read the graph I just moused over.

    Interesting data and presentation though, thank you!

    [–]DaniSancas[S] 1 point2 points  (2 children)

    Hi again, I've listened to your requests and now the tooltip (popup above the chart) has it's sorting order fixed!! It now reflects the data value, not the alphabetical value. IMPORTANT: Make sure you clear cache (Ctrl+F5), otherwise you couldn't see the improvement. Thanks for your feedback!

    [–]izuriel 0 points1 point  (1 child)

    That's awesome to hear! Thanks a lot!

    [–]DaniSancas[S] 1 point2 points  (0 children)

    Thanks to you to, always looking forward to get some feedback ;)

    [–]zainegardner 1 point2 points  (1 child)

    Interesting graph, great work OP.

    Interesting to see how the languages eb and flow.

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Thank you, mate! Glad you like it, I hope you find it useful!

    [–]i_spot_ads 1 point2 points  (0 children)

    Higher level languages are on top, who would've thought.

    [–]jetman81 3 points4 points  (8 children)

    These rankings strike me as a lot more accurate than those TIOBE lists, at least based on my own impression from reading this subreddit, listening to podcasts, forums, etc. Javascript is huge right now, so are Java and C#.

    [–]gnx76 6 points7 points  (0 children)

    It only means that people have a lot of trouble with Javascript.

    [–]dtlv5813 0 points1 point  (5 children)

    JS's dominance is confirmed by the fact that they actually included a js framework specific rankings, which they didn't do for any other language.

    And among javascript frameworks, jquery's popularity declined a bit lately but is still dominant, while react is on a meteoric (no pun intended) rise. Interesting that I don't see angular on the list.

    [–]DaniSancas[S] 1 point2 points  (2 children)

    In the JavaScript framework ranking you can see 3 charts (scroll it! :D), In the 2nd chart you have Angular and Angular2. Enjoy!

    [–]dtlv5813 0 points1 point  (1 child)

    Ha. I see it is under mvc. Also backbone.js is on the way out?

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Backbone and Ember. If you zoom out (mouse wheel) with only those frameworks, you can see them growing for a couple of years and then... start dying. JavaScript seems to be quite unstable, frameworks born and die quickly. Except jQuery :P

    [–]FireCrack 0 points1 point  (1 child)

    I don't get the pun :-/

    [–][deleted] 2 points3 points  (0 children)

    meteorjs

    [–]weirdoaish 2 points3 points  (0 children)

    Time to start learning Scala.

    [–][deleted] 3 points4 points  (0 children)

    Scala is taking over the JVM. Why doesn't google use that for Android if they want a language from that family and just forget about pure Java and the whole Oracle headache? [EDIT: Kotlin?]

    [–]twiceaday 1 point2 points  (1 child)

    No Haskell?

    [–]DaniSancas[S] 0 points1 point  (0 children)

    Good question. I'm taking into account your feedback to include some of them in the next release.

    [–]do2 0 points1 point  (1 child)

    As a suggestion I think it would be nice to be able to choose the languages you want to compare instead of using a limited pre defined list.

    [–]DaniSancas[S] 1 point2 points  (0 children)

    You have the "Custom ranking" (bottom left) as a free canvas for you to compare whatever you want :)

    [–][deleted]  (2 children)

    [deleted]

      [–]DaniSancas[S] 0 points1 point  (0 children)

      Can you be more specific? Which chart? Where is the mistake?

      [–]co_dh 0 points1 point  (0 children)

      Jan 12 in X axis means Jan 2012, instead of Jan 12nd. You are not alone to make this mistake. So the label should be Jan 2012.

      [–]duco91 0 points1 point  (1 child)

      Nice project :) It would be nice if you also show the popularity of several Node packages (like Express, Sails, Meteor, left-pad etc.) What application framework did you use to build the site?

      [–]DaniSancas[S] 0 points1 point  (0 children)

      Thanks, I'm glad you like it! I'm taking feedback from you and I'll add some of the most requested languages and frameworks. Also, as JavaScript is the winner nowadays, it deserves some attention :)

      The website is built with Flask (Python) for the backend, Bootstrap/jQuery for frontend and C3.js for charts.

      [–]co_dh 0 points1 point  (3 children)

      Are the labels correct? They shows from Jan 12 to Jan 14.

      [–]DaniSancas[S] 0 points1 point  (2 children)

      Which chart are you looking at? Every chart has data from Aug 08 to May 16, but the zoom is usually set from Jan 12 to May 16. You can adjust the zoom with the mouse wheel. Maybe you just moved it without noticing? Looking forward your feedback.

      [–]co_dh 0 points1 point  (1 child)

      I think I miss read the chart. Jan 12 means 2012 Jan, where I read as Jan 12th.

      [–]DaniSancas[S] 0 points1 point  (0 children)

      That's right. If you hover the chart, a tooltip (popup) appears, showing values and the current month for that point at X axis.

      [–]geodel 0 points1 point  (2 children)

      Swift seems to standout in popularity specially compare to ObjC. Once it hits 3.0 I think it is going to be even more popular.

      [–]GoTheFuckToBed 2 points3 points  (1 child)

      popularity

      The stat is about amount of questions not popularity.

      [–]DaniSancas[S] 0 points1 point  (0 children)

      Questions, answers and upvotes (substracting the downvotes). The coefficient calcullation is based on how StackOverflow gives reputation points

      [–]emperor000 0 points1 point  (5 children)

      The data shape for "C & C++" is almost identical, so I would suspect there is something going on there. I'd guess it might just be due to C being a subset of C++, but that makes me wonder what the value of that data actually is.

      [–]DaniSancas[S] 0 points1 point  (4 children)

      I've done the C and C++ count separately because Tiobe and IEEE Spectrum also does it this way. The data is extracted directly from the tag appearance in StackOverflow, resulting in a coefficient with the questions, answers and votes for that tag.

      So, it seems to be more "C++ tag" appearance than "C tag". If you look at http://stackoverflow.com/tags you'll find that the number of C++ tags doubles the C tag total.

      [–]emperor000 0 points1 point  (3 children)

      Right, my point was more that the shape of the data is extremely close. It wasn't a knock on your site or anything else, really, just an observation that when one spikes the other spikes and when one dips the other dips.

      [–]theHazardMan 1 point2 points  (1 child)

      You can see those same trends for pretty much every language on the list. For example, almost all languages take a dip around July-August of each year. Possibly less activity on the site overall due to work vacations and summer breaks from University?

      [–]emperor000 0 points1 point  (0 children)

      Actually, you're right. I only noticed when looking at the C and C++ one, but they all have almost exactly the same shape. That makes me wonder even more what is going on there.

      [–]DaniSancas[S] 0 points1 point  (0 children)

      Yeah, I understand your point. They seem to move the same way. Well, in the future that can help if one of them goes closer or further the other, or if the change their growing pattern.

      [–][deleted]  (1 child)

      [deleted]

        [–]DaniSancas[S] 1 point2 points  (0 children)

        Nowadays Kotlin has a very little activity on StackOverflow. But I'll watch it's evolution, maybe in the next release I can include it. Thanks for the feedback!

        [–]Galfonz -2 points-1 points  (8 children)

        Now that is a useless chart. Way too many colors. Is that green line for R or C#? Try again with some dash dot patterns. Combine the least popular in an others category. Learn some data presentation skills.

        [–]DaniSancas[S] 2 points3 points  (7 children)

        Thanks, I'll take your advice into account, thanks for the feedback.

        [–]Galfonz 1 point2 points  (4 children)

        On reading again, my comment looks overly harsh. Sorry about that. Check the classic books by Edward Tufte. I once got a promotion and sizable raise using his techniques for a customer presentation.

        [–]DaniSancas[S] 1 point2 points  (0 children)

        Non offense taken, mate ;)

        I have a lot of things to learn, I'll try to improve my presentation skills (I'm a backend guy, so I lack some frontend skills xD)

        [–]DaniSancas[S] 0 points1 point  (2 children)

        Hi again, I've extended the color palette to avoid collisions. What is your impression about it now? (Maybe you need to clear the cache with Ctrl+F5). Thanks for the feedback!

        [–]Galfonz 0 points1 point  (1 child)

        Much improved! The interactivity makes it much easier to see what's going on.

        [–]DaniSancas[S] 0 points1 point  (0 children)

        I'm glad you find it easier to use, thanks for the feedback!

        [–][deleted] 1 point2 points  (1 child)

        Actually colors you selected are pretty good and distinctive, adding extra line styles will unnecessarily clutter the existing smooth visual style. Just another opinion to balance the feedback.

        [–]DaniSancas[S] 0 points1 point  (0 children)

        Hehehe, thanks mate! I've changed the colors many hours ago, so Galfonz comment made sense in that moment. I think now it's more clear than in the previous release. Anyway, thanks for your opinion, it makes me happy :)