Slashdot Mirror


Fixing the Pain of Programming

An anonymous reader writes "Light Table is a Kickstarted, open source IDE that's been trying to integrate real-time feedback into code creation. Part of their process has been figuring out how to improve the practice of programming, from top to bottom. They've put up a post about the troublesome aspects of programming that we've learned to deal with and take for granted, but which need solving if programming is to be made accessible for more people. 'Surprisingly, one of the most common difficulties we have heard from beginners is just running code. Even if we were to hand [a new programmer the whole source code] they would likely still struggle to actually use it. They have to install dependencies, compile code, start servers and open ports. At each step the errors are difficult to diagnose and time-consuming to fix.' But these problems extend to experienced coders, too: 'The simplest question we could ask about our application is "what is the current state." Bizarrely, very few programming environments give you any help on this front. Many programmers get by with nothing but print statements.' It's interesting to see somebody working on these issues, instead of accepting that they're the status quo and just part of the experience of programming."

294 comments

  1. Debuggers by Anonymous Coward · · Score: 5, Insightful

    I suppose this is addressed by the old quote "What is the best language for x?"

    "I don't know. Which has the best debugger?"

    1. Re:Debuggers by Anonymous Coward · · Score: 1

      Ah... /. trolls. In this site's defense, a statement like "People that need debuggers will never be any good." would not be considered trollbait on most other sites.

      That's why I don't really miss this place that much. I just pop in from time to time to see if the air has cleared, but I am usually disappointed.

    2. Re:Debuggers by pla · · Score: 1

      People that need debuggers will never be any good. For good programmers, a debugger occasionally safes some time.

      This statement, while literally true, requires some qualification.

      Knowing how to use a proper debugger can save you days of pain. But you also can't depend on always having the ability to use a good debugger - Simplest case, trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).

      And in those situations, the ability to track down a bug with nothing more than a set of print/alert statements saying "I got here, X=47" means the difference between "programmer" and "wizard's apprentice" (by which I mean if the IDE's wizard fails you, you end up almost drowning until a real programmer saves you).

    3. Re:Debuggers by Anonymous Coward · · Score: 1, Insightful

      > the ability to track down a bug with nothing more than a set of print/alert statements saying "I got here, X=47" means the difference between "programmer" and "wizard's apprentice"

      Really? Because in my experience it's the "apprentices" that tend to lean far too heavily on printf, which is always taught before debuggers and is much easier to use. They spend hours instrumenting everything only to find a bug that could have been located in a few minutes with breakpoints, watchpoints, and stepping. Then they leave behind them a trail of commented-out printf garbage that pollutes the codebase.

      > if the IDE's wizard fails you, you end up almost drowning until a real programmer saves you

      Because Real Programmers build houses using only hammers. Nailguns, screwdrivers, shovels, and power tools are for pussies.

    4. Re:Debuggers by am+2k · · Score: 1

      Simplest case, trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).

      For these cases, you should set up a local mirror environment where you are allowed to debug. Of course, if you can't reproduce the problem locally (because of system-interdependencies or a critical database you aren't allowed to copy for testing due to privacy issues), you have a problem...

    5. Re:Debuggers by Desler · · Score: 1

      What a stupid statement. Debuggers, for example, are great reverse engineering tools.

    6. Re:Debuggers by stenvar · · Score: 1, Interesting

      For an experienced programmer in a statically typed language (like C++), there are three things that catch bugs before you even get to a debugger: the static type checker, runtime assertions, and unit tests. If any one of them triggers, it is usually obvious how to fix stuff even without a debugger.

      Debuggers should be simple, minimal, and reliable, so that the 1-2 times a year that you need them, they get the job done correctly and without having to remember a lot of complicated stuff.

    7. Re:Debuggers by InsertCleverUsername · · Score: 4, Insightful

      People that need debuggers will never be any good.

      People who work with trivially-simple applications and never have to deal with someone else's legacy mess will never be any good either.

      --
      Ask me about my sig!
    8. Re:Debuggers by Anonymous Coward · · Score: 1

      You never had to debug/fix foreign code and you never worked on projects with more then 100k lines of code.

    9. Re: Debuggers by Anonymous Coward · · Score: 1

      exactly, anyone who says he doesn't need debuggers is a total fucking idiot. its generally people like this who avoid cooperation and who think they write bugless code.

    10. Re:Debuggers by Anonymous Coward · · Score: 0

      Perhaps not, but a good grammar checker is worth its weight in gold.

    11. Re: Debuggers by Anonymous Coward · · Score: 1

      I would love to see you diagnose the cause behind a kernel panic without a debugger. Please, show me how.

    12. Re:Debuggers by ShanghaiBill · · Score: 3, Funny

      People who work with trivially-simple applications and never have to deal with someone else's legacy mess will never be any good either.

      People that never write embedded code, and never have to trigger the debugger when a particular voltage occurs on a particular pin in order to to track down a race condition caused by clock skew and/or misaligned asynchronous inputs to the FPGA, will never be any good either.

    13. Re:Debuggers by pla · · Score: 4, Insightful

      Because in my experience it's the "apprentices" that tend to lean far too heavily on printf, which is always taught before debuggers and is much easier to use.

      Our experiences differ somewhat drastically, then - Perhaps this involves a difference between the Windows world and the Linux world. In Linux, yes, knowing how to attach and use the standard debuggers counts as something of a fine skill set (though I don't think that still holds true like it used to - We have a hell of a lot more choices today than just GDB/DDD). In the Windows world, when the code breaks, the IDE throws you into a debugger and all but tells you what happened and what to do about it.


      Because Real Programmers build houses using only hammers. Nailguns, screwdrivers, shovels, and power tools are for pussies.

      Nice strawman, but no. Real programmers use power tools when appropriate. But when the sawzall won't fit in a tight space, the real programmer knows how to use a keyhole saw.

    14. Re:Debuggers by Nemyst · · Score: 4, Insightful

      If you think you're such a great programmer that you're never ever going to write bugs into the programs you write, you've probably never written anything larger than a few thousand lines, and you've probably never debugged what you wrote in the first place.

      Hint: outside of Hello World, bugs will happen. Debuggers are a great way of determining what the bug is so you can get on with fixing it, instead of acting like the hot programmer who doesn't need them but instead wastes an entire day combing through his code looking for that one error. Deciding that you're "above" some subset of tools available to you is childish at best.

    15. Re:Debuggers by Anonymous Coward · · Score: 0

      trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).

      Why are you trying to debug code on a remote system when you don't have debug permission? Communicating with, storing data in, retrieving data from, or otherwise intercepting and changing computer resources without consent is unauthorized access. It's against the law.

      If you legitimately need to debug a remote system, get debug permission on that system.

    16. Re:Debuggers by Anonymous Coward · · Score: 0

      Reverse engineering is a bit different of normal programming.

    17. Re:Debuggers by pla · · Score: 3, Informative

      Communicating with, storing data in, retrieving data from, or otherwise intercepting and changing computer resources without consent is unauthorized access. It's against the law.

      I can't tell if it worries me more that you think I would try to debug code on a system I hacked into... Or that you've never heard of low-end web hosting providers.

      Real-world access permissions don't always match the ideal, and the fact that I can legally upload a CGI via FTP doesn't mean I can hook into a remote debugger. Dealing with an overly locked-down hosting company doesn't break the law, Scoutmaster AC.

    18. Re:Debuggers by Anonymous Coward · · Score: 0

      You've been just doing some embedded programming. Don't get too worked up on it. :)

    19. Re:Debuggers by Anonymous Coward · · Score: 0

      Like parent wrote, a debugger occasionally saves time, because of this.

    20. Re:Debuggers by Anonymous Coward · · Score: 0

      If you think you're such a great programmer that you're never ever going to write bugs into the programs you write, you've probably never written anything larger than a few thousand lines, and you've probably never debugged what you wrote in the first place.

      Hint: outside of Hello World, bugs will happen. Debuggers are a great way of determining what the bug is so you can get on with fixing it, instead of acting like the hot programmer who doesn't need them but instead wastes an entire day combing through his code looking for that one error. Deciding that you're "above" some subset of tools available to you is childish at best.

      I've used a debugger on a hello world program, turn out world was spelled wrong

    21. Re:Debuggers by UnknownSoldier · · Score: 5, Funny

      > there are three things that catch bugs before you even get to a debugger:

      Yes, but the "hard" bugs are the ones that happen at run-time. Those depends on the context such as Networking, Rendering, and AI bugs that can be a real PITA to track down.

      Race Conditions, and Deadlock are hairiest ones.

      There has to be a comprehensive list someplace aside from the usual

      * syntax (compile time)
      -- variable mis-spelt
      * logic
      -- classic "fencepost" bug
      * run-time
      -- race conditions
      -- deadlock

      On a half serious note:

      * Bohrbugs: Most of the bugs that we come across are reproducible, and are known as Bohrbugs.
      * Heisenbugs: All experienced programmers have faced situations where the bug that crashed the software just disappears when the software is restarted
      * Mandelbugs: When the cause of the bug is too complex to understand, and the resulting bug appears chaotic,
      * Schroedinbug: Sometimes, you look into the code, and find that it has a bug or a problem that should never have allowed it to work in the first place

      http://www.opensourceforu.com/...

    22. Re:Debuggers by Dutch+Gun · · Score: 2

      For an experienced programmer in a statically typed language (like C++), there are three things that catch bugs before you even get to a debugger: the static type checker, runtime assertions, and unit tests. If any one of them triggers, it is usually obvious how to fix stuff even without a debugger.

      Debuggers should be simple, minimal, and reliable, so that the 1-2 times a year that you need them, they get the job done correctly and without having to remember a lot of complicated stuff.

      1-2 times a year? That's certainly not typical for game development, at least in my experience. We're in our debuggers all the time - in fact, it's considered good practice to step through new code you've just written to make sure everything seems to be looking and working as you'd expect it to. With the development we do, there's not always an obvious correct or known solution to the problem you're trying to solve. Or, even if it is a problem with a well-known solution, it can involve writing rather complex algorithms and data structures that very few programmers could get perfectly the first time (i.e. the A* pathfinding algorithm). I can't imagine writing that sort of code without having a debugger available to watch the internals of your code along with development.

      What do you do that only requires running the debugger once or twice a year? I'm guessing you're not using an integrated environment, or have deployment consideration which make using a debugger somewhat non-trivial.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    23. Re:Debuggers by Anonymous Coward · · Score: 0

      In most development environment you test the code by writing unit tests (about 5% of the programming time is spent on the actual code, 95% on unit tests).
      not by stepping through code

    24. Re:Debuggers by gweihir · · Score: 1

      Seems there are a lot of bad programmers among the moderators. No surprise. Bad programmers are a vast majority these days.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    25. Re:Debuggers by gweihir · · Score: 1

      No argument there. Knowing how to use a debugger, especially remotely, or on a core-file is a valuable skill. There is a difference between being able to make good use of a debugger in specific situations and needing a debugger just to understand the code you have written.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    26. Re:Debuggers by gweihir · · Score: 1

      I use printfs often. I am not an apprentice at all. But I do not only use plain printfs. Wherever valuable, there can be quite a bit of additional debug code around them. While some debuggers allow you to safe sessions, breakpoints and conditions to some degree, often that is cumbersome and quite a bit slower than instrumenting the code itself. Of course I clean it up afterwards. Sloppiness is quite orthogonal to the debug tool used.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    27. Re:Debuggers by gweihir · · Score: 1

      If you need to reverse-engineer your code (and that is what this discussion here is about), then you have a very serious problem and maybe should stop coding in the first place.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    28. Re:Debuggers by gweihir · · Score: 1

      That is not the subject of this discussion.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    29. Re: Debuggers by gweihir · · Score: 0

      I have done it. But if you need to be shown than you are not capable of understanding and showing you is futile.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    30. Re:Debuggers by gweihir · · Score: 1

      Learn to read. I was commenting on people that need debuggers, like in the OP? Using a debugger and needing one are two different things.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    31. Re:Debuggers by gweihir · · Score: 3, Informative

      Unfortunately, for Race Conditions and for Deadlocks, debuggers are mostly useless, as they change the runtime-characteristics. Typically, you end up with "Heisenbugs" that vanish or change dramatically as soon as you run under a debugger. Also if you think finding these by tests, you have already lost. You need to avoid these by design and find them with code-reviews and specialized tools.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    32. Re:Debuggers by gweihir · · Score: 2

      There are people that actually produce quality software. Most "programmers" do not.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    33. Re:Debuggers by gweihir · · Score: 2, Insightful

      Game development is different. For example, you cannot easily unit-test things like what is displayed on the screen or whether something runs smooth or not. There are other differences. Anyhow, the discussion is not about being able to use a debugger or even having one. It is about people that need one even for simple things and these people have no business writing code in the first place.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    34. Re:Debuggers by stenvar · · Score: 1

      Yes, but the "hard" bugs are the ones that happen at run-time. Those depends on the context such as Networking, Rendering, and AI bugs that can be a real PITA to track down.

      Those bugs all come down to some precondition, postcondition, or invariant that you depend on not being satisfied. Instead of spending time in the debugger, create a test that reproduces the problem, then add code that ensures that everything you assume is true actually is true. To track down networking bugs and race conditions, inject bad data and/or delays.

    35. Re: Debuggers by Anonymous Coward · · Score: 0

      if you need to be shown than you are not capable of understanding

      LOL

    36. Re:Debuggers by Darinbob · · Score: 1

      Reverse engineering is almost always on someone else's code. Don't blame the person tasked with the job of deciphering legacy code written in the desperate startup days.

    37. Re:Debuggers by Darinbob · · Score: 5, Interesting

      I do a lot of embedded programming, and doing the "standard" stuff like unit testing really is a pain. The bugs don't show up most of the time until they're on a real system or linked with everything else, and the bugs that do appear are the sort that are unlikely to be found in unit tests. Even without embedded programming there is almost always a hard and fast deadline with loud and angry people making sure you get it all done in time, so the unit testing is sometimes the first thing that gets cut. And let's be fair here, very often it is just as hard to write a good unit test as it is to write the code itself, and the programmer who is unlikely to find the bug in the code is also unlikely to write a unit test that would find that bug.

      So ya, you need a good debugger. And if you're good at using a debugger then your value goes up, especially if you can manage dealing with core files and deciphering what occurred in that optimized assembler.

      That said, this is the easy stuff in programing. The "pain of programming" has nothing to do with computers or languages or tools, the pain comes from management. This is why you have people who love to program but hate to come to work.

    38. Re:Debuggers by Darinbob · · Score: 1

      Probably not sufficiently internationalized either.

    39. Re:Debuggers by stenvar · · Score: 1

      All of that is true for a lot of other domains too. Tests and assertions do exactly what you want: "make sure everything seems to be looking and working as you'd expect". The strategy for testing is the same as for a debugger, but with testing you write down what you're doing and you can reproduce it. I think a debugger is a good learning tool, but for experienced programmers, it's a waste of time.

      (BTW, most places I have worked would expect applicants to be able to implement A* from memory and without a debugger in less than 1/2h.)

    40. Re:Debuggers by Krishnoid · · Score: 1

      * Schroedinbug: Sometimes, you look into the code, and find that it has a bug or a problem that should never have allowed it to work in the first place

      http://www.opensourceforu.com/...

      My own Schroedinbugs have specifically been along the lines of, 'How has this managed to work so long, with this dead cat in here all this time?'

    41. Re:Debuggers by Anonymous Coward · · Score: 0

      You probably haven't work on any large systems have you? Combine people who believe comments are unholy and lazy devs who named their processUserInput function "p" and their print function "q", because "p" was already taken, then almost all you're doing is reverse-engineering the code.

      Granted that's not your code, but your code ends up mixed in with everyone else so when it's modified you'll still need to reverse-engineer it or reverse-engineer the surrounding code to figure out the program state before you can change that == to a = and be sure it won't cause any unwanted side effects along the process flow.

    42. Re: Debuggers by Anonymous Coward · · Score: 1

      I wouldn't go as far as the original troll or cast aspersions on those who feel they need debuggers, but I will say that I find them to be less and less valuable as we've moved towards parallelizing more in our programs. The idea of stopping the world works well in a single thread, but when multiple threads are coordinating or working independently, it's much less useful. I find profilers and tools that otherwise capture the running state of a program are much more useful.

    43. Re:Debuggers by Anonymous Coward · · Score: 0

      I was just trolling. Wanted to see if you'd take the bait.

    44. Re:Debuggers by dudpixel · · Score: 1

      Learn to read. I was commenting on people that need debuggers, like in the OP? Using a debugger and needing one are two different things.

      Are you kidding?

      Yes they are different, but they are related, as follows:

      If you need a debugger but don't use one, you're an idiot.
      If you use a debugger but don't need to, you're just wasting time.

      You've yet to demonstrate that anyone ACTUALLY doesn't need to use one (as opposed to just thinking they are so good they don't need one)...but that's another issue I think.

      --
      This seemed like a reasonable sig at the time.
    45. Re:Debuggers by dkf · · Score: 1

      Yes, but the "hard" bugs are the ones that happen at run-time. Those depends on the context such as Networking, Rendering, and AI bugs that can be a real PITA to track down.

      Most of those are actually due to constraint violations. Too many people in this industry think that they can implement half an interface and ignore the difficult bits. I've even had someone seriously tell me that doing the whole semantics would break things. That facepalm hurt my nose.

      Race Conditions, and Deadlock are hairiest ones.

      There are worse. Security problems with multiple components all in different security contexts on different hosts... that's hard (no debuggers, no unified logging, lovely...) However, in general there are always deeper problems possible; the ultimate problems tend to relate helping the customer understand what the program can and should do in the first place.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    46. Re:Debuggers by AAWood · · Score: 1

      Well, he "took the bait" and got a 5: Informative for it. So... zing?

    47. Re:Debuggers by neokushan · · Score: 1

      How else are people supposed to learn? Stepping through code line-by-line is an excellent way to learn what your code is actually doing. Everyone has to start somewhere. If someone has decades of experience and still works like this, then I have to ask why they're in that position? Who put them there? Why haven't they had performance reviews that highlight this weakness?

      It seems that far too many rockstar developers can't fathom that not everyone knows absolutely every facet of development.

      --
      +1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
    48. Re:Debuggers by gweihir · · Score: 1

      I do not dispute that. But the discussion at hand is about debugger support for reverse-engineering your own code.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    49. Re: Debuggers by Anonymous Coward · · Score: 0

      I've seen bugs surface in "HelloWorld" too (ain't M$ great?)!

    50. Re: Debuggers by Anonymous Coward · · Score: 0

      Most are not allowed to write quality code due to management under funding, project rushing, or other poor planning.

    51. Re:Debuggers by Slashdot+Parent · · Score: 1

      For good programmers, a debugger occasionally safes some time.

      For those of us without unlimited time, saving it is valuable in and of itself. I don't walk to work, hand-wash my clothes, or raise my own chickens for eggs, either.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
    52. Re:Debuggers by gweihir · · Score: 1

      The problem is the other way round: Far to many people that have trouble handling the basics fancy themselves to be "programmers". Just read this and be surprised: http://blog.codinghorror.com/t...

      This blog-posting is not too pessimistic. If these people were doctors, they would fail at applying a band-aid.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    53. Re:Debuggers by gweihir · · Score: 1

      The discussion was about people that need a debugger vs. people that can make good use of one. The former do not qualify as "programmers".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    54. Re:Debuggers by gweihir · · Score: 1

      You are confused. This is not the topic of this thread. The topic is people that cannot even do simple things without a debugger.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    55. Re:Debuggers by lowen · · Score: 1

      Heh. In intercal, the "Hellow World" debugs you.

    56. Re:Debuggers by palion · · Score: 1

      Oh I know these Schroedingbugs. You see your code and wonder how the hell it could ever have worked - it has, but with such a bug inside that seems absolutely impossible. That has happened to me a couple times. Scary.

      --
      Well, well
    57. Re:Debuggers by Kiwikwi · · Score: 1

      Heisenbugs: All experienced programmers have faced situations where the bug that crashed the software just disappears when the software is restarted

      That's not a Heisenbug; that's just a plain old unreproducible bug. A Heisenbug is a bug that disappears when you look for it, and reappears when you stop looking. The classic example is a bug that appear in the release build, but disappears in the debug build where optimizations are disabled.

    58. Re: Debuggers by Anonymous Coward · · Score: 0

      Also, don't forget to dumb it down for the pleebs in Production.

    59. Re:Debuggers by Anonymous Coward · · Score: 0

      Note to self: post AC troll bait with prepared response when low on karma

    60. Re: Debuggers by Anonymous Coward · · Score: 0

      Debuggers may be convenient for development, but for production, not so much. If you you use proper logging (not print statements) instead, you are building infrastructure that is going to make your code supportable. Nothing to do with bugless code (since there is no such thing)

    61. Re:Debuggers by ale2011 · · Score: 1

      Debuggers should be simple, minimal, and reliable, so that the 1-2 times a year that you need them, they get the job done correctly and without having to remember a lot of complicated stuff.

      Much more than 1-2 times a year. An easy-to-use debugger turns out to be the most convenient way to read the code.

    62. Re:Debuggers by dudpixel · · Score: 1

      Fair enough.

      --
      This seemed like a reasonable sig at the time.
    63. Re:Debuggers by Anonymous Coward · · Score: 0

      Hint: outside of Hello World, bugs will happen.

      See also http://lists.gnu.org/archive/html/bug-hello/2013-12/msg00004.html, which adds a BUGS section to the GNU Hello man page. Not even Hello World is free of bugs. true(1), on the other hand... ;-)

    64. Re:Debuggers by Anonymous Coward · · Score: 0

      Game developers also tend to be shitty programmers since good programmers don't have to deal with shitty pay and hours.

    65. Re:Debuggers by Anonymous Coward · · Score: 0

      You can test graphics correctness and performance.

      Not just with unit-tests.

      Unit tests are the only kind of test, and in fact they miss the real difficult things to test.

      "I don't know why the system crashed, the unit tests passed" - mark of a dipshit.

      Integration testing is what finds the showstopper bugs, not the unit tests.

  2. Smalltalk live images by angel'o'sphere · · Score: 3, Interesting

    I simply don't get why not all programming languages/development environments support live images like Smalltalk..

    For those who don't know what that is: in Smalltalk the IDE and the running program are 'the same'. Your 'program' (what you code) never stops and/or is restarted. It just 'freezes' like a laptop and is 'restarted' or awaken at it previous state.

    That means if you send me your 'source code' you are actually sending me a sleeping, but running! program.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re:Smalltalk live images by Anonymous Coward · · Score: 1

      bizare and dangerous, a bit like microsoft putting executable code into image files that actually steal data from you and send it to criminals.

    2. Re:Smalltalk live images by Anonymous Coward · · Score: 0

      You don't say! https://en.wikipedia.org/wiki/Windows_Metafile#Vulnerabilities

    3. Re:Smalltalk live images by arth1 · · Score: 2, Interesting

      No program is an island. You can stop programs as an OS function in many operating systems, but resuming is a bit harder, as everything they presumed about the system at runtime may have changed, including displays, disk status, sockets, time zones, connected devices, or anything else.

      It's a bit like freezing you when you dash down a hill to reach the bus, and then unfreeze you in a glass store.

      The only somewhat safe way of saving and resuming a state is if you save and resume an entire OS - like most VMs allow you to do. And even that isn't safe - what if you froze in the middle of writing to an external drive, and another system modified the directory structure while offline?

      What Smalltalk and similar environments do is giving you a safe playground that can be frozen, but also cannot access anything outside the playground directly, and requests to the playground manager to interface with the outside world are atomic and cannot be frozen.
      It's fairly safe, but also far too limited for most programming jobs. You cannot use an etch-a-sketch to paint a house.

    4. Re:Smalltalk live images by Anonymous Coward · · Score: 1

      Also, it was really easy to hose your image - 99% your own fault, 1% bug related. So you had to constantly keep backups copies every time you wrote more code or made changes objects. Which meant shutting down, copying the file somewhere usually to a separate floppy and restarting.

      Smalltalk was really awesome for its time though. It was taught at my university instead of Fortran and Pascal as the main intro language and really help bring home the concept of OOP. Way ahead of its time.

    5. Re:Smalltalk live images by flargleblarg · · Score: 1

      It's a bit like freezing you when you dash down a hill to reach the bus, and then unfreeze you in a glass store.

      They unfreeze me in the Apple Store? Cool!

    6. Re:Smalltalk live images by Anonymous Coward · · Score: 0

      I would like to inform you that VM's exist. I do most of my testing in VMs. I can snapshot a running system and replay it running any language. I can peer into memory and register states.

      TL;DR: All programming languages and development environments support live images, just not as nicely as Smalltalk.

      Recommendations: People who liked Smalltalk, also liked Squeak and Seaside.

    7. Re:Smalltalk live images by RoccamOccam · · Score: 2

      You don't seem to understand the "TL;DR:" concept.

    8. Re:Smalltalk live images by BasilBrush · · Score: 1

      That means if you send me your 'source code' you are actually sending me a sleeping, but running! program.

      With all my data in it? What could possibly go wrong!

    9. Re:Smalltalk live images by dudpixel · · Score: 1

      It's a bit like freezing you when you dash down a hill to reach the bus, and then unfreeze you in a glass store.

      They unfreeze me in the Apple Store? Cool!

      Remember your previous state...just keep on running...

      --
      This seemed like a reasonable sig at the time.
    10. Re:Smalltalk live images by Anonymous Coward · · Score: 0

      I simply don't get why not all programming languages/development environments support live images like Smalltalk..

      For those who don't know what that is: in Smalltalk the IDE and the running program are 'the same'. Your 'program' (what you code) never stops and/or is restarted. It just 'freezes' like a laptop and is 'restarted' or awaken at it previous state.

      That means if you send me your 'source code' you are actually sending me a sleeping, but running! program.

      What you're talking about is a higher-level language, your code is not running on the "bare" hardware but rather within another software environment. So 'freezing' the program execution is less difficult because you can (usually) have a precise snapshot of the entire virtual machine state and return to that when you start executing. I say 'usually' because even with such languages situations can arise where a live production environment isn't easily 'frozen' or resumed.

      When you're writing programs which execute at the machine level you can't simply halt the machine like that. Sure, some hardware platforms support various debugging modes which allow for similar types of mechanisms, but you often sacrifice performance to do so. Not trying to flame or troll you, but if you really don't understand what I mean then I suggest you dabble with ASM a little bit and you'll start to get a glimpse of things.

    11. Re:Smalltalk live images by Anonymous Coward · · Score: 0

      I would like to inform you that VM's exist. I do most of my testing in VMs. I can snapshot a running system and replay it running any language. I can peer into memory and register states.

      Which is fine if you're deploying it on a VM, especially one which behaves identically to your VM. And while it's a very useful tool, assuming it's identical to running on an actual machine will eventually bite you in the ass.

      But more to the point, VM's and such are fine for mid to higher-level programming... but consider that some of us work on the VM itself, or in environments where VM's are either not present or not fully representative of the production environment.

    12. Re:Smalltalk live images by Simon+Brooke · · Score: 1

      InterLisp (and a number of other things coming out of Xerox PARC in the early eighties) had the same feature. You saved the running state of your system to file, you invoked the function (sysout). To restore the running state of your system from a file, you invoked (sysin filename). Essentially this was a memory dump of the heap, but it had the special property that the 'spaghetti stack' - the branching stack structure through which InterLisp managed multitasking - was implemented in the heap rather than as a separate structure, so loading in the heap also loaded in the stack, for all threads.

      Obviously, in InterLisp as in Smalltalk, everything in memory was inspectable and editable, and when you edited a function that didn't mean editing and reloading a file, the source code was an in-memory structure. It wasn't entirely without problems - there were small semantic differences between interpreted code and compiled code (if I remember correctly interpreted code implemented shallow binding while compiled code implemented deep binding), so that when you compiled your code its behaviour could change. Also it was possible, if you added a comment in the wrong place, that it could change the semantics of a function. For example if you added a comment as the last form in a function body, that function would always return nil. Nevertheless in terms of programmer productivity these environments were streets ahead of anything that's commercially available now; and although I love LightTable and hope that it is the shape of things to come, even LightTable isn't a patch on InterLisp's DEdit.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    13. Re:Smalltalk live images by angel'o'sphere · · Score: 1

      You strip what you don't want to deliever ;)
      But yes, it would contain all the data, except the image/program uses an aditional database or files.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    14. Re:Smalltalk live images by DavidHumus · · Score: 1

      I suffer the same incomprehension, except I've been using other interpreted environments throughout my career, but the idea is the same.

      Compiled languages, though sometimes necessary, often substantially increase the difficulty of programming for no benefit whatsoever.

      I understand this looks like flamebait, but I'm _only_ basing this on forty years of personal experience, so what the hell do I know? Since an example is worth a lot, here's one: I recently offered to help a colleague who's taking a C++ class and was reminded of all the unnecessary crap it takes to get even a very simple program to run at all. The problem was to build a Fahrenheit to Celsius (and vice-versa) temperature converter. It was friggin' painful - all the crap we had to put together to assemble even a simple, crappy program that is, at best, capable of doing
      one
      conversion
      at
      a
      time
      (and only a hard-coded little subset of them in an initial version).

      The result was multiple source files, comprising a couple dozen lines of code, compiling to megabytes of peripheral files (in the debug version) - you know how this goes. In contrast, I write the Fahrenheit-to-Celsius conversion in a short, single line of my favorite interpreted environment (J), and am able to test it on multiple values at a time, instantly - taking seconds instead of hours. Moreover, J is smart enough that it has a built-in inverse construct to allow me to write the inverse function with another few seconds of effort.

      I already hear the compiler-lovers muttering darkly about run-times and "large projects" - completely ignoring the first rule of optimization: find the bottleneck. Most code is - and should be - in small pieces that benefit from being tested quickly in small modules. The metric we should care about is "total time to completion" but this is harder to measure and more subjective than "run time", so we continue to focus on this latter measure to the detriment of productivity.

    15. Re:Smalltalk live images by angel'o'sphere · · Score: 1

      The main problem in our days is not only 'programming' but also teaching of programming languages.

      C++ is a beast there but also Java and .Net languages are hard, even python is.

      My favorite example:

      public class HelloWorld {
            public static void main(String[] args) {
                      System.out.println("oops, that is hard");
            }
      }

      We have: a class, an array (which is not even used), stuff like 'public' and 'static', we reference 'System' etc. to print something?
      And a 'Hello World' is considered a simple introduction into a programming language? Doing that in 6502 or 68k assembler is easier and more straight forward than my Java/C# example.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. this is why my kids won't be coders by alen · · Score: 0

    the more accessible you make it the more people get into it and the more of a commodity it will become

    even now developing and coding is a commodity in a lot of fields or a secondary skill to being a math whiz and working with algorithms on data sets

    1. Re:this is why my kids won't be coders by Shados · · Score: 3, Insightful

      Historically, so far, the easier you make it, the harder the problems become.

      One of the most visible examples of this is in frontend web development. Now that we have jquery and a billion javascript librairies, we don't do the same simple web pages we used to in a fraction of the time (something that would have taken a month back then takes literally seconds today). Instead, we do crazy shit that were never meant to be done in a browser.

      If we make that crazy shit easier, people will just go and do crazier shit.

    2. Re:this is why my kids won't be coders by allcoolnameswheretak · · Score: 5, Insightful

      Yeah, but this perception of programming is the real problem.

      Programming is not a "pain" if you do it right. Most of the times programming is a "pain" because you are working with code or frameworks written by mediocre programmers who probably shouldn't be programmers. The more accessible you try to make programming, the more mediocre programmers will be encouraged to write code and software that will be a pain to work with.

    3. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 2, Insightful

      the more accessible you make it the more people get into it and the more of a commodity it will become

      even now developing and coding is a commodity in a lot of fields or a secondary skill to being a math whiz and working with algorithms on data sets

      So true. I studied computer science at university, never graduated because I began consulting. Years later I am finishing a mathematics degree and regret ever pursuing computer science much less the IT career into which it led me. I came across the textbook for an introductory computer science course at a leading university in Canada; it was so dumbed down I almost cried. The notion everyone should learn to programme computers is ridiculous in the same sense everyone should should learn to wire their own home or repair their own automobile.

    4. Re:this is why my kids won't be coders by umghhh · · Score: 1

      correct. Coding has been difficult task for geniuses at the very beginning because of two reasons: price of equipment and difficulty of some of tasks at hand back at the time. These days almost enybody can do some coding - my kids learn scripting for office applications at school in 3rd grade - that is programming too. In my professional life I often deal with what you can call infrastructure projects where team size goes over 5persons and it cannot be squized in 3 months, usually having to work on existing code base and maintaining different versions of product in different phases of a life cycle.In such setups coding is a skill which requires quite some knowledge, it is just very important but minor thing - most of the time you deal with things that are not application coding but discussing architecture, ways of testing, release strategy, test automation strategy and some such. There are projects where teams refuse to deal with this issues in a structured way because they 'like coding' and ones where they accept that it is difficult to get done all these other things perfectly but it is nevertheless worthwhile as it saves some major stress later etc. In these setups coding is just part of project life but not the most important one. Testing or maintenance or any such thing is not part of any of the courses. It is still worthwhile as our office life is full of coding of some sort. It is a skill like (yes a car analogy!) car driving - most of us iin inustrilized world have a driving license and can drive but track bd bus drivers are still professionals with special license. The question is - do you want to be a track driver?

    5. Re:this is why my kids won't be coders by 50000BTU_barbecue · · Score: 1

      Smart parenting. If I have kids, I'll pound it into their heads that technical stuff is for hobbies only. Unfortunately I fear we are heading back to the historical mean for the human race, laborers work garbage jobs with no future, you have the "gentry" and you have the rich families that control everything by blood line.

      The gentry would be notaries, lawyers, accountants, managers, etc all jobs which could have been equally well replaced by outsourcing or automation but will never, ever be.

      I'd also encourage them to become rentiers, buy a rental property ASAP.

      Now that I'm 40 and am still struggling to find work in a dwindling technical area in Montreal, I see other people my age making millions for doing nothing of any real value I can see.

      One guy opened an expensive all-hype hair salon. He has 5 expensive cars. All he does is maintain an image.

      Real estate agents and notaries provide little to no actual service but have a legal framework to ensure their jobs. Optometrists are another case of something that could easily be replaced by automation but will never be.

      Simply put, if you interact with a machine of any kind, you'll either be stuck in stagnating wages or in the perpetual education (at your expense!) treadmill.

      I don't see my local landlords or business owners wearing diapers because they fear for their future.

      --
      Mostly random stuff.
    6. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 0

      so your advice for your kids about what profession to pursue is to "be a rich owner" ?????

      srsly what the fuck.

    7. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 0

      software development as always been deflationary, the real benefits are startups when they get cheaper wages...

    8. Re:this is why my kids won't be coders by 50000BTU_barbecue · · Score: 1

      Pretty much, yes. Would you rather I tell my kids "be a poor peon to keep other people rich"?

      You can do that if you want, but my eyes are opened now. I used to be idealistic too.

      If you buy a rental property, it will generate passive revenues in ten years.

      What will the code you wrote today do for you in ten years? Yeah, unless you own it, nothing.

      You can keep investing your time and energy to make other people rich, that's fine, but why burden your children with your neuroses?

      --
      Mostly random stuff.
    9. Re:this is why my kids won't be coders by HellYeahAutomaton · · Score: 0

      Programming is pain because most kids today are unmotivated, dumb, and too busy with their social network status and feeling good about themselves than to learn and do stuff. Crappy IDEs and lousy frameworks are a symptom, not a cause.

    10. Re: this is why my kids won't be coders by Anonymous Coward · · Score: 0

      All your problems stem from the fact that you've taken the science away of programming

    11. Re:this is why my kids won't be coders by ATMAvatar · · Score: 2, Interesting

      The notion everyone should learn to programme computers is ridiculous in the same sense everyone should should learn to wire their own home or repair their own automobile.

      It's interesting you brought that up, because I think a similar analogy is necessary.

      While most people do not (and should not) ever try to do advanced mechanic tasks like change out a transmission on their car, it is useful for people to understand basics like rotating tires and changing oil. Similarly with programming, I would not expect most people to pick up programming to the point where they can code up an OS, compiler, or even a typical SOA system. However, giving someone the tools to fiddle around with basic programming like static web pages with a little javascript or simple command-line applications to handle input from a user or a data file and spit out usable information can enhance their hobbies or even non-IT work.

      Many people who became programmers after starting in some other field (either in school or the workplace) can recall situations where they used programming to aid in some aspect of their pre-IT life. There's no reason to shut the door for anyone else to do so.

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    12. Re: this is why my kids won't be coders by 50000BTU_barbecue · · Score: 1

      I wish your comment made sense. What are you trying to say?

      --
      Mostly random stuff.
    13. Re:this is why my kids won't be coders by Jmc23 · · Score: 1
      Well, you could tell them to do what makes them happy.

      But maybe your way is right, after all, we could always use more miserable cynical fucks chasing after money.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    14. Re: this is why my kids won't be coders by rwa2 · · Score: 1

      I guess he meant to say you should have hired a lawyer to get awarded some patents for some of the more novel coding you've done over the years? But that only serves to strengthen your point.

      Lawyers and financiers have imaginary assets, intellectual property that only has any value because we all believe they do. When others start to call BS and it hits the fan (as it has on occasion over the past couple years / decades / centuries / millennia), at least you have the means to production.

      Realtors, likewise, make their money because they've convinced us we need to finance single-family detached "American dream" homes or expensive downtown condos clustered in the "good" neighborhoods with powerful HOAs, with just enough scarcity to keep the prices inflated sky-high. If we could learn to get by in reasonably-priced and reasonably-sized homes and build up the neighborhoods ourselves, and flood the market with medium density communities and learn to be good neighbors, we could still live pretty decent lifestyles without having to slave away to barely make payments to our financiers.

      Anyway, we'll never strike it rich because money isn't important to us. Coding is. And we'll do it for the highest bidder, but the money isn't really important to us. Maybe someday we'll construct a site that allows us to code what we want and get paid for it. But coding is a tool, not a trade, so maybe, maybe we'll figure out how to hire some tools to do the drudgework for us. Because money isn't really important to us, but it's a little important, really. And then we'll figure out how to pay those tools a bit less to wrestle with the boring parts of coding. And then we'll be one of Them.

    15. Re:this is why my kids won't be coders by ADRA · · Score: 1

      The field of programming is only getting larger, so making programming easier for the people you're working with oen way or another will not help by shoving them into the gutter. The better route is to support and foster better static an anlysis so at least when they shoot themselves in the foot, they (or you) can see why it happened.

      --
      Bye!
    16. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 0

      > The notion everyone should learn to programme computers is ridiculous

      Unlike cars. Computers are everywhere. And unlike cars, computers can do multiple different tasks. You don't need to even know how to do it, as long as you have some idea of what can be done and how expensive it might be to do it. If you know that and you find yourself repeating the same task every day, you can ask question "could this be automated". And that, can save you from a life time of work.

      Another important thing to learn is usability and user experience. You don't need to know how to make a good UI. But it helps you a lot of you can detect a bad UI when you encounter one. Because then you can demand better.

      Reason why everyone should be a programmer is because that is the last job that humans will have (except for jobs where humans require human interaction, even if we could mimic human behavior perfectly). We already have computers that make better diagnoses than doctors. We have examples where a computer alone has been able to teach kids stuff thus replacing a teacher. We have shops with no employees in them. The world is changing at exponential speed.

    17. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 0

      The classic problem is having an API that ends up being more complicated that the underlying interface it is built on, or it is so minimal that it obscures the most useful advanced features required for debugging or extension).

    18. Re:this is why my kids won't be coders by mattack2 · · Score: 1

      The notion everyone should learn to programme computers is ridiculous in the same sense everyone should should learn to wire their own home or repair their own automobile.

      But shouldn't everybody be able to do at least minor repairs in both of those areas?

      I say that as a hypocrite, as I have AAA, and have paid for oil changes, but I *could* do the things.

    19. Re:this is why my kids won't be coders by Hognoxious · · Score: 2

      The world is changing at exponential speed.

      At least they haven't automated being simultaneously pretentious and mathematically illiterate.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    20. Re:this is why my kids won't be coders by linuxrocks123 · · Score: 1

      Well, your kids still need some way to make their nest egg so they can buy their rental properties. What are they going to do to get that starting money? To me, coding seems as good a choice for that as anything.

      And, it's all fine and good to tell your children to invest, but I'd recommend diversified investment, not JUST rental property. Also, I'd recommend Real Estate Investment Trust investments over owning a single rental property outright. There's less risk with owning a share in a trust holding many properties, because, if you buy 100% ownership in a single property, that one property you bought may end up declining in property value if you're unlucky, even if the real estate market as a whole goes up.

      As far as your policy considerations concerning the owning class, they are certainly real. In my view, the best solution to this is graduated estate taxes topping out at something like 90%. There's no social benefit to making it possible for children of rich people to do nothing other than fuck around their whole lives. Democrats like the estate tax. Republicans want to repeal it. Compromise right now is 40% maximum tax bracket with a $5,000,000+ exemption. I'd like the exemption lower and the tax higher.

      Also, fuck beta.

      ---linuxrocks123

      --
      vi ~/.emacs # I'm probably going to Hell for this.
    21. Re:this is why my kids won't be coders by phantomfive · · Score: 1

      Programming is not a "pain" if you do it right. Most of the times programming is a "pain" because you are working with code or frameworks written by mediocre programmers who probably shouldn't be programmers.

      Then that's what, 90% of programmers? Because 90% of the frameworks out there are rather painful.

      --
      "First they came for the slanderers and i said nothing."
    22. Re:this is why my kids won't be coders by Anonymous Coward · · Score: 0

      If you buy a rental property, it will generate passive revenues in ten years.

      But if you want to actually make money you should have experience in a lot of "handyman" type activities. You should be able to perform small construction and remodeling projects yourself, wiring and such as well. Because you will have to do it, and it's far cheaper to change locks or replace carpet or install fixtures yourself than it is to hire a contractor to do it for you. And if/when you get large enough that your time is more valuable elsewhere, it will enable you in other ways. You'll be better at judging how much work a prospective property will require, and have a better understanding of ongoing costs. You'll be less likely to be taken advantage of by outside contractors you hire to fix things for you. You'll be a better judge of what types of features are best-suited for the types of tenants you rent to.

      Yes, property CAN be a good investment... it can also be a money pit that puts you in the poorhouse. Saying "own property" is easy, getting enough money to actually DO it and the know-how to make it profit is the hard part.

    23. Re:this is why my kids won't be coders by baka_toroi · · Score: 1

      Jesus fucking Christ, not this shit. What made your generation so special and great? Here's a hint: nothing. You were as mediocre (or as great!) as the current generation. I'm honestly getting sick of all these old farts thinking they were the shit when there's nothing particularly outstanding about them.

      Yes, discipline is getting a bit behind. So what? We should focus on improving that, not just say "kids nowadays are dumb." Cutting down on social media, smartphones and porn will help. Don't you think we should focus on showing what impact abusing these things will have? For fucks sake, when I taught computers to old people I realized the have one of the shortest attention spans I've ever seen.

  4. Oh really now by arth1 · · Score: 1

    TFS says:

    Part of their process has been figuring out how to improve the practice of programming, from top to bottom.

    The problem here is that depending on top to bottom only works well on very small scale and very large scale. In reality, you need both top to bottom, bottom to top, side to side, diagonal, and too often even a bit of pogostick programming.

  5. The pain is good by CmdrEdem · · Score: 1, Insightful

    When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard. The higher the stakes the more the accomplishment of that task will make me proud/happy.

    Sure... there are some places where things should be simple. When I install an IDE I expect it to compile a hello world just after typing the proper code.

    --
    This combination doesn`t exist: ETIs that know about humanity and want to see us dead. Otherwise we wouldn't exist.
    1. Re:The pain is good by Antique+Geekmeister · · Score: 2

      > The higher the stakes the more the accomplishment of that task will make me proud/happy.

      While true, this has little to do with the time wasted learning the basic layout of the build tools and auto-configuration tools. The time wasted constantly retweaking and hand-compiling individual components as source code is updated is just that for most programmers: time wasted.

    2. Re:The pain is good by MtHuurne · · Score: 2

      I would like to spend more of my time creating new things rather than fighting to make existing things work together.

    3. Re:The pain is good by Anonymous Coward · · Score: 0

      When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard. The higher the stakes the more the accomplishment of that task will make me proud/happy.

      You sound like you need a safe word when engaged in sex

      Sure... there are some places where things should be simple. When I install an IDE I expect it to compile a hello world just after typing the proper code.

      Compiling code != Running the code.

        your support team must just love getting code from you

    4. Re:The pain is good by pla · · Score: 5, Insightful

      When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard. The higher the stakes the more the accomplishment of that task will make me proud/happy.

      Sorry, but no. If I have a known-working source tree that I want to work with just to tweak one tiny nuisance, I want to download it, open the project, make the change, then build/test/deploy.

      In gaming, you have the concept of artificial vs natural hardness. When the game makes you do things just right with cheap tricks like an almost unavoidable trap right before boss / end of the level, when it requires pixel-perfect jumps, when it has insanely complex or tedious puzzles to solve, when it has time limits that require you to essentially memorize which buttons to mash and when, when it doesn't allow saves except at completely useless spots, the devs have made it artificially hard because they failed to make it challenging through more natural means.

      In coding, we have the same problem, except we don't (usually) do it to ourselves intentionally - And you describe the most egregious example of it, configuring dependencies. I love a good challenge in writing actual code. Optimizing a tight loop cycle by cycle, importing useful numbers from a BOL file that everyone else has given up on, implementing a new (to me) algorithm in language X (I had a great time learning SQL for that reason, because most of my stock tricks from the C world don't translate well). Those all leave me feeling deeply satisfied at the end of the day. When, however, I can't even get the damned thing to build because I have to tweak 17 obscure dependencies:

      "Oh yeah, it doesn't work with the newest 2.17.99 release of WidgetBlaster, you need to hunt down 2.17.94"
      "Oh, you used the default build parameters for WidgetBlaster? Heh, you have to pass it the undocumented NoFleem flag at compile time"
      "Yeah, NoFleem doesn't actually have any effect unless you install the not-obviously-required WidgetFleem library first"
      "Well, you can't actually do it in one pass, since WidgetFleem has a circular dependency on WidgetBlaster - So build WidgetBlaster without NoFleem, then build WidgetFleem, then rebuild WidgetBlaster with the NoFleem option".
      "Oh yeah, it only works in GCC 4.4.x, they changed the optimizer after that one and it breaks WidgetFleem."
      "Did I mention you need to cross-compile it from an OS X machine because a critical buildtool doesn't exist on Windows?"

      Shit like that drives me up the wall, I have zero patience for - or enjoyment of - trying to work around someone else's quirky build environment. If your code depends on obscure external packages, include them in your source tree, and include building them in your default project/makefile, period. I don't care if it makes your source tree 2.5GB, because I'll need to download them all anyway, and at least you know the right versions to include.

    5. Re:The pain is good by CmdrEdem · · Score: 1

      You sound like you need a safe word when engaged in sex

      No. But that was the intended joke.

      your support team must just love getting code from you

      Just because I enjoy troubleshooting some stuff myself does not mean that people has the time or the inclination to do the same. Since I like to troubleshoot I try to do it so other people does not have to.

      --
      This combination doesn`t exist: ETIs that know about humanity and want to see us dead. Otherwise we wouldn't exist.
    6. Re:The pain is good by CmdrEdem · · Score: 1

      I understand and agree with all objective stuff you say. I never meant that everyone should enjoy the kind of troubleshooting I enjoy. There are some cases where I really get pissed off. But when I set myself to, for instance, compile source code from a third party developer I'm accepting and expecting trouble, with little to no support from the original party, and I get proud of myself when I figure it out. That is true for me at least.

      --
      This combination doesn`t exist: ETIs that know about humanity and want to see us dead. Otherwise we wouldn't exist.
    7. Re:The pain is good by pla · · Score: 1

      Fair enough - I suppose if you enjoy that, hey, whatever you like doing, you like doing!

      Me, I love getting down as close to the CPU as I can and making it beg for mercy. But I suppose I can appreciate, if not personally enjoy, what you describe.

      We might work well together. :)

    8. Re:The pain is good by Anonymous Coward · · Score: 0

      Evidently you enjoy troubleshooting so much you never bothered learning English.

    9. Re:The pain is good by angel'o'sphere · · Score: 1

      Actually i once had a similar circular dependency where you had to recompile one part of the software with a different -D switch on the compilers command line.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    10. Re:The pain is good by Anonymous Coward · · Score: 0

      When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work.

      It is called masochism.

    11. Re:The pain is good by Anonymous Coward · · Score: 1

      Shit like that drives me up the wall, I have zero patience for - or enjoyment of - trying to work around someone else's quirky build environment. If your code depends on obscure external packages, include them in your source tree, and include building them in your default project/makefile, period. I don't care if it makes your source tree 2.5GB, because I'll need to download them all anyway, and at least you know the right versions to include.

      Or use a build system that lets you specify the exact versions of the dependencies, and let the build system handle the dependencies for you. NPM and Maven are pretty good for this in my experience.

      One of my biggest pet peeves is when a project copies its dependencies' source into its own tree, but then has undocumented changes in its dependencies' code. I'd much rather open a project's dependency list file and see some jQuery fork like "ChocolateJquery@github.com/chocolate/jquery" and know it's edited, than see what looks like a plain jQuery build and try to update it to a new (vanilla upstream) version and have everything mysteriously break.

    12. Re:The pain is good by Anonymous Coward · · Score: 0

      Awe. F*$king. Men.

    13. Re:The pain is good by CodeBuster · · Score: 1

      When the game makes you do things just right with cheap tricks like an almost unavoidable trap right before boss / end of the level, when it requires pixel-perfect jumps, when it has insanely complex or tedious puzzles to solve, when it has time limits that require you to essentially memorize which buttons to mash and when, when it doesn't allow saves except at completely useless spots

      Sounds like Ninja Gaiden . That had to be the most artificially hard game available for the NES. It was just brutal, especially in the later levels.

    14. Re:The pain is good by Anonymous Coward · · Score: 0

      "Oh yeah, it doesn't work with the newest 2.17.99 release of WidgetBlaster, you need to hunt down 2.17.94"

      Once this is known, it can be automated, and 2.17.95+ can be blacklisted. Not hard, blame the build system/developers.

      "Oh, you used the default build parameters for WidgetBlaster? Heh, you have to pass it the undocumented NoFleem flag at compile time"
      "Yeah, NoFleem doesn't actually have any effect unless you install the not-obviously-required WidgetFleem library first"
      "Well, you can't actually do it in one pass, since WidgetFleem has a circular dependency on WidgetBlaster - So build WidgetBlaster without NoFleem, then build WidgetFleem, then rebuild WidgetBlaster with the NoFleem option".

      Shitty developers.

      "Oh yeah, it only works in GCC 4.4.x, they changed the optimizer after that one and it breaks WidgetFleem."

      Can be automated.

      "Did I mention you need to cross-compile it from an OS X machine because a critical buildtool doesn't exist on Windows?"

      Shitty developers.

      Hate the players, don't hate the game.

      If your code depends on obscure external packages, include them in your source tree

      Agreed. There should always be a working default, even if it is not optimial.

      If your import of external code doesn't modify it, then let the user who knows what they are doing provide the proper options to compile against another version (e.g. one that might already be installed).

    15. Re:The pain is good by CmdrEdem · · Score: 1

      Please don't arrest me, Punctuation Police! I promise that I'll try harder!

      --
      This combination doesn`t exist: ETIs that know about humanity and want to see us dead. Otherwise we wouldn't exist.
    16. Re:The pain is good by hoggoth · · Score: 1

      > While true

      I never made it past this phrase.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
    17. Re:The pain is good by Anonymous Coward · · Score: 0

      That made me laugh and cry at the same time.

  6. Lazy people by nurb432 · · Score: 1

    Just suck it up. If it was easy then everyone would do it. ( actually it is easy, people are just whiny lazy asses these days and want everything to be done for them, and presented on a silver platter, paid for by someone else via some 'wealth distribution plan' )

    --
    ---- Booth was a patriot ----
    1. Re:Lazy people by Anonymous Coward · · Score: 0

      Just suck it up. If it was easy then everyone would do it. ( actually it is easy, people are just whiny lazy asses these days and want everything to be done for them, and presented on a silver platter, paid for by someone else via some 'wealth distribution plan' )

      Yeah, imagine that. They want to use computers to AUTOMATE stuff.. Go figure..

      Meanwhile.. "Back in MY day, we used to chisel 1's and 0's onto stone tablets, in FRACTIDECIMAL, and we LIKED IT!"

    2. Re:Lazy people by Anonymous Coward · · Score: 0

      Yeah go figure.

      A lot of managers/orgs/people can't figure out how to improve their paper processes, to eliminate duplication, but retain sufficient checks and balances, to order dependencies correctly but exploit locality, to do everything in a standard way but manage as an exception according to criteria and judgment.

      But the same people should be able to implement easily a far, far more stringent formal model than that, on a machine which can't give meaningful semantic feed and which has no common sense.

    3. Re:Lazy people by Oligonicella · · Score: 1

      Programming may be easy per se. Programming well is not.

    4. Re:Lazy people by nurb432 · · Score: 1

      A lot of managers/orgs/people can't figure out how to improve their paper processes

      Or define them in the first place.

      --
      ---- Booth was a patriot ----
    5. Re:Lazy people by gweihir · · Score: 1

      Nonsense. Laziness has nothing to do with it. It requires real and specific talents. If these are not there, forget it. Just the same as you cannot turn everybody (or even a significant minority) into competent, say, violinists or mathematicians, so you cannot turn most people into competent programmers.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:Lazy people by ultranova · · Score: 1

      actually it is easy, people are just whiny lazy asses these days and want everything to be done for them, and presented on a silver platter, paid for by someone else via some 'wealth distribution plan'

      What do the sins of the owning class have to do with programming?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    7. Re:Lazy people by Moof123 · · Score: 1

      Given that the Slashdot's general sentiment is that users should use open source because they can just fix it themselves, a response berating folks who want to be able to make changes easily is pretty lame. Not that I'm accusing the Open Source religion of being fully of cranks and charlatans, but come on!

    8. Re:Lazy people by nurb432 · · Score: 1

      Sure you can. I can do all of those, but then again, i'm not a lazy ass. Nothing special other than that tho.

      --
      ---- Booth was a patriot ----
    9. Re:Lazy people by BasilBrush · · Score: 1

      Odd. Your grammar and abbreviation imply that you are a lazy ass.

    10. Re:Lazy people by nurb432 · · Score: 1

      No, its Slashdot, it doesn't deserve any extra effort, including typo checks.

      --
      ---- Booth was a patriot ----
    11. Re:Lazy people by gweihir · · Score: 1

      Bullshit. You seem however to have a problem with evaluating what you can and cannot do. I expect you are to the far left of the Dunning-Kruger graph.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:Lazy people by drkstr1 · · Score: 1

      Nope. I'm going to have to agree with nurb on this one. I use to always accept the fact that "I just suck at sports," until I got into martial arts. Turns out I just didn't have any _interest_ in sports, and so never bothered becoming any good at them. One can't be the best at everything of course, but you really can choose what you want to be good at, and your determination will have a much greater factor in your success than raw talent (as I read here in a /. article awhile back).

      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
    13. Re:Lazy people by Anonymous Coward · · Score: 0

      And yes, I also failed at the grammer haha. I "use to" lol

  7. Havent you heard of Python by Anonymous Coward · · Score: 0

    Bizarely the OP apparently hasn't heard of python. How can you not run a python programme, the error messages tell you exactly where the problem is and almost how to solve it. If the OP is talking about C and the like you do know that they are the domain of professional programmers or hacker hobyists like myself not secondary skills in another field.

    This is a problem of skill level not an IDE will solve it type of problem. Seriously no wonder the programming world is so screwed up with all these managers saying things like , get windows it will solve your high wages problem as you only need junior low wage workers to do your coding, and those type of shitty things. Programming is for professionals and we should be compensated for our skills not burned because the next fad language will make your workforce less expensive.

    1. Re:Havent you heard of Python by Anonymous Coward · · Score: 0

      Bizarely the OP apparently hasn't heard of python.

      Python was my first thought as well; VB.NET is pretty good for the problem domain he's discussing too.

      It sounds like he's on a Java + Eclipse + Spring + Hibernate + GIT + Tomcat + JQuery + CSS rant, but there's good reason to rant against that mess.

    2. Re:Havent you heard of Python by gweihir · · Score: 1

      In fact, for a time there were C interpreters that also did what Python does. Never caught on, because this is not the problem. In order to create programs of any worth, the programmer needs to understand what they do and needs to be able to hold a reasonably accurate model in their heads. That is why debugging with print statements works so well: A competent programmer only needs a hint of what the problem is, not every detail. People that need crutches like graphical debuggers and detailed error messages explaining every last bit do not have what it takes.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Havent you heard of Python by Anonymous Coward · · Score: 1

      More importantly, prints give you a nice, time-ordered, sortable, compact, searchable, filterable state/event list.
      I don't want slow-as-hell conditional breakpoints. I don't want to manually inspect the program state. Watchpoints admittedly can be very useful in specific circumstances (though a lot of the time it just means you really should make the code less of a mess).
      I don't want to have to wait after each debug step until the program reaches the next. I'd rather let it run over night and look at a log file. Grep, vi etc. are perfectly usable with multi-GB text files (I once had a text editor warn me that the file was "very large". It was about 20 MB. I laughed. If its under 1 GB it's not a large text file).
      Sure, use what ever you want. But if your debugger doesn't have extensive, easy to use data collection and analysis tools (I am not aware of one, but that might just be my ignorance) you'd probably be better of using print(f) most of the time.

    4. Re:Havent you heard of Python by gweihir · · Score: 1

      Indeed. The problem is that most programmers these days do not even know things like grep, etc. Just today I was working with a 500MB debug trace generated by printfs because that was the easiest way to see what is going on. With an OS that comes with good text-tools (or windows with cygwin), it is no problem to handle these at all. And once you add some perl/python/lua/whatever, you go way beyond the power of any debugger.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  8. Not an IDE, just a text editor by Anonymous Coward · · Score: 0

    Light Table isn't really an IDE. It's just a slow and simple text editor for "web development".

    They probably spent more time on the design than on the features.
    An outdated version of Notepad++ without any plugins would still be a better 'IDE'.

  9. Stop trying to "fix" programming by Anonymous Coward · · Score: 0

    The less "brogrammers" we have, the better.

    1. Re:Stop trying to "fix" programming by Bengie · · Score: 1

      I always assumed "brogramming" was similar to "Pair programming", but urbandictionary gives a less professional image.

  10. Difficulty Spectrum by Mr_Blank · · Score: 4, Insightful

    Programming has a spectrum of difficulty. The tools can always be improved to make the easier parts easier and the harder parts more manageable, but in the end the hard parts are hard because of the nature of the work; not due to lack of tools.

    In more mature fields the spectrum of difficulty is well understood and no one expects the hard parts to be easy. If a person can write a "hello world" program then it should not be expected they will have the wherewithal to roll out healthcare.gov. If a person can apply a bandage to a skinned knee then it should not be expected they will have the wherewithal to do brain surgery; regardless of how good the tools are.

    1. Re:Difficulty Spectrum by Anonymous Coward · · Score: 1

      Programming is very easy. You only have to press keys in a keyboard.

    2. Re:Difficulty Spectrum by gnupun · · Score: 2

      That's exactly what I hear non-programmers say about this profession.

    3. Re:Difficulty Spectrum by Anonymous Coward · · Score: 0

      PLUS you have to memorize which keys to press.

    4. Re:Difficulty Spectrum by Anonymous Coward · · Score: 0

      A ZX Spectrum of difficulty...?

    5. Re:Difficulty Spectrum by gweihir · · Score: 1

      Well said. But apparently, most people still do not get that programming is hard and therefore not for everybody. They seem to think it is somehow like doing a simple administrative desk job.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:Difficulty Spectrum by Anonymous Coward · · Score: 0

      And those are the kind of people that I enjoy programming out of a job.

    7. Re:Difficulty Spectrum by fermion · · Score: 1

      A lot of this has to do with following instructions and the availability of expertise. When I was very young i had no problems running basic programs on the teletype. When I learned FORTRAN, yes the error messages were cryptic, but after a semester I could get it running. I could not manually link now to save my life, but back then it was no big deal to hook into the IMSL library. By the time I got to college, i could diagnose almost any common error just by looking at the message. Most of the time, if there were hundred error messages, for instance, it was because of mistype variables in the function call. I find that people mistake the reason we write 'hello world' programs. It is not to test the language, but to test the ability to compile, link, and run code on a platform. I remember well the first time my friends and I got an account on a Cray. It took us a day to figure out what to do. There was no one to call, as very few people have such expertise. Again, it is not just a matter of simple tools, but a critical mass of people who know how to use the tools and can help others. OTOH, one can make the tools as simple as possible, but it won't change the nature of people. That is, most people don't really have a good grasp of cause and effect. It is like people tailgating on the highway. We know that an accident will at some point occur, but people without such a concept of cause and effect do not. This is why I think programming is of such pedagogical value. It teaches students cause and effect. It teaches students that there are rules that if followed will lead to predictable results. Something like python can reduce the pain of compiling and running, but nothing can reduce the pain of trying to solve a problem if one thinks that rules are arbitrary.

      --
      "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
    8. Re:Difficulty Spectrum by Anonymous Coward · · Score: 0

      Just you wait until we program you out of a job too...

    9. Re:Difficulty Spectrum by raynet · · Score: 1

      Thanks to stackoverflow and google, you don't have to do that anymore :)

      --
      - Raynet --> .
  11. The Golden Age of Programming by Latent+Heat · · Score: 5, Interesting
    There is this, what should we call it, a mythology of a Golden Age of Programming?

    I don't use mythology in a perjorative sense that this is all pretend or wishful nonsense. I use it in the best Joseph Campbell-Hero-With-Many-Faces sense, of a dim recollection of The Way Stuff Used to Be. This is a way of communicating an Underlying Truth about the Human Condition.

    Apparently there was this era of things such as this Smalltalk that you allude to. Another version of this I hear from tales is Common Lisp. And Lisp Machines, specialized hardware and expensive workstations on which these "live images" would reside. So maybe these tales of direct, personal communication with the gods taking place with the Bronze Age Greek heros was not made up?

    I guess there was this Barbarian Invasion of Bearded Men from the land called "New Jersey", especially a high place among the rolling plains they called "Murray Hill"? There is this piece of non-canonical scripture that our elders have been trying to supress known as the Unix Hater's Handbook explaining how we came to our present age and how this Golden Age entered into myth. Our elders warn against reading this heretical tract as dangerous to our souls.

    As Jerry Pournelle describes the intervening Dark Age between now and that heroic or Golden Age, it isn't so much that people forgot how to develop and maintain a live image programming system such as Smalltalk or Common Lisp, it was that people forgot that such a thing could exist, and we attribute such things to gods or space aliens.

    But then again, just as there is talk of ancient creatures in deep lakes in Scotland or in the remote sections of Zaire or Southeast Asia, there are accounts that Smalltalk or Common Lisp are still in use . . .

    1. Re:The Golden Age of Programming by Oligonicella · · Score: 2

      The favorite part of my career was working in banking. Sounds backwards, as people often view it as so restrictive and stogy. We had development, QA an production environments that only touched through Control updating processes. While the first two were perforce smaller physical systems, all were software clones as far as operating systems and in-house software layout. I was development. I spent many an hour in high-level meetings arguing against my work mates that development had no business touching the other systems.

        One of the biggest problems in current systems is that the devs think they should have unfettered access. This is only a prescription for disaster.

    2. Re:The Golden Age of Programming by Kremmy · · Score: 1

      One of the biggest problems in current systems is that devs need unfettered access to get their jobs done.
      You can't put a developer on a locked down system and expect them to get anything done. People who work with development of software can't have their operating environment actively working against them. If the world had stuck more to UNIX norms, we'd probably be in a far more palatable situation with systems that are actually designed to allow multiple people to get work done using the same hardware without the access control causing no end of headaches.
      But that's not the case.
      Something as commonplace as web development, for example. If you're creating a single-page, static html document with inline CSS and JavaScript, you're probably good with the most basic editor and browser available on your platform, no matter what platform that is. But the moment you cross the line into something even slightly advanced using external scripts, you find yourself in a position where you require such things as an actual web server providing your web documents or the browser will securely pretend like your files are not a valid web document. You simply must modify your environment to progress.
      This is the simplest example I can think of, if you do anything more complicated with development than the most basic and simple web page, noticeable access limitations means they aren't letting you do your job.

    3. Re:The Golden Age of Programming by Anonymous Coward · · Score: 0

      Sorry, but devs absolutely need to be on a limited system!

      Follow your example above, you're doing PHP/Python/whatever web programming, so you hop on a server and install all that. Another dev joins the team and finds he needs to amend the timeout or a system variable/setting, so he just jumps on and amends it. Dev #3 then finds this has broken something on the stuff he's working on, so he starts fiddling to try and fix it.

      To me, devs should be programming against their own machines where possible (if they can't, then against a shared server - if changes are needed a request is put in that's signed off by a technical manager/lead/senior). When they want to properly deploy to a dev environment for testing/QA whatever, the files should be packaged up and sent to operations, along with the servers requirements. Otherwise you end up with the above situation where dev "works", but UAT doesn't because someone at some point changed some unknown option..

    4. Re:The Golden Age of Programming by Kremmy · · Score: 2

      I agree that the developer should be programming against their own machines where possible. The target environment is always a limited system, and the developer must work within those limits. The developer must have the necessary local access to deal with the problems they personally encounter in their workflow, though that does not mean they must have unlimited access. I'm personally very fond of virtual machines and prefer to keep any limited environment ready to go using them, common CPUs have accelerated those for almost a decade now. If the developer is being limited at their end, it's because people are doing it wrong on the other.

    5. Re:The Golden Age of Programming by phantomfive · · Score: 1

      You jest, but if this guy had actually looked at history, he might have learned something. So far the project is just another in a long line of projects that failed to bring programming to the masses. Applescript, COBOL, BASIC, Visual basic, hypercard.....the list goes on. Maybe they will succeed where the rest failed, who knows?

      For my money, the best way to introduce someone to the concepts of programming is LOGO. Give an 8 year old a keyboard and a turtle and within an hour she's programming.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:The Golden Age of Programming by BasilBrush · · Score: 1

      The summary probably gives the wrong impression. The lighttable project is about improving the practice of programming for all programmers not just beginners. And he's probably better read in the history of such things than you are.

    7. Re:The Golden Age of Programming by phantomfive · · Score: 1

      And he's probably better read in the history of such things than you are.

      That might be true.

      --
      "First they came for the slanderers and i said nothing."
    8. Re:The Golden Age of Programming by phantomfive · · Score: 1

      Are you using light-table as an IDE? How do you feel about it?

      --
      "First they came for the slanderers and i said nothing."
    9. Re:The Golden Age of Programming by Anonymous Coward · · Score: 0

      > One of the biggest problems in current systems is that the devs think they should have unfettered access. This is only a prescription for disaster.

      Amen to that. I'm working on a web-based app now, doing QA testing before it goes to the client for UAT. I've been arguing against deaf ears that development should absolutely NOT be changing the system while we're testing it - I mean not an updated config file or CSS sheet, NOTHING. Save it for the next version.

      It's really pointless testing a system that's changing beneath your feet. Any slight side effect, even from a change in a single line of code, can render yesterday's test results useless because the thing you're planning to deliver is not the thing you tested.

      I flat-out refused to sign off on these tests unless my boss took responsibility for any bugs we didn't catch that made it to the customer. He agreed, so I just shrugged and kept on going. Not my problem.

    10. Re:The Golden Age of Programming by dbIII · · Score: 1

      You can't put a developer on a locked down system and expect them to get anything done

      Nobody is suggesting that. A sensible suggestion is a system that is not locked down for the devs but is not currently being depended on for production. Unless the chages are minor developers shouldn't be doing anything new on a production system without kicking it around on a test system first. Production systems are typically heavity locked down against devs due to an incident where a developer has gone too far (eg. overwriting with no way to get back to the initial state or a reboot of the entire system when their process gets out of their control). If the developer does not grasp the implications of multi-user systems and the consequneces of downtime are large enough then that's where they have to be watched. A few cowboys ruined it for the lot.

    11. Re:The Golden Age of Programming by dkf · · Score: 1

      Sorry, but devs absolutely need to be on a limited system!

      The problem with that approach is that you end up with devs being told to produce iPhone apps using just Microsoft Word "because that's what the company provides for all their employees; no program may be present that has not been vetted by central operations". It's going from one extreme to the other...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    12. Re:The Golden Age of Programming by Simon+Brooke · · Score: 1

      I used these things. They really existed. And they made modern IDEs like Eclipse and IntelliJ and Netbeans and Visual Studio look really crude and primitive. The Lisp machines were horrendously expensive, though. The last one that the nice Government bought me cost £25,000 at a time when a Sun workstation cost £4,000. And so we really have forgotten what was possible.

      However, the machines we have now are enormously more powerful than the machines we had then. My Xerox 1186 in 1987 had (I think) 8Mb of real RAM and about 80Mb of disk, and ran at two MIPS. My desktop machine at home has 16Gb of RAM and runs at 18,000 MIPS. We really could begin to run the big software development environments of the 'golden age' again, on machines everyone can afford. Clojure and LightTable are a real step in the right generation; but they're still a long way behind where we were thirty years ago.

      --
      I'm old enough to remember when discussions on Slashdot were well informed.
    13. Re:The Golden Age of Programming by Slashdot+Parent · · Score: 1

      We had development, QA an production environments that only touched through Control updating processes.

      This is actually pretty common at mature companies, financial or otherwise. I strongly urge my clients to adopt a CI tool and instrumented deployment to QA and production environments.

      The biggest benefit that my clients have seen from this is the elimination of "magic builds". You know, the kinds that can only be accomplished on one key developer's laptop which might get stolen at the airport and can only run on a server with specific, undocumented settings. I've had to deal with many of these and it's so wasteful. It would take the original developer an extra, what, hour of his or her time to make the project build in plain Jane Jenkins or Bamboo or something, but for the consultant who has to clean up the mess, it can take me a few days to make the bloody thing build after the original dev resigned from the company and you gave his laptop to Eric, the intern.

      Don't get me wrong, I'm happy to bill the hours, but it's my job to prevent my clients from re-fucking up the same thing over and over and over again. For my current client, I set them up so that their projects build and deploy to their dev environment with every push to git. This is the carrot that gets them to make their builds portable: they can be lazy and never have to do any work to deploy to dev. They push, and the app is deployed. For builds to QA, they simply tell the release manager (could be a senior dev or a project manager if the client is too small to need a dedicated release manager), "Hey, can you please push release 3.2.414 to QA?" The release manager makes a few clicks in Bamboo, and the project is deployed to QA, and the fact that the project was deployed, and what was deployed, and by whom, is all logged in Bamboo, so everyone knows what is deployed where and when it was deployed and by whom. Same with production. Lastly, if something is broken in QA or production, rolling back the code to the previous version (or any other version) is like 2 more clicks.

      This makes code deployments much less risky. I've many times had the following conversation:
      Me: We're deploying to prod on tuesday
      Stakeholder: No can do. We have a demo on Wednesday, and if you fuck something up, it's hosed.
      Me: Rolling back to the current version takes literally 2 clicks. Call the departmental pager any time 24/7 if you need the change rolled back.
      Stakeholder: Oh. Well, that's fine then. Go for it.

      Time to end this ramble. Basically, I agree with you 100%. Automated builds/releases/deployments should be required in any software dev shop. It's as important as electricity.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
    14. Re:The Golden Age of Programming by Slashdot+Parent · · Score: 1

      One of the biggest problems in current systems is that devs need unfettered access to get their jobs done.

      Oh, by all means, devs should have admin privileges on their own workstations. They just shouldn't have any access to QA and prod environments. Deployments to QA/prod should only be done via a deployment tool. If you can't make your project buildable/deployable by Jenkins/Bamboo/whatever, then your project is not finished.

      --
      They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  12. We need a new standard by Anonymous Coward · · Score: 0

    This is why we need a new standard for languages to solve the problem of setting up, runing, debugging, and hot swapping the code.

    Wait a moment...

    Honestly, having a language built-in on stock pc is perhaps easier. Like including Basic in BIOS. Excel (and VBA) is now taking its place as commoner's programming tools.

    And if Excel cell data validation is such an advanced, even hidden feature to most users, perhaps the problem is not about difficulty of getting commoner to handle professional tools.

  13. Re:Lazy people - BULL! by Anonymous Coward · · Score: 1

    Just suck it up. If it was easy then everyone would do it. ( actually it is easy, people are just whiny lazy asses these days and want everything to be done for them, and presented on a silver platter, paid for by someone else via some 'wealth distribution plan' )

    This is unmitigated bullshit! Edit/compile/link is NOT the object of coding. As a mathematician hacking semi-numerical algorithms, the programming languages (I use mostly C) are the easy/sensible part of the job. A Backus Naur diagram defines the language nicely, making things sensible. (making A[i] clearly the same as i[A].) But my IDEs to link/compile are a morass of no-reason-just-policy quagmires worthy of organized religions.

    Coding is not a tedious religious rite to be memorized w/o question. Coding is a tool to get a job done, not an idol of obscurity to be worshiped.

  14. You Have To Enforce It by Jaime2 · · Score: 1

    One of my rules at work is: "If I check it out in Visual Studio and press 'Start', it better compile and run". It's not acceptable to make the next guy figure out how to run a program. Everyone I work with thinks I'm overreacting at first, but when they go to fix an issue in four-year-old code they've never seen before, they suddenly get it. Bonus points for starting the test suite by default instead of the actual program.

    1. Re:You Have To Enforce It by iONiUM · · Score: 1

      I'm surprised this isn't the norm already? What kind of shitty environments/code are people working with?

      At all the companies I've worked at (all Visual Studio), if you got source from TFS, it was guaranteed just pressing 'start' would compile and run it, regardless of whether it was WinForms, ASP.NET, Silverlight, etc. That's just expected, and if I ever started a job and the code didn't just run, I'd assume people there didn't know what they were doing.

    2. Re:You Have To Enforce It by Anonymous Coward · · Score: 0

      Oh how great that would be. Where I work, I have spent the last couple of years (really) trying to get a working development environment in our local office. Remote builds works, but after months of work the team that actually manages the builds put their hand up and gave up, saying they have no idea why it was impossible to build on our machines, when it works well in their office. Mind you, we are actually on the same network. You might think I'm kidding, but the build process is so convoluted that not a single person in the company actually knows how the whole thing actually works.

    3. Re:You Have To Enforce It by Anonymous Coward · · Score: 0

      Most of the Industry uses Makefiles...

    4. Re:You Have To Enforce It by Jaime2 · · Score: 1

      Which leads to the summary's statement of "They have to install dependencies, compile code, start servers and open ports. At each step the errors are difficult to diagnose and time-consuming to fix." Visual Studio runs the servers and opens ports for you based on what type of program the project says it is.

  15. Actually feedback at all levels is a big problem by NotSoHeavyD3 · · Score: 1

    I realize this is a tangent to what the post is talking about. However there is a related feedback that's a big problem for me. Getting feedback from "user". So at least in my company it often turns out one manager is a big user of the software. Guess which office door is closed pretty much all day and no answering e-mails of any kind? It's very difficult to give mangers like that what they want when the only time they'll tell you is they pop-up behind you while you're doing something else, give you a 3-5 minute explanation that they've not really fleshed out, then run silent for 3 weeks. (Yes, I've literally developed something that was requested and it got used for a couple of minutes and got "This isn't what I wanted." talk. It's very aggravating.)

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  16. They are right about one thing ... by Anonymous Coward · · Score: 0

    One of the most painful lessons beginners have to learn is just how often everyone is wrong about everything.

    Well put! Programming would be ten times more pleasant (it is already easy, but so tedious ...) if the documentation were more palatable and available. Cudos to the authors for trying to make the process more streamlined.

    On the other hand they are mostly talking about web development. I wish someone would put some though into similar tools for embedded stuff

  17. You can't fix the pain of learning. by Anonymous Coward · · Score: 0

    Beeing a great programmer is to master a form of ART.
    Becoming great programmer means you either was gifted with it, or have mastered all the techniques by doing hard work.
    You are never going to get good at anything without going through the pain of learning.

    1. Re:You can't fix the pain of learning. by gweihir · · Score: 1

      Indeed. And people that are unable to debug simpler things wit print statement do not understand their code at all. This is not a tool problem.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  18. Fix programming by stopping gratuitous change by Anonymous Coward · · Score: 0

    To "fix" programming, stop this constant churn of change for the sake of change. I just saw Microsoft is scrapping ASP.NET and starting over with a new framework. They're still calling it ASP.NET, but the internals are incompatible with what they have now. Every year or two, there's some new MVC library, ORM framework, version control system, language. Stop changing things randomly and gratuitously and get some stable industry standards. Change for the sake of change doesn't improve the situation, it makes it worse.

    1. Re:Fix programming by stopping gratuitous change by Anonymous Coward · · Score: 0

      I get called a "Luddite" when I say this. Shows you what the average programmer knows...

    2. Re:Fix programming by stopping gratuitous change by Anonymous Coward · · Score: 0

      Luddite...

  19. Eclipse? by drolli · · Score: 3, Informative

    I mean, thats the elephant in the room, isnt it. I found that everything thich can be automated easily is automated in eclipse.

    1. Re:Eclipse? by Anonymous Coward · · Score: 0

      "thich"? This which?

    2. Re:Eclipse? by Anubis+IV · · Score: 1

      "That" or "which", I believe, though I'm certainly not sure. Perhaps they didn't know which one to use?

    3. Re:Eclipse? by Anonymous Coward · · Score: 2, Insightful

      You are certainly right about eclipse being an elephant.

    4. Re:Eclipse? by Anonymous Coward · · Score: 0

      Yeah, if only Eclipse actually were a decent IDE.

    5. Re:Eclipse? by Anonymous Coward · · Score: 0

      you automate OOM errors?

    6. Re:Eclipse? by Anonymous Coward · · Score: 0

      To be fair, I'm yet to use a decent open source IDE. I tried Eclipse, both for C++ and for Fortran (with Photran) and it's shit with both - slow, clunky, more or less inscrutable. I swapped to Code::Blocks, again for C++ and for Fortran (with the Fortran plugin) and enjoyed it for a while, until I attempted to debug on Linux with gdb and found that a watch window took about 90 seconds to open up. Fuck that shit. It doesn't help I do most of my work on a Mac, and Code::Blocks are open about their lack of Mac developers, meaning the Mac releases are buggy and often lack features. I'm now on NetBeans, and I've dropped any pretense that I might find an OSS Fortran IDE so I'm just using it for C++, and it's... OK. Debug integration with gdb still seems to be woeful. Maybe it's something I've done wrong in setting up the boost testing framework I'm using, but I can hit a breakpoint, in the actual test and then find that the debugger refuses to step into a method when asked to and instead just executes the fucking thing, which renders the debugger totally useless.

      If I were working only on a Mac I'd be swapping to XCode by now, while if I were in only Windows I'd have given up and gone to Visual Studio whose quirks I'm very used to being infuriated by at work. In Linux I still have no idea where I can find an IDE that isn't shit. I might try C::B with a new release, otherwise I guess I'll have to stick with NetBeans.

    7. Re:Eclipse? by Anonymous Coward · · Score: 0

      Yeah, but they're not automated easily in Eclipse though.

    8. Re:Eclipse? by Anonymous Coward · · Score: 0

      I would dare say the most automated environment for writing and refactoring code ever made would be Visual Studio with Resharper. It behaves like magic.

      A pity they insist in ask for more money than my employer is ready to pay. Of course, being in a project as big as I am, with code standards so different to the ones enforced by Resharper, I would never dare use nowadays. I still dream with that little project I made with the one month trial...

  20. Teach my tone-deaf sister to sing by OpinionatedDude · · Score: 2

    Whenever I see one of these headlines about how there is a supposed shortage of programmers and we should make it easier so "stupid people" will come to save the day, it just makes me think "what the what?" I have an awesome sister. She can't sing. She makes people cover their ears and the dog runs out of the room. Are we going to solve today's broken music scene by making singing easier and coaxing my sister to become a singer? I don't think so. Singing is easy. Doing it well enough that people want to listen is not hard...for people who are good at it. People who suck at singing should just do the world a favor and not try it in public. The fact that the world has a limited number of programmers, and an even smaller number of good programmers and an even smaller number of really-really good programmers is simply that people are all different. Some of them can sing. Some of them can do technology. Some of them are jocks. Some of them just take up space. (Hey, it may be harsh, but it is accurate.) On the other end of the millions of different bell curves that could be used to describe humanity, there are some people who excel at bad things, like the Hitlers and the Lawyers of the world. Sadly though, this sort of "how can we make programming accessible to the masses" nonsense will never go away. That is simply because there are people on this planet who are six sigma at asking stupid questions.

    1. Re:Teach my tone-deaf sister to sing by Anonymous Coward · · Score: 0

      Programming has always gotten easier and cheaper, if you want a 6 figure salary you are supoose to solve the harder problems for us and the industry to move forward...

    2. Re:Teach my tone-deaf sister to sing by jpellino · · Score: 1

      We'll skip the false dichotomy and get to the good part:

      "Singing is easy. Doing it well enough that people want to listen is not hard...for people who are good at it. "

      OK, except for the concept of talent development. Yes, there are people who can sing the minute they open their mouths. Those who go straight from the birthday part to a career are the incredibly small minority. Most people who are good at something as adults were not exactly that good to begin with. As good as young Mozart, by the time he wrote something that we think of as enduring, put in the 10,000 hours that's typical.

      People involved in reductionist endeavors (science, math, programming) are the worst to judge talent development, as their talents reside mostly in cogitating about stuff. When you do so, the odd thing about that is that you're relying on your internal assessment of talent - which to sum up is "I've always been as smart as I am now" - the mind is lousy at seeing its own progress. Any athlete can point to larger muscles, faster times, higher scores, musicians can hear their progress in performance recordings, artists and writers can see proof of their evolving skills. Much less so for "brainy" people. Example? Look at your use of language. Clearly it evolved. Now think back to when you were three. Tell me something that you can remember from then. Will you tell me the story in your three-year-old voice with a three-year-ol'd vocabulary? Nope. Bet you'll use words you didn't learn until much later. It's like looking through the other end of the telescope.

      Your understanding of your understanding expands with your expanding understanding, so you don't see the expansion.

      Hence the programming world does (as you kind-of suggest) need to look to other disciplines to see how to ensure talent development.

      If you only want the prodigies, it's going to be a long, lonely run.

      --
      "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
    3. Re:Teach my tone-deaf sister to sing by Cruciform · · Score: 1

      A strange example, considering we now have people who aren't exceptional singers but have charisma and looks and are auto-tuned to make them marketable.

    4. Re:Teach my tone-deaf sister to sing by OpinionatedDude · · Score: 1

      Precisely, I want only people who are naturally good at something to be doing that thing. I don't want someone who "worked their way up to near adequacy after a lifetime of being a less than adequate engineer" to design the brakes for my car. I also don't want to listen to an artless rendition of a classic piece of music hacked to pieces by a tone-deaf wanna-be musician (auto-tune notwithstanding). People should only "publicly" do things they excel at. Trust me, no amount of practice will make me a decent singer (or painter or jock). The best way to wind up with software that is even worse than everything ever produced by microsoft is to let people who suck at programming "develop their alleged talent" for years and foist their poor efforts upon an unsuspecting public. They might eventually get to a point where they can fool an interviewer and get a job. That does not make them a good programmer. By now, my otherwise awesome sister has spent at least that mythical 10,000 hours offending family members and others with her singing. She hasn't improved at all.

    5. Re:Teach my tone-deaf sister to sing by jpellino · · Score: 1

      So you were born good at the thing you do now? It's that simple?

      --
      "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
    6. Re:Teach my tone-deaf sister to sing by u38cg · · Score: 1

      The problem there is that anyone who does not actually have a brain defect, which is almost no-one, can be taught to sing and taught to sing well. People who can't sing were typically brought up on a diet of recorded music, were not sung to as children, and were discouraged from singing from an early age. Give her six months of weekly lessons with a vocal teacher then come back and tell us she can't sing.

      --
      [FUCK BETA]
  21. like dude by Anonymous Coward · · Score: 0

    > that evaluating code is always safe
    You haven't really thought that through. That means there's a lot that it can't do (including knowing if the evaluation completes).

    > a uniform (logical) data model where every piece of state is globally addressable
    You haven't really thought that through. That means there's either hidden stuff it can't access, or it will be extremely fat.

    > a model for change that tracks history and causality
    You haven't really thought that through. Causality can be very granular, and even cyclic.

    > a powerful query language that can be used for querying code, runtime state, causal graphs, profiling data
    You haven't really thought that through. It will scale with toy web projects until you make a complex state machine (or need security).

    > composable gui tools with transparent guts
    You haven't really thought that through. Sounds like Swing but will break down as soon as you need multilevel composition patterns.

    > a smooth interface to the old world so we don't end up sharing a grave with smalltalk
    You haven't really thought that through. You can't do all of that, introduce nondeterminism and complete transparently, and do it efficiently and understandably.

  22. Often we do this to ourselves. by w3woody · · Score: 5, Interesting

    More than once I've seen the existing functionality of an IDE's automatic (or semi-automatic) compile, run and debug loop sabotaged by some (sometimes mandated) third party plugin which is supposed to make things "easier." I've watched as people poorly integrate Java Spring into a project and render it impossible to use Eclipse's debug button because of badly constructed project dependencies. ("Oh, if you want to run the project, just drop into the command-line terminal and type 'ant someobscurebuildproduct run'; it's pretty easy, why are you complaining?") I've seen people integrate Maven into a build process in ways which guarantee the project will stop compiling at some unspecified time in the future by improperly scoping the range of libraries that will be accepted. (And I'm not a fan of Maven or CocoaPods or other external dependency resolution tools anyway, as in part it presumes the external libraries we link against that are hosted outside of our source kits will honor their public interface contracts as minor revisions roll out, something which isn't always true.)

    I've seen refactoring which adds code bloat (rather than simplifies the code). I've seen home-rolled configuration files which make code discovery functions break code discovery functions in Eclipse useless (do you really need to home-roll you own class loader, and specify Java classes in JSON?). I've seen plenty of 'voodoo stick waving' standing in for good coding practices. I've seen the lava flow anti-pattern obscure a simple Java RTL call in 20 discrete layers of classes, each added on by another refactoring that did nothing but make things more obscure.

    I've seen weird blends of ant and makefile build processes which took a product that should have taken perhaps 5 minutes to build take over an hour, and build processes so broken that it was impossible to shoe-horn into an IDE without rewriting the entire project. ("Real programmers use 'vi.'" *shakes head*)

    In fact, I have a working theory about programmers--and that is this: Most programmers think something should be a certain level of difficulty. And when a project turns out to be easier than they think it should be, they add artificial complexity until it reaches the expected level of difficulty. At some point, the project then needs to grow, making things organically more difficult--but the artificial difficulty added by the programmer who thought things were too easy before then simply sabotage the project. This is why quite a few projects I've worked on over the past 25 years have failed.

    This is why I have no hope for any project that attempts to fix the problem. That's because the problem is cultural, not technological. We've had IDEs which had integrated debugging and one-button build + run processes going back to the 1980's--yet somehow we always glom to the next big thing, oh, and sorry about breaking your IDE--but this next big thing is SO important it'll totally compensate for the fact that we broke your edit/run/debug cycle.

    Meaning I guarantee you the moment someone builds a fool-proof IDE which makes it brain-dead simple to edit, compile, run and debug an application, some damned brain-dead fool will come along, worried that things shouldn't be harder, and break the system.

    1. Re:Often we do this to ourselves. by MarkH · · Score: 1

      "Most programmers think something should be a certain level of difficulty. And when a project turns out to be easier than they think it should be, they add artificial complexity until it reaches the expected level of difficulty"

      I like this. seen it a lot never seen it expressed so clearly. mind if I re-use?

    2. Re:Often we do this to ourselves. by w3woody · · Score: 1

      Absolutely, go right ahead.

    3. Re:Often we do this to ourselves. by Anonymous Coward · · Score: 0

      Absolutely true, and can be seen in attitudes about Tools and Techniques used as well. If a Tool or Technique is too simple even f it does the job needed, then some Macho shithead will always scoff and demand more needless complexity.

    4. Re:Often we do this to ourselves. by Agent+ME · · Score: 1

      (And I'm not a fan of Maven or CocoaPods or other external dependency resolution tools anyway, as in part it presumes the external libraries we link against that are hosted outside of our source kits will honor their public interface contracts as minor revisions roll out, something which isn't always true.)

      That's why you depend on a specific version.

    5. Re:Often we do this to ourselves. by dkf · · Score: 1

      I've seen the existing functionality of an IDE's automatic (or semi-automatic) compile, run and debug loop sabotaged by some (sometimes mandated) third party plugin which is supposed to make things "easier." I've watched as people poorly integrate Java Spring into a project and render it impossible to use Eclipse's debug button because of badly constructed project dependencies. I've seen people integrate Maven into a build process in ways which guarantee the project will stop compiling at some unspecified time in the future by improperly scoping the range of libraries that will be accepted.

      I've seen refactoring which adds code bloat (rather than simplifies the code). I've seen home-rolled configuration files which make code discovery functions break code discovery functions in Eclipse useless. I've seen plenty of 'voodoo stick waving' standing in for good coding practices. I've seen the lava flow anti-pattern obscure a simple Java RTL call in 20 discrete layers of classes, each added on by another refactoring that did nothing but make things more obscure.

      I've seen weird blends of ant and makefile build processes which took a product that should have taken perhaps 5 minutes to build take over an hour, and build processes so broken that it was impossible to shoe-horn into an IDE without rewriting the entire project.

      All those moments will be lost in time, like tears in rain.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    6. Re:Often we do this to ourselves. by Anonymous Coward · · Score: 0

      Real programs do in fact use "vi". *shakes fist*

    7. Re:Often we do this to ourselves. by w3woody · · Score: 1

      Time... to... move on to management...

    8. Re:Often we do this to ourselves. by Euler · · Score: 1

      That sounds about right. I think the corollary to that is: "When a simpler approach is found, at least one person in the group will refuse to give up the needlessly complex bits."

    9. Re:Often we do this to ourselves. by Anonymous Coward · · Score: 0

      That sounds about right. I think the corollary to that is: "When a simpler approach is found, at least one person in the group will refuse to give up the needlessly complex bits."

      Sometimes it's because that guy is only good at appearing to do a lot of work, and isn't actually worth a shit... and that 'complex' bit is his area of expertise. The common phrase is "job security". It's not only a result of lazy people, it's often a result of uncaring management who have no loyalty to good employees. The maxim I hear a lot of experienced workers repeat is "don't optimize yourself out of a job". This is the number one reason why documentation is often scarce and hard to come by... it's hard to fire the only guy who knows what is going on.
      Not that I advocate such an approach- I don't... and it eventually catches up with most who try it. But it's an easy and tempting thing to do.

    10. Re:Often we do this to ourselves. by Anonymous Coward · · Score: 0

      Could you re-write it to include concrete examples in a few different languages, maybe one per decade from the 1970's on? I mean, if this is really an important idea you need to expand on it. Have you considered a TEDx talk?

    11. Re:Often we do this to ourselves. by DamianJPound · · Score: 1

      "Real programmers use 'vi.'" *shakes head*

      Real programmers use whatever they damn well please!
      I use Notepad++ through wine on Linux, sue me :p

    12. Re:Often we do this to ourselves. by w3woody · · Score: 1
    13. Re:Often we do this to ourselves. by Anonymous Coward · · Score: 0

      Good programmers don't add complexity, good programmers invest time and effort into removing it to find the simplest most elegant solution.
      Complexity arises because once many things become dependant on each other, the system is inherently complex and that is why it can do useful things. Read Godel, Escher, Bach.

      Has anyone considered that trying to make programming easy is a total waste of time? Understanding complex systems and problem solving are kind of important to computer programming. If you can't figure out library dependencies and compiling then that is a useful sign that you may be better suited to management.

  23. There needs to be a continuum by jpellino · · Score: 1

    of programming environments where the stuff kids use early on has tangible links to the stuff they'll use later on.
    Code is not code is not code. The AP exam alone has been through three languages (Pascal, C++, Java) and their official caveat isn't reassuring.
    I can teach young kids Scratch, Stagecast, NXT all day every day and they love it and learn to solve problems.
    Trouble is there's no bridge between that and "real" programming. The parentheses are mine, but there's no volume knob on the chorus that rushes to pooh-pooh anything other than a full-blown professional language as "programming". Got it. Hour of Code was an inch deep and a mile wide. Understood.
    And that's the problem. What's a kid who gets inspired by that first experience to do - jump into a CS course that's an inch wide and a mile deep?
    To extend another analogy used elsewhere in these comments, it's like going from applying a bandaid to being handed a scalpel and suture set.
    Want to make a lot of money? Create a language that mimics their maths experience - that explains variables, arrays, transformations, algorithms, sets, etc. in a way that they can parallel and apply.
    Yes, cue the snarky comments, but I miss BASIC and HyperTalk. Very low learning "floor" and pretty-darn-high learning "ceiling". RunRev / LiveCode has huge potential as it uses hypertalk-ish syntax and actually does something tangible in short time. The engineering equivalent of such a continuum is LabView, but yes, it's basically for instrumentation, no, you can't produce standalone apps, etc.
    Huge need for a continuum / bridge.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  24. The $316000 Notepad by Anonymous Coward · · Score: 0

    If one tried this $316000 masterpiece, it's nothing but a fancy notepad at the moment. IDE needs top quality intellisense, project references etc. It has none of these, even rudimentary things like line numbers is missing.

    One can only hope they spend several years developing this thing, though I suspect this is the final and the developers will take a holiday on remote Island with rest of the money.

  25. Physical Exercise is hard too. by Anonymous Coward · · Score: 0

    You'll find that even if you give someone all the workout clothes they need and equipment, they'll struggle to use it. They'll be aching and moaning through every exercise. Struggling to find the motivation and not eating the correct meals. Most people consider this part of it but some think that it should be easier. Maybe we should tie their feet to the stair-stepper and let the machine move their legs. Maybe we should predigest their food for them like a bird. Oh America! When will we see that all work is too difficult for mankind and finally build a gym that removes all the challenge from challenging yourself!

  26. Wasn't all this solved at the end of the 80s and e by Anonymous Coward · · Score: 0

    Wasn't all this solved at the end of the 80s and early 90s with Borland and MS IDEs?

  27. What nonsense by gweihir · · Score: 1, Insightful

    Yes, I usually get by with print statements as well, because I do not need anything else! Learning to debug is a critical part of learning how to program. Taking that away is plain harmful. Advanced debuggers give you more, but anybody that cannot debug simpler print-statements does not have the level of understanding of the code that is absolutely required to make it any good.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:What nonsense by Anonymous Coward · · Score: 0

      I hope you are joking.

      Print statements are the simplest, most basic, most obvious method for debugging. Newbies reinvent it everytime. They are nearly always available, but they fill your code of useless (for the user) statements that, in the long run, make your code unreadable, unmanteinable, and slower.

      Fully using a modern debugger, with conditional watches, dynamic rewriting of variables or even code, attaching to running proccesses, full replay of execution, etc. is something frequently only experts know, and can be crucial in critical situations.

  28. Re:Wasn't all this solved at the end of the 80s an by gweihir · · Score: 2

    Yes. Turns out people unable to program lack talent, insight, dedication, but not an IDE.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  29. Just use Vim or Emacs by Anonymous Coward · · Score: 0

    IDEs cost you time and induce bad habits. You end up spending too much time debugging the IDEs themselves and becoming dependent on the crutches they provide. I've seen Java developers who don't know how to run their program without Eclipse installed.

    My advice is to use vi(m) or emacs.

    1. Re:Just use Vim or Emacs by Osgeld · · Score: 1

      Java programmers are the wost, I dont know how many times I have given up on a java program because instead of them making a program that works its you spending a lot of time recreating their development environment, or its just a constant string of bitch and nag messages

    2. Re:Just use Vim or Emacs by Anonymous Coward · · Score: 0

      Those same programmers would be just as lost on vi or emacs. Stop blaming the tools for bad developers. There are plenty of bad developers using vi or emacs who create the worse, custom build scripts.

    3. Re:Just use Vim or Emacs by Anonymous Coward · · Score: 0

      > IDEs cost you time and induce bad habits. You end up spending too much time debugging the IDEs themselves

      Only if you use shitty IDEs (you know we're both talking about Eclipse). The over-reliance on "free" tools has led to a strange disconnect between the poor kids floundering around on overly complicated IDEs and the very productive commercial ones.

      If you think you can get the equivalent to JetBrains out of vi or emacs, you're just wrong. You waste your time and defend that antiquated opinion. I'll go back to work and be more productive than you with half as many keystrokes.

  30. On Almost Every Professional Project I've Been On by Greyfox · · Score: 2
    The build system has been by far the worst part of it. There's no one whose job it is, quite often the programmers are in an unfamiliar environment. I do a lot of UNIX work, and most of the devs came from some other environment and are frequently not even familiar with the language we're using, much less the tools the OS provides. On C projects I've seen everything from home-rolled perl or shell scripts to cascades of make that would fail due to missing dependencies several times before building after you resolved them all. Most of the time, the developers on those projects had no idea there was a debugger on the system or that with just a bit of work it would show you where a segfault had occurred.

    So it seems to me that most of the pain of programming is bad programmers who can't be bothered to learn about the tools they're working with or even the hammer that they're using to solve every problem. So why do you think your hammer's going to be better, again?

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  31. s/emperical/empirical/ by RonBurk · · Score: 1

    It's right before the sentence that accuses the world of choosing to be illiterate.

  32. Be careful what you wish for by Rambo+Tribble · · Score: 1

    Making programming more accessible by more people may result in well-functioning programs being as common as well-functioning governments are where voting is more accessible by more people.

  33. Re:Lazy people - BULL! by jpellino · · Score: 1

    "a morass of no-reason-just-policy quagmires worthy of organized religions."

    Thank you for cogently describing the current state of programming languages.

    I was going to suggest by analogy that your neighborhood mechanic be up to speed not only your car, but your bicycle, steamboat, helicopter, Segway, pogo stick and diesel-electric train.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  34. For those who think programming should be hard... by gestalt_n_pepper · · Score: 1

    You're a bunch of over-testosteroned, machismo idiots.

    Offense definitely intended.

    First point. Machines and software exist to serve *people* and for no other reason. To the extent that they do that, they are "good." Anything less is "bad." Simple enough for you?

    Second point. Programming is not about "overcoming intellectual challenges." Don't flatter yourselves. Nobody cares how you feel. Programming is either about money or masturbation. If the latter, make it as hard as you like. Go for it. Wheeeee! Look at meeeee! Look how smart I am! Whoo hoo!

    But if you're trying to make *money* programming, or actually have to get a task done, you need all the help you can get. If you have a manager or officer breathing down your neck to GET IT DONE so millions aren't lost, or someone doesn't die, you need effective tools.

    Bottom line? Get over yourselves. The IDE is there to make accomplishing a task as easy as possible. It serves no other purpose. It should make everything easily known and obvious. Moreover, it should actually HELP YOU solve your problems. Otherwise, it's just another idiotic software failure.

    --
    Please do not read this sig. Thank you.
  35. +1 Re:Smalltalk live images by Paul+Fernhout · · Score: 2

    Mod parent up. Not sure if this New Yorker cartoon from the most recent issue will stay around long, but I saw it this morning and it sums up how I feel about much of computer software development the last thirty years since Smalltalk:
    http://www.newyorker.com/image...

    A character says "The new house is almost ready!" and it looks exactly the same as the rundown house in almost exactly the same location.

    Software could be better, like the character could in theory have built a better house. But in practice, watching this play out of 30 years myself, much of what we get is just re-re-re-inventing the wheel. And there is a terrible waste in having to re-learning it slightly differently with slightly different bugs and limits, and little true progress. Often there is regress, since Smalltalk's keyword syntax is still more readable and expandable than C-like syntax.

    Where would we be now if a truly free Smalltalk had had all the billions poured into it that Java had due to IBM and Sun's marketing clout and all the effort that has gone into JavaScript dues to Netscape/Mozilla/Google/etc.? Including the best of any LightTable ideas (a view with source when you hover over a name in code is indeed cool) and any other GUI improvements? As well as better libraries and better cross-platform support and better browser integration and so on?

    Still, maybe JavaScript is the best we could hope for at this point, and better than we deserve, as someone else said and I echo in this submission from yesterday about James Mickens' last "USENIX "login" column explaining all that is wrong with the Web pages technically:
    http://slashdot.org/submission...
    Citing: https://www.usenix.org/system/...

    But we got that mess for social reasons (competition, centralization, monetarization), not technical one, like I mention here:
    http://slashdot.org/comments.p...

    Social stuff like ParcPlace not being willing to license ObjectWorks/VisualWorks cheaply to Sun when they wanted to do a set top project (which ultimately lead to sun making Java).

    Could Smalltalk be improved? Yes. Even the syntax could, like by using more C-like strings and comments while keeping the keywords. Could it benefit from type annotations for optimization? Probably yes too. And could it benefit from being built from textual sources instead of an image (like GNU smalltalk). Again yes. But investments in that direction would have produced so much more benefits than something like Java or JavaScript.

    That said, after all the pain and suffering and waste, Java and JavaScript/HTML5/CSS3 have finally become half-way decent platforms. I'm moving more in a JavaScript direction myself for mostly social and practical reasons, despite knowing how great Smalltalk was and seeing how much it could have become. I talk about that on Slashdot here:
    http://slashdot.org/comments.p...
    http://developers.slashdot.org...

    Smalltalk might still get there building on Java and JavaScript as with these projects:
    http://amber-lang.net/
    http://www.redline.st/

    Mickens' comments are mostly true, but end up being tradeoffs for ubiquity and easy installs in the case of JavaScript -- even Alan Kay and Dan Ingalls agreed on that with their efforts toward the Lively Kernel driven by the fact they could not get many people to install Squeak or Squeak-based apps).
    http://www.lively-k

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    1. Re:+1 Re:Smalltalk live images by dkf · · Score: 1

      maybe JavaScript is the best we could hope for at this point

      What? We're doomed. Doomed!

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  36. Beginners .... start servers ... opem ports ... by RichMan · · Score: 1

    I don't see why beginner programmers should be starting with servers or ports. Where are the basic fundamentals of programming before they approach things like servers and ports where one should be thinking about task blocking, threading and security above and beyond the "make it do what it want" level.

  37. Consider Visual Studio by Anonymous Coward · · Score: 0

    it solves many of these problem, Microsoft even has a free version (Express) - if you want to use Pro for a while, you can even 'rent' it by the month from the link below

    Express:
    http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

    Online:
    http://www.visualstudio.com/en-us/products/visual-studio-online-overview-vs

  38. Logical impossibility by Chelloveck · · Score: 2

    First, why does programming need to be accessible to more people? That's exactly the opposite direction a mature technology goes. It use to be easy to fix your own car, but now with the modern engine and manufacturing techniques it's damn near impossible for most people to do more than add consumables. It used to be easy to fix electronics, but now it's impossible to take things apart and if you do you find everything is done in literally a black box of a chip and there's nothing you can do to it. These things have good points and bad points and I'm not here to argue for or against them, just to say that mature technology tends towards "no user-serviceable parts inside". Why would you expect programming to be any different?

    Second, the pain in programming doesn't come from the tools. Yeah, it's a pain to learn the tools, but that's a pain that's short-lived. The real pain comes from the nature of programming. It's caused by having to tell the computer in excruciating detail exactly what you want it to do. In order to tell the computer you have to figure it out for yourself, without glossing over any "you know what I mean" steps, because the computer certainly doesn't know what you mean. And not only do you have to tell it how to do the job when everything is working as it should, you have to anticipate all the ways in which things could fail and tell the computer what to do in those cases, too. THAT'S the painful part of programming -- the programming. No tool is going to fix that.

    --
    Chelloveck
    I give up on debugging. From now on, SIGSEGV is a feature.
    1. Re:Logical impossibility by Anonymous Coward · · Score: 0

      First, why does programming need to be accessible to more people?

      Because we don't have enough programmers.

      That's not the problem with the article. The problem is it fails to identify the real problem. The real problem is NOT that programming is hard and too few people are capable of doing it. The real problem is that too few of the capable people are able to seriously pursue it as a career.
      Thus the solution is not to make it easier to actually program. Rather, the solution is to make it easier to be able to afford to enter the field itself. Far too many young people with the talent and desire are entering, and if you're an older person trying to switch fields it can be nearly impossible.
      If we made some serious financial assistance available for programming professions, we'd have plenty of talent enter the industry and not need to "make programming easier". The problem is that a) nobody wants to spend money and b) when they do, they are overly focused on making sure 'disadvantaged' groups get the money first.

  39. What pain of programming? by bucket_brigade · · Score: 2

    The only "pain of programming" I have experienced was always the result of my own poor design choices. Is there an IDE for that?

  40. kettle, meet pot by pavera · · Score: 1

    I found it hilarious that the post bemoans the state of getting started with a new environment, and how it invariably requires a tutorial, and that is terrible.... And then you download their software and you're presented with a blank screen and no idea how to get started... so you turn to you guessed it.. a tutorial.

    And then a tutorial that isn't even illustrated, so you can't tell what is supposed to happen with you hit cmd/ctrl+enter... I get a little checkbox next to my line of code.. I don't know what that means. Line is syntactically correct? Line executed? Line monitored by system? And it certainly doesn't provide any insight into the flow of data. I don't see a pane like I do in pycharm that lists the variables with their current values, I don't see any state.. Is that intended? I don't know, the tutorial doesn't inform me, and the environment is useless.

    I don't generally use debugging tools, preferring to keep my abstractions shallow, my code small and understandable, and a test suite that can prove that my code is handling the cases its designed for correctly. In some projects, yes, complexity is a requirement, but I feel like the advent of IDEs and debuggers has only served to allow people to more easily break what is in my opinion the first rule of development:

      "Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?" - Brian Kernighan

    Break systems down into small manageable parts. Write the code simply and clearly. Write tests EVERYWHERE.

  41. My kid is part of why I support Basic Income by Paul+Fernhout · · Score: 1

    http://www.basicincome.org/bie...

    Not because my kid is a dummy (far from it), but because I know becoming and staying an "owner" in the 1% is like winning the lottery. And societies with big rich/poor divides are less happy to live in -- even for the 1%.
    http://www.nytimes.com/2012/08...
    "Stiglitz and his allies argue that a free and competitive market is highly beneficial to society at large, but that it needs government regulation and oversight to remain functional. Without constraint, dominant interests use their leverage to make gains at the expense of the majority. Concentration of power in private hands, Stiglitz believes, can be just as damaging to the functioning of markets as excessive regulation and political control. "

    See also on how aspiring millionaires are used to keep everyone down:
    "The Wrath of the Millionaire Wannabe's"
    http://conceptualguerilla.com/...
    "But here's something I'll bet the dittoheads haven't thought of. Maybe they're the chumps. Maybe they've been sold a bogus "American dream" that never existed. Maybe "the rules" they play by were written by the people who have "made it" -- not by the people who haven't. And maybe -- just maybe-- the people who have "made it" wrote those rules to keep the wannabes chasing a dream that's a mirage."

    I wrote an essay on why even rich people should support a basic income:
    http://www.pdfernhout.net/basi...

    The fact is, most paid jobs are going away as robots and AIs become cheaper to employ than humans for more and more jobs -- even "creative" ones, like I discuss here
    http://www.pdfernhout.net/beyo...

    Preparing your kid to win the 20th century economic rat race leaves him or her a rat on a sinking economic ship in a 21st century economy...

    That said, independence when needed, cooperation when needed, hard work, prudence, saving, frugality, investing in the future -- in broad sense, these are all good things to learn however a kid applies them later in life.

    On code, the free code and content I write now and in the past like our free garden simulator and other tools has helped (a teeny tiny bit, I hope) to help bring about a 21st century transformation to a bigger gift economy, to better planning, to a more informed and enlightened and empowered citizenry. For example, this freely usable software someone else lets me reformat my slashdot posts to remove smart quotes from quotations in the above that display wrong:
    http://dan.hersam.com/tools/sm...

    So, free code and free content can make a difference in the world by making the world a better place in various ways. And then, such a society can hopefully do a better job of taking care of old farts like I will be soon enough -- if I am not already. :-) As well as doing a better job of taking care of the next generation which is much more important than taking care of the previous generation -- although you would not know that looking at who gets "Social Security" and Medicare in the USA -- the old, not the young). As Daniel Moynihan said, "the young don't vote, and it shows".

    Kids grow so fast. Enjoy them while you can! See also:
    http://www.katsandogz.com/onch...
    ----
    On Children
    Kahlil Gibran

    Your children are not your children.
    They are the sons and daughters of Life's longing for itself.

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    1. Re:My kid is part of why I support Basic Income by 50000BTU_barbecue · · Score: 1

      I understand and I agree; I don't like where we are heading collectively. But what can I do about it? If I see a big rainstorm coming, do I complain about the fact I don't like being wet or do I get an umbrella?

      --
      Mostly random stuff.
  42. Oh, that's easy. by dutchd00d · · Score: 1

    1. Use a powerful editor that you know well.
    2. Don't use Windows.

    There you go. Done.

    1. Re:Oh, that's easy. by Euler · · Score: 1

      3. ???
      4. Profit!!

  43. Re:For those who think programming should be hard. by Anonymous Coward · · Score: 0

    > First point. Machines and software exist to serve *people* and for no other reason.
    > To the extent that they do that, they are "good." Anything less is "bad." Simple enough for you?
    Not really. You are saying nothing about how any goals would be accomplished. Stating the obvious doesn't help.

    > Second point. Programming is not about "overcoming intellectual challenges." Don't flatter yourselves.
    If it's not, you're not automating something that hasn't been done already, you're not working out how to make a business process leaner, you're not working to facilitate business capability that doesn't exist, and you're not working on technology that enables any of that either.

    > Nobody cares how you feel.
    I do, and employers who want me to work for them, also do.

    > Programming is either about money or masturbation. If the latter, make it as hard as you like.
    If you don't care about the quality of the work you do, it shows. There's a reason I'm always employed, and it's actually more about making things easier. Not everyone can see that right away.

    > Go for it. Wheeeee! Look at meeeee! Look how smart I am! Whoo hoo!
    OK, if there's a point there, I've missed it. Do you say similar things to friends or family members who are doctors, lawyers, architects, engineers, teachers, plumbers, drivers, nurses, retail staff etc?

  44. Step 1 by jader3rd · · Score: 1

    Switch the functionality of the '.' and ';' characters in C style languages. For me, it's perfectly fine with what '.' and ';' do and mean, but apparently it's a real struggle for those learning programming. While in University I'd be talking with somebody struggling in their Introduction to Computer Programming class, or somebody who was a CS major, and then dropped out and the number 1 complaint was how they were upset with how the program wouldn't compile because they were missing a ';' at the end of a statement. But if the character which represented the end of a statement was a '.', that would make sense to them because it's same character that represents the end of a statement in written communication. That way if they complained about a program not compiling because they forgot a '.', you could respond with "Well you wouldn't end a sentence with out a '.', would you?"

    1. Re:Step 1 by Jeremi · · Score: 1

      That way if they complained about a program not compiling because they forgot a '.', you could respond with "Well you wouldn't end a sentence with out a '.', would you?"

      I like it, but the benefit would be more than offset by the confusion that would be introduced by the fact that there would now be two flavors of C code floating around, and the people used to the old syntax are confused by the new one and vice-versa.

      Perhaps someone will invent a time machine and travel back to 1969 to have a 'frank exchange of views' with Dennis Ritchie.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    2. Re:Step 1 by flargleblarg · · Score: 1

      Switch the functionality of the '.' and ';' characters in C style languages.

      Egad, you are seriously suggesting the use of ';' for accessing members of a structure? Or do you not mean swap the two?

      [...] the number 1 complaint was how they were upset with how the program wouldn't compile because they were missing a ';' at the end of a statement. But if the character which represented the end of a statement was a '.', that would make sense to them because it's same character that represents the end of a statement in written communication.

      This might be a clue that their brain isn't suited for programming. It's not a difficult concept that different languages use different punctuation, especially in different contexts. A '.' character in C can be a radix point in a number, a structure member accessor, or a component separator of a filename, e.g., stdio.h. A person needs to be able to understand this extremely basic concept from the get-go or they are not cut out for programming, plain and simple. It shouldn't matter what symbols are used. Now if you're talking 5-year-olds, then ok, sure, maybe ';' is confusing. But if it confuses an 18-year-old CS student, well, ... they should probably be flipping burgers instead.

    3. Re:Step 1 by jader3rd · · Score: 1

      I'm not suggesting so much to have ';' be used to access members, so much as I am advocating the idea that the end of a statement should be the same as what it is when writing spoken language.

    4. Re:Step 1 by flargleblarg · · Score: 1

      The semicolon in English is perfectly valid as an end-of-statement punctuator; English has many ways to separate thoughts.

    5. Re:Step 1 by Anonymous Coward · · Score: 0

      I'm not suggesting so much to have ';' be used to access members, so much as I am advocating the idea that the end of a statement should be the same as what it is when writing spoken language.

      The problem is, as pointed out in a less kindly fashion by others, that in English the "." is not only used to indicate the termination of a statement but also used as a separator, and has other uses as well. For example, when writing a number we use it to show fractional amounts. We also use it to indicate abbreviation. The goal in a programming language is to make the statement termination as unambiguous as possible so that you don't have to rely on context, not to make it match up nicely with written English conventions.

  45. Daily commuters vs. bus drivers & race car dri by Paul+Fernhout · · Score: 1

    "most of us in the industrialized world have a driving license and can drive, but track and bus drivers are still professionals with special license. The question is - do you want to be a track driver?"

    Very good analogy. Thanks! (Typos fixed, sorry)

    I feel that the world needs more people who understand computing and information management, but we probably already have perhaps 10X-100X more professional programmers than we need -- mostly making work for each other with slightly different proprietary (or even free) versions of essentially the same thing but with different bugs.

    Agriculture used to employ 90%of US workers 200 years ago, and now it employs about 2% Manufacturing is also on its way down. Yet, gardening is the most popular outdoor recreational hobby, and the Maker movement is rapidly growing. People like making and growing things -- often they like that more when they are not forced to do it endlessly in a boring or stressful way due to economic necessity.

    Programming may well go the same way more towards a hobby. It already is in various areas. For example, a dozen years ago, everyone was writing web frameworks or ecommerce frameworks, and now there are so many off-the-shelf ones, only hobbyists or researchers are focusing on that (mostly, always rare exceptions). As we get more free software piling up, how many jobs do we really need writing more? The jobs become more "software archaeologist" or "software chooser" or "software customizer" if even any of that depending on how far standards have spread -- so similar to your point between daily drivers versus specialized drivers.

    To build on your car analogy -- there is also a difference between car drivers, gas station attendants, car sales people, car mechanics, car delivery people, car rental agents, drivers ed teachers, gasoline refinery workers, and car designers. All are involved with cars, but in very different ways. There are right now very few car designer jobs compared to all the others. One hundred years ago though, 100s of small companies were designing cars, and with fewer drivers the ratio of designers to drivers was much higher. Although this analogy maybe breaks down because in theory software may need less maintenance once the software ecosystem settles down and also software may eventually maintain itself as AIs.

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  46. unintentionally best quote by phantomfive · · Score: 1
    Here is the best quote in the article:

    GETTING STARTED - First we need to get a development environment running. Let's try clojure: [example]. At this point you have already lost 99% of the population and we haven't even touched on css or templates yet.

    That's how you teach beginners.

    --
    "First they came for the slanderers and i said nothing."
  47. Re:For those who think programming should be hard. by phantomfive · · Score: 1

    When people say 'programming should be hard' usually they mean 'programming is irreducibly complex.' There's no way around the fact that programming is hard.

    --
    "First they came for the slanderers and i said nothing."
  48. When heavy rains come, build an ark? :-) by Paul+Fernhout · · Score: 1

    Self-replicating space habitats that could duplicate themselves from sunlight and asteroidal ore were a long favorite "ark" idea of mine to deal with the risk of global nuclear war (although JD Bernal proposed them first in the 1920s it turns out). Anyway, arks are just another option to umbrellas -- given umbrellas may not work depending in the size of the storm. For me, the idea of a basic income is also a sort of an "ark". But I've tried others -- like helping people be more self-reliant with growing stuff via the garden simulator or helping people with making stuff with OSCOMAK (not to say how successful I've been, which is not much, especially for OSCOMAK, pretty much a big nothing except others are doing related ideas now in a smaller way like Thingiverse or Appropedia).

    I agree there is a tension of where to invest your time and other resources. You have to find something that works for you and your unique interests and abilities. It;s true though that when you invest in yourself, or your family, or even your local neighborhood, you have a much better sense of whether the investment is paying off than doing general advocacy for something to contribute to global change. As I say on my site when I talk about five interwoven economies (subsistence, gift, exchange, planned and theft): "The particular balance a society adopts is going to reflect the unique blend of history, culture, infrastructure, environment, relationships, mythologies, religions, and politics of that society." I guess the same goes for individuals and families, too?

    Anyway, I had my kid around age 40. I've come to learn that being an older parent has its pros and cons. My dad had me around age 50 though. So, good luck if you want kids!!!

    And don't let worries about the future stop you, or no one would have kids, since even for billionaires, money can come and go. Example (and kind of makes your point about techies vs. legal sharks, plus mine about a basic income to support inventors):
    "Goldman Sachs Not Liable for Failed $580 Million Deal"
    http://www.bloomberg.com/news/...
    "Goldman Sachs Group Inc. (GS) defeated a $580 million negligence suit over its role as adviser to speech- recognition pioneer Dragon Systems Inc. in a doomed merger, one of its biggest victories in a string of claims by dissatisfied clients since the financial crisis.A federal jury in Boston yesterday rejected the claims of Dragonâ(TM)s founders Jim and Janet Baker and two other shareholders that Goldman Sachs failed to properly vet Belgium-based Lernout & Hauspie Speech Products NV. The all-stock deal in June 2000 was rendered worthless months later when the fraud at Lernout & Hauspie was exposed and the company filed for bankruptcy. The verdict relieves Goldman Sachs of responsibility for a sale that left its clients with worthless shares in a failed company. The four Dragon founders sold some Lernout & Hauspie shares for $11 million before the stock collapsed and the Bakers lost the technology they spent decades developing."

    I met Janet once at a trade show and she and her husband were also students of my college adviser They lost about most of their wealth, but worse, they lost access to all the Dragon speech recognition source code that was in some sense their "baby".

    We all have our personal choices to make. And they are often hard ones. A book I just ordered:
    "In Good Company: The Fast Track from the Corporate World to Poverty, Chastity, and Obedience"
    http://www.amazon.com/gp/produ...
    "From the Wharton Business School and a secure place in corporate America to a $35-a-month allowance and the insecurity of a life of faith. This may seem a precautionary tale of downward secular mobility, but as we follow James Martin through his life and Jesuit training, we find it is all about ascent -- to God and to true happiness. (Paul Wilkes, Author

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  49. Fore! by westlake · · Score: 1

    When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard.

    Golf is hard.

    But golf doesn't pretend to be anything other than a game which is defined by the wholly artificial --- and unnecessary --- obstructions it places in your path,

  50. They looked at this problem before by Hognoxious · · Score: 2

    They looked at this problem before, and came up with Netbeans. They looked at it again and the result was Eclipse. I don't hold out much hope.

    Disclaimer: currently trying to [re]learn java (did a bit when it was 1.1) and I'm wondering if it'd just be better to use gedit or even vi...

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:They looked at this problem before by Anonymous Coward · · Score: 0

      Tab completion is very convenient to have in a language like Java. I believe there's a vim plugin to use Eclipse's tab completion, but I've always just used Eclipse.

    2. Re:They looked at this problem before by Hognoxious · · Score: 1

      Tab completion is very convenient to have in a language like Java.

      Indeed, that's nice.

      It's just that with what I've forgotten, what's changed and what I never knew on the one hand, and a 747 cockpit of arcane icons plus a veritable Hardwick Hall of windows on the other, I feel like I'm fighting a war on two fronts; I can't concentrate on writing code because I'm trying to work out how to drive the IDE or vice versa.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:They looked at this problem before by Anonymous Coward · · Score: 0

      They looked at it again and the result was InteliJ IDEA. You might want to give it a try. ;)
      If you do anything more than a "hello world" I would strongly speak against gedit / vim / emacs / notepad++ and co.

      Even though Eclipse is quite a bit away from being perfect it could be far worse. Most of my problems result from misbehaving plug-ins and broken updates.

    4. Re:They looked at this problem before by Anonymous Coward · · Score: 0

      You want something that has auto-complete.

    5. Re:They looked at this problem before by phantomfive · · Score: 1

      Disclaimer: currently trying to [re]learn java (did a bit when it was 1.1) and I'm wondering if it'd just be better to use gedit or even vi

      The answer is no, if you ever plan on working with other people; and the answer is no unless you want to learn to use ant because Makefiles are slow at compiling Java.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:They looked at this problem before by Anonymous Coward · · Score: 0

      Yes, use a lot of shells in 2 large, high def monitors.

      IDEs are just another approach to getting files open so you don't have to remember everything. I watch people using them, see a lot of clicking to go back and forth between windows.

      I get 8 80x80 text screens on 2 monitors for each desktop. Make the text small and get strong glasses because screen space is the resource programmers are most short of. Almost any significant task for a developer needs 7 - 15 files open and another shell to test with.

  51. Just a reminder by Anonymous Coward · · Score: 0
  52. Thinking causes pain by Anonymous Coward · · Score: 0

    Once upon a time there was a precocious young man, called Bill Gates, who saw a shiny new toy made by Apple, and thought it would be even better if he wrote a word processor and spreadsheet for it. Almost thirty years later, the software remains unfished and still has bugs.

    The tools you need to write computer software have not changed: a ream of paper, a pencil, and an eraser. Programming is about hard thought and mathematics, not about touch typing or touching mice in perverse ways; for all talk to the contrary, it is an art and not some form of engineering. The mediocre programmer that's you and me.

    1. Re:Thinking causes pain by Anonymous Coward · · Score: 0

      The tools you need to write computer software have not changed: a ream of paper, a pencil, and an eraser.

      Thank GOD we don't have to write software out on paper with a pencil anymore.

      Programming is about hard thought and mathematics,

      I hate to break it to you, but very little programming in the real world involves mathematics.

  53. The more they fix it, the more broken it gets by Pro923 · · Score: 0

    I commented on a similar article the other day... In reflection over the past couple of days, it occurs to me that the things that they are doing to make programming 'easier' for the average person is making it much more complex for me. For me to be functionally adept (I'm the type of person that needs to know how and why, not just what) - I need to understand how the languages are doing things - how do things boil down to system calls? This is becoming more and more abstracted and obfuscated and it makes it very difficult for me to grasp the concepts of 'what is really going on'. How can anyone be anything but average if we can't fully understand the nature of what is going on - or how could we expand on anything? Call me old fashioned, but if a person can't grasp the concept of pointers then they just aren't adequate for software development - because the direction that things are moving in in order to make software development something that can be performed by the masses is really dumbing down and neutering the potential to make a computer do things that aren't just run of the mill. One example is taking things like threading and making it part of a language, instead of what it really is - part of the platform. Threading has no place in C++ the language - it belongs in a class library - but not the language.

  54. What pain? by Tony+Isaac · · Score: 1

    I always thought programming was fun!

    Maybe if it's painful to you, you should try a different line of work.

    1. Re:What pain? by Anonymous Coward · · Score: 0

      I always thought programming was fun!

      Maybe if it's painful to you, you should try a different line of work.

      Mod this up! If you think programming is painful or not worth it, go do something else.

  55. Take the pain out of the process then by Anonymous Coward · · Score: 0

    "Even if we were to hand [a new programmer the whole source code] they would likely still struggle to actually use it. They have to install dependencies, compile code, start servers and open ports. At each step the errors are difficult to diagnose and time-consuming to fix"

    Use Subversion to manage your source code, Maven to manage the dependency installation and build process (with Ant if also necessary) and Puppet to manage deployment if it's more complex than just dropping the compiled artifact into a deploy directory. Oh yes, and write a build and installation document describing the process in exact complete steps. If the guys who have learnt your ad hoc processes can't be bothered to document them, expect everything to be costly and time consuming when bringing new developers on board.

  56. running code is hard? by Anonymous Coward · · Score: 0

    I just start Visual Basic.net express, create a GUI, type in some lines and run. The IDE handles all the dependencies, I think. I don't need to manually add dependencies or libraries unless I want to use a third-party control. I don't need to start a server or open ports. What kinds of IDE needs to start a server or open ports? Just asking.

    1. Re:running code is hard? by Anonymous Coward · · Score: 0

      .net doesnt automatically handle outside dependencies but you litterly select them out of a menu

      anyway I think they are talking about programming for heathen systems, like linux where turning up the fucking volume requires a god damed read me, command line program and a tutorial

    2. Re:running code is hard? by Jmc23 · · Score: 1

      Perhaps if you actually read what they wrote, you would understand it has to do with web development.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
  57. pain of programming / programming for everyone by allo · · Score: 1

    Why does everyone need to be a programmer? Why does someone imply, programming is a pain?
    Todays tools are okay, and who can't be a programmer, doesn't need to. We do not need to simplify laws, so everyone can be a lawyer, so we do not need to change programming just to have everyone as a programmer.

  58. Re:On Almost Every Professional Project I've Been by Anonymous Coward · · Score: 0

    I've head the same complaints about "make" for the past 30 years. Anyone who managed to create a makefile that used a common configuration directory, could successfully process multiple types of source file (.c, .cpp, .s), handle both 32-bit and 64-bit builds, multiprocessing with pthreads, support multiple target platforms, along with different GUI's was considered a Makefile guru. In many cases, Makefiles were passed down the generations and treated the same respect as a 150 year old family heirloom.

  59. Re:For those who think programming should be hard. by Jeremi · · Score: 1

    Programming is either about money or masturbation.

    Of course, the fact that a good programmer can make six figures is largely due to the fact that there are so few good programmers around -- in the (unlikely) event that awesome IDEs make it so easy to program that most people can do it well, chances are programmers' wages will drop significantly due to increased availability of employees willing to work for cheap.

    Call me selfish, but having spent the 10,000+ hours to get good at programming, I have conflicted emotions about deliberately devaluing my skills and earning $10/hour again.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  60. Why? by Anonymous Coward · · Score: 0

    The more accessable programming is, the lower programmers get paid. Look at Objective C vs PHP when it comes to a programmers pay. If anything we want programming to be less accessable. Hoepfully the next hot consumer device is only programmable in assembler.

  61. Focus on the simple things by Anonymous Coward · · Score: 0

    Why is there not an IDE that can offer a cogent error message indicating how to fix a missing library, or to resolve incompatibilities in this sort of thing?

    I find setting up a build environment an unduly large part of most projects. It's arcana. It is poorly documented. The IDE should be helping, but the present ones too often are so clueless that they will offer "help" on highlighted functions that have equivalents in other languages than the one being edited.

  62. Re:On Almost Every Professional Project I've Been by Greyfox · · Score: 1

    Funny thing is, 30 years along I really haven't run across anything I like better. Automake works great if it's already set up, but seems very esoteric to set up. Ant and Maven are just make with XML files. They're very clearly intended for use in systems that will autogenerate the build file for you, but somehow you always end up having to edit the damn things in a text editor and know implementation details of the build systems to make them work. Most IDEs are awesome as long as everyone works with that IDE and does everything with it. I've never seen that level of organization on any programming project. Most of the time I'm just putting together small libraries on one architecture, and can crank out a makefile that will work in a couple of minutes.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  63. The problem is how programming is taught. by Max+Threshold · · Score: 1

    When it comes to Java, it begins on day one with the standard "Hello, World" teaching people to write a procedural program in the static context before they even understand what an object is. And then they learn about object inheritance. Years later, they read Effective Java and find out their entire CS education was a lie. Meanwhile, they've been churning out utter shit as a contractor in Hong Kong or Bangalore or San Francisco... and every company who's been using their horrible code has been paying dearly for it.

  64. We need CLEVER people writing code, not 'everyone' by Anonymous Coward · · Score: 0

    "the vast majority of the world has chosen to remain illiterate"

    waaaaah-f-ing-waaaaaaah.

    The vast majority of the world are IDIOTS. That I have to risk my life on the highway with them where they operate dangerous devices is ENOUGH. I do not want to ever use code those same idiots wrote. PROGRAMING IS LIKE BRAIN SURGERY, it is really not for everyone. Has NOBODY learned ANYTHING from the WWW explosion of "anyone can make a web page" attitude with NO SKILL NOR LORE to back up the fool who follows the catchphrase? Half the reason why most sites are so hackable is because the creator never RTFM, never knew what they were doing but just winged it with WYSIWYG tools. FEH. Crack a book and learn the lore or just go back to mowning your lawn, at least there's lemonaid waiting for you when that's done.

  65. We're educating programmers wrong. by Anonymous Coward · · Score: 0

    "They have to install dependencies, compile code, start servers and open ports. At each step the errors are difficult to diagnose and time-consuming to fix."

    Here's your fucking problem right here. These things should be fucking /trivial/ for a programmer.

    Too many programmers know /fuck all/ about the computers they are supposed to be witting software for. I'm sorry, but you're not a "programmer" if you can't administer the system you're targeting. It's clear why so much software is bloated, buggy shit.

    I've seen "programmers" that don't know how to log in to a windows domain (It says press ctrl-alt-delete right on the fucking screen you fucking moron) and don't know how to install visual studio. (You know. The thing they were hired to use.) I know absolutely nothing about visual studio but it only took me 2 minutes of googling for fucks sake.

  66. In some ways it's actually going backwards, becomi by Anonymous Coward · · Score: 0

    You know how automatic versioning is baked into your operating system, so that you never overwrite working code by accident, or fail to save that perfect version before you've "optimized" it into spooge? Isn't that great? No, you don't know what I'm talking about?

    Oh, that's right, no commercially successful OS uses that anymore. We've all reverted to 40 year old Unix/mainframe programming paradigms instead of using the nearly idiot-proof automatic versioning that DEC developed more than 20 years ago. Because the PC.

    Programmers become accustomed to things and consider them good. It's like a Stockholm Syndrome thing. Until we get past that, we will continue to suffer pain. The horrific rwxrwxrwx permissions scheme, non-versioning file systems, mainframers preallocating file blocks, etc. etc. etc.

  67. Re:On Almost Every Professional Project I've Been by Anonymous Coward · · Score: 0

    This happens a lot. But, it isn't obvious who to blame.

    My most recent example (this year) is as follows: We were called in to help fix a problem as consultants. We found a mass of c++ code with a build system written entirely in with ant files and no form of dependency managment or package management.

    I showed them things like rpm management and cmake files, and while they agreed it was nice, this was their current process, and maybe they would try mine on the next project - when it starts in 3 years.

  68. Logical impossibility by Anonymous Coward · · Score: 0

    *shrugs* I've learned multiple languages, and the difference between a well-formed tool for the job and a poor one is often unclear before you know them both, but amazing once you do. Many of the changes which make programming more accessible will also improve the tools in subtle ways. If you simply make C++ give remotely sane compile errors when using templates... it would both make templates more accessible and easier for experienced programmers to use on an occaisional basis. (Of course, if all you do is templates, you'll learn to interpret the gibberty-gook they put out.) Many, though not all, changes to programming tools improves the breadth of a programmers capabilities. It's like the computer read-out port on cars; it does many diagnostics in one step that used to require expert knowledge in multiple systems, quite possibly specific to that model of car. It requires some investment in obtaining the tool, but makes your life waaay easier.

  69. fuck beta by Anonymous Coward · · Score: 0

    no seriously fuck beta

  70. Don't just be reactive, compute the future by the+agent+man · · Score: 1

    In live programming an attempt is made to reduce the time between a program change and the ability to wittness consequences of this change. In the good old days, with punched cards, this was not a pretty picture as it could take a long time to get to that point. With Conversational Programming, which is a special kind of live programming, we try to go one step further and compute of the program you are writing. A simple version of Conversational Programming has been added to AgentCubes online. You can play with this as part of one of the hour of code tutorials: http://hourofcode.com/ac

  71. "fix it yourself" by PJ6 · · Score: 1

    The complaints seem to be about a lot of perfectly fixable usability problems, common to open source development tools, that nobody's bothered, or will ever bother, to address.

    I know - we're supposed to hate MS here - but I've never had these problems in projects of any type, large or small, closed or open source, using Visual Studio.

    And you get people also complaining that if making programming (actually, using the programming tools) too easy makes bad programmers. Which is total bullshit.