Slashdot Mirror


Why Johnny Can't Code

GoCanes writes "Salon has an article named 'Why Johnny Can't Code,' an interesting examination of the dearth of line programming languages available today. At first I wanted to read this and say aha, here's a simple line oriented language that's available through open source, but after reading the article I couldn't find any. And being an old fart, I remember the days spent with edlin and basic."

29 of 686 comments (clear)

  1. Kids today...... :-) by BWJones · · Score: 4, Interesting

    I have been thinking it is due to a few reasons. First off, it seems that math education is sorely lacking in many college students. We are waaaay off the mark here with lots of remedial work being necessary for entering college students and this is having a major effect on peoples ability to develop algorithms. The next major reason is lack of communication skills and writing skills. When I was a grade school kid learning BASIC, we had it drilled into our heads that we had to comment our code and explain exactly what it is that we were planning. This was done to help us learn how to think through a problem, but also to get us to help communicate what it is that we were trying to do with our code. Finally, it seems that many students have gotten lazy and are simply looking for an easy way out and not wanting to code line by line.

    --
    Visit Jonesblog and say hello.
  2. Desktop Applets by RAMMS+EIN · · Score: 5, Interesting

    I submitted the same story, and also made the following comment elsewhere:

    It is worth noting that Microsoft ships Visual Basic for Applications
    with most of their software (at least they did when last I checked), and
    OS X and many Linux distros ship Python.

    Having said that, I agree that the world has changed and getting started
    with programming isn't as natural as it used to be. Part of the reason
    for that is that our expectations have changed, but languages haven't
    really caught up. Nowadays, we expect programs to present us with fancy
    GUI widgets. If all a program does is print some text to the terminal
    and read some input from it, we don't feel we've written a real program.
    However, in the majority of programming language, creating these fancy
    GUI widgets is much more difficult than doing terminal I/O. Thus, either
    the rewards are less, or the barrier to entry is higher.

    On the other hand, there is HTML, which makes it very easy to create
    user interfaces, but the user interfaces are somewhat limited and adding
    in program logic can be very tedious.

    Fortunately, software vendors are not sitting still. Konfabulator, Apple
    Dashboard, gDesklets, Oprera Widgets, KDE's Dashboard, and Mozilla's XUL
    (which is supported natively in Mozilla browsers, in Opera and MSIE
    through plugins, while native support is being added to Konqueror and
    Safari) are all ways to make it easy to create visually appealing
    programs and add functionality to them. They are all based around the
    concept of creating the user interface in XML, then using a scripting
    language to implement the behavior. Indeed, this makes creating GUI
    software easy enough that beginning computer users can do it.

    I think these widgets are the future, especially once they will be
    treated like full applications that live on the same desktop (last time
    I checked, Apple Dashboard actually was a separate desktop from the one
    that contains the "real" programs).

    --
    Please correct me if I got my facts wrong.
  3. Re:Kids today...... :-) by BWJones · · Score: 4, Interesting

    So, just in case some of our students read this (its always weird when your students say "I saw your comment on Slashdot yesterday"), I should have mentioned that there are exceptions to the rule (obviously) like the developers who are developing some of our image processing code right now here at the Univ. of Utah Scientific Computing Institute and our collaborators at the UCSB Center for Bio-Image Informatics. These folks are doing amazing things as is the neuroscience grad student in our lab who routinely amazes me with his ability to code. But these folks are in these graduate programs and environments because they are interested in solving innovative and new problems and they enjoy a challenge. The vast majority of students who are learning to code are not interested in asking questions or doing hard things. Interestingly, a large number of students it seems coming into CS programs at the undergraduate level want to program games, but have no idea how much math and algorithm development goes on when one is crafting new material. It's easy to use someone else's engine or physics models, but coming up with your own is harder and requires some talent and dedication to learning your craft.

    --
    Visit Jonesblog and say hello.
  4. Languages by RAMMS+EIN · · Score: 2, Interesting

    What about languages like Ruby, Python, Bourne shell, etc? Easy to pick up (the barrier of entry to shell scripting is especially low), and you can take them all the way up to complex programs with GUIs (whether you should want to is another matter, especially for shell scripts).

    --
    Please correct me if I got my facts wrong.
  5. Python?! by smithwis · · Score: 5, Interesting

    Am I missing something here? Why doesn't python count? It's easy, has a nice "line enter mode", embraces many advance programming concepts from various programming paradigms(OP, Functional, Procedural, etc). And has a bunch of nice Graphical hooks for the eventual game programming your little one will end up doing.

    Disregarding Python, what's wrong with Emac's elisp or a nice session with tcsh. You'd be hard pressed to find a computer that you couldn't run one of these languages on and I've just barely scratched the surface of possibilities

    No I'd have to say that today's children are given an even richer programing environment to grow with than we were.

    --Steve

  6. As the world changes... by Fearless+Freep · · Score: 3, Interesting

    As coding goes from being an elite craft that few can do into a blue color job that few bother to want to do

    As hand made articles become assembly-line products

    we wonder why the world has changed and our tools with it

  7. Re:Absolute nonsense by whyloginwhysubscribe · · Score: 2, Interesting

    Exactly - and it's 100 times easier to do lots of other things as well - make music, videos, web pages... There will always be kids programming in their bedrooms - and good luck to them, they keep me on my toes because I know they're going to be fighting me for my job in a few years to come!

  8. Oh, please.... by John+Murdoch · · Score: 5, Interesting

    From TFA:

    Am I being overly dramatic?

    Yes.
    The writer of TFA is whining that computers no longer ship with a BASIC interpreter. That's been true since Microsoft shipped Windows 95--and at the time (which, er, was 1995) a number of columnists (including me) noted the loss, and wondered what impact it would have.

    Eleven years later....
    The earth still continues to revolve around the sun, and kids are still learning to write code. They're not learning to write code by typing in exercises from a math book--they're learning to write code to develop macros in Excel (or OpenOffice Calc); they're learning to write JavaScript to enable custom functionality in Adobe Acrobat files; they're learning to write HTML.

    Not to get all pedagogical on you, or anything...
    But this may be a circumstance where the Education Establishment is doing something right. Typing code into GW-BASIC produces...what? Typically, an output value. Read these input values, produce that output value. That's a CRT-based emulation of a deck of punch cards--and while I believe I benefited enormously from learning to code on punch cards, very very few people in the programming world agree with me. Think about what the newbie programmer's early coding experiences are like:

    • Open DOS window
    • Launch interpreter
    • Persuade interpreter to load your file
    • Start the program
    • Enter two or three input values
    • See the resulting output value

    That experience--being able to compile and run a program in something like real time, was HUGE--in 1974. Nowadays it is so outdated that I'd bet most kids would not see any correlation between that and a computer program that they are familiar with. How do you explain to a ten-year-old that the BASIC exercise from the math book is essentially identical to the internal processes of a video game, a web server, or the embedded micro-processor that drives your microwave oven?

    By contrast, a web page is a terrific introduction. Open a simple web page with "View Source", modify the text, and display the new page--it has changed. Iterate several times--add paragraphs, change colors, play with fonts--and the kid gets it. Playing with a text editor (which, incidentally, still does come for free) the student can go a long, long way in HTML. Depending upon his or her interests the student can pursue graphic design, animation, AJAX programming--all sorts of stuff. Key point: the difference between a "Hello World" HTML page and EBay is only a matter of degree--and that is immediately obvious to the student. Making the mental link between an ancient BASIC program and--for instance--a Windows application developed in Visual Basic.Net is not obvious at all.

    A case in point...
    I have three daughters. Growing up in a house with more computers than people--and a T1 connection to the Internet--they have had more exposure to computers than most kids. The oldest two are in college, and both had summer jobs this year at the electronics company where I work. Daughter #1 worked in customer service role--spending a lot of time with Excel spreadsheets. Somebody asked if she could program--she replied that her dad was a programmer, but she didn't really know how to. As she said this, she was writing Visual Basic macro scripts to automate a lot of manual key-entry for the customer service staff. What she was doing was very similar to the old-fashioned "get input, produce output" coding that punch card decks and BASIC programs performed. But the IDE (in this case, Microsoft Visual Basic for Applications) and the paradigm (a GUI) made it extremely easy to understand and do. So easy, in fact, that she didn't really equate it with programming.

    In other words,
    Don't mourn for GW-BASIC. Spend time with your kids writing HTML, JavaScript, and Excel macros.

  9. Re:Kids today...... :-) by BWJones · · Score: 4, Interesting

    You should know that the University of Utah has a long history of academic excellence in computer science. People like John Warnock (founder of Adobe), David Evans and Ivan Sutherland (founders of Evans and Sutherland), Robert Barton (principal architect of all Burroughs computers), Tom Stockham (created digital recording among many other things), Alan Kay (GUI guy at Xerox PARC, developed Smalltalk and is a fellow at Apple), Chuck Seitz (pioneer in asynchronous circuits), Ronald Resch (pioneer in computer art), Alan Ashton (founder of WordPerfect), Tony Hearn (developed the oldest algebraic math package, REDUCE), Duane Call (designer of the FPS-120 supercomputer and vector calculation specialist), Henri Gouraud (developed the Gouraud shading methods so important for all your games), Elliott Organick (Founder of SIGSCE and author of many FORTRAN and CS textbooks), Buit Tuong-Phong (invented the Phong shading method), Ed Catmull (computer animation pioneer and co founder of Pixar), Jim Clark (founder of Silicon Graphics, Netscape and Heatheon/WebMD), Henry Fuchs (founder of Pixel Planes and researchers in high performance graphics software), Martin Newell (object rendering and founder of Ashlar and co developed the Painter's algorithm for surface rendering), Frank Crow (famous for his anti-aliasing methods for edge smooting), Martin Griss (developed Portable Standard LISP), Suhas Patil (founder of CIRRUS Logic), James Blinn (Invented the first method for representing surface textures in graphical images. Scientist at JPL, where he worked on computer animation of the Voyager fly-bys), Jim Kajiya (Developed the frame buffer concept for storing and displaying single-raster images), Robert Johnson (Invented the magnetic ink printing technology used on virtually every check we write), Brian Barsky (Developed beta splines and methods to link computer graphics, geometric modeling, vision science, and optometry) and so on and so one are all graduates of our program.

    --
    Visit Jonesblog and say hello.
  10. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  11. Re:Kids today...... :-) by hey! · · Score: 5, Interesting

    first off, it seems that math education is sorely lacking in many college students. ... The next major reason is lack of communication skills and writing skills.

    There's a story about Abraham Lincoln when he was a cogressman. He received a questionnaire sent to new congressman in which they were supposed to give background information about themselves. When he came to the question which asked for a description of his education he filled in a single word: "deficient".

    In fact, Lincoln felt the deficiency of his education so keenly he began an independent study of Euclid's Elements, with the intent of sharpening his thinking. Reportedly he mastered the material through book 6, which means everything relating to plane geometry, but not number theory or solid geometry. I'd argue that Lincoln's formidable intellectual accumen, whether it stemmed from his study of Euclid or from his native faculties, is often missed in the sentimental haze that surrounds the man.

    The point of these anecdotes is this. There are certain areas of knowledge where thoughtful persons would have to label their education "deficient", any accomplishments they may have in them notwithstanding, because they are bottomless sources of utility. You just named two of them: mathematics and communication.

    The need for remedial classes at the university level doesn't come from a degeneration of the educational system. It comes from a social and economic change which makes a bachelor's degree a minimal requirement for decent employment. Fifty years ago, there were two kinds of people who went to college. The socially elite, for whom a "Gentleman D" was perfectly acceptable. Arguably the societies they joined and contacts they made were the most important reasons to go. And the intellectually elite. The middle class, non intellecutally elite student got a job, often in a factory, which maintained him in the middle class and did not require a degree.

    The growing need to have a university degree in the last half of the twentieth century led to the perennial concern of declining college board admission test scores, from which it was concluded that primary and secondary education was deteriorating. However, it's important to remmeber that average scores are average scores of a population sample, and if the population being sampled changes, you can't compare the scores. Adjusted for demographic changes, there was no decline in scores. There literally couldn't be, because of the little known fact that the tests and scoring scales are continually recalibrated by the testing agencies to ensure that students in any given segment of the academic population score the same from year to year.

    However, we have been the beneficiary, first of the Sputnik scare, then the SAT scare. For most students, education is actually much more rigorous today than it was fifty years ago. I went to elementary school almost forty years ago. My school was unusual in putting a great deal more emphasis in critical thinking and reading skills. My children go to an elementary school where the reading curriculum is much more challenging, and the math curriculum requires that students be able to reason mathematically and recognize situations where various mathematical techniques need to be used -- a huge improvement over the education of my era, which graduated countless students who could regugitate the quadratic equation forumula but had no idea when it might be useful.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  12. 3D Engines Game editors by Dareth · · Score: 3, Interesting

    The editors for 3d games are unbelieveably powerful. I remember spending many an hour tinkering with the original Unreal editor. It was easy for even a novice to use a getting started tutorial to build their own map/level/world.

    The editor presented the world as a 3D solid and you would cut away "rooms" and then apply textures. You could easily make an in-door or outdoor scene complete with sky, water, light sources, etc.

    You could put together simple shapes to create complex objects, then script them easily to move around or even react to the player character in the game.

    To really get complex reactions from the environment, or to get the lighting/shadows right required some understanding of basic math/trig, but even that is not that hard and the tutorials pointed you in the right direction.

    This is about as close to the "wow factor" that I got from doing simple shapes on a TRS-80 back in the old days. Coding up your own version of Bezerk was awesome. Creating your own worlds and getting to explore them was almost as thrilling.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
    1. Re:3D Engines Game editors by monopole · · Score: 3, Interesting

      Hah! Arguably its easier now to do insanely cool stuff in line oriented code.
      I just knocked off the code to import a 3d model of Downtown Berkley and display an interactive stereoscopic model with texture mapping in 267 lines of Python using only the enthought python distribution and the PyXML module. If I wanted to add joystick support that would be 10 more lines and the PyGame module. All the tools are free as in beer and speech. The only development tools I used were a text editor and the interactive command line.

      A few months ago I knocked off a few hundred lines of Python code which logged gps, and processed the logs to provide KML files which came up in google earth with commented 3d paths of the GPS positions. Once again using FOSS with a command line and a text editor.

      Insanely cool code is much simpler these days with high level Python bindings to just about everything.

      As for physics, while there is a lot of very expensive cool stuff (CERN etc.) a lot of very cool physics is going on with dirt cheap tools. Lasers, microprocessor controls, high end optics, computers that make a Cray I look like a calculator etc. are available for next to nothing, allowing the Mac Guyver's of physics to do astounding things in their garage.

  13. child who codes, another on the way by airuck · · Score: 3, Interesting

    I am a parent of a 10 year old boy and 7 year old girl. My son and I coded our first BASIC stamp robot (Parallax Boe-Bot) last year. He has since taken an interest in his 300-in-1 electronics kit, and modifying the games he plays on his Knoppix for Kids distribution (he often runs that over the Fedora and Ubuntu distros also available in the house). A few days ago he asked me how a web site works, so I am going to teach him a little html this weekend.

    My daughter plays the piano and has access to a MIDI keyboard. She and I have had a couple conversations about MIDI and was fascinated by the paper pipe organ we built. I just started designing a small, networked, pipe organ with the hope of demonstrating some programming and networking concepts to her.

    We have also built rockets, a trebuchet, and even kept bees together. I plan on dusting off my homebrew equipment soon.

    Children are never bored by the possibilities of technology. They need only to be exposed to something more than closed and highly polished consumer products. Even THAT is a wonderful lesson in repurposing if there is a hack around who cares to show them.

    --
    First entomology, then virology, and finally bioinformatics systems. Bugs follow me wherever I go.
  14. Re:Absolute nonsense by Chelloveck · · Score: 3, Interesting
    I don't think it's because the barrier to entry is too high, rather the barrier to do something cool is in the stratosphere. Think about it - back in the 80's when you first started playing around with code creating your own version of pong was pretty dam cool. Actually even getting the machine to draw a few boxes on the screen in different colours was cool. True there was a learning curve and it was quite steep if you'd never coded before, but it wasn't that far from bottom to top.

    The same is true of electronics. In my college days (mid-80s) it was cool to wire up a circuit to make and LED blink, or a flash bulb fire. If you were really into it you could scrounge a HeNe laser tube and build yourself something really cool. These days, all that stuff is available for cheap. Blinking LEDs are literally given away free with breakfast cereal. Laser pointers are less than $10 and come with a variety of lenses to make images on the wall. The cool stuff is no longer easy, and the easy stuff is no longer cool.

    I think it's just a sign of the technology maturing. The technology for its own sake is no longer interesting. Both programming and electronics are just means to an end. Now the cool stuff is making that technology do something. Yeah, there's a higher barrier to entry, but it's not insurmountable. Back then you had to program a game from scratch; now you can take an existing game and mod it. Back then getting a motor to turn was neat; now, you can build robots without worrying about the piddly stuff. I think there's still plenty of room for exploration and creativity, but it won't be the same as when my generation were kids. My kids' generation will take the basics that we laid down and build upon them, making whole new cool things. No, it's not the same as it was. It's better.

    --
    Chelloveck
    I give up on debugging. From now on, SIGSEGV is a feature.
  15. Re:Kids today...... :-) by Shaper_pmp · · Score: 4, Interesting

    What does learning about the underlying system help with in programming?

    Architecting beautiful code? Nope.
    Learning powerful, high-level abstractions? Nope.

    Programming efficiently to the hardware.

    With computers getting ever-faster and more advanced, coding efficiently is less and less important than it used to be. Efficient algorithms are still pretty important, but that's more about using matrix calculations and streamlining progam flow than about the intricacies of memory-management and choosing where on the hard disk you place your data for minimum retrieval time.

    Witness the rise of interpreted languages like Perl/Ruby/PHP. Look at how semi-compiled bytecode languages like Java and the .NET stable are more mainstream than C/C++/whatever.

    Don't get me wrong - I first learned BASIC, then C, then C++ and a bit of assembler, and I wouldn't trade this knowledge for the world. Nevertheless, now when I write C# code which is compiled to MSIL/.NET bytecode, which is then interpreted by the .NET runtime and turned into CISC instructions which are sometimes even then converted into RISC instructions... what exactly should I be coding to? How can I know what's happening to my code after it's run through 4 or even 5 levels of automatic conversion?

    These days kids are learning how to use high-level tools first, and only learning the lower-level stuff as they get better and better. Sure this means an awful lot of nasty, bloated beginner-level PHP and VB.NET, but by the time they're ready to tackle compiler design they've generally already picked up the important bits as they go.

    When we were learning code we'd write crappy code in BASIC/C, and it'd sit on our home PCs and never go anywhere. Now when a kid writes crappy PHP or VB.NET it's generally posted to a forum or used to run their website, so of course it's more visible.

    We all wrote crappy code when we were learning, irrespective of the language. Certainly, I know I wrote some BASIC/C code that makes me cringe when I think of it now.

    --
    Everything in moderation, including moderation itself
  16. Re:Why Line-Oriented? by RAMMS+EIN · · Score: 2, Interesting

    Although BASIC is line based, allows you to write programs without boilerplate, and can be interpreted, these are all orthogonal properties.

    Line based means that you enter your program is based on lines, as opposed to, say blocks of code. It means you get code like

    10 CLS
    20 I = 1
    30 PRINT I
    40 I = I + 1
    50 IF I = 10 GOTO 30
    60 END

    and you could insert a piece of code by writing, e.g.

    55 PRINT "DONE"

    In a block based language, you would get code like

    CLS
    I = 1
    DO
          PRINT I
          I = I + 1
    WHILE I = 10
    END

    and insert code by going to the right position in the code and writing there whatever you want inserted.

    And yes, that does mean that modern BASICs aren't really line oriented.

    As for boilerplate and interpretation, observe that Common Lisp and Scheme both allow you to write programs without boilerplate, but they're not line oriented. E.g, in Scheme, Hello World could be rendered as

    (display "Hello, World!")
    (newline)

    or

    (display
            "Hello, World!") (newline)

    Also, Common Lisp and Scheme can be interpreted or compiled, just like BASIC.

    --
    Please correct me if I got my facts wrong.
  17. Re:Kids today...... :-) by WhoBeDaPlaya · · Score: 2, Interesting

    I disagree - turned out alright even after having dabbled in way too much BASIC, FORTRAN and PASCAL :P

  18. Best Java practices by CustomDesigned · · Score: 2, Interesting

    In my Java classes, when a resource is freed by a destructor - as opposed to by a close() method or equivalent - it logs a warning. Optionally, the open() method can capture a stack trace - which can help track down the leak, but eats too much memory to do all the time. Along the same line, the Boehm garbage collector for C/C++ has a mode where it can warn you about memory that has not had free() called as it collects it. This is very helpful for debugging manually collected C/C++ programs.

  19. Re:Kids today...... :-) by LWATCDR · · Score: 2, Interesting

    Dijkstra was right but limited in his thinking.
    It is practically impossible to "TEACH" good programming to a student that teaches themselves basic.
    Basic is not that bad for learning programing. It is terrible for teaching programing.
    When I was in school back in the days when dirt was a new idea and the SuperPet was the best computer for computer teaching programing. Hey it had an interpreted FORTRAN, Pascal, APL, and I think COBOL. I learned Pascal first followed by Basic, I know some very good programmers that taught themselves basic first and then went on to real programming languages.
    You are right in that we don't need basic anymore. Python is just as "easy" as Basic and a lot better thought out.

    I don't think the problem is the languages. The problem is expectations. When I was a kid everyone wanted to learn to program to write games. The games of the day where simple and you could wrap your brain around lunar lander, pacman, break out, or space invaders. A 12 year old could imagine themselves creating a new video game. Now the bar has been raised to Doom 3 and Half-Life2.
    I doubt that betting your name to print across the screen of flying a space ship in 2d on your monitor has the same thrill.
    The same chilling effect has hit model building. Why build a model of a corvette or a P-51 when you can fire up Grand Turismo 4 or FS?

    kind of gives me and idea for a new competive programing toy :)
    Now I just need three web cams two model tanks, some sensors, and some blue tooth interfaces.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  20. What about Squeak? by flimflam · · Score: 2, Interesting

    I've only played with it a bit, but it seems like it could be an ideal learning environment -- the kind of thing that feels like you're playing but are actually learning something.

    --
    -- It only takes 20 minutes for a liberal to become a conservative thanks to our new outpatient surgical procedure!
  21. Re:Kids today...... :-) by Catbeller · · Score: 1, Interesting

    Bingo. I am an olde tyme computer fart, the kind that started in BASIC back in the day. In business, they taught us COBOL and various add-on packages like FOCUS.

    I noticed the rise of object-based code when I was very young, and unlike most, I said "What the HELL is this crap? Are they trying to get rid of normal humans in the coding business?" and like statements.

    Unlike most who jumped in and swam with the OO fishes, I declined the honor. Explanations, in my ignorance:

    OO code was developed by people who think in calculus and set theory. It seems natural to them.
    Most people don't know calculus and never will. The opinions of math majors are immaterial; people don't need calculus, matrix algebra, set theory, information theory, all that you need to even begin to write good code in OO languages.

    Math major are usually geniuses, or have aberational mental processes that let them focus on a problem for days or weeks at a time. I know, I'm one of those people. But most people aren't geniuses, don't care to work on code for days, and don't know why anyone would want to. But OO is designed by those people for those people. It's like a lodge of math geeks.

    This reliance on mathematical geniuses to use languages created by mathematical geniuses lead to some nice job security. But it doesn't help the actualy world, because the world needs code that is simple to write, debug, and maintain. OO is NONE of those things, and yes, I do know about spaghetti code in BASIC and the simple reusability etc. of OO code. But resuability and such can be done in non-OO languages as well; it just takes discipline.

    We are moving into a world where absolutely everything is dependent on code, and the code is incomprehensible to people who haven't had four or five years of solid math training, then years of CS instruction. This is intolerable because there aren't enough such people in the world. People usually don't want to spend a decade of their lives reading books and drinking Jolt just to write a banking app.

    The usual counter argument is "Fuck you, learn math and CS, the past is over, etc.". But I've been both in and out of CS and I have to say that fundamental problems in the real world are not being solved because of the bottleneck caused by the mountain placed in the way of coding for apps needed on the fly. David Brin is right: students and businesses are now consumers of code, not producers.

    Perl is good, Ruby is good, these are things that alleviate the problem a lot. But even now, they are OO-ing Perl and making the CS profs happy -- and it's becoming yet another incomprehensible language with a steep learning curve.

    Um, let me make a simpler argument, the same one I'm responding to, and it's a damned good one. Look at the VERBIAGE on those "modern" programs. What the HELL are you people thinking? Just typing all that slows down development enormously.

    I guess the next thing to do (if I'm so clever) would be to develop a simple, usable language for non-CS students. I kinda think someone did it already, many times. But no students will ever see it.

    CS professors and coders are logjamming development of simpler solutions, because they are fundamentally conservative, deeply so. They have invested most of their lives in learning Rube Goldbergian code architecture and aren't going to change.

    I'll just continue to watch the meltdown.

  22. Re:CS a branch of mathematics? by lhbtubajon · · Score: 4, Interesting

    This was EXACTLY my experience at The University of Texas, where CS is really applied mathematics, with a focus on AI. I just wanted to learn to code cool shit. After three years of learning very little I could practically apply, and being bored absolutely stiff (while getting my ass kicked by the maths), I bailed out of CS in favor of an entirely different college (within UT).

    I don't begrudge UT for wanted to offer an applied mathematics program in their CS department, but I didn't want that, and was basically told that if I wanted to have a life where I did cool stuff with computers, I had to learn Diff. EQ, calculus-based engineering physics, and a whole lot of theory and proofs of CS (emphasis on the _Science_) concepts that perhaps .01% of real-world programmers actually give a shit about.

    Another concern I have with university-level CS programs is that not a whole lot of actual TEACHING goes on. Lower-level courses are "taught" in giant halls where ethereal profs tend to cater to students who already knew the material before they got to high school. It just goes downhill from there. I didn't realize how bad it was until I got to another department where they actually started with the basics, _taught_ the fundamentals, and developed students through to competency.

    It's like CS departments got lazy on teaching because they have such a wealth of students who have been dicking around with this stuff since they were 5, just because it was fun.

  23. Kids don't WANT/NEED to code anymore by Opportunist · · Score: 2, Interesting

    That's my rather annihilating verdict on today's youth. If you WANT to create code, it's still possible, and maybe more possible than ever, given that today you have a lot of different and very interesting languages available to you. Yes, they don't come with your computer (unless you're using Linux, which almost invariably has a set of languages bunched with the Distro), but there's lots available online. For free. And on top of it, you get a ton of very sophisticated libraries too that take away a lot of hassle.

    But why bother? Anything you might want is available already. And better than you could do it. We used to write "simple" games like hangman or (later) space invaders, and it was cool 'cause first of all, those games were popular back then and you could actually BUY them. But hey, I could code them and give them to you FOR FREE (which was something back then, without internet and P2P).

    Why bother coding today? Anything you could come up with is invariably inferior to anything you could download.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  24. Re:Kids today...... :-) by Fordiman · · Score: 2, Interesting

    Using the CScript interpreter (comes with windows):
    while(true) WScript.echo("Big Tits");

    Which is technically one line of code, even though it contains five different fundamentals of the language (looping, boolean values, Object indirection, function calls, string values).

    If the question is "Why are there no line languages", then the question is fallacious. They're all line languages. Some of them have non-line editors, but they're all line languages.

    I like CScript for this purpose for a couple of reasons:
    --It's insanely powerful, so far as Javascript goes.
    --The separation of abilities by objects (fso, WScript, etc) makes it easy to poke around to see what you can do in a particular --javascript environment, so you end up with a tigher curve when moving to, say, ActiveScript.
    --It's complex enough to be useful, but simple enough to learn in your spare time (much like PHP, but without the extra download).
    --With a good instructor, it's an excellent primer in object oriented programming.
    --It doesn't teach bad habits like BASIC did (ie: GOTO and spaghetti code)
    --You can't break your computer with it (remember all the shit you could do with Peek and Poke? I lost a system disk that way.)
    --Ok, well, you can, but it's a pain in the butt (using FSO and WScript.Shell...)

    --
    110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
  25. Re:Kids today...... :-) by bladesjester · · Score: 2, Interesting

    I started out programing in BASIC on my CoCo when I was a kid and I had no problem switching to C++ later.

    Maybe I'm just weird, but the point is that using BASIC as a kid doesn't necessarily destroy your brain.

    --
    Everything I need to know I learned by killing smart people and eating their brains.
  26. What happens when complexity gets out of control by poopie · · Score: 3, Interesting

    This is not just programming... it's everything.

    Programs used to be simpler and written by *ONE PERSON* - you could read and learn from someone else's code. Nowadays, most programmers are just a cog in a wheel using an IDE to implement one function in one library, and they rarely grasp the code in it's entirety

    Cars used to be simple, mechanical entities where the underlying workings hadn't changed much in decades. Nowadays, cars are so chock full of electronics and there's hardly anything improvable by a single person these days

    Electronics used to be "simple" - circuit boards were single layer and traces could be easily seen with the naked eye. ICs were standard parts you could by at Radio Shack. Parts could be hand soldered, removed, and replaced. Nowadays, parts are all custom, miniaturized, with 5-layer circuit boards, and they're just too complex for any one person to fully understand.

    Phones and radios were originally very basic and simple and easy to understand / fix. Nowadays, we satellite radio and cellular phones that VERY FEW people understand enough about to actually work on.

    People used to know how to do everything that it took to run a farm. Managing livestock, crops, construction, markets etc. Nowadays, people just vegetate in their condo, drive to work, sit in front of a computer, and drive home. They don't need to know how to SURVIVE.

    I've said this before... if there were a catastrophic event that destroyed most of society, very few people would have enough knowledge to rebuild what we currently have.

    Therefore, I believe that we as a society are getting dumber because we need to know less, and because modern medicine can keep nearly anyone alive long enough to reproduce, I'd say that evolution of the human species has stopped and that as a species, we're getting weaker.

  27. Re:CS a branch of mathematics? by Rimbo · · Score: 2, Interesting

    I had the exact same kind of education from the University of Texas that you had. I graduated, got a Master's degree, and made my way into the work world, where I've been full-time employed for seven years.

    Working on embedded devices right now. Sometimes I'm doing web programming, sometimes I'm writing apps, sometimes I'm writing device driver stuff. We also have a PC app that I've worked on that communicates with the embedded devices -- a rich client. Because of my education, I'm able to move seamlessly from one to the other.

    I never have to say, "I don't know how to do that." New language? No problem. New paradigm? Nothing I haven't seen before.

    I can't understate how vital the education I got from UT's CS department has been. Because of the solid fundamental background I got in those courses, I can learn any language, develop on any system, and do it faster and better than guys who went to other schools.

    If you want to learn programming languages, tools, techniques... that's fine. Like another poster said, go to a vocational school. You can learn these on your own time... and with the background from the CS education I received, it doesn't take that long.

    If you want to be prepared for a long-term career, go get a university education.

  28. Re:Absolute nonsense by Bozdune · · Score: 2, Interesting

    This is probably pointless, but I'll answer you anyway. With regard to skills:

    o I started programming in 1969, in PDP-8 assembler, well before my voice changed.
    o Then I wrote a bunch of games and utilities in high school, many of which were widely distributed (pre-Internet).
    o Then I went to MIT for six years, and wrote a parallelizing C compiler for my Master's thesis.
    o At that point I had already used a dozen programming languages and assembler languages, most of which I've forgotten.
    o Since then, I've written operating systems, compilers, linkers, editors, CSMA networks, real-time apps, financial services apps, web-based transaction apps.
    o I've shipped product to over 20,000 customers -- built it, supported it, enhanced it, managed a development group, managed whole development organizations (teams as large as 100, and as small as 3). You name it, I've probably written it.
    o I regularly use "latest rage" programming languages and environments.
    o I've started three companies and made significant money with two of them.

    I used to be contemptuous of application productivity enhancers. Then, one day, I had to figure out why our clock was being cleaned, feature-wise and development-time-wise, by one random nut in a garage using PowerBuilder, who was somehow able to turn out GUI-based application software 10x faster than our whole team could.

    I learned an important lesson from that. Success is all about how much you can accomplish given limited quantities of time. Any tool that gets you there faster should be embraced. At one of my start-ups, I made tons of money using VB, but we wouldn't have made a plugged nickel if we had used C++. Our development time would have tripled, and we'd have missed the market window completely.

    I'll close with this thought: I really *HATE* VB. I hate the syntax, the stupid conventions, the limitations, the bugs, the bad behaviors, the limitations on the controls, etc., etc. OK? There, I've said it. But, having said that, VB is an important tool in my quiver, and I know exactly how and when to use that tool to clean the clocks of arrogant techno-nerds when we run into them competitively. Fortunately for me, the world is full of them, and they just don't seem to catch on. I hope they are all resonating strongly to your posts.