Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Python Education Java Programming

Python Bumps Off Java As Top Learning Language 415

itwbennett writes: Python has surpassed Java as the top language used to introduce U.S. students to programming and computer science, according to a recent survey posted by the Association for Computing Machinery (ACM). Eight of the top 10 computer science departments now use Python to teach coding, as well as 27 of the top 39 schools, indicating that it is the most popular language for teaching introductory computer science courses, according to Philip Guo, a computer science researcher who compiled the survey for ACM."
This discussion has been archived. No new comments can be posted.

Python Bumps Off Java As Top Learning Language

Comments Filter:
  • by X0563511 ( 793323 ) on Tuesday July 08, 2014 @04:08PM (#47409869) Homepage Journal

    That's not how it works. Bad programmers are bad programmers - it doesn't matter what language they touch.

  • by Anonymous Coward on Tuesday July 08, 2014 @04:08PM (#47409875)

    Python is an awesome language for learning - I'd vote for any language that allows interactive code debugging and experimentation. I see Python used everywhere these days so it's even useful as industry experience.

    I'm a C++ programmer by trade but there's no way I'd wish that language on a student. It's a hellish nightmare clusterfuck language that doesn't know what problem it's trying to solve anymore. Java is loosely based on C++ so it inherits a lot of the problems. I only wish Python would allow stricter interface constructs...

  • Great (Score:0, Insightful)

    by Anonymous Coward on Tuesday July 08, 2014 @04:08PM (#47409881)

    An even larger percentage of graduates who won't know shit about programming.

  • by infogulch ( 1838658 ) on Tuesday July 08, 2014 @04:10PM (#47409897)
    If you didn't want to learn programming languages, why are you taking computer science courses?

    If you're being force-fed anyways, I think python would be much easier to stomach than java for introductory courses. And it would be much easier to grade (if grading consisted of more than "did it output correctly") since introductory students aren't exactly known for their exceptional code organization and formatting skills.
  • by ShanghaiBill ( 739463 ) on Tuesday July 08, 2014 @04:13PM (#47409919)

    now I guess python will be forced fed to people who don't want it

    That seems like a silly objection. It is not practical for a teacher to let each kid choose their own language, nor are the kids knowledgeable enough to choose. I don't see any big organizations pushing Python the way that Sun was hyping Java back in the late 1990s.

    At my kids' school, they start teaching programming in 4th grade, using Scratch [], and move to Python in 6th grade. It seems to work well.

  • by BForrester ( 946915 ) on Tuesday July 08, 2014 @04:14PM (#47409935)

    java was only "the most popular" because it was force fed to people who didn't want it.

    I don't think you understand how schools and their curriculae work. Nobody is holding a gun to the collective and independently-operated heads of CS departments to demand which language they use for beginner courses.

    Java was historically chosen because it was a safe option; used widely in industry, decent documentation and tools, it supports good programming practices, and it provides reasonably powerful options while being relatively beginner friendly. Java largely replaced C and C++, which are not beginner friendly.

  • Re:Java or Python (Score:3, Insightful)

    by jez9999 ( 618189 ) on Tuesday July 08, 2014 @04:15PM (#47409945) Homepage Journal

    'Hate' is an understatement. The language's syntax is broken by design. It's a shame another scripting language couldn't have caught on.

  • by pieisgood ( 841871 ) on Tuesday July 08, 2014 @04:16PM (#47409953) Journal

    I think they're going for teaching conditionals, loops, classes, functions and structure. You don't need to teach them about memory allocation, pointers and memory alignment in an introductory class. You can save that for an asm and C course. Or better yet, a memory class (which I've not seen).

  • by Anonymous Coward on Tuesday July 08, 2014 @04:35PM (#47410101)

    And then no one actually understands how compuiters work and all is lost.
    Assembly for starters. Maybe let them go high level with C.

  • Re:Java or Python (Score:3, Insightful)

    by Anonymous Coward on Tuesday July 08, 2014 @04:38PM (#47410117)

    OP is right. Caring about whitespace is one of the fatal flaws of a programming language.
    Make shares the same flaws, but at least it does something useful.

  • Re:Pascal (Score:4, Insightful)

    by shutdown -p now ( 807394 ) on Tuesday July 08, 2014 @04:45PM (#47410177) Journal

    Pascal had fucked up string handling, though some dialects partially rectified that.

    Also, back in the golden age of DOS (late 80s to early 90s), [Borland] Pascal was in fact the language in which many "real" applications were developed, as well; even games. Delphi was also pretty popular on Windows in late 90s to early 00s.

  • by vux984 ( 928602 ) on Tuesday July 08, 2014 @04:47PM (#47410183)

    I'm a C++ programmer by trade but there's no way I'd wish that language on a student

    Agreed. Its not a learning language.

    I only wish Python would allow stricter interface constructs...

    I only wish python didn't have semantic whitespace. That's it. Otherwise i like it just fine.

    I want the compiler/IDE/whatever to pretty-print and reformat my code to reflect program semantics, not have me spend my time formatting it to DEFINE program semantics.

    A programming language that can have its code be destroyed by copy-paste / email / web-forum formatting mangling is simply idiotic.

  • by Anonymous Coward on Tuesday July 08, 2014 @04:48PM (#47410191)

    be capable of comprehending blocks. Their kind simply doesn't fucking get begin and end even in pseudo code. I've had to fire three Python devs that simply couldn't figure-out how to use {} in JavaScript. It's not that hard, but I think that horrible language spoils them into thinking that whitespace is magical. Of course colleges want to graduate people that can't keep jobs so they get more customers for their masters programs so they love Python. Making sure you graduate people that are unable to find and/or keep jobs is the number one job now of college professors.

  • Re:Java or Python (Score:4, Insightful)

    by Anonymous Coward on Tuesday July 08, 2014 @04:57PM (#47410265)

    Humans care about whitespaces. That's why there are spaces between words, lines, paragraphs and so on. It is easier to spot a lack of indentation or a line break than, let's say, a missing ; at the end of a line (or an extra one, like for(int i = 0; i n; ++i); { do something }").

    This kinds of things make it easier for beginners, and they should not be a problem to experienced programmers, either.

  • Good idea (Score:5, Insightful)

    by Animats ( 122034 ) on Tuesday July 08, 2014 @04:57PM (#47410267) Homepage

    Python isn't a bad first language. It has all the important advanced concepts - objects, dictionaries, closures, and threads. The syntax is reasonable. Some people are bothered by the forced indentation, but for new programmers, it will seem natural.

    Most of the problems with Python are performance related. They come from obscure features of the language, such as the ability to do "getattr" and "setattr" on almost anything, including objects running in another thread. So everything has to be a dictionary. (This is sometimes called the Guido von Rossum Memorial Boat Anchor.) PyPy is struggling hard to overcome that, with some success. (The optimization approach is "oh, no, program did Obscure Awful Thing which could invalidate running code" - abandon compiled JIT code, shift to backup interpreter, flush JIT code cache, execute Obscure Awful Thing, wait for control to leave area of Obscure Awful Thing while in backup interpreter, rerun JIT compiler, resume running compiled code.)

  • by Anonymous Coward on Tuesday July 08, 2014 @05:03PM (#47410321)

    C is very beginner friendly in my opinion. It was my first non-BASIC language. Learning C you learn how those bits and bytes work and how shit gets done. The paradigm is old but not obsolete.

    But yes, Python is a great choice. My only gripe is the use of indentation instead of curly brackets to mark blocks.

  • by liquidpele ( 663430 ) on Tuesday July 08, 2014 @05:04PM (#47410329) Journal
    Avoiding oracle and Java idioms has value.
  • by vux984 ( 928602 ) on Tuesday July 08, 2014 @05:43PM (#47410623)

    If you're copy-pasting enough code from web forums

    Ah yes, because teaching yourself from online resources like the web is a bad idea. And one should always retype everything from scratch despite it already being more or less what you want one window over.

    and emails for this to be a problem

    Well, not so much in practice, because it's a waste of time, so we have to diddle around with little attachments etc because trying to put any code in the email body directly is likely to barf on itself.

    It would be nice not to have to though.

    I'd suggest the language is not the only thing that's idiotic.

    Of course you would. Attacking my intelligence is really the only way to defend your fanboi love of phython's, despite its ridiculous semantic whitespace.

    Because defending semantic whitespace on its own merits is hard.

    You know what though, I'd be perfectly happy to use a C++ / C# / Javascript ... IDE that validated formatting to set standard and flagged down anything that wasn't right. So you could look at it and then either fix the code to match how you formatted or (a 1000x more likely) click "automatically reformat" so the formatting matches the code.

    That really gives you the best of both worlds. Assurance that the formatting reflects the semantics (a good thing), without actually defining the semantics with whitespace (the idiotic thing).

  • by fnj ( 64210 ) on Tuesday July 08, 2014 @05:54PM (#47410687)

    Javascript is actually a step up from Python. This does not say anything good about Python.

    Clown. And that is all the response you deserve.

  • by dbc ( 135354 ) on Tuesday July 08, 2014 @06:10PM (#47410763)

    I only wish python didn't have semantic whitespace. That's it. Otherwise i like it just fine.

    I'll disagree on that. We use white space to communicate our programs' block structure to other humans. Why should we use a different syntax to tell the compiler the same information? Computers should conform to the needs of humans. Full. Stop. Python eliminates that source of bugs and redundancy by having the compiler's view of the significance of what space match a human's view of significance of white space. Please join us in the 21st century. I'm old enough that I did undergrand homeworks with punch cards, and just missed being taught intro to programming using FORTRAN. One thing I've learned over the years is to recognize progress when I see it.

  • by tomhath ( 637240 ) on Tuesday July 08, 2014 @06:52PM (#47411063)

    My only gripe is the use of indentation instead of curly brackets to mark blocks

    I'll never understand that criticism. Don't you indent your code? Have you ever been fooled by incorrect indentation that didn't compile the way it looked? Brackets, begin..end, and semicolons are crutches for compiler writers not programmers.

  • by Anonymous Coward on Tuesday July 08, 2014 @07:06PM (#47411159)

    Yeah, because the concepts of C# cannot be aplied to any other language like Java or Python.

  • by Ateocinico ( 32734 ) on Tuesday July 08, 2014 @07:15PM (#47411207)

    And for that reason python is good for a first course, as it forces the students to indent. I am tired of lazy students that don't indent, and then complain why their code doesn't seem to follow the intended flow. It is hard to teach good habits and practices. And any help, specially from the programming languages, is welcome.

  • by MightyMartian ( 840721 ) on Tuesday July 08, 2014 @07:15PM (#47411209) Journal

    That's rubbish. Most of the major platforms have had Java ported to them. Including various obscure systems is ludicrous. If I want a program that I'm almost guaranteed will run without recompile on Linux, Windows, BSD and even many mainframes, then Java remains the best solution. I'm not saying, from a programming perspective, that it's all that great, but from a platform neutral perspective for most of the systems that a programmer will encounter, it remains the best.

    Have fun running an x86-64 Linux binary natively on a Windows 8 machine. I can. however, write a Java program that I can almost guarantee will in fact run on x64 Linux or Windows.

  • by Darinbob ( 1142669 ) on Tuesday July 08, 2014 @07:22PM (#47411253)

    We taught C++ to a lot of students, and a lot of them learned it very well and were able to move on to other languages easily enough. Although I think a problem is that today's students aren't as nerdy as they used to be, they don't want to learn about computers and programming and everything related, from assembler and transistors up to lisp and databases, but instead just want to get their 9 to 5 job in whatever field seems to pay the most for the least effort.

  • by Xtifr ( 1323 ) on Tuesday July 08, 2014 @07:43PM (#47411369) Homepage

    Have you ever been fooled by incorrect indentation that didn't compile the way it looked?

    Nope. My editor takes care of indentation for me, in every common language except Python, and when I have to deal with a batch of code written by someone else, I run it through indent(1) first. So, in fact, it's just the opposite: when the indentation doesn't match what I expect, I know there's an actual problem in the code!

    With Python, on the other hand, I'm actually more likely to have an error in the indenting, because there's no easy way to see how many blocks I'm terminating when I outdent by an arbitrary amount. Which is a real PITA when you're refactoring.

    Of course, things may be different if you're using crappy tools. But professionals shouldn't be using crappy tools.

    Brackets, begin..end, and semicolons are crutches for compiler writers not programmers.

    No, they're tools to make my job easier. Whatever the historical reason for them may be, they benefit the programmer! They make me more productive.

    Now, I'll grant that Python is a remarkably good language despite its horrible flaw of relying on indentation. And many of its good features also make me more productive. But that doesn't mean that relying on the indentation isn't a horrible flaw.

  • by mtthwbrnd ( 1608651 ) on Tuesday July 08, 2014 @11:00PM (#47412411)

    Android is a crap user experience. I hope that the madness about Android stops. Not to mention that Google are a far more "evil" company that MS ever was. They are dominating the entire internet, they have virtually scraped anonymity by insisting that you must log in with a google+ account to make any comments on most websites. Even non google websites are too lazy to say no to google+.

    Think about it. You no longer have anonymity. Well that is okay if all you want to comment on is stuff that does not matter, like "Does Justin Beiber look cool in a hat". But if you want to comment on stuff that does matter. Stuff where freedom of speech is heavily stifled - then this is a serious assault on your ability to exercise your freedom of speech. NOT THAT ANYBODY SEEMS TO CARE!

    It is such a pity that MS destroyed themselves with that fucking Windows 8 crap. let's hope that Window 9 does not pretend that your non-touch-screen laptop or desktop is a tiny touch screen device. Whoever at MS decided to go down that route should be... well unless I can say so anonymously...

    PS yes I know that i can use anonymous coward setting on /. before anybody tries to grab an easy point.

If you suspect a man, don't employ him.