Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Math Programming

The Neuroscience of Computer Programming 161

Hugh Pickens DOT Com writes "Chris Parnin has an interesting read about an international team of scientists lead by Dr. Janet Siegmund using brain imaging with fMRI to understand the programmer's mind and to compare and contrast different cognitive tasks used in programming by analyzing differences in brain locations that are activated by different tasks. One recent debate illuminated by their studies is recent legislation that considers offering foreign-language credits for students learning programming languages. There have been many strong reactions across the software-developer community. Some developers consider the effort laudable but misguided and proclaim programming is not at all like human language and is much closer to mathematics. Siegmund observed 17 participants inside an fMRI scanner while they were comprehending short source-code snippets and found a clear, distinct activation pattern of five brain regions, which are related to language processing, working memory, and attention. The programmers in the study recruited parts of the brain typically associated with language processing and verbal oriented processing (ventral lateral prefrontal cortex). At least for the simple code snippets presented, programmers could use existing language regions of the brain to understand code without requiring more complex mental models to be constructed and manipulated." (Read on for more.)
"Interestingly, even though there was code that involve mathematical operations, conditionals, and loop iteration, for these particular tasks, programming had less in common with mathematics and more in common with language (PDF)," writes Parnin. "Mathematical calculations typically take place in the intraparietal sulcus, mathematical reasoning in the right frontal pole, and logical reasoning in the left frontal pole. These areas were not strongly activated in comprehending source code." The new research results are a much needed, but only a first step in revealing the neuroscience of programming. Other questions remain including: Can we finally provide a neurological basis for a programmer's flow? How relevant is the mastery of language skills for programming? Are there certain programming activities that should never be mixed, due to higher chance of cognitive failure (and resulting bugs)? Do code visualizations or live programming environments really reduce mental load? "Programming involves a rich set of cognitive processes," concludes Parnin. "Although the study found a particular pathway that was strongly associated with language processing, there may be other pathways associated with other common activities related to programming (debugging, editing, refactoring, etc).""
This discussion has been archived. No new comments can be posted.

The Neuroscience of Computer Programming

Comments Filter:
  • Reading vs writing (Score:5, Insightful)

    by Anonymous Coward on Sunday February 23, 2014 @09:39AM (#46315547)

    In my experience, coding and reading other's code are two completely different tasks.

    • by SunTzuWarmaster ( 930093 ) on Sunday February 23, 2014 @10:37AM (#46315745)

      In this case, reading, writing, listening, and speaking a foreign language should all be different tasks. The neuroscience doesn't lie: the region of the language processing center lights up; portions of programming are similar to foreign languages.

      • by NotSoHeavyD3 ( 1400425 ) on Sunday February 23, 2014 @11:44AM (#46316003) Journal
        Since in college I was hopeless in my foreign language class when listening/speaking were stressed. (And failed those classes multiple times.) When all I had to do was read it(at the same 4th semester level) I passed it the first time and I wasn't even close to failing. (Yes, I realize this is an anecdote but I wouldn't be surprised if there were a difference between reading and listening.)
        • I'm similar. While I can read French to a reasonable degree my ability to understand it while listening is poor, and my ability to speak it is laughable. OTOH I can read pretty much any computer language and am fluent in...um...a lot...I can't really recall.

        • by swilly ( 24960 )

          The problem is probably with lexical analysis, when you break the stream of sounds or letters into words. When a language is fluently spoken there are few if any pauses between words, your brain adds those. It's possible to be familiar enough with a languages grammar and vocabulary to read without difficulty, but not yet familiar enough for your brain to subconsciously break sounds into words.

          • So then, repeat this experiment but with snippets of Scheme code. Get rid of the lexical analysis and parsing and focus on the problem.

        • Since in college I was hopeless in my foreign language class when listening/speaking were stressed. (And failed those classes multiple times.) When all I had to do was read it(at the same 4th semester level) I passed it the first time and I wasn't even close to failing. (Yes, I realize this is an anecdote but I wouldn't be surprised if there were a difference between reading and listening.)

          There can be a difference between reading and speaking/listening, but there shouldn't be. In short, there are multiple possible ways to extract the information from a written text, but only one of them is the "correct" way. You need to read the words in order, from start to finish, and you need to associate the written word with the spoken sound. Any reading strategy that does not do that will interfere with your ability in the spoken mode.

          Our education system places a heavy emphasis on reading and writing

      • by Immerman ( 2627577 ) on Sunday February 23, 2014 @01:22PM (#46316603)

        While it seems logical to me that there would be heavy overlap between the brain regions used for natural language and those for reading programming languages, it's important to remember that "using the same brain region" is *not* equivalent to "thinking in the same way". For example poetry and mathematics both activate many of the same brain regions, presumably because they both involve a lot of pattern recognition and abstract thought.

        For that matter, if I recall correctly the language centers of the brain are themselves mostly a subset of the vision centers of the brain, even when dealing with purely spoken language. Probably that pattern-recognition stuff showing up again

      • by X10 ( 186866 )

        In this case, reading, writing, listening, and speaking a foreign language should all be different tasks.

        Not true. Reading a foreign language and speaking it has a lot in common. Otoh, reading code and creating code is very different. But I'm not a neuroscientist, I'm just a person who's capable of writing code, reading code, writing/speaking three foreign languages, and reading five foreign languages.

      • http://www.wired.com/wiredscie... [wired.com]

        I suppose that dead salmon should get credits for social science classes in such case...

      • But this does not mean that learning a programming language should ever count towards a language requirement at a university. That's the cheezy way out, the university is about learning but everyone seems to want to minmax it.

      • The neuroscience doesn't lie: the region of the language processing center lights up; portions of programming are similar to foreign languages.

        Woah, hang on there! "The neuroscience" is NOT some fMRI data figure showing a bit of the brain being more active in one condition than it is in some other condition. Neuroscience is a set of theories, skills, and tools that allow us to ask and answer such questions as: "What conditions do we scan patients under in order to isolate the effect we are interested in?" "What does the strength and location of the BOLD signal we pick up in our fMRI scan actually mean?", and "How can these results be interpreted

        • by MrKaos ( 858439 )

          You want to see bits of the brain "lighting up"? You're going to need to get some genetically modified mice. If you want to understand the brain it's not that simple.

          Well, we could use the genetically modified mice to program inside of an fMRI, then extropolate the results into a human brain using highly sophisticated neuro mathematical linguine anal isolation probes to produce results that prove, what were we talking about?

    • For me, coding/design/problem solving seems to be mostly 3d abstract visual with objects being represented by some abstract entity and interactions that I can "see" (in quotes because I'm not sure that's what's really going on) and manipulate.

      Reading or writing code is a translation to/from the imagery which is the real "code". The imagery is the abstract representation of the solution and where the problem solving happens.
    • Re: (Score:2, Insightful)

      by Anonymous Coward

      Stupid study.

      Hey guys! Reading written statements (code) uses language centres of the brain - well fuck-de-doo.

      • by Hognoxious ( 631665 ) on Sunday February 23, 2014 @03:50PM (#46317611) Homepage Journal

        The good part is where the programmers just know that it can't be so.

        MRI? No idea what it is. But if it contradicts my preconceptions that:

        a) mathematicians are smarter than literature types
        and
        b) I'm really really smart
        so
        c) what I do must be more like the former
        . . .
        then it's phrenology by a different name.

        • However, in this case, they have a point. Here's an analogy for you.

          Imagine they put a novelist in one of those machines when they were working. What would be the most active part of the brain? Probably the areas involved in language. Is this the area that is most important to writing a novel? It's certainly indispensable, but the unique skill involved in writing a book is the imagination, and the composition of events, consequences etc... you know, the story.

          Or to put it into physical terms: even if it tak

        • I'm not sure if Science is phrenology by another name, but they certainly look similar at your level of detail:

          a) Part of the task under study is definitely linguistic
          and
          b) No effort has been made to separate this linguistic part from the rest of the task
          so
          c) The study has not produced evidence because of a validity threat: namely the confounding factor that the task has been presented in a linguistic form.

          I wouldn't want the terminology to get in the way of the original point: the task has been phrased in

  • Of all the fully employed programmers you know, how many of them have degrees in English, French, Japanese, Chinese, Literature, Journalism or creative writing? How many in mathematics or physics?

    • Re: (Score:2, Interesting)

      by Anonymous Coward
      Well, I know myself. I believe the results in this study are obvious. Most of the time reading code involves parsing which is essentially a linguistic task. Mathematical thought might be more active in specific code sections but language will still account for 99.9% of your mental work. Writing code is probably the same or even more skewed towards language. Of course, I am assuming most people think before sitting down to write code.
      • Well, I know myself.
        I believe the results in this study are obvious. Most of the time reading code involves parsing which is essentially a linguistic task.
        Mathematical thought might be more active in specific code sections but language will still account for 99.9% of your mental work.
        Writing code is probably the same or even more skewed towards language.
        Of course, I am assuming most people think before sitting down to write code.

        There are, I believe, a number of people responsible for the development of programming languages whose formal credentials are in linguistics.

        Nor does a connection with mathematics make computer languages unique - I would say that any communication system - including human languages - can be described at least in part in mathematical terms. Or perhaps even the reverse. Mathematics is as much about symbolic manipulation as it is about numbers, and symbolic manipulation is at the core of language.

        That doesn't

        • There are, I believe, a number of people responsible for the development of programming languages whose formal credentials are in linguistics.

          Sadly it's all Chomskian structuralists, though. Generative grammars (BNF etc) still plague modern linguistics to a very great extent (despite better models following about two years after Chomsky first published) and are still one of the first things a linguistics student will be introduced to (thus polluting their minds with out-of-date garbage).

          And I think it's misguided to suggest that linguistics led computer programming, because it was really computers that started it. Chosmkian grammars were a comput

    • Languages take time and effort to learn. Try to remember, C++, although complex by the standards of most computer languages is ridiculously easy compared to learning French. If the programmers spent a proportional amount of time on the foreign language, I think they would have the same level of mastery.

      • by MrKaos ( 858439 )

        Languages take time and effort to learn. Try to remember, C++, although complex by the standards of most computer languages is ridiculously easy compared to learning French. If the programmers spent a proportional amount of time on the foreign language, I think they would have the same level of mastery.

        Yes but telling jokes in a ridiculous C++ accent has no comedic value whatsoever. However if you said "I am a programmer, let me manipulate your objects" in a French accent, that's hilarious!

    • One of my colleagues in the past had a degree in divinity, and the one who hired my had a psychological degree. You appear to assume that a background in physics or mathematics would give a distinct advantage over others in programming in all fields. While I'm sure those skills are a basic necessity in developing new physics engines and possibly a new sorting, compression or encryption algorithm, many fields do not require a developer to "reinvent" the wheel and they can simply use existing proven technolog
    • I am a programmer and have a degree in Math/Computer Science, but I always scored better on language related aptitude tests than math ... did significantly better on my SAT and ACT tests (in 1989! I'm sure they've changed alot since then!) in language related areas than I ever did in math. Luckily I still got into a good computer science school, got my degree, and have had a pretty good career in software development. I never realized that my skew towards language skill may actually have been a boon for

  • by IgnorantMotherFucker ( 3394481 ) on Sunday February 23, 2014 @09:49AM (#46315583) Homepage

    For quite a long time now, I've been explaining to everyone who will sit still long enough to listen that the term "computer" is a bad name for what these boxen do.

    While strictly speaking they do carry out mathematical operations, that's not what most people use them for. They got the name "computer" because one of the earliest uses of computers was the numerical solution of differential equations. For example the Von Neumann architecture was developed by Dr. Von Neumann for use in designing hydrogen bombs. The Difference Engine was Charles Babbage's fat defense contract for the purpose of calculating firing tables, that is, how to aim a cannon, taking into account the wind and so on.

    Really these boxen are instruction following machines. I was able to finally explain to my mother what I really do, and what a programming language really is, by asking her to compare her applications that I might have written, to her writing down the recipe for chocolate chip cookies. That recipe could be written in English, or in German or what have you. English and German could then be taken to be recipe languages, much as Java and C++ can be considered programming languages.

    Why just the other day, I told a good friend that I wanted to return to graduate school to complete my Physics Doctorate, but had forgotten all my math. This because it is exceedingly uncommon for programmers to need to know much more than very basic arithmetic on the job. It is actually uncommon for me to use floating point on the job, or fractions. I cannot recall the last time I used a trigonometric function on the job.

    However coders do need very strong verbal reasoning skills. If you could win on the debating team, or you studied philosophy in college, I assert you could be a good coder.

    • Just because the skills and brain activity of reading and writing code is more akin to math, doesn't mean the required knowledge is identical to math.

    • Why just the other day, I told a good friend that I wanted to return to graduate school to complete my Physics Doctorate, but had forgotten all my math. This because it is exceedingly uncommon for programmers to need to know much more than very basic arithmetic on the job. It is actually uncommon for me to use floating point on the job, or fractions. I cannot recall the last time I used a trigonometric function on the job.

      Oh well. You must have been in "enterprise computing". Where about any "application"

      • For all your shitty sarcasm, all you're saying is that programming about highly mathematical subjects involves a lot of maths.

        Don't confuse programming per se with the problem domain, kid.

      • by ranton ( 36917 ) on Sunday February 23, 2014 @12:39PM (#46316287)

        As another poster already mentioned, you are confusing your problem domain with programming. Your argument is little different than someone saying programming requires a significant amount of accounting knowledge just because they work for Intuit.

        Programming itself rarely includes more math than simple algebra. There are of course very specialized fields of software engineering that need quite a bit of math, such as data science or other research oriented fields. But at the risk of making up statistics, I doubt more than 5% of programmers use more than a 10th grade level of math in their entire career.

        And regardless of your young and naive view of the software development industry, writing line of business software is rarely just a front end to a database. That may be true for many SMB projects, but things are much different at the enterprise level. I have done research in academia and have helped design global software systems used by millions of users in almost a dozen countries, and I can say the level of complexity can be just as high in either specialty. One field does require a lot more math though.

        • As another poster already mentioned, you are confusing your problem domain with programming. Your argument is little different than someone saying programming requires a significant amount of accounting knowledge just because they work for Intuit.

          You got it right, that's exactly what I was saying: if you want to use your advanced maths then find a domain that uses them in addition to using a programming language. Coming back to the actually unnecessary complexity of "enterprise" software, here's how we g

        • Programming itself rarely includes more math than simple algebra. There are of course very specialized fields of software engineering that need quite a bit of math, such as data science or other research oriented fields. But at the risk of making up statistics, I doubt more than 5% of programmers use more than a 10th grade level of math in their entire career.

          If your definition of maths is "algebra + calculus", then this is true. If your definition of "programmers" is script kiddies, then this is true. But any non-trivial program will rely heavily on graph theory.

          • Yet we've banned the goto statement, forcing everyone to describe graphs with if-then-else-throwexception control structures lol.
            • I see no justification for this word "yet". I didn't suggest that any given computer program would allow the representation of any and all possible graphs.
      • I only have a vague understanding of databases.

        Actually I was heavily into scientific computing when I was in school. I'd like to get back into that.

        I don't know whether it's changed any, but in 1993, the FORTRAN code used in high energy physics was an awful rat's nest. There was a movement afoot to rewrite it all in C++/

    • by Ateocinico ( 32734 ) on Sunday February 23, 2014 @11:31AM (#46315951)

      Perhaps they hold the name of their first use. In France and Spain computers are called sorters, "ordinateur" and "ordenador" respectively. In those countries they'r spread started with services like banking and accounting.

    • by Capt.Albatross ( 1301561 ) on Sunday February 23, 2014 @12:03PM (#46316119)

      While strictly speaking [computers] do carry out mathematical operations, that's not what most people use them for.

      But calculation is not mathematics, either - or, more precisely, it is not mathematics as practiced by mathematicians doing mathematics. Calculation is what scientists, engineers, econometricians and so forth do when they apply the results of mathematics to issues in their own fields.

      I agree that the current practice of programming is not much like either of these things. Where mathematics (in the applied sense) plays an important part in the development of software (e.g. cryptography, signal processing), the mathematics is generally applied to the problem before coding starts.

      • I'm glad there are a few people here who recognize this. Mathematics requires computation, but since its inception in Greek geometry that has never been the focus of the subject. Writing proofs is almost exactly like writing code, and it's not a coincidence [wikipedia.org].

    • There aren't many fields that use more than 2-3 branches of math. Programming tends to use formal logic, lambda calculus, and graph theory. I never understood why people here think math ends at calculus and statistics.
  • 1. How many programmers out there speak more than 2 languages?
    2. How many can program in more than 2 languages?

    Its likely the answers are 1. not many and 2. most.

    I think equating spoken languages to programming languages like this is misguided and makes sens only to tech-ignorant policy makers and scientists looking for juicy grants based on half-baked non-peer-reviewed research.
    • by Anonymous Coward on Sunday February 23, 2014 @10:11AM (#46315665)

      Make sense to me... Language processing areas of the brain are a component of programming.

      Try this experiment: Count backward from 100 by 3s. As in 100, 97, 94, 91, 88, etc.

      At around 85 have another person -- yes an actual living breathing person -- start calling out random numbers between 1 and 100. See how long you can keep counting.

      It's all pure math. But very few people have the ability to keep going amid distractions, even when the numbers are being called out in a foreign language they do not speak or understand.

      Programming is like counting backward from 100 by 3s, only thousands of times more complex. Coding while someone is talking nearby can be downright impossible. Clearly there is some overlap between language processing and writing/reading/understanding code.

      • Language and logic shares the same part of the brain, the one dealing with deep structural analysis. Language is partially duplicated elsewhere but those are no exact and mostly deal with picking out general mood and your name.

      • Coding while someone is talking nearby can be downright impossible

        Only if you are interested in what they are saying.

        I can happily program away with somebody sitting right next to me and addressing me directly. Also, listening to music with intelligible lyrics is no problem at all. Having the a video playing while programming is also no problem whatsoever.

        The key here is that I can only focus on one stream at the same time and will not process the words of the other stream at all. If I focus on my programming, you could say to me that a beautiful and sexually skilled nymf

    • You're forgetting the complexity of learning each language and how repetition aids retention. Languages like LUA and Go have as few as 25 keywords and can be learnt in an afternoon. Try and do that with Japanese.

    • It's not about programming, it's about reading and understanding code. Also when coding you have presumably worked out what you want to do and are now in the process of translating that concept to code. TFA is not equating coding and natural language, they are merely pointing out the brain uses the same hardware to do both jobs. If you want your entire brain to light up then listening to music is the best brain exercise you can do.
  • by jamesl ( 106902 )

    First, somebody needs to explain why some schools have a foreign-language requirement. The job of high school is to prepare students for jobs upon graduation (not so much any more) and/or prepare students for college. How does one or two years of mandatory foreign language study do either?

    • It prepares you for jobs because it's not uncommon you will have to deal with people who don't speak your native language. It's also not uncommon for people to move somewhere else because of a job. In non-english countries, it's in your best interest to teach your students english because a lot of information is available in that language.

    • Re:Why? (Score:5, Interesting)

      by ledow ( 319597 ) on Sunday February 23, 2014 @10:33AM (#46315725) Homepage

      Sorry, but it's much more deep-rooted than being able to talk to someone in a foreign country.

      If you don't get that, you probably don't have many bi-lingual friends and certainly haven't asked them about it.

      Being bi-lingual allows you to find patterns, origins, etymologies and structures of words. It's not uncommon from being able to speak French and English to being able to understand Spanish, Italian and maybe a little Portuguese WITHOUT having to learn anything, just hearing a native speaker.

      It's provides much greater command of grammar and language structure than is available in English alone.

      I speak as someone who was forced to learn only "tourist" German in an English school, who now lives with an Italian fluent in English and has entire swathes of friends who speak foreign languages.

      English is universally derided among them for being the easiest to learn. The grammar is pathetic. The rules are arbitrary but easily picked up. The words all comes from Latin or Greek or Germanic originally.

      And being bi-lingual opens up the creative areas of the brain associated with language. While you're 3-7 years of age, your brain will accept another language with ease. It won't even hinder you learning other things as you learn it. And you'll be bi-lingual by the time you're an adult with no extraneous effort. However, if you don't get it into the language-processing areas of the brain by that age, you will GREATLY struggle to learn a language later.

      And by learning a language, I mean being able to live normally in the country for a year without resorting to translation tools, not asking the way to the airport in a single, broken accent.

      My girlfriend's command of multiple languages is impressive. And it comes about because she was taught English in school and it was SO MUCH easier a language to learn than her own. It's basically the baby-language of foreign languages.

      It's not about tourism.
      It's not about being able to phone up a foreign company and sell to them.
      It's literally an expansion of your whole thought processes and language interpretation that allows you a much richer method of communication, no matter what the language.

      And while you're a child, you'll just absorb it - like any child in a bi-lingual home. But when you grow up, you'll struggle and have to spend 10 years learning to get the grammar, accent, structure, phrasing and wording correct enough to blend in. And it will never be "natural". But, learning a foreign language in school, it can be "natural" to your thought processes.

      They say you know when you've actually learned a language because you dream in it. That's how natural it becomes and you get the richness of expression available from all the languages you know.

      It's not about whether you know Perl, or French. It's about being able to genericise concepts enough that even when speaking in several languages at once you get a deeper understanding of what the grammar means and how the structure should be to be common to all languages.

      Someone who programs professionally in a range of programming languages will, generally speaking, be more fluent in any particular one. The same as someone who speaks more than one language being, generally speaking, more capable with their use of language overall.

      • English is universally derided among them for being the easiest to learn.

        A lot of people think that. A lot of people think they speak (and write) it better than they do. There's quite a degree of overlap.

        And they're wrong. If it was the case, then English kids would be speaking in full sentences at 6 months whereas those who speak your idealised perfect un-pathetic language[1] wouldn't be able to ask for milk before they're hitting puberty.

        The grammar is pathetic.

        I don't even know what that's supposed t

      • English is universally derided among them for being the easiest to learn.

        It's odd to deride a virtue.

      • Well that's a pretty conception of half-truths and misconceptions. You should actually learn a language so you have an understanding for yourself instead of relying on the poorly described ideas of your friends
      • English is "derided" for being "easy to learn"? What the fuck kind of world do you live in where that's a problem?

        The world's common language should be easy. I'm learning an Asian language and it's difficult as hell for no good reason. I and everyone else learning it certainly wouldn't criticize it if it were easy.

      • English is universally derided among them for being the easiest to learn.

        English is easy to start learning, but very difficult to master. The first year of learning English is easy, whereas the first year of learning (eg) French is pretty difficult. But after that first year, you know the hard parts of French, and all that's left to learn is the easy stuff. English... well, the worst is yet to come.

        The grammar is pathetic. The rules are arbitrary but easily picked up.

        Rules that are truly arbitrary are never easy to pick up. Rules must maintain some internal logic.

        The problem with English is that its simple syntax and lack of inflectional complexit

    • The job of high school is to prepare students for jobs upon graduation (not so much any more) and/or prepare students for college. How does one or two years of mandatory foreign language study do either?

      If you can identify what a 12-year-old is going to do for a lifelong career, then you can use school as a work training camp. If you cannot (and I have yet to meet anyone who can) then school has to teach a broad base that covers two roles: understanding the world around you and giving you enough knowledge that you can learn more. Many of the most difficult hurdles in language learning are dealt with in the first two years. You encounter idiomatic differences like English's "I am X years old" vs Spanish/Fre

  • by theodp ( 442580 ) on Sunday February 23, 2014 @10:10AM (#46315655)

    Larry Wall [wikipedia.org]: Wall developed the Perl interpreter and language while working for System Development Corporation, which later became part of Unisys.[5] He is the co-author of Programming Perl (often referred to as the Camel Book and published by O'Reilly), which is the definitive resource for Perl programmers; and edited the Perl Cookbook. He then became employed full-time by O'Reilly Media to further develop Perl and write books on the subject.[5]

    Wall's training as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".

    • by Anonymous Coward on Sunday February 23, 2014 @10:14AM (#46315681)

      May I ask you to stick to the subject. We are talking about reading code. Everybody knows perl is a write only language.

    • and in turn, Perl is a language favored by folks who tend towards linguistic expression. Guys who spent their time in college doing a math major tend to favor languages like python, and they love to talk about the lambda calculus, etc.

      From TFA:

      All algorithms are written in imperative
      Java code inside a single main function without recursion and with
      light usage of standard API functions

      Frankly, that's a decent choice for a first pass - rather explicit and "uninteresting". Further research would be interes

      • Also, they used explicit variable names. Using simple tokens like a,b,c; i,j,k; x,y,z would allow more of an insight into how we see the structures.
    • Wall's training as a linguist is apparent in his books, interviews, and lectures. He often compares Perl to a natural language

      And that's the downside to the language. I love Perl and use it as my scripting language of choice. However, as somebody I know who was trying to learn it said, "too much syntax". You don't need, and aside from a little syntactic sugar generally don't want an unnecessary profusion of different ways to do the same thing. It's a nice characteristic for poetry, but not programming.

    • He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer".

      That would explain why, as a programming language, Perl is so damned inpenetrable. Hint to Larry: Vogon poetry is not a programming language.

  • Thank you, Professor Kugler [wikipedia.org].
  • Even though computer languages are different from human languages in major and universal ways we do use the same mental muscles to comprehend computer languages as we do human ones. This is also why it is much easier for children who are exposed to programming early to pick up the knack than it is if they aren't introduced to coding until they are adults.

    While computer languages are about math a lot more than human languages, coding isn't really like doing math. It's more like telling the machine how to

  • A lot of programming is about understanding a problem, seeing what the real needs are - not the ones that the users think they need. You then need strategic planning on how to meet those needs, a lot of that will be about understanding how the new program will fit into the existing ecosystem. Next comes the translation of that strategy into a programming language (or more: you may also need some SQL, HTML, shell, ...) and the completely different skills of debugging. Finally: documentation for the users and also the programmers [actually: I find that doing the first draft of the documentation before writing the code is a really good idea].

    So: programming is much more than just language skills.

    Some here have asserted that programming is a branch of maths. This may be true for some sorts of programs (or some subroutines), but it is not true for most of what I do -- although an understanding of maths does help some parts.

    Summary: please don't be simplistic, programming is a complex skill that requires many different brain subsystems, language is just one of them.

    • Sorry, but that's what we call "development". The boundary between "development" and "programming" may be a fuzzy one, but that doesn't mean we should conflate the two. Writing the user manual is certainly not programming.
  • "Mathematical calculations typically take place in the intraparietal sulcus, mathematical reasoning in the right frontal pole, and logical reasoning in the left frontal pole. These areas were not strongly activated in comprehending source code.

    Usually, when I'm reviewing legacy source code, I find that the author's mathematical and logical reasoning centers were not strongly activated while writing the code, either.

    • by mikael ( 484 )

      It's like writing an essay. The quality of the source code really depends on a number of things; whether it was something new or familiar to the programmer, how distracting/peaceful the environment was, how much time was available to polish up and refine the code, and whether there was any framework that they could use (such as node based programming, GUI widgets, or the TCP/IP network layer models, template files for writing new modules).

      • Oh, I understand completely, and an embarrassing large chunk of the legacy source code I have left behind falls into the "I could have done that better, if..." category. Nonetheless, it's amazing how many business and even life safety critical systems are creaking along on "proven" steaming piles of "could have done better, if..."

  • by CaroKann ( 795685 ) on Sunday February 23, 2014 @10:41AM (#46315763)
    I've always felt that writing good code is very similar to writing a good essay or research paper. The process is about the same. The thinking is about the same. The ideal steps followed to produce a decent paper are similar to the steps followed to produce decent code.

    I've always thought that a good essay writer can make a good programmer. In particular, good essay writers can make good programmer/analysts or project managers. In both worlds, you struggle with scope, organization, and fact finding. Answering the question "What is this paper/program really and truly about?" is the primary task.
  • The authors are using fMRI images and proper scientific study to show that coding and natural language processing activate different parts of the brain. Most likely to be true. I am wondering if they would compare coding ares of the brain with the parts activated by writing legal contracts or legislation. Both of code and legislation/contracts try to express.. let me switch to coding parlance... Both coding and writing legislation try to describe if () then {} else {} under some context.

    Both try to m

    • I've often thought the same thing. Too bad most lawyers are the analogues of the horrible developers coming out of code mills in Bangalore.
      • Bad programmers come from everywhere. But the bad ones coming from India are particularly irritating because they think their bad code is great code.
    • Law is fuzzy. Programming is usually not.
      Law is often inconsistent. Programming (or the underlying logic) usually cannot be inconsistent.
      Law is relatively simple once you get past the fuzziness and inconsistencies. A lot of software is multitudes more complex than legalese.
      There's often an easy way to test your program. Not so easy to test a legal theory or opinion. (You go to court, spend thousands or millions on legal fees before you get a judge to decide on the matter -- and then you have appeals)
      Lawyers

      • No the goals of legislation and computer program are the same. Unambiguous description of what should happen when under what circumstances to whom.

        But law is stuck in an archaic mode. It is using natural language with words having imprecise meanings and sentence structures that can not easily handle complexity. It is like the biology books before the widespread adaptation of pictures in print. Elaborate naming conventions, trying to unambiguously descrine leaves branching off the stem two at a time, or one

        • (Sorry for stereotyping but) you're a typical geek. You think that words can have a precise, context-free meaning, and whether something falls within the meaning of a word (or a technical term) can be done in polynomial time.

          The real world is much more complicated than that.

          Take for example, what is a male and what is female? You'd think it's easy enough to determine that if you have access to the genitals, but there's still difficult corner cases to handle. For legal questions, it can be even more complica

  • I use several programming languages, and I can read about 3 human languages. While there are some similarities, I'd say the two things are quite different. However, that doesn't settle the question of what should be taught in school.

    I've gone back to school. I'm getting a degree from WGU. For my degree, I could take either American history or sociology. By giving me the choice, the school isn't implying that history and sociology are the same thing. They are saying that either one will improve my educat

    • Backin the early 1970's the college I went to allowed FORTRAN to satisfy one of the two language requirements.

  • Some programmers are also terrible and I don't listen to them on matters involving programming let alone linguistics. I have always thought of learning another language and learning another programming languages as similar experiences. At first you try to tie the words almost one for one from one language to another. But once you become fluent you just start doing things differently. But just like anyone going from no language to their first language, they must first learn the basic concepts. But with human
  • while studying someone else's code. All the programmers were muttering and cursing under their breath, about what an idiot the programmer was and how much better they could have written the same thing.
    • Too true. Although, honestly, in most cases the criticism is justified.

      Of course when you go back and look at your own code a few years later and think the same thing ... then you have problems!

  • The control groups should have been two other reading selections designed to bracket programming code reading: for example, reading mathematics, such as algebraic proofs, versus reading in an unfamiliar non-math vocabulary like a dense legal contract. It's possible that all would have looked similar, or that two but not three would have been similar, or all different. We just don't know.

    And don't let me even get started on the fact that most fMRI studies use far too few subjects and then use absurd values

  • Maybe if they look at computer memory with an MRI....

    But lets get to reality here and consider what the topic really is... abstraction. http://abstractionphysics.net/... [abstractionphysics.net]

  • I'm a fluent French bilingual, but I learnt as an adult in Paris where they are about as patient as New Yorkers.

    There's a huge difference between listening, where you have no control over the speed of delivery/level of difficulty and reading where you can take your time, look up 'words' [or pieces of unfamiliar syntax] and writing, harder than reading but you can still pace yourself and work around difficulties.

    Otherwise there's anecdotal evidence that 'extra' natural languages are easier after the fi
  • Can FMRI be used to program without keyboard or voice input?

    That's what I really want to know.

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

Working...