Slashdot Mirror


Ask Slashdot: How Do You Deal With Programmers Who Have Not Stayed Current?

skaffen42 writes "The recent Ask Slashdot about becoming a programmer later in life got me thinking about a related question. How do you deal with programmers who have not stayed current with new technologies? In the hiring process, this is easy; you simply don't hire them. However, at most companies where I've worked, there are usually a few programmers who have been employed long enough that the skill-set they were originally hired for has become irrelevant. At the same time, they have not bothered to stay current with newer technologies. They usually have enough business knowledge that they provide some value to the company, but from a technical perspective they are a slowly-increasing liability. As an example: I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews; I suspect he dislikes people he considers junior to him making suggestions about how to improve his code. So, how do my fellow Slashdotters handle situations like this? How do you help somebody like this to improve their skill-sets? And, most importantly, how do you do so without stepping on anybody's feelings?"

82 of 509 comments (clear)

  1. Can't offer much by Anonymous Coward · · Score: 4, Insightful

    They usually have enough business knowledge that they provide some value to the company

    Normally at this point where technical skills have faded and the desire to "keep up" is gone, people move more into a non-technical role where their experience and lessons learnt can be put to better use than their fading coding skills. Obviously though if he has allowed himself to become a poor programmer with no interest in improving, he might be just as shitty in a new role. Obviously a paragraph is very little to judge a guy on, but he sounds like the kinda person that barring a major attitude change, is probably going to be looking (unsuccessfully) for a job in 5 years or so when his lack of current skills can no longer be covered up.

    1. Re:Can't offer much by Jimbookis · · Score: 5, Insightful

      Oh I dunno, maybe outside of work he has plenty of other crap to think about like raise a family. Once the kids come you can forget the countless hours hacking away learning new things yourself for the sake of it like you used to.

    2. Re:Can't offer much by penix1 · · Score: 5, Insightful

      The alternative is to offer him the training he is supposedly lacking. If he refuses then that is grounds for dismissal. This is my biggest beef with the corporate world. They want you current but do nothing to provide you the necessary tools or the time to stay current.

      --
      This is a sig. This is only a sig. Had this been an actual sig you would have been informed where to tune for more sigs.
    3. Re:Can't offer much by Jimbookis · · Score: 2

      > They want you current but do nothing to provide you the necessary tools or the time to stay current. Every single damned company I have worked for (all engineering and IT) have all insisted any new learning is to be done on your own time and expense, even if it benefits the organisation in the long run. Oh, but they still expect you to keep on top of the latest and greatest and contribute to the bottom line at all times.

    4. Re:Can't offer much by Musc · · Score: 2

      Seriously? How is this even legal? If you are working for your employer, whether in an actively productive role or in training, it is part of the job and should be considered as such. Now if you are on a salary they might have the legal right to ask to work more than 40 hours a week to make this happen, but then it isn't really on your own time, they just want your workday to be longer. And what do you mean by "at your own expense"? Can't these kinds of skills be learned for free from any computer with an Internet connection?

      --
      Hamsters are at least as feathery as penguins. HamLix
    5. Re:Can't offer much by wmelnick · · Score: 2

      There is a not a single language used in the last 30 years that is not still being used somewhere. There are many businesses out there still running on RPG, COBOL and FORTRAN. If that person is good at what he knows, he will always be able to find a job. It may not be a "sexy" job to the 20-something crowd, but if he had a family, a job where his coding skills are appreciated, that only demands 9-5, is probably far more attractive to him anyway. I have seen many people throughout my career move into companies like that and be perfectly happy when I switched over to management instead.

    6. Re:Can't offer much by Anrego · · Score: 5, Insightful

      In my (admittedly limited) experience, that's exactly why people get out of the trenches and go for jobs that rely more on them knowing what the customer wants than knowing how the latest toolstack/middlewhere/design style.

    7. Re:Can't offer much by DuckDodgers · · Score: 5, Insightful

      I have several young kids, so I do most of my extra learning on the job and by listening to tech podcasts during my commute. There's http://twit.tv/show/floss-weekly and http://se-radio.net/ and dozens of others. Instead of switching browser windows to Facebook while I'm waiting for a large file to move between servers, I switch to my RSS feed reader that subscribes to tech sites. And yes, maybe once or twice a year I'll buy a book on a new language and technology and force myself to read through it and toy with the examples. Figure I'm sacrificing maybe 10-20 hours of my free time for that every six months.

      But more importantly, someone that's not keeping up with the latest trends in software development is screwing themselves. I can build the Javascript for a web page without using jQuery - but it would take me three times as long, so why would I want to? I can write the server-side of a REST application in Java and Struts 1 instead of dozens of newer options, but why would I do that? I can set up a test environment or two on individual physical servers instead of having six different test environments running in virtual machines, but that just means testing runs three times slower, so what have I gained?

      In this industry, deciding you don't need to learn new things just means you're content to waste your time and the time of your colleagues.

    8. Re:Can't offer much by Xest · · Score: 3, Informative

      That's fine and I fully agree that's a legitimate reason as to why many older developers do struggle to stay current.

      But said older developers must also recognise that that's also why they're having problems staying employed and finding jobs, they then blame ageism when in reality the problem is a life choice they have made which they do not wish to suffer the consequences of.

      The fact is you cannot give up staying current and remain a developer, the field moves too fast so you either need to jump into something like management, or accept that the inevitable result of unemployment has nothing to do with ageism and everything to do with the fact that refusing to stay current in the software development field, whilst also refusing to change career.

      It's like the underskilled Westerner who threw away all the benefits and advantages the Western education system offered him only to then blame harder working immigrants that are superior employees to him because they actually want to succeed when he can't get a job. It's a blame game, but you make your choices and have to live with them, you can't blame ageism, immigrants, or whatever for the inevitable consequences of your own choices.

      There's nothing wrong with raising a family instead of staying current as a developer, it's a perfectly fair choice, just don't then be surprised when the real world will let you no longer be a developer as a result of you opting to do other things than stay current. The world doesn't owe you the job you want to do in the way you want to do it, it's up to you to figure out what the world wants and what you feel you can and are willing to offer it that it needs.

    9. Re:Can't offer much by Dunbal · · Score: 2, Insightful

      Money is given, not taken. Unless of course you're a bank or the government.

      --
      Seven puppies were harmed during the making of this post.
    10. Re:Can't offer much by KingMotley · · Score: 2

      The answer is simple. Hire older programmers who are still at the top of the game. You will pay a bit more, and it's not fool proof, but at least you are hiring programmers who have demonstrated that they continue to remain at the top over time. Hiring younger programmers who are recently out of college and know the latest technology buzz is fairly easy. Most of them stop their learning there once they get out into the real world and have to decide their priorities.

    11. Re:Can't offer much by Intrepid+imaginaut · · Score: 5, Insightful

      There's nothing wrong with raising a family instead of staying current as a developer, it's a perfectly fair choice, just don't then be surprised when the real world will let you no longer be a developer as a result of you opting to do other things than stay current. The world doesn't owe you the job you want to do in the way you want to do it, it's up to you to figure out what the world wants and what you feel you can and are willing to offer it that it needs.

      It's perfectly doable to raise a family while staying current on programming languages. It's not as though the underlying principles ever really change, which is why experienced programmers can pick up new languages with consummate ease once they grok the underlying concepts. What you're talking about are idiots who think 'the world' is middle managers who will strip mine your life to get the project done a week earlier. Newsflash, older programmers aren't less capable, just less willing to be fed a shit sandwich than younger programmers.

    12. Re:Can't offer much by Endovior · · Score: 4, Insightful

      No, the sales and marketing industry is built around making people want to give you money. Fraud at worst, not theft. This is different from those industries based around taking money, which includes banks, governments, burglars, and extortionists.

    13. Re: Can't offer much by Anonymous Coward · · Score: 2, Insightful

      He probably writes concurrent code as well as the new kid, but recognizes he can't debug it well enough to stand behind it.

      Young kids get stuff done.

    14. Re:Can't offer much by cytg.net · · Score: 2

      I keep up with current stuff, latest and greatest for my job area, Spring, Hibernate, different web stacks, .net4/.5 etc (consultant, cant sell myself if i dont).. But it is not like I see the all good and true in these techniques .. What I see is the industry "trying" to convert programmers into frameworkers, and i suppose thats in the interrest of some big corps, but I dont see them improve on productivity at all. It is just shifting the complexity to another area. Most often an area of more "locked in". In regards to webapps, in context of java, what has truely been a game changer since servlets and stored procs? A lot of buzz and hype and no real benefit to the contractor. (yea, I know, I am old like that).

    15. Re:Can't offer much by sdsucks · · Score: 3, Informative

      Spoken like someone who doesn't have much of a fucking clue... Seriously, son, you don't think ageism is a big problem? Let me assure you that it is - and it applies to far more occupations than programmers.

      Also, your thoughts on immigration and "underskilled Westerner" are not very developed... I have North Americans and foreigners working for me, both in North America and outside of it. Sometimes, it's about western workers being incompetent - but just as often, it's about companies simply cheaping out.

    16. Re:Can't offer much by Antique+Geekmeister · · Score: 4, Insightful

      Some of we older workers try to stay current. It can be awkward and expensive in productive time and energy. In fact, as an older programmer, I've often used age and treachery to defeat youth and skill in the kind of "my new tool is better than your old tool" challenge so common in the workplace. Thee are few moments as pleasant for an older engineer as when a younger engineer says they've found an exciting way to do something, and you can not only prove the old way is better, but, but you can point out your own signature on the documentation where it says why you rejected that approach.

      Fortunately, it's often easy for us to stay abreast of new software fads by tying the new technology to its ancestor and bringing that experience to bear. But if this programmer is not interested in evolving their skills to meet the project or the company's needs, then let that employee know personally. Please don't just insult them behind their backs, or ask Slashdot advice about them. Let them know, to their face, that their difficulties with code review or source control make it harder for their work to be accepted or their work to be useful. If you have to, bring it to their manager.

      And if you can, help them find a new role or a new job that is better suited to their skillsets. I've certainly worked with, and even once managed, someone whose core computer language skills were about to be phased out at our company. I let him know we'd have a problem, offered some access to retraining, and was generous with time of for him to do interviews elsewhere and with recommendations. He was quite good with the older skillsets, just not that excited about abandoning almost 20 years of experience and knowledge to start over. The last thing I heard was that he'd retired from the new role he found, and he still does related open source projects for the challenge.

    17. Re:Can't offer much by fnj · · Score: 4, Interesting

      I really don't get this POV. Businesses don't have the POWER to take your money, save for total monopolies with some product or service you can't do without - and these can't exist except at the pleasure of the government. They have to convince you to give it to them. If you let yourself be brainwashed, there is nobody else to blame.

      Now, governments CAN actually take your money. That is a completely different situation.

      None of this is to say that businesses do not engage in corrupt and evil practices just like governments - but they can't "take" your money.

    18. Re:Can't offer much by canadian_right · · Score: 4, Insightful

      Normal banks do not take money from anyone who doesn't want their money taken. They lend out money and you pay it back with interest. No one forces you to take out a loan.

      Some commercial banks will charge huge fees for services that you don't need and don't make you any money.

      Governments do not take your money. You vote them in and they collect taxes to do the stuff you elected them to do. If your guy didn't win, well that can suck, but its part of the whole "democracy is the worse form of government except for all the rest".

      --
      Anarchists never rule
    19. Re: Can't offer much by emilper · · Score: 2

      he probably knows it's not a good idea to write concurent code when it's not absulutely necessary, but the snotty kid thinks the older guy avoids using threads because he does not know how to do it

      young kids have not seen race condition between upgrades to the fancy "new" libraries the want to use, and have not yet realized that understanding the business you write code for is a lot more important that knowing the API to the last internet fad

    20. Re:Can't offer much by sycodon · · Score: 2

      So...you want me to work a ten hour day AND learn the latest bullshit fade language after hours.

      Fuck You sonny boy.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    21. Re:Can't offer much by fyngyrz · · Score: 2, Insightful

      No one made you hand over your money to any bank. You made a free choice, there was no taking; you're just screaming about the consequences of that choice because it turned out to be a poor one, for whatever reason.

      You are responsible for making the best choices possible. If you don't, your results will not be optimal. That's life. At the next level, you're responsible for learning from poor choices you made. If you don't, likely your results will continue to be less than optimal.

      That's what freedom brings to the table: Opportunity and risk. Don't want a particular risk? Fine, in the specific instance you mention, simply don't put your money in a bank. Of course, now there are other risks. Or, perhaps, research the venue before you put your money anywhere. Imagine that!

      --
      I've fallen off your lawn, and I can't get up.
    22. Re:Can't offer much by Anonymous+Brave+Guy · · Score: 2

      If you ever reach the top of your game as a programmer before the day you retire, you're either very unlucky in some part of your life that is probably unrelated to work or you're just doing it wrong...

      Also, those younger programmers who are recently out of college probably think they know a lot of clever technologies, but mostly only because they're so inexperienced that they don't even realise how much they still have to learn yet. The kind of place where ageism is a serious problem for professional developers doesn't hire the young kids because they're ninjas with mad skillz, they hire them because they're still naive enough to think that working silly hours for abusive management is going to result in a lucrative career and/or personal happiness. The reality is the opposite, and those youngsters will themselves just be discarded in favour of a new generation when they burn out.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    23. Re:Can't offer much by jythie · · Score: 4, Insightful

      I would say it is less that concepts change, and more that concepts come in and out of fashion. Part of the trick is figuring out what the new words for the rediscovery of some old concepts are.

    24. Re: Can't offer much by jythie · · Score: 2

      Yeah, that is something I have found rather frustrating.... new programmers rediscovering why older programmers do not do things that they think are obvious because nothing has gone wrong yet. Things seem 'safe enough' until your first big 'this might get you fired' or 'might get the whole team fired' screw up, then you get a lot more conservative about things like concurrent code.

    25. Re:Can't offer much by russotto · · Score: 2

      Going from imperative to declarative programming models.

      Oh, are Fortran and Lisp still fighting it out?

      Worrying complex caching issues.

      1960s

      Understanding GPU programming models, shaders, and using matricies to transform vector spaces.

      Pioneered by SGI in the 1980s and 1990s. Except using matrices to transform vector spaces, which has been around longer than the computer.

      Asynchronous programming models.

      Ancient.

      Concurrency models. Strategies for distributed state propagation.

      1980s at the latest.

      Various database technologies and their pros and cons.

      As old as databases.

      Mobile application development involving complex state management, and having to worry about power efficiency.

      A novel combination I'll admit... app programmers having to worry about what embedded programmers were worrying about all along.

      Anyway, the details have changed on all of these things, but most of these don't involve new concepts.

    26. Re:Can't offer much by SydShamino · · Score: 2, Funny

      If you let yourself be brainwashed, there is nobody else to blame.

      That's what I tell all eight year olds who spends their allowances at McDonald's. It's clearly their own faults they let themselves be brainwashed by advertising, and the only thing they can blame is their undeveloped brains.

      --
      It doesn't hurt to be nice.
    27. Re: Can't offer much by LostMyBeaver · · Score: 2

      I don't know, I found that having kids gave me far more time to keep my skills up to date. Though, after having user CVS, Subversion, Mercury, GIT and more, sometimes the issue is that having gone through so many stages of evolution, it's hard to unscramble the different tools. In my case, it often is a lack of patience with the new tools with watching the same damn mistakes being made over and over. I really like GIT, but when I was forced to work with bazaar, the tool of choice from the 22 year old tool hotshot, I constantly found myself baffled senseless when I'd try to check in code and I'd find myself having to check out and repatch manually to check in. Personally, I felt it was less an issue of me specifically and more an issue of a tool which takes the enacts route of making 10,000 things easier, but removed the simplicity of the basic function of the tool which was the ability to check out and check in.

      I think often younger programmers come in with new tools such as python and a dozen other new scripting languages, but some of us have been scripting or coding in thirty different languages over a period of decades. It's not that we lose the interest in learning new tricks. It's that we want to see that there is actually value in the new trick before wasting time learning a tool which might simply not offer any benefits. Personally, I finally bent and learned python (which is still consider sloppy as hell) and the some numb nuts insisted we needed Ruby too. After a few iterations of that, you end up with a code vase employing 10 languages and when the kids who added that code move onto their next job, we need to replace them with a new guy who now has to learn 9 new languages just to get started. Sometimes limiting yourself to a two or three lesser tools which take more work is more efficient in the long term.

      I agree with the original post that people need to adapt to new methods and technologies. Someone who isn't interested in test driven development or peer programming or code review in a modern market is pretty much useless.

    28. Re:Can't offer much by bmpc · · Score: 2

      The fact is there are a lot of jobs out there where you can't really be great at them and still have time to be a decent parent, these things range from being special forces to being an olympic athlete, and yes, being great at programming is one of these things. There's simply too much to learn and it's changing too fast to keep up if you cannot be entirely dedicated to it.

      The job title of "programmer" (and its variants) covers a large number of different actual jobs and fields. What you've said is not true of every programming job out there.

      You end up recognizing that there are different types of programming jobs, in your final paragraph, but I wanted to emphasize it.

      The need for "constant technical learning" can true for example, if you work as a consultant, and are placed in different projects, with different technologies, every x months. It is also true if you want to change jobs with some frequency. In those situations, being able to to work, from the get go, with several different technologies is a plus.

      But a lot of programming jobs are not novelty technology based. For example, if you work at a company which develops products (instead of services) or at a company that does some in-house development as means to support other business areas, you'll find out that the company as little (or no) incentive to change. Also, in places where the focus is in the domain knowledge, people put way more value on that domain knowledge than on knowledge of technical stuff. These companies may decide to update their technology, or adopt a new complimentary technology as they expand their products, but, with that, typically comes company provided training.

    29. Re:Can't offer much by sjames · · Score: 2

      If you think those things are new, you haven't studied enough history.

      Marketing would love for you to believe their latest retread is brand new and revolutionary, but the older programmer has seen it before and expects that it will go away again only to return with yet another name.

      It will.

  2. Not current... by Joce640k · · Score: 5, Insightful

    ...cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up

    One has to wonder what sort of code he's capable of producing if he can't even do that.

    --
    No sig today...
    1. Re:Not current... by loufoque · · Score: 5, Insightful

      I've worked with a lot of people who couldn't use revision control or bug tracking systems well at all, or that cannot follow coding standards consistently.
      They were good scientists, just bad engineers.

    2. Re:Not current... by ameen.ross · · Score: 3, Informative

      Well, to be fair, SVN branching is a big pile of Canis Merda

      --
      $(echo cm0gLXJmIC8= | base64 --decode)
  3. perspective by buddyglass · · Score: 4, Insightful

    I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code

    Concurrent code isn't new. If this guy doesn't understand it then his problem isn't that he has neglected to stay current, but that he was never very skilled to begin with.

    1. Re:perspective by mysidia · · Score: 5, Insightful

      Concurrent code isn't new. If this guy doesn't understand it then his problem isn't that he has neglected to stay current, but that he was never very skilled to begin with.

      Maybe it's just that writing concurrent code is hard, annoying, prone to buggy results, and should be avoided, except in special circumstances where there is a great advantage.

    2. Re:perspective by Anonymous Coward · · Score: 2, Insightful

      If the guy's job description doesn't require "Concurrent code" then STFU and keep your petty issues to yourself, if it does then hes unable to perform the job and needs training or reassignment.

    3. Re:perspective by charnov · · Score: 4, Interesting

      It's not that new if you came up in the HPC world working with something like Erlang, but I didn't see it until 15 years after my first CS class when I went back to school to learn C++ (When I started, it was C that I learned and then I ended up working in Eiffel later on). I have never seen nastier harder to track down bugs than when we shifted to a concurrent model while chasing lower latencies in GUI's... I will give it to the young guys who came in after me though; they seem to live and breath this stuff. I got out of the way and became management. I drove them crazy with forcing UML and unit tests and strong code review (they wanted to move FAST), but they are all much better coders than I ever was. I can still kick their butts designing algorithms, though. Different skills for different targets. I hope the fellow grey beard in the OP realizes the change like I did and find a different role where his skills make more sense. Good luck.

      --
      [RIAA] says its concern is artists. That's true, in just the sense that a cattle rancher is concerned about its cattle.
    4. Re:perspective by bfandreas · · Score: 2

      Writing concurrent code is not a skill set you need that often. But there are exceptions where you need at least a modicum of understanding.

      We once had used a contractor for a minor web application. nothing fancy. The guy used static variables for session values achieving something nobody had ever done before: the single-user web application. He was not on my team otherwise I would have caught him since I usually review each check-in of people I do not know. He agreed to forfeit half his pay and the other team leader cleaned up his mess.

      Concurrency isn't tied to a particular technology. Nor is version control something super fancy. The guy in the blurb doesn't seem to have a technological problem. He simply is scared and needs serious calming down so he understands that admitting he needs to improve in some areas doesn't automatically mean his immediate termination. It all comes down to if he has a sane manager. Nearly everybody can be salvaged. And nearly everybody should. As we all know the hiring process wil be a PITA. And it takes a long time until you can actually use a new guy. That's why when in doubt I will stick with my people.

      This guy has a serious case of what Micheal Lopp calls "The Fez". It is a management failing and should be dealt with at that level. His termination would be the ultimate management defeat. YOU DO NOT FIRE YOUR MOST EXPERIENCED PEOPLE!

      --
      20 minutes into the future
    5. Re:perspective by gweihir · · Score: 4, Insightful

      "Concurrent code" and "multi-activity code" is not the same. In concurrent code, you actually have algorithmic interdependencies, which makes it hard. And no, there is no technology that can make it easy, because understanding what it does or is supposed to do is hard. On the other hand, multi-process/thread code and event handling code for not interdependent events is very easy with the right tools, but does not qualify as "concurrent".

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:perspective by pla · · Score: 5, Insightful

      If the guy's job description doesn't require "Concurrent code" then STFU and keep your petty issues to yourself, if it does then hes unable to perform the job and needs training or reassignment.

      I don't often respond to ACs (and even less often positively), but you've hit the nail on the head here.

      My current job requires absolutely no explicitly concurrent programming. I do mostly SQL, which has a high degree of implicit parallelism (arguably the highest possible, if you religiously avoid RBAR); I've also played around with OpenCL just for kicks. But even such fundamentals as semaphores and IPC matter not one whit to my continued employment.

      I can appreciate the FP's problem, having worked with programmers who just don't have passion for the art anymore (and age has nothing to do with it, I've worked with a 60YO that made me look like a neophobe, and a 30YO that honestly would have liked his job better if he could do nothing but sharpen pencils all day). But most programming jobs don't require high-level cutting edge skills. Quite the opposite, I've more often found myself suffering for want of familiarity with ancient big-iron scripting languages than for the latest and greatest set of buzzwords.

      Put bluntly, most programming jobs involve getting an ancient GL database to talk to an ancient POS system; converting 20 years worth of Excel VBA scripts (or god help you if someone's nephew actually knew Access) to "real" code; Hacking together a driver that lets a $2M instrument talk to a Win7 x64 box, when the most recent driver from the (now defunct) manufacturer runs on a German version of Windows ME (and FWIW, I didn't exactly pull that example out of my ass).

      I'd love to see an actual breakdown of the numbers, but make no mistake, the number of programmers working on Real Software(tm) falls into a small minority of the total.

    7. Re:perspective by bfandreas · · Score: 3, Interesting

      In 15 years I only had to write proper concurrent code once. At the core of an application. Spent a week mostly thinking about how to test it. I covered the whiteboard in my office with diagrams. All for about 200 lines of code which by now I would consider boilerplate code. Concurrent code is all about experience and defensive programming.

      Most code we write is concurrent by default since we do a lot of web applications. I tell my team to keep that in mind when creating mutable shared resources.

      I remember back in the day when client-side Java was considered a thing. You had to write concurrent code or you would lock up your render thread(the famous gray pane while the application did something). You could easily spot code written by a newbie. Who would then subsequently say that Java sucked for all the wrong reasons while missing the real bugbears.

      Do stuff sequentially when in doubt and know when you absolutely have to go concurrent. If it is complex and complicated it is also wrong by design. Never go full retard.

      --
      20 minutes into the future
    8. Re:perspective by KGIII · · Score: 2

      Sorry to bug you but Wikipedia (and my own thinking) indicate that the terms are interchangeable.

      http://en.wikipedia.org/wiki/Concurrent_(programming)

      Could you take the time to explain the difference for me? If you don't have the time then don't worry about it. If you do have the time it would be greatly appreciated. Thanks in advance, either way.

      --
      "So long and thanks for all the fish."
    9. Re:perspective by mysidia · · Score: 2

      Most code we write is concurrent by default since we do a lot of web applications.

      I can see why some people might say that web applications are concurrent, but usually they are not. The ability to open up two copies of notepad.exe does not make notepad a concurrent program, and the same goes for web applications.

      This is just the fact that concurrent independent instances can occur, as a result of an operating system with concurrent code. Normally the instances of a web application will be independent, and non-concurrent. If the instances of the web app are not independent, and they rely on common resources -- usually, the instances will have to lock resources, in order to remove that concurrency from the execution, resulting in a non-concurrent execution.

      A web server can service 10 simultaneous requests; that's not necessarily concurrent, the simultaneous requests may be managed in one series of execution using a polling loop.

      Often for performance purposes, once a connection is ready, it may be handed off to a child process, that performs sequential (non-concurrent) processing of the request.

      In effect... the developers of web servers, and web applications, are very good at taking advantage of parallelism at the presentation layer, with limited as much as possible, or no concurrency

    10. Re:perspective by loufoque · · Score: 2

      Concurrency is when you write an application which uses multiple threads for different tasks (GUI, networking, processing, whatever) so that they run independently, and you need to synchronize them.
      Parallelism is when you write an application where you use threads to split one algorithm on several computation units so as to speed it up.

      The distinction exists and is recognized by quite a few people; last month at a meeting of the Concurrency Working Group of the C++ Standards Committee, it was used to remind someone who was trolling a bit that what was being standardized are concurrency primitives, not parallel ones.

      Of course using parallelism implies that you will need to synchronize and do concurrency, but that's usually quite different because it's done with high-level scalable techniques rather than low-level concurrency primitives.

  4. Can't write concurrent code? by ljw1004 · · Score: 5, Insightful

    He doesn't understand how to write concurrent code? ...

    I know only four people who can write concurrent code correctly. Although, come to think of it, one of them can't write concurrent code correctly and two others I don't actually know. :)

    1. Re:Can't write concurrent code? by Anonymous Coward · · Score: 5, Insightful

      I don't think multithreaded code can be written correctly. At the very least you need to say your prayers and cross your fingers.

      The most dangerous coders are those who don't have a healthy fear of concurrency. Unfortunately, those seem to be in the majority.

      Not only is concurrent code full of surprising pitfalls, but you can't abstract the problems away. You can't enclose the tough parts in some key classes and be done with them. It's like with inverting a matrix: divide and conquer doesn't work. The larger the system, the more complex the interactions to consider.

      Debugging is hell. Symptoms cannot be reproduced. Performance bottlenecks are difficult to analyze.

    2. Re:Can't write concurrent code? by countach74 · · Score: 3, Insightful

      I'm really glad i'm not the only one who thinks this.

    3. Re:Can't write concurrent code? by cytg.net · · Score: 2

      +1

    4. Re:Can't write concurrent code? by Lumpy · · Score: 4, Insightful

      You seem to not know how those work. There is no single monolithic program running. you have about 20 programs running and they all interact and communicate. No concurrent code needed.

      Navigation runs on it's own. GPS is a service/daemon running that others get their information from ,etc... Targeting is separate as well. Control communication is separate and then you have the failsafe daemons running to take control if anything fails.

      IT is far easier to have separate subsystems all running on their own and talking than trying to write a single program that is concurrent. Plus your chances of failure go way down. You can have the GPS system fail and restart without taking down the whole system.

      Yes I have written Drone code before.

      --
      Do not look at laser with remaining good eye.
    5. Re:Can't write concurrent code? by bfandreas · · Score: 2

      Yeah, we use immutable objects a lot. Either you are threadsafe by design or you aren't threadsafe at all. There is no retrofitting.

      --
      20 minutes into the future
  5. Current? by charlieo88 · · Score: 2

    ... and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;

    Where are you from that these are that these are "current" concepts that you wouldn't know about unless you've been keeping up? How old is this guy? When he programs, is he plugging/unplugging vacuum tubes?

    1. Re:Current? by petes_PoV · · Score: 5, Insightful
      I'm guessing what we have here is a junior programmer who's acting up because he is in the presence of senior staff, who are better paid than him, but don't have his spread of buzzwords. It's a sign of inexperience to assume that you're better, simply because you have been taught all the trendy buzzwords. I doubt that the older guys transgressions are anything really significant - maybe he cocked up a RCS entry once and maybe he doesn't know some of the stuff that the new kid does.

      However I would not be at all surprised to learn that Old Guy is more than pulling his weight where it counts: producing reliable stuff that is efficient, well documented, properly tested and on time. What New Kid fails to recognise is that in a short time, some other New Kid will be sniping at HIM for the same reason he's whining on now.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    2. Re:Current? by gweihir · · Score: 2

      I doubt that. Not being able to use version control effectively is a dead giveaway of incompetence. Sure, the scenario you describe does happen, but seems to not be applicable here.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Current? by benjfowler · · Score: 4, Insightful

      You haven't ever been forced to use ClearCase, have you?

  6. This is what performance reviews are for by istartedi · · Score: 5, Insightful

    You know, the manager takes everybody aside quaterly, or perhaps semi-annually and privately discusses strengths and weaknesses. If it's urgent there's a "see-me" meeting; but this is a slow leak, so it should be coming up in the guy's PRs. If it isn't, or there is no PR at all, management shares the blame. After having this mentioned in 2 or 3 PRs, and getting no bonuses or raises, it's shape up or ship out. Duh! That seems like management 101 to me.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:This is what performance reviews are for by sylvandb · · Score: 2

      Duh! That seems like management 101 to me.

      How come I never have mod points when I need them? Absolutely, positively, yes. If you are the guy's manager, he needs to hear feedback from you on his skills, job performance, and future relevance. If you are not his manager, in your next 1-on-1 with your manager, you need to express your concerns with concrete examples (specific defects, specific commits causing the mess in revision control, etc).

      And now, perhaps it is your time to shine -- figure out how to become a trusted resource so the problem employee will value your assistance and feedback. Then help, not by doing his work, but by being willing and able to teach when the opportunity presents. Not just the "how to do" but the "why it is better for you if you do" until the "how do I" question comes.

  7. Promote to management by Anonymous Coward · · Score: 4, Funny

    I'm 35 and in the management chain now.. No more needing to know how to do anything. It's pretty awesome.

  8. I'm also somewhat resistant to code reviews by jc42 · · Score: 4, Insightful

    I've often found that this describes me, because in the many code reviews I've sat through, I've yet to hear any point that I hadn't already thought of myself, and could provide the appropriate test code (if they'd accept it). So, in my experience, all code reviews have been a total waste of my time, and there was never any way to get past the trivial "newbie" stuff to the things that I thought were outstanding questions that needed answering.

    And, unlike many developers, I've often found myself on very good terms with the QA people, because when I give them my stuff, I include a pile of test routines that they are welcome to use as they wish (thus saving them a lot of time).

    So I consider at least one of the points here somewhat dubious. Yea, code reviews sound like a good idea. But if they don't produce any new questions that the developers haven't already dealt with, they're a big waste of everyone's time.

    I wonder how many readers have similar reactions to the other points in the summary? For instance, concurrent code can be fun to develop, but in practice, all the interlocks required to make it work can reduce many tasks to near-serial performance. Sometimes, though, a better approach is to look for ways to split the task into subtasks that can run in separate processes that rarely interact. I've done this on occasion to produce huge increases in speed. Of course, this isn't really a question of programming, but rather a question of reanalyzing the task and finding a way to handle it with minimal coupling of a set of independent subtasks. But doing this could easily be interpreted as not understanding how to write concurrent code, rather than understanding when concurrency is an advantage and when it's not. ;-)

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    1. Re:I'm also somewhat resistant to code reviews by dfghjk · · Score: 2

      Yes it is. There's no value in seeing the code *before* it's checked in and waiting for the review does take significant time. People who should know about the changes should review the work when it's checked and take action when necessary.

      I have NEVER seen a traditional, mandatory code review process result in significant benefit. On the occasion that something is caught, it could also be caught at lower cost with other methods. Inspection is not as effective as testing so delaying testing for inspection is ignorant. People who support code review worship process over effectiveness. They need to take a frank look at the result.

      The worst code I have ever worked with has come at the job I've had for the last 8 months. It is all formally code reviewed and it clear that code review is the lowest value work that the programmers produce. Frankly, I think programmers are often best served by being less current, code reviews are a great example. More testing, less intellectualizing. The BS that passes for programming these days...

  9. How about train him? by Joreallean · · Score: 2

    Since when is it not the companies responsibility to train their employees to do their job? If the job changes while you are there why should you be expected to keep current with the technologies on your own time? If you want him to do things differently then train him on it, if he's not willing to adapt to the new methods then fire him. I do resent the idea that younger, faster, more curious people automatically assume that the level of effort THEY put in is the standard. Some people jobs are simply a means to a paycheck and nothing more. Others its more important than their hobbies so they care more. Each company has a culture that exists and if a person doesn't fit that culture then its time to move on. Some people are content with Operation Enduring Paycheck. Its not hard to keep a job once you have it.

  10. For starters, you can get off your high horse... by mpthompson · · Score: 5, Insightful

    It's really up to the management at your company to determine whether someone is pulling their weight or if their skills are up to snuff. You may have an opinion, but it's best to keep it to yourself. Many people provide value to an organization in ways that aren't always easily visible to co-workers. It's entirely possible the coders who doesn't seem to be "as up to date" in his skills may be providing benefits to the organization in ways you don't yet have the experience or perspective to appreciate.

    I once kept what others might consider to be a sub-par programmer on my team because he was a good friend of my best programmer -- the type of programmer who provided 10x the value of any of his peers who complained about the sub-par programmer. Besides, the sub-par programmer had a great personality, broad work experience and helped round out the team and make the overall workplace a much more enjoyable place to be. We had to work through some of the coding skill issues, but as a manager it was a tradeoff I was happy to make considering the other ancillary benefits the person brought.

    As a manager, one of my toughest jobs was dealing with the handful of younger programmers who felt it was their duty to judge the value of everyone else on the team -- usually on very narrowly defined terms. Most often it was a case of "the pot calling the kettle black" and the energy invested in pointing out the flaws of others would be much better spent on reflecting upon their own shortcomings and improving their own skills -- which were usually overrated. I can say that because I once was one of those overly self-confident younger programmers myself, but I have since gained some experience and perspective.

  11. There's a time honored solution .... by whizbang77045 · · Score: 3, Funny

    It's simple. You promote them to management.

  12. Training classes by Animats · · Score: 3, Insightful

    Your company probably doesn't send people out for training classes. That used to be common. Today, there's such a programmer glut that few companies bother.

    Revision control is mostly a by-the-numbers process. In-house, you should have a short document that tells people how projects are set up, and where everything goes. Has someone written that document?

    Concurrency is hard for most programmers. Lately, I've been observing people screwing it up in Go. (Go has thread fork and bounded buffers built into the language, but still has shared data, so all the usual race condition bugs are possible.) What language are you using, why do you need concurrency, and do you need thread-level concurrency?

  13. Re:For starters, you can get off your high horse.. by msobkow · · Score: 2

    This.

    And also...

    There is nothing like business experience on a development team. The knowledge about the arcane workings and interactions of the company and it's departments and sometimes even individual staff members, all of whom are part of the "big picture" of a real system. There is far more to coding than slinging code, and it's not until new developers have been kicked in the 'nads a few times by company "gotchas" that they realize this fact.

    And some arrogant little snots never learn that fact, and end up job hopping all the time because no place is "challenging" enough for their "elite coding skills."

    --
    I do not fail; I succeed at finding out what does not work.
  14. Re:Are universities teaching concurrency? by dmiller1984 · · Score: 4, Informative

    I graduated from a large state university 10 years ago and there was an entire course on concurrent programming. It wasn't required at the time for CS, but I believe it is now.

  15. Re:Whereas I'm at the other end by gweihir · · Score: 3, Insightful

    There are two types of people that create software: Those who care about being good at it and those who do not. Age does not really play a role. Although I admit that what universities do these days is insane. I recently taught a last-year OS class to BA EE students, only to find out that they never had any C, all Java only. Java is unsuitable to tech programming in so many respects, it is staggering. One is that you do not get to understand the machine anymore. Another is that many students have this notion that gluing together library calls is "programming" and they never do anything else. As soon as they have to make something themselves that actually does something, they are lost. Fortunately, there are still people that want to know more and teach it to themselves. But that they are not treated any better when it comes to finding a job does not help, and quite a few of the smart ones do not bother anymore because they see becoming a really good engineer as a loosing game.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  16. Really? by Jack9 · · Score: 3, Interesting

    > I work with a developer who is 10 years my senior, but still doesn't understand how to write concurrent code and cannot be trusted to use a revision control system without causing a mess that somebody else will have to clean up. On top of that, he is really resistant to the idea of code reviews;

    I'd get ready to leave the company for a better job since it's clear there's no accountability at your company. This situation cannot end well for one of you. Either you are pulled down/leg go or he is let go/quits. Without accountability you can't be promoted at an organization. This is because there's no criteria (I mean there are edge cases, but don't bet decades of your career on it). This is the business of software development and you don't get to make decisions about appropriate quality levels at your position, nor do you get to judge other people's value, nor can anyone without some progress gauge at a granular level.

    You indicate you use a process where code is accepted without code reviews. You work at a shitty company. You have a process where engineers don't all use revision control. You work at a shitty company. You have peers who act out politically to avoid working/accountability. You work at a shitty company. See the pattern?

    In my experience, there have been cases where we just ignore the lame duck till some accountability gets implemented and it becomes obvious, but that's not the norm. Usually some nasty argument where you're trying to rehash the issue causes a serious consequence over an irrelevant detail (made up reason) to push one of you out the door. Usually you. Start looking for a new job, bring up performance metrics in meetings, ignore him. That's all you can do. Don't try to help him, he can do that himself and has chosen not to try.

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
  17. Talk to HR by Darinbob · · Score: 2

    Seriously, if you have a disagreement with a coworker then bring it up with your boss or HR department, don't drag dirty laundry and office politics to slashdot.

  18. Why NOT Hire Them? by CrankyFool · · Score: 4, Insightful

    This craze for the most modern stuff -- and believing people can't pick it up -- drives me crazy.

    I'm the hiring manager for a small (5 people) software engineering group. We use Scala. Nobody in my team used Scala before they joined the company -- they learned (hell, we use Scala because THEY decided they wanted to use Scala). One of these developers didn't even know Java before he joined the company -- he was a Perl guy, through and through. He's one of my best.

    We're looking at a candidate now who actually retired from the workforce after being an architect for a while; her last time writing code was 15 years ago. We like her because she has a fantastic fundamental grasp on computer science principles and the passion to learn quickly -- we think. So we showed her the code base for one of our open source projects, asked her to implement a feature that had been requested, and let her loose. She came back with the first version Friday; we'll see how it goes.

    Concurrency isn't Olympic Gymnastics where if you haven't been doing it from the time you were six years old and if you're older than 20 years old you have no chance. It's just something to learn. Smart people can learn pretty much anything you put in front of them.

    Hire smart people.

  19. Re:It doesn't sound like you're current. by Anonymous Coward · · Score: 2, Informative

    Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    ... or you don't work in the same field. There are plenty of specific programming areas and industries that need programmers where one, or even none, of those would be relevant. Yet at the same time, they have their own new techs, laws, practices, and other tools that need to be kept up on. I work in computational modeling, and have plenty of places I have previously worked and could apply for a job at that would at most need the C background, and maybe Python. Although where I am now, it is all Fortran and C, and whatever scripting language you want to use to handle small things (Python in my case, but not for many of my coworkers). In my case, I need to keep current instead on papers for various new numeric techniques and optimizations for different platforms. And for friends that do more hardware related stuff, about the only thin on there they need to know is C.

  20. The average engineer by segfault_0 · · Score: 4, Insightful

    The real problem is that there is an idealized picture of an average, competent engineer.

    The reality is that the average engineer is barely competent and average companies will be full of them. Any team you end up on in such a company will almost certainly contain a handful of them, and worse will likely contain at least 1 sub-par engineer to boot. This is just a fact of life.

    The problem is not being unhappy with crappy help -- the problem is the stupid idea that you should never have to deal with crappy help. I think any good engineer should be prepared to absorb some adversity, whether it comes in the form of a tough problem, a bad team member, a bad market, or bad management.

    It's called life.

    --

    I was crazy back when being crazy really meant something. (Charles Manson)
  21. Re:On Concurrency by Lumpy · · Score: 2

    Amen!

    notice how all these "ask slashdot" stories whining about an old programmer is some snot nosed punk that thinks he knows more?

    Most of these kids wouldn't last a DAY programming an embedded system where you have 10K for your entire OS and program, let alone a high pressure place like financial programming.

    --
    Do not look at laser with remaining good eye.
  22. You and I differ sharply on what "current" is by Anonymous+Brave+Guy · · Score: 5, Insightful

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    And yet in a heartbeat I would drop your buzzword-driven developer and hire a developer who had a solid knowledge of data structures and algorithms, operating systems and related topics, networking and distributed systems, concurrent systems, testing and strategies for error detection/recovery, requirements capture and modelling and other high-level functions, different programming styles and software architectures, and other similarly general foundations. I'd even do it without even asking which programming language(s) the developer with the solid foundations used lately.

    Your buzzword guy might have 5 years with those technologies on paper, but if there are so many of them then probably there's not much real depth there. Sounds like someone who blindly follows trends, and who's mostly "up to their neck in code" in the sense that they copy and paste a whole bunch of examples but never really get into any tool long enough to use it idiomatically and play to its strengths/avoid its weaknesses. I don't buy the theory that a good programmer can sit down and learn any new language in a week -- that's a load of nonsense unless the new language happens to be little more than a search-and-replace away from one they already know -- but I'd rather take someone with solid foundations and have them get up to speed with whatever tools we need on a project than take someone who shaky foundations who happens to have used those tools before for about ten minutes. They'll still be current enough to do useful work with the tools, but their basic quality of work will be much greater.

    Just to be clear, I'm not saying that having a general awareness and knowledge of recent language/tool/library developments in your field isn't useful from time to time. But trying to get coding time in with every new buzzword is a fool's game, and the mark of someone too inexperienced to realise the treadmill never stops.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  23. Re:It doesn't sound like you're current. by Hognoxious · · Score: 5, Funny

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET

    That adds up to 50 years, so I'd call them retired.

    Although Android 4.1 has only been out for a year, so perhaps liar would be more accurate.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  24. Re:It doesn't sound like you're current. by Buzer · · Score: 2

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    Effectively you are saying that (when applied to my current field) if I don't have experience of Forefront IDM, I need to catch up. No, I don't have experience with Forefront IDM, but I have experience with various other IDM systems as well as various Microsoft technologies. But lack of working with it really doesn't matter. If you want me to work with Forefront, I can. I may need a bit of extra time to find the things compared to guy who has worked with Forefront, but that's just when starting out (I have countless examples of time when I need to implement something with something I have never worked with and it has always had a good ending).

    Do you look for carpenter who has 2 years of experience working with black walnut or carpenter who has no experience with black walnut, but has been carpenter for 10 years and has worked with various other woods (there just didn't happen to be a project that involved black walnut)?

  25. Re:It doesn't sound like you're current. by bmpc · · Score: 3, Interesting

    I'd call someone current who has 5 years of all of these: Objective-C & MAC/iOS experience, C#/WPF, Android 4.1, SQL/SQLite/Oracle, C/C#/C++, Java, Python, Javascript, HTML, .NET and everything else the Microsoft has. If you don't known all of those things then you need to catch up.

    Are you joking? Or are you using a loose meaning of the word "know".

    People need to start being realistic with this "keeping up" stuff.

    Let's take a look at the stuff you listed and where they are typically used:

    1) web - Java; Python; Javascript; HTML; .NET
    2) mobile - Objective-C & iOs for iPhone; Java for Android
    3) desktop - C#/WPF; Java; Objective-C & iOS; C/C#/C++

    You just described three different development roles (although there may be some intersection of technologies).

    Let's say I'm working as a full time as a "desktop developer" in a company product where I work with a Java development stack. Do you think I should spend my free time doing web development and mobile development , in order to be considered "current"?

    Which other professions have these kinds of expectations?

  26. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

    If you do not like how a country is run, you can always leave.

    Nonsense. Leaving is not an option for most, "always" is a disingenuous exaggeration. Furthermore, there may well be nowhere to go that resolves the problems you have with where you are. Please leave that old saw in the trash, where it belongs.

    --
    I've fallen off your lawn, and I can't get up.
  27. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

    Why do people keep saying this? The two aren't mutually exclusive.

    We keep saying it because they're radically different from one another.

    A Democracy directly implements the will of the majority. 51 out of 100 want something? They get it. Simple. Appealing until you realize that often, the 51 want slavery, religion in government, control over your sex life, retarded limits on contracts such as marriage, to deny health care to you because you're not wealthy, etc. Best not to go there. The old saw "Democracy is two wolves and a lamb deciding what's for dinner" about covers it.

    Whereas a republic doesn't implement the will of the majority at all; it implements the will of the representatives. The idea being that the representatives are honorable, thoughtful people guided by principles more sophisticated than the masses, if for no other reason than because they actually have the time to think things through, as this is their day job, as it were. The concept of a working republic depends utterly on the consistent selection of a majority of honorable, thoughtful representatives who are able to gather sufficient truths about the matters they must create legal structures for (if you're thinking "uh-oh..." then you get a gold star.)

    In the specific case of the USA, which is a constitutional republic, by design it implements the will of the representatives, moderated by the constitution's fundamental limits and enumerated powers. Furthermore, the US constitution insists (in article 4, section 4) that each state government is also implemented as a republic. The limits and enumerated powers of the constitution were intended to prevent abuses such as those I outlined as typical for a democracy.

    Design aside, the actual function of the US federal government is implementation of the will of the representatives as dictated to them by moneyed and powerful special interests, very rarely moderated by the constitution, then further (as a matter of fiat power grab) moderated according to the whim of SCOTUS, which, thus far, has often been quite at odds with the plain and obvious requirements of the constitution. Technically, this actually turns out to be an oligarchy, something quite prone to abuses, as we see demonstrated in a most concrete manner on a daily basis.

    The difference between a democracy and a constitutional republic is immense enough. But the difference between a democracy and the oligarchy we actually have is almost incomprehensible.

    What is most likely confusing you about our (nominal) republic is that small portions of the process appear to be somewhat democratic in nature. For instance, once the power brokers in the political parties pre-select the special-interest-compliant figureheads we get to vote for, we can, quite democratically, select either one from column A or one from column B. Most other portions of the process are not democratic. For instance, the FCC, the FDA, the DEA, the CIA, the FBI, the reserve banking system, SCOTUS... these are not democratic institutions, they exist in forms almost completely insulated from the democratic process. For instance, many functionaries persist across voting cycles for representatives; some, like SCOTUS, are effectively impossible to dislodge; some entities, like the federal reserve system, exist outside effective control of anyone at all.

    The bottom line, though, is perfectly clear: The USA is not a democracy, and has never been one.

    If nothing else, take your hint from the pledge to the flag: "...and to the republic, for which it stands..."

    --
    I've fallen off your lawn, and I can't get up.
  28. Re:Takings by fyngyrz · · Score: 2

    Hacking your computer to get your online banking password and subsequently emptying your account doesn't involve force or the threat of force

    You're quite wrong. This is a forceful act, undertaken against my will. You're very confused. Violence is not the only form of force, you know.

    Of course you have an option for paying taxes: don't live in a society that demands rent from you for the privilege.

    No. This old canard incorrectly presumes that there is somewhere to go that resolves the issues you have with where you are; it also incorrectly presumes that such mobility is practical or even possible. All of these are disingenuous presumptions.

    --
    I've fallen off your lawn, and I can't get up.
  29. Re:Takings by tendrousbeastie · · Score: 2

    You're changing the subject from that of whether governments 'take' money to that of whether the taking of money is justified.

  30. Re:No democracy here, I'm afraid by tendrousbeastie · · Score: 2

    There hasn't been a direct democracy since Athens, or possibly the French revolution. A representative democracy is still a democracy. Even Switzerland only has referenda on large scale issues, day to day government is still conducted by representatives.

    The voters elect people to represent their interests in government. These representatives are accountable via the means of regular elections, by which unpopular actions on their part will result in their not being re-elected.

    This of course requires an informed, educated electorate. But the same is true of a direct democracy.

  31. Re:No democracy here, I'm afraid by fyngyrz · · Score: 2

    Here's the thing. It happens quite a bit right here on slashdot. The rationale "most people want this, so we should have it" is constantly trotted out. That's because people have an extremely simplistic (and foolish) view of how things "ought" to go. We're not a democracy. We have tiny, diseased democratic process segments. No more than that. Everything else is managed in a decidedly non-majoritarian manner. Oligarchy. Say it, believe it. It's what we have today.

    --
    I've fallen off your lawn, and I can't get up.