Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming PHP Perl Ruby Stats

Analyzing StackOverflow Users' Programming Language Leanings 185

AlexDomo writes to point out this statistical breakdown of the programming languages represented at StackOverflow. "Suprisingly, JavaScript turned out to be the most 'over-represented' language on StackOverflow, by quite a long way at 294% [where "a representation of 100% means that the SO tag count is aligned exactly with the TIOBE language index"]. Could this also be because programming JavaScript is generally quite difficult and will result in people seeking help more often? Following this was C# (which I had expected to be number 1), at 153%. After this, PHP, Ruby and Python were basically fairly balanced at around 100%. The most 'under-represented' major language would definitely be C at 11%. Three other major languages which seemed to be a bit under-represented, below 50%, were C++, Java and Objective-C. For details of the method used and the full results, refer to the original article." One of the attached comments makes an interesting point about the difficulty in divining meaning from such statistics, though.
This discussion has been archived. No new comments can be posted.

Analyzing StackOverflow Users' Programming Language Leanings

Comments Filter:
  • by Anonymous Coward

    JavaScript is most often used for client-side web scripting. I imagine a lot of javascript tagged stackoverflow questions are related to figuring out the HTML DOM, which can be confusing, or trying to figure out browser quirks, jQuery syntax, etc

    On the other end, I don't know anyone personally who is in the process of learning C. Everyone I know who uses it are old C hackers who have years and years of experience, and aren't likely to need to ask many questions about it.

    • Really? I actually know a lot of universities whose courses still include C (separate section of a C++ course) and x86 assembly, since they're regarded as one of the best ways of understanding essential basics using familiar technologies.

      • Yup, on my Software Engineering course we learned C with assembly as part of a "computer systems architecture" class.
        Additionally, at a different university where I started a CompSci degree, the whole first semester was *only* C programming. Again, the idea was that it was a good language to teach programming basics and principles, getting us into good coding habits (that often go forgotten if starting with, say, an interpreted language) and generally getting us used to native coding as opposed to the mor
    • by justforgetme ( 1814588 ) on Sunday November 06, 2011 @12:35PM (#37965768) Homepage

      I'd like to rephrase Your point a bit:
      Javascript is in the #1 spot because the process of learning js is much more fragmented and because the language usually is utilized inside a browser environment, which complicates the language's behavior even more.

      A lot of people are learning to write js via copy paste tutorials which are distributed via many blogs and forums. Also a lot of people (eg: web designers) get to grips with the language by putting ready to use modules into their HTML pages. Now learning through the Internet is very much feasible, I'm not saying that. The problem from learning in this fashion is that your knowledge is very much fragmented, having usually no specific understanding of the program structure you should target and therefore ending up debugging very obscure problems.

      Javascript is unique in this (followed maybe by php) because for most other languages you have to set up an environment, get to grips with a compiler etc. This usually is seen as an obstacle but because of those prerequisites people usually take learning those other languages much more seriously, reading much more documentation (hardcopy or online).

      So I guess that it really isn't such a big newsitem.

    • by mwvdlee ( 775178 )

      Perhaps it's because JS developers have to deal with incompatible browsers and wildly different levels of support and a relatively small standard library.
      I've rarely needed more than a good reference manual for C/C++/Java/PHP/etc., but for JS I'm regularly googling (or indeed on StackOverflow) for a solution to dealing with the latest IE incompatibility or finding a way to do something basic that'll work in all browsers I'm trying to support.
      Or perhaps developers of, for example, C# or Java can find their a

      • Or perhaps developers of, for example, C# or Java can find their answers without using StackOverflow. My process for searching solution is Google first, StackOverflow second.

        TBH the majourity of (imediatly closed ofc) questions on SO regarding Java are: why is it throwing this Exception (most of the time NullPointerException) and: why does it not find my class? (Because people simply don't get the concept [or don't even now about] of a PATH variable and hence the CLASSPATH variable).
        My process for searchin

    • C and C++ can provide an in depth foundation of concepts used in languages such as Java and C#. Both Java and C# dictate programming targeting the core run time (CLR) not the underlying OS. Both Java and C# provide the means to bypass the run time and go native but to do so adds some complexity to maintaining the run time processes. Things like memory management, threading, and GC implementation are a few examples. Run time targeted languages support these types of functionality but they do not provide the
      • Java provides a in depth foundation of concepts used in languages such as C and C++.

        • I agree that they both contribute. I mentioned this specifically in my post. However wasn't C/C++ created before Java? If that is the case then the Java designers had something to compare their efforts against during the creation phase. I'm not claiming that the Java creators just copied certain aspects of the C/C++ language but they did have the opportunity to study any C/C++ weaknesses during their design efforts. On another note I just worked on a multiple tier application that required the creation of a
          • So they had to employ 300 people to get just a handful of actual programmers? Yeouch.
            • No they just took me off my intended project and made me the C++ developer for the application. I am not claiming I am some sort of C++ prodigy but I had enough knowledge to build this component. This happened around 8 months ago and to my knowledge they have not recruited or trained any programmers that can handle C++ work. The only other guy with C++ experience, and he was much more knowledgeable than me in C++ re-signed a few weeks after I started for reasons that did not involve this project.
  • Obvious (Score:5, Insightful)

    by whisper_jeff ( 680366 ) on Sunday November 06, 2011 @11:37AM (#37965370)
    The reason Javascript is the most popular is obvious (to me at least): the web is based primarily on three languages - HTML, CSS, and Javascript. With those three, one can do most of what they want with a website. More advanced languages are for more advanced applications. Now, when some geek-lite decides they want to make a website, as many people now toy with, they are going to learn what? The advanced languages or HTML, CSS, and Javascript?

    Javascript is the most common not because it's the most difficult. It's the most common because it's the most sought after. Supply - Demand.

    Seems obvious to me.
    • by Anonymous Coward

      You missed the point. Javascript is over-represented on SO compared to how much it's actually used.

      • what this means (and what larry bagina points to) is that the rate of clueless (as in: advice needing) individuals from those that use js is much higher than the same rate for other languages.
        roughly that means: the mean js developer/tinkerer is the least knowledgeable developer/tinkerer (accepting that every one person only tinkers with one lang of course)

      • That assumes that the TIOBE index is accurate, and I have no strong belief that it is. I know that in my area, there are not 3x as many Java jobs as there are C# jobs. In fact, Java has been losing a lot of ground since the Oracle takeover.

        What's more, there's a lot of difference between an Enterprise Java developer, and a mobile Java developer. It'a almost completely different skill sets.

        And certainly, C has lost a lot of popularity in the workplace. It's primarily only used in Unix and Embedded enviro

    • Agreed. I drew a similar conclusion:
      A typical hypothetical Perl programmer probably has a questions about some Perl libraries from time to time and posts about it. That programmer probably very rarely posts a question about C# or Ruby because that programmer doesn't ever need to touch those languages in his day to day work. That programmer will probably start asking questions about Javascript if he is tasked with writing a web application. I would have expected the same for the declarative languages SQL

  • There is also a possibility of people knowing about certain languages more than the others. In other words, in general, somebody programming in C might know the language better than somebody who is doing Javascript.

    Having strong foundation is important to know how to get stuff done before using the 'internet'. Certain languages are just better at that.

    • I agree. Most C questions are about pointers or tricky data structures done the C way, and since there are already plenty of answers for those topics, it's redundant to ask them again. The site even tries to show similar questions when you start asking, so there's often no reason to repeat such questions.

      I think C is a very straightforward language once you know its quirks, so I feel the article makes sense. Also the whole webapp fad surely contributes to Javascript having a lot of questions.

    • I think the underlying cause of this disparity is the lack of a solid, authoritative JS development environment. When C# programmers are confused, they turn to MS's documentation. When Java programmers are confused, they turn to Snoracle's documentation. C programmers probably turn to K&R or whatever textbook they were brought up with; or perhaps the vendor documentation again.

      But Javascript doesn't work that way. Any given piece of code has to run on at least four implementations (Mozilla, Microsoft
      • by dokc ( 1562391 )
        You will not get far away with K&R (although the "C Programming Language" is THE must have book on the shelf). Most of the questions that C Programmers ask are on a compiler forums and they are mostly compiler related. For beginners there are so many language tutorials that there is no need to ask (1000 times already asked) questions on SO.
    • by Xest ( 935314 )

      Frankly I think this is EXACTLY what it's about. For the most part:

      People doing C are old school skilled developers.

      People doing C# are professional developers or hobbyists with a genuine interest in programming.

      People doing Javascript are the average Joes in the street who just built their first HTML page and want to know how to make a hover button or whatever but really just aren't interested in programming in general.

  • by jrumney ( 197329 ) on Sunday November 06, 2011 @11:39AM (#37965386)
    I wouldn't say Javascript is a particularly difficult language to program, but there is a huge variation in the skill sets of people developing in it, with a heavy bias towards those who couldn't write an original line of code to save their ass. This is the type of programmer who will flood message boards with requests for help with trivial little problems.
    • by gtada ( 191158 )

      jrumney beat me to it, but I agree 100%. I don't find these results surprising at all.

    • by Hentes ( 2461350 )

      It's not necessarily because of ignorant programmers, reusing existing code is not a bad thing in itself. But yes, Javascript is mostly copy&paste because it's very modular. Big programs are rare, it's mostly just snippets of code implementing specific controls so it's very easy to copy.

    • by Qzukk ( 229616 )

      there is a huge variation in the skill sets of people developing in it, with a heavy bias towards those who couldn't write an original line of code to save their ass.

      That, combined with the fact that the internet is flooded with ancient javascript snippets ripe for copying and pasting despite the fact that they don't work on anything but netscape 4.

  • conclusions (Score:5, Insightful)

    by bigdavex ( 155746 ) on Sunday November 06, 2011 @11:41AM (#37965396)

    JavaScript is something a newbie might want to try out. Newbies ask more questions.

    I don't think that's a reflection on the difficulty of JavaScript.

    • by Kozz ( 7764 )

      JavaScript is something a newbie might want to try out. Newbies ask more questions.

      I don't think that's a reflection on the difficulty of JavaScript.

      Additionally, everyone who visits StackOverflow is guaranteed to also already have a Javascript engine/interpreter built into their browser.

  • It don't surprise me that it seems to correlate to the age of the language multiplied by how widespread the use, with "newer" languages that are widely used being the most represented.

    I don't think it has anything to do with how difficult Javascript is, but more to what the programming experience is of the person using the language. I'm sure there are more would be more posts asking about QBasic than LISP if there was internet in 1994 like there is today.

    Also people using C/Java/etc. can self-teach by digg

    • It don't surprise me that it seems to correlate to the age of the language multiplied by how widespread the use, with "newer" languages that are widely used being the most represented.

      I don't think it has anything to do with how difficult Javascript is, but more to what the programming experience is of the person using the language. I'm sure there are more would be more posts asking about QBasic than LISP if there was internet in 1994 like there is today.

      Also people using C/Java/etc. can self-teach by digging through libraries themselves.

      Age only tells part of the story. I think everyone can agree that JavaScript is special, but here's why I think the 100% or less languages ended up where they did:

      • Java and C++ are established, well documented, and developers tend to be working in teams rather than isolation (I assume Objective-C has similar characteristics but I will not claim to know such).
      • PHP tends to (but isn't always) used by hobbyist or in isolation.
      • Ruby and Python are relatively new to the scene and have been experiencing a lot of
  • At my institution through the 90s and early 2000s we had to have many more Windows tech support "firemen" than apple support techs. Indeed there basically were no virus and networking and printier driver conflict fires to put out. You didn't have to worry about interrupt conflicts between PC cards. No fires.

    The result was every time there was an major IT decision, the windows support techs would out vote the apple support techs. Lots of windows only software became standards and at one point there was

    • by Xest ( 935314 )

      I think this is something specific to where you've worked, I've never heard of a company where all IT decisions go to popular vote amongst the techies, most places have IT managers who make such decisions and it really then comes down to an objective decision if competent, a biased decision if incompetent or outright corrupt.

      People with specialist knowledge in the realm of the decision in question may get asked their opinion or it may get passed down to them, but popular vote as a strategy for IT decision m

  • by sick_soul ( 794596 ) on Sunday November 06, 2011 @11:41AM (#37965404)

    "Suprisingly, JavaScript turned out to be the most 'over-represented' language on StackOverflow, [...]
    Could this also be because programming JavaScript is generally quite difficult and will result in people seeking help more often?

    I think that JavaScript is also used by people that do not understand it very well, and they are more likely to resort to the kind of help that this website provides.

    Following this was C# (which I had expected to be number 1), at 153%. After this, PHP, Ruby and Python were basically fairly balanced at around 100%. The most 'under-represented' major language would definitely be C at 11%.

    I am a C programmer and do not need help from this "stack overflow" web site.
    My references are the C programming language standards and the single UNIX specification.

    • I am a C programmer and do not need help from this "stack overflow" web site.
      My references are the C programming language standards and the single UNIX specification.

      Dude... Was I supposed to imagine this read in the voice of Comic Book Guy from the Simpsons?

    • by slapout ( 93640 )

      'I am a C programmer and do not need help from this "stack overflow" web site.'

      Then perhaps you should go to this "stack overflow" website and help others who don't know as much as yourself.

  • -Do we ask questions because of difficulty or because the underlying technology is more popular?
    -Are javascript developers more likely to use sites like stackoverflow vs traditional means (books, mailing list, forums, etc).
    -Do we underestimate javascript usage? Does javascript span more projects, i.e. I have a C# based web-project, but still use javascript for the UI.

    These are the underlying questions that would have to be answered before we could derive anything from this sort of analysis. That said, in

    • I wanted to mod you insightful but I already posted so...

      Well, recent developments in the software world have made Javascript kind of an ubiquitous language. You can find a lot of apps that can be scripted using JS nowadays, not just web browsers.

      Also, StackOverflow is a damn good place to ask questions, I can see why people would prefer to books or mailing lists and forums. Forums leave too many questions unanswered, mailing lists can be terribly slow, and books aren't free (nor available worldwide).

      And of

    • To add:

      -Do we ask questions because the language implementation does things differently than we are used to doing in another language or that would defy common convention. Since it's needed for your job, you need to find out what way that is.

    • -Does javascript span more projects, i.e. I have a C# based web-project, but still use javascript for the UI.

      I think that has a lot to do with it. I mostly do C, Ruby, and Python, but I've had to do JavaScript a lot more than I would expect, and my knowledge of it is still rather limited. I know programming and software development both rather well, but I've never put the time to really learn JavaScript.

  • I think web designers with little to no programming experience account for this, no?

    Those who use C++, Java, etc. are more likely to either be in training to become software engineers (for whom stackoverflow would be cheating), or are working as software engineers (and rarely need stackoverflow).

  • I've seen StackOverflow site, I know and used most of the languages mentioned, but I have no idea what the summary is yammering about.
  • Cue the non-JS programmers bashing web developers as "not real programmers". :-)

    • You're going to have a heck of a time doing web development in raw, inscrutable, hexidecimal numbers, directly.
      • by 0ld_d0g ( 923931 )

        Why stop there? You're going to have a heck of a time doing anything without CPU microcode, reliable transistors and signal processing.

    • I have been on the receiving end of this bashing, and yet there is some (albeit very little) truth to the notion. "Programming", as I understand it, is different from "scripting" which is what (many people think) web development is. Apart from the HTML and CSS part (which is technically neither...what is it called exactly??) web development revolves around writing scripts to handle events (PHP, for example, to handle an HTML form submission). People seem to think that this development style is not "real pro
  • Before the PHP haters start posting comments, I would just like to say: haters gonna hate.
  • by SharpFang ( 651121 ) on Sunday November 06, 2011 @11:57AM (#37965530) Homepage Journal

    Javascript is - according to its author - the most misunderstood programming language in the world. While it bears surface similarity to languages like C and Java, and allows you for simple programs to be similar in structure to these, its core design is much closer to LISP (and the syntax quite efficiently obscures/hides that), and so few people truly understand it... so questions are very frequent.

    • I would welcome however to have a built in clone() method, if it pretends to be object oriented.

      • It's a shame that it lacks one by default, but given that it's just two lines of code to add one to Object, it's not a massive limitation...
      • JS (I assume you refer to it, yes?) is not object oriented but object based. A small but important difference.

  • by paithuk ( 766069 ) on Sunday November 06, 2011 @12:00PM (#37965560) Homepage
    All the C programmers are busy over at bufferoverflow.com
    • by syousef ( 465911 )

      All the C programmers are busy over at bufferoverflow.com

      More like coredump.com. Back in the day my uni friends and I use to describe going to the toilet as dumping core.

  • They clearly tried to manage their data using javascript, a big mistake from the get-go. If they'd have taken the same data and parsed with with Perl, they would have found that all the questions came from Python and Ruby people. Had they done it in C++, all the questions would have come from C# users. Had they done it in PL/SQL they would have found that the questions all came from rounding errors.

    And if they had done it in assembly, they would have found there were no questions at all...
  • ...real programmers don't ask for help, unlike those wimpy JS hacks and C# pretenders.

  • ...that there aren't many stack overflows in C!

  • It's probably because Javascript has the largest proportion of amateur programmers who aren't willing to learn the language they are programming in. They won't buy a book, they won't take a class, they won't read an online manual or tutorial. What they will do is download a free script and they beg others to customize it for them. This is usually prefaced with "I don't know Javascript, but I have to...."

  • To me is somthing as simple as that: most Objective-C developers are coding for Apple plattforms, so they ask in an Apple-specific place. My C++ coding is usually done with Qt, so I will ask in a Qt related place. Linux kernel developers are not going to ask C questions on stack overflow, they ask in a linux-related site.

    And so on...

  • With JavaScript, you've got to support multiple browsers from the get-go, doing things that were never intended by the VM implementers, such as network polling and widget systems.

  • Stackoverflow is great for people that teach themselves. TIY or TitY? The list there is ordered by the most popular languages people teach themselves. Some people, namely myself, need to reach out every once in a while for a little help. Well, there are the kids using it to get someone else to do their homework but no need to go into that.

    • by smartr ( 1035324 )
      Sure stack overflow is a great place for people who teach themselves, but I think it's funny to assume stack overflow is the best place to learn a language for oneself online. It seems to me more like the languages best represented there lack sufficient documentation and other means of getting answers. Java, for example, has some nice beginner forums, sites like JavaRanch for more stack-overflow like questions, good free documentation and tutorials, various open source project forums, etc... I mean, we may
  • Would be interesting what languages the high scoring members answer most of their questions. Wildly interpreting it as what languages the competent programmers are using.

    • by Westley ( 99238 )

      There's an obvious potential correlation between high scores and plenty of questions being available though.

      Hitting the rep cap (200) each day is relatively straightforward, which leaves only accepted answers (and bounties). If there aren't many questions in your area of expertise, you could easily end up with only 260 per day despite being incredibly savvy.

      I'm lucky that my two areas of "reasonable competence" (I wouldn't quite go as far as expertise) are Java and C#, both of which have plenty of questions

      • Yes, there could be a high correlation as you describe or there may not. That's why I think it would be interesting to ferret out the numbers and see if anything interesting can be deduced from them.

  • Or can it be that TIOBE is just wrong. A poor index, not necessarily representative of anything. I forget exactly how the index is calculated, but to my last recollection, it wasn't representitive of anything "real-world-enough" to really account for much of anything.

    I'd guess that SO is more representative of "what people are actively engaged in". Maybe....for example, I work in "C" and "Perl" all the time. However, I knew them well enought that I very, very rarley post any C or Perl questions

    I have wo

    • That is certainly quite true - TIOBE is practically worthless to gauge PL popularity, so using it to define "overrepresented" is worthless squared.

      One other aspect is that communities tend to acquire bias for historical reason. E.g. on SO, there is a fairly strong historical bias for .NET stuff - not sure whether it started by .NET community flocking there because MSDN forums had sucky UI, or because a bunch of people who could give good answers came there first because it's new - but, ultimately, it became

      • by Toy G ( 533867 )

        .NET programmers were there first because the founder, Joel Spolsky, moved his (large) community over there first, and that community was mostly Microsoft-centric (Joel worked at Microsoft and wrote some very insightful posts on Redmond strategy, back in the day). Most old-school VB types were knee-deep in C# by then, so that's what they brought up.

    • "C" and "Perl" are completely different cultures than "javascript" and "C#" as well. These languages are entrenched in an RTFM culture that means the coders who use them generally try to find the answers for themselves before posting to a board expecting someone else to deliver for them.

  • So, languages that have come into heightened popularity in the last decade or so, most of which are primarily used or oriented around web development, were the most overrepresented, while well-established languages aimed at native applications development were the most underrepresented? And from that they conclude that Javascript is a hard language? I think there are a number of better conclusions that could have been made, such as:
    1) Stack Overflow attracts more web developers than native application devel

  • The ratings have an inverse relation to the average competence and self-reliance of those using the language. Javascript and C# are typically used by inexperienced programmers or programmers without advanced internals knowledge. People on this side of the coin haven't been told to RTFM enough so they expect others to give them answers rather than finding them themselves. PHP and Python coders thrive in a community populated by many former Perl coders so many of them get the proper RTFM treatment but they ar

  • It's probably more due to the fact that people who use Real Programming Languages (e.g. C, C++ and so on) are more likely to be trained or experienced programmers who usually know what they are doing, while JavaScripters and C# people are a bit more likely to be kids trying to get some webpage working.

    JavaScript on its own isn't hard, it's actually a quite nice language. The DOM thing is pretty awful though.

  • I have seen stupid units like "libraries of congress" instead of kB or number of football fields instead of yards or meters, number of buckets instead of gallons.

    But this takes the cake. Why the hell are they expressing correlation coefficient in percentages? It has always been represented as a rational number between -1 and +1. I know people are dropping out of engineering and science courses. Then they come up with their own units and scale for things with well known standard and commonly accepted practi

  • Stack Overflow is written in C# and JQuery, you can ask a question about anything on there, but you've always had a better shot of getting or finding an answer if you're looking for a .NET web development related question, if only because the people running the site are more likely to know it. The more likely you are to get an answer the more likely you are to visit the site and provide an answer, so the site is skewed towards that particular technology stack. C# is a nice well designed language whereas Jav

    • unfortunately you failed to read even the summary!

      The top tag on SO is for C# - which you say must mean C# is an abomination, fair enough. (actually I think it'll be because the .NET framework is rather large, and now becoming susceptible to the usual Microsoft 'obsolete it, replace it and bloat it' process. Therefore it's incomprehensible to most people, thus requiring many more questions on how to do things)

      The article goes on to compare the number of SO questions against the 'language popularity' of TIOB

  • Most of the comments below--and to a large degree the source article--seem to implicitly assume that all discussion of programming languages happens on Stack Overflow. There probably is some difference in the average experience level of programmer of various languages. But it's also almost certainly the case that OTHER websites also discuss programming languages. For example, someone interested in finding a solution to Python puzzle might well go to the Python Cookbook (http://code.activestate.com/recipe

  • First of all TIOBE claims to search world wide (which can't be true as they only search in english, but also explains why the results on TIOBE don't look similar to my gut feeling. E.g. C and C++ jobs are very very rare in germany, C is basically only used for embedded programming, C++ is more or less a legacy language meanwhile)
    (From their web site)
    The ratings are calculated by counting hits of the most popular search engines. The search query that is used is
    +" programming"

    Now someone is comparing the TIO

    • C and C++ jobs are very very rare in germany, C is basically only used for embedded programming, C++ is more or less a legacy language meanwhile)

      Recent jobhunting in the UK suggests this is the case here, too. I saw maybe 2 or 3 C/++ jobs advertised. If it isn't web development, then Java is the thing to know. If it *is* web development, it is about a 60/40 split between .NET(C#) dev and LAMP-style* dev, respectively.
      *What I mean with this is, not just limited to LAMP - often using other tech like jQuery, AJAX, etc. - but with LAMP at the core.

  • Like codeproject, codeguru, daniweb, etc. Stackoverflow is language agnostic with its tags system, and so it attracts a disproportionate amount of languages which don't have their own established forums to compete. For example, I use it if I have questions about python, but when I have questions about C++, I go to codeproject sometimes.

  • >Could this also be because programming JavaScript is generally quite difficult and will result in people seeking help more?

    Or it could mean that it is so robust and powerful, that so many people come up with these innovative ways of using a language, to do so many things with, where as Perl, is limited to text manipulations and IO , javascript leverages a browser's DOM completely allowing not only a hacker to take over a user's browser, but a network admin to test his current network setup, and for a pr

  • I'm a bit surprised that while a number of people have pointed out how lousy Tiobe is as an index of popularity, that nobody's pointed to an alternative. I'd suggest langpop.com [langpop.com] as a considerably better alternative.

    The most obvious points of superiority are simply documenting what they actually measure and how they combine the individual measurements to produce a final result. Although Tiobe doesn't document enough of what they do well enough to be sure, it looks like langpop.com covers a couple of types

I have hardly ever known a mathematician who was capable of reasoning. -- Plato

Working...