Slashdot Mirror


'Just Let Me Code!'

An anonymous reader writes: Andrew Binstock has an article about the ever-increasing complexity required to write code. He says, "I got into programming because I like creating stuff. Not just any stuff, but stuff other people find useful. I like the constant problem solving, the use of abstractions that exist for long periods nowhere but in my imagination, and I like seeing the transformation into a living presence. ... The simple programs of a few hundred lines of C++ long ago disappeared from my experience. What was the experience of riding a bicycle has become the equivalent of traveling by jumbo jet; replete with the delays, inspections, limitations on personal choices, and sudden, unexplained cancellations — all at a significantly higher cost. ... Project overhead, even for simple projects, is so heavy that it's a wonder anyone can find the time to code, much less derive joy from it. Software development has become a mostly operational activity, rather than a creative one. The fundamental problem here is not the complexity of apps, but the complexity of tools. Tools have gone rather haywire during the last decade chasing shibboleths of scalability, comprehensiveness, performance. Everything except simplicity."

372 comments

  1. Code the way you want... by Anonymous Coward · · Score: 5, Insightful

    ...just do it on your own time, and don't expect people to pay for it.

    He who pays the piper calls the tune...

    1. Re:Code the way you want... by Sowelu · · Score: 5, Insightful

      May I also suggest that you make your work and your hobby /different languages/, so you can more easily separate them. When I've worked and coded-for-fun in Java at the same time, I'm miserable. When I started taking up C# at home (can the language hate, it's fine for small projects) I had a lot more fun. Work in the web industry? Write native apps for a hobby! You CAN code for work and for fun, but only if the projects are different enough that you can get in an entirely different headspace while having fun.

    2. Re:Code the way you want... by SQLGuru · · Score: 4, Interesting

      I finally got to code when I switched from being an employee to being a consultant. My bill rate is high enough that they would rather me work than to get bogged down in meetings. Not saying it will work for everyone, but it worked for me. I've done more REAL work in the past two or three years than I did in the previous 10.

    3. Re:Code the way you want... by epyT-R · · Score: 2

      True, but that doesn't mean those paying aren't getting exactly what they asked for. Dumb corporate policies cost money.

    4. Re:Code the way you want... by i+kan+reed · · Score: 3, Informative

      I'm kinda surprised you chose C# as:

      A. Radically different from java
      and
      B. "Fine for small projects"

      I code for work in C#, and for fun in either python or whatever is topical to the project.

      I used to code for work in python, and for fun in C#, and before that any mixture of java, C, assembly, and scripty-fu-fu suited my professors.

    5. Re:Code the way you want... by Shortguy881 · · Score: 0

      Yeah, this guy just likes to complain.

      If you dont like where you work, work somewhere else (all those who think thats impossible are bad coders or wouldn't take a pay decrease to be happy at work).

      If you can't find a place that suits you, start your own. I have my own company working on artificial intelligence programs. Granted, I do it in my spare time and am currently the only employee, but I am enjoying it.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    6. Re:Code the way you want... by Anonymous Coward · · Score: 0

      Heh, thanks for this one. I've been doing a lot of my hobby coding in Java/Android as well as working full time in it. It's a lot of fun, but it does get to be a bit of burn out. The only thing that's really made it worth while is that everything I've writen in my blog/code on the side has been separate from any kind of stuff I actually do at work. I just started that Udacity course on AppEngine though, so that should break the monotony a bit while also giving me a small bit of backend knowledge.

    7. Re:Code the way you want... by gutnor · · Score: 1

      C# is radically different. Your IDE, your test env, your OS, your frameworks, language features, ... all those are different enough so that you will not feel at work when coding with it.

    8. Re:Code the way you want... by Sowelu · · Score: 4, Interesting

      Well, it's different in the ways that make a difference for me...which weirdly enough are "different syntactic sugar" and "a different IDE". It's not as different as it could be, but it does have the advantage of keeping me sharp in the same concepts Java uses as well. I don't have to yell at Eclipse when I'm at home, and I get legit excited when I can play with Linq. (What has my life become...) And that's enough to prevent burnout. But, projectwise, instead of writing backend server components for internet things, I'm writing one big program that decompiles an old retro game and extracts its map and graphics data with a nice graphical client. It feels too big for python. I guess at this point, "small projects" means "things that are not fifty-dev enterprise software things". Small enough that one developer can actually do it all.

      I can say that being one dev in control of an entire hobby project makes me a better unit tester (seriously, what company actually follows its own internal UT guidelines) and is great for architecture experience, if you are a midlevel SDE on the rise.

      There's probably something positive intellectually about having two languages with slightly different data structures; when you try to solve a problem the same way and are forced to make minor changes, you might find optimizations that are useful in both languages.

      My hobby language used to be Multi-User Forth. That got tedious.

    9. Re:Code the way you want... by zidium · · Score: 1

      PHP at work. HHVM+Hack at home ;-)

      I am **very**, extremely happy with this arrangement ;-)

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    10. Re:Code the way you want... by zidium · · Score: 4, Insightful

      Same here. I hire out people to go to my meetings for me. No joke. It works GREAT!

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    11. Re:Code the way you want... by cant_get_a_good_nick · · Score: 1

      When I heard the Learn’d Astronomer

      WHEN I heard the learn’d astronomer;
      When the proofs, the figures, were ranged in columns before me;
      When I was shown the charts and the diagrams, to add, divide, and measure them;
      When I, sitting, heard the astronomer, where he lectured with much applause in the lecture-room,
      How soon, unaccountable, I became tired and sick;
      Till rising and gliding out, I wander’d off by myself,
      In the mystical moist night-air, and from time to time,
      Look’d up in perfect silence at the stars.

      Sometimes it sucks when your hobby becomes your profession. But it doesn't have to stop being your hobby.

    12. Re:Code the way you want... by FatdogHaiku · · Score: 4, Funny

      When your hobby becomes your profession,
      They will both become an obsession.
      You will code all night long,
      While you're singing a song,
      That relates to your own retrogression!
      [BURMA SHAVE]

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    13. Re:Code the way you want... by Anonymous Coward · · Score: 0

      Personnally I am the opposite. I like feeling at home while I sitting at my desk at work. It also means that things I train myself on at home (which is the only training I get working for small local government) I can boost the apps at work with the extra knowledge/experience.

    14. Re:Code the way you want... by Anonymous Coward · · Score: 0

      I couldn't agree more! At work, the developers there use Java. That's fine, but I'm not paid to be a programmer. I have to deal with more day-to-day issues. My job is in Desktop Support and I get paid for solving problems. In a hurry.

      My language of choice? Either VBScript (for something that can be modified on the fly) or for more complicated problems - Visual Basic! Sure, you may laugh, but the IDE is ideal for Proof of Concept ideas that can be thrown together in a hurry and refined later. I can code a program for a quick fix for my customers in a couple of hours. Sure, it will never see the light of production, but it's not supposed to be, anyway. You have a strange problem with your PC that is affecting a few dozen other people? If I can code it, my entire team will use it - and raise our trouble ticket productivity numbers too!

      I learned programming years ago - and I've seen programming systems come and go. I remember when APL was supposed to be the next great wave. I saw the first Grace Murray Hopper award being given out to a company that designed an add-on to APL. I met Grace Hopper on several occasions. My point? I'm not new at this. Don't start the VB flame wars again. You won't change my mind.

      Anyway, I enjoy the languages I use the most commonly. They serve a purpose and are FUN. If you aren't having fun with your programming, maybe you need to try a different approach at programming.

    15. Re:Code the way you want... by Noah+Haders · · Score: 1

      i hire people to do the grunt work while I close new business.

    16. Re:Code the way you want... by Anonymous Coward · · Score: 0

      Have You tried playing around in clojure? You get to use all the java knowledge, in a language from a more civilized age.

    17. Re:Code the way you want... by Draugo · · Score: 1

      Do you watch Desertbus For Hope by any chance :)

    18. Re:Code the way you want... by Draugo · · Score: 1

      So if I'm to take that quote with it's original context then what you're saying is that the time for Clojure has already come and gone so there's no point in learning it...

    19. Re: Code the way you want... by loufoque · · Score: 0

      Why are you even using an IDE? If you want to be the most productive, use a multi-purpose text editor.

    20. Re: Code the way you want... by loufoque · · Score: 1

      And finding new clients and negotiating contracts doesn't take time?

    21. Re: Code the way you want... by Anonymous Coward · · Score: 1

      Why are you suggesting a multi-purpose text editor? If you want to be the most productive, use Emacs. Ain't nothing it can't productivize, especially if you hook up the optional rotary retroencabulator and high speed flux capacitor.

    22. Re: Code the way you want... by Anonymous Coward · · Score: 0

      You're a consultant. You do no real work worth a damn.

    23. Re: Code the way you want... by TheRaven64 · · Score: 1

      I was a consultant for a few years and didn't find that it did. Most of my customers found me, as a result of my open source work (usually to work on the same projects, sometimes to work on projects in similar fields). Contract negotiation didn't take very long (they list some requirements, you mutually agree on a date, you pick a number, if they haggle then you politely decline).

      --
      I am TheRaven on Soylent News
    24. Re:Code the way you want... by Xest · · Score: 2

      Don't really agree, I often use the same languages at home as work and I prefer it that way because I'm more productive due to being intimately familiar with the technologies in question.

      Most the work I've done in the last year has been C#, and I've been using it at home also. I'm much better off working like this than using say C++ for game development in my spare time because I can simply get more done. As an indie I'm not writing the latest and greatest FPS so C# with things like Unity, MonoGame and so forth are more than adequate for what I need and also the best option because there's nothing that'll get me up and doing what I want to do any faster. Sure I could use Java and OpenGL, or C++ and OpenGL or DirectX but I want to actually write games, not write engines.

      I don't see what using a different language would get me, other than less productivity. I simply use the right tool for the job and if the job is getting game development done then why wouldn't I use the same language as at work?

      It seems pointless to artificially cripple yourself by excluding a potentially superior tool for the task at hand just because it's also what you use at work.

      I don't really know what you mean by "more easily separate them", I find it easy to know when I'm sat at home rather than in the office, and I find it easy to tell that I'm doing game development rather than business development so I don't see what difference a language change would possibly make. But then, I'm also not sure what you mean by "can the language hate, it's fine for small projects". It's also fine for extremely large projects, so I don't really know where you're coming from there.

      But perhaps I've been developing long enough and have used enough different languages over the years (C, C++, Java, C#, PHP, and Javascript for example) that simply using a different language for the sake of it isn't really something that particularly excites me anymore. I just want to get things done using the best option possible after weighing up all the options available, and if that's the same as the language I'm currently using at work then so be it, and so what? The only reason I'd switch language is because it's either a better option, or because my goal is explicitly to learn or brush up on that language.

      To me the language is a triviality, it's such an irrelevance in the grand scheme of things, it's the design, the problem solving, and the end product that make the difference that keeps me interested in my spare time, I couldn't care less what it is written in, the language is just a small implementation detail, an important initial thing to decide upon, but small in practice once the decision is made. Getting caught up on language and library details is the antithesis of being a productive programmer - you shouldn't be thinking about the language or the libraries at all, the language should just flow from your fingers naturally without thought. It's the problem solving that should be taking up all of your thoughts so I'd wager if you're getting caught up on language details to even notice that you're using the same language as at work or not and that that in some way frustrates you then you may well lack familiarity with the language, its tools, and its libraries more so than you're willing to accept. Switching to something different again will only prolong the time with which it takes you to acquire that necessary familiarity to be productive.

    25. Re: Code the way you want... by loufoque · · Score: 1

      I guess that depends on the market, and possibly on your price.

    26. Re: Code the way you want... by TheRaven64 · · Score: 1

      Yes, almost certainly. The market for compiler engineers is very much a sellers' market at the moment. Universities neglected it for so long that most people graduate from undergraduate degrees with basically no knowledge of how a compiler works (if they're lucky, the know how compilers worked in the '80s), so there are 10 jobs for every person.

      --
      I am TheRaven on Soylent News
    27. Re:Code the way you want... by AmiMoJo · · Score: 1

      C# is great for small projects. You can slap together a GUI very quickly, or throw together a CLI app that doesn't need to waste time re-inventing the wheel or handling mundane stuff.

      I mainly write firmware in C, but on the desktop C# is a better choice for many applications.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    28. Re: Code the way you want... by BVis · · Score: 2

      What's your point? The main theory behind being an employee or a consultant (doing work for others in exchange for compensation) is to get paid as much as possible while doing as little work as possible. (The opposite is true for your employer/client; they pay you as little as possible while getting as much work as they can out of you.) Consultants extract money from the "job creators" and return it to the economy. Even if they did no work at all, that extraction justifies their existence.

      --
      Never underestimate the power of stupid people in large groups.
    29. Re:Code the way you want... by bluefoxlucid · · Score: 1

      I never hire independent consultants. They don't understand the use of project management, and just hack things together as quickly as possible. This is, of course, compounded by management wanting to not give proper budget to work with consultants properly so that they have time to write not-shit-code.

      Getting the programming consultant into meetings is the only way to get good quality work out of them. Throwing a requirements list at people doesn't help as much as folks think; you discuss that with the consultant, but you also bring them into the meetings with the primary stakeholders. That way they get to see what's going on, hear about the features needed, the use cases, and, in agile models, get feedback on each incremental deliverable. This allows the programmer to raise questions about what exactly is being asked of him, instead of just getting shoved in a room with a spec and then told him he didn't do it right--when there's 100 ways to implement what's on the spec and only 2 are apparently acceptable.

    30. Re: Code the way you want... by bluefoxlucid · · Score: 1

      Consultants extract money from the "job creators" and return it to the economy. Even if they did no work at all, that extraction justifies their existence.

      I'm coming to your house and breaking your windows. Then you can return some money to the economy. The glazier will be happy.

    31. Re:Code the way you want... by Anonymous Coward · · Score: 0

      Sowely wrote:
      "May I also suggest that you make your work and your hobby /different languages/ ..."

      I stared enjoying programming again when I started to learn Haskell. Learning Haskell was very fun and not extremely productive, so my only motivation for learning it was for fun. Haskell lead me to Category Theory which is also both fun and, for me, a low productivity pursuit. Who knows, maybe it will lead me to an interesting programming job someday.

      (BTW I am 50 years old and I kind of burned out of coding 10 years ago after finishing a 6000 line Visual Basic project in two weeks. After that I stopped writing code professionally for 9 years except for short programs in Matlab or Mathematica. About a month ago, my employer asked me to work on a C++ projects and, surprisingly, I'm enjoying it! I keep trying to find "monads" in our C++ code. )

    32. Re: Code the way you want... by BVis · · Score: 1

      And my insurance company gets to pay for it. Money extraction.

      --
      Never underestimate the power of stupid people in large groups.
    33. Re:Code the way you want... by Anonymous Coward · · Score: 0

      I do django at work, I do C# at work, I do java at work, I do NodeJS at work.

      There really is a huge misconception on the amount of work to do something in e.g. Python/Django or Ruby and C#.

      With the recent language enhancements, there really isnt much you can say that C# doesn't have that the others do. To get a simple app going, I'd venture to say that being familiar with all 3, ASP.NET MVC will get you there quickest. There are alot of niceties in python/django that save time, but in recent years most of the goodness has been assimilated into .NET

    34. Re:Code the way you want... by JaredOfEuropa · · Score: 1

      An interesting view. I don't agree that there are no consultants who understand the use of project management, in fact, more and more consultants come trained in formal methodologies for project management, change management, requirements capture, architecture, etc. And consultants increasingly come in to do more than code: they understand they need to know the business, and that means talking to people and attending meetings instead of coding all day.

      Interestingly, I got some gigs as a consultant because I didn't care for project management and following "proper process", but with an understanding of when it's important to document, get agreement, stick to the rules, and think things through. I got hired to do emergency work and innovative (highly volatile) pilot projects that teams of employees or consultants with compartimentalized skillsets and training to follow procedures simply could not complete in a satisfactory manner. Nice work if you can get it...

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    35. Re: Code the way you want... by BasilBrush · · Score: 1

      Because of all the domain specific tools you'll be missing if you don't use the IDE. Because the syntax highlighting and autoformatting is made for purpose and therefore probably better in the IDE.

      It's a good idea to have a good general purpose text editor in your toolbag for when you want to do some interesting editing task on a text file - often data rather than code. But developing applications - you're usually best off with a dedicated IDE for the platform and language in question.

      It's one of those stupid /. memes that vi,, vim or emacs is better for all situations.

    36. Re: Code the way you want... by bluefoxlucid · · Score: 1

      Each claim increases your insurance premium. If I can get all your neighbors in on it, your area becomes a "high-risk area" and you get to pay $1000 extra for insurance. A difference of 2 miles for me made my car insurance jump from $90/mo to $324/mo once.

    37. Re: Code the way you want... by loufoque · · Score: 2

      Good domain-specific tools are written as command-line utilities, and are even better if you wrote them yourself for your project.
      Text editing (which includes syntax highlighting etc.) is also much better with a text editor.

      Editors are also more flexible, scale better for large projects, and can do anything you need them to do.
      An IDE is extremely constrained and won't work properly whenever you need to do something that wasn't planned by the developer who coded it.

    38. Re:Code the way you want... by SQLGuru · · Score: 1

      1) You assume I'm independent instead of working for a consulting firm.
      2) You assume that I have no knowledge of project management even though my previous gig was as an employee of a company that followed project management processes.
      2a) You also assume that the employed project management processes are optimal. Usually they are not because the money people hamstring any attempt at doing any sort of true agile process.
      3) You assume that meetings are the only way to convey requirements instead of working closely with the subject matter experts in a more collaborative manner.

    39. Re:Code the way you want... by bluefoxlucid · · Score: 2

      A true agile process has an incremental delivery schedule. Rather than building the full deliverable and delivering, it identifies milestones as deliverable product. For example: a waterfall process for building a car would intake requirements and output a car; an agile process would produce the platform for inspection by the customer, followed by the suspension system, the engine, the drive train, interior, and so on, in some useful order.

      For a software product, this involves delivering partial functionality to the customer, who then examines it or even integrates it with his workflow. If there are issues, the functionality can be cheaply reworked; building on top of broken functionality could incur major rework when an issue is encountered, so this process actually reduces work.

      Agile is not Rapid Application Development. RAD has consistently been shown to be a large joke. Agile software project management accomplishes what RAD could not.

      You assume that meetings are the only way to convey requirements instead of working closely with the subject matter experts in a more collaborative manner.

      If you can handle two afternoons' worth of reading, I will direct you here (technical) and here (soft skills). These cover stakeholder management, which is "working with people". Part of that is working with SMEs.

      If you want to argue from an actual competent stance, you'll need to bother reading the (horrifically dry) PMBOK, fifth edition, particularly chapters 5 (scope management) and 10 (communications management). I found chapter 9 (human resource management) fascinating as well; chapter 11 (risk management) is a favorite of mine. Much of the content may sound like gibberish out of full context; reading the book from start to finish is like that, too, because they forward-reference things in the beginning (integration management immediately starts talking about the requirements traceability matrix, IIRC, which is 4 chapters later).

      The short of it is: there are many ways to get information out of people. Meetings are a good method, and arranging good meetings is a skill. Meetings have three isolate purposes: to share information, to develop alternatives, and to make decisions. Never perform more than one in the same meeting; you will make horrific decisions.

      To put this into perspective: We've worked closely with SMEs here, and done things wrong. Sometimes, meetings occur without the SMEs, and decisions are made contrary to what the SME recommended; others, the tech workers (network engineers, programmers, etc.) were consulted separately, and then excluded from decisionary meetings. The result is often people making decision and dropping impossible, poorly defined, or useless shit on you. Then you implement it, and they tell you it's wrong.

      By the by, one of the most important features of a good meeting is it's short.

    40. Re:Code the way you want... by jimmyfrank · · Score: 1

      Small projects like stackoverflow.com.

    41. Re: Code the way you want... by Anonymous Coward · · Score: 0

      Have you tried fishing?

    42. Re:Code the way you want... by TechNeilogy · · Score: 1

      I tend to work on two sets of code. The first set is the code currently under formal development. The second set is the code that will actually be needed at the end of the project when every figures out what we were really trying to build in the first place. I can stay ahead of the game on this second set because I skip all the usual formal cruft. Then, four-fifths of the way through the project, when the formal development goes pear-shaped, I pull out the second set of code and say “let's use this.” Sure it drives my hourly rate down and means some weekend work for free, but I have more fun, learn more, and have a better portfolio to point to. (FWIW, I didn't originate this technique, one of my very early coding mentors apprenticed me in using it. We used to say: “there are four plans: plan A is the spec, plan B is what management thinks we're doing, plan C is what we're actually doing, but plan Z is what we know really needs to get done and what we'll do on the side for when it all hits the fan.”)

      --
      "The wisdom of the Patriarchs was that they *knew* they were fools." --Master Foo
    43. Re:Code the way you want... by Meski · · Score: 1

      More fun if you do Windows coding for a living, to do Atmel assembly coding for fun. Not coding against an unfriendly API (like Windows) really is fun. And if you happen to sell your for-fun code, it looks dissimilar enough to work code for your employer not to take an interest.

    44. Re: Code the way you want... by BasilBrush · · Score: 1

      It wouldn't be a /. meme if there weren't people like you to repeat them.

      Good domain-specific tools are written as command-line utilities, and are even better if you wrote them yourself for your project.

      That's a bit of a giveaway that your problem is lack of good prewritten tools. Don't mistake the paucity of decent IDEs on Linux for an advantage.

      The Unix way was a huge step forward and a great way to work in the 1970s and into the 80s. But it's not the 1980s any more. We don't have to emulate glass teletypes. GUIs can do everything that command line utilities can and a hell of a lot more. And they do.

    45. Re:Code the way you want... by Anonymous Coward · · Score: 0

      Spoken like a true, uneducated retard who should not be allowed within 100 feet of a computer.

    46. Re:Code the way you want... by Anonymous Coward · · Score: 0

      THANK YOU

      ac

  2. Just let me do brain surgery! by Anonymous Coward · · Score: 1, Insightful

    In the good old days you could go around opening people heads and fix their stuff. Sure, sometimes it went wrong or they died soon, but it was thrilling and exciting!

    People with nostalgia, keep crying a river, but far away from the rest of the world.

    1. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 5, Insightful

      Actuall, during a surgery every scalpel move does not need to be pre-approved by some clueless administrator. The surgeon knows his job and does it with great freedom. He/She 'just do' brain surgery

      Nobody would survive a brain surgery if a physician would have to go through the same hurdles as a professional programmer

    2. Re:Just let me do brain surgery! by Anonymous Coward · · Score: 3, Informative

      Actually, there are plenty of doctors who would just like to treat patients. Instead they have to deal with insurance companies, malpractice, paying off their loans, etc. Just the other day I was thinking that this probably explains why there is no shortage of doctors who will give you a "420 recommendation" but there's a shortage of physicians accepting Medicaid patients. The Medicaid program isn't even being properly funded here.

      So yeah, the doctors would really like to treat patients; but there's no satisfaction in it because of the system and in some cases there's not even money. You can't blame some of them for becoming pot doctors.

      I guess maybe the equivalent of being a pot software developer is either to write black hat stuff, or work for the NSA or some other government agency that violates our rights. Kind of ironic, since the pot-heads would be on the other side if you took the government agency route.

      Anyway, your analogy is flawed. You're glossing over the real issues. Any profession can be bogged down with beurocracy and complexity that's perceived as interfering with certain human factors. You can't just gloss over the issue so easily. Some of these extra tasks have a purpose and can't be eliminated; some of them have no purpose other than to satisfy the irrational fears of those who hold the purse strings. Those can and should be eliminated.

    3. Re: Just let me do brain surgery! by cavtroop · · Score: 1

      Programmers are just cogs in a machine nowadays. Comparing them to brain surgeons is laughable at best.

      I get the analogy you're trying to do, but it's not how businesses view programmers anymore.

    4. Re: Just let me do brain surgery! by krlynch · · Score: 4, Insightful

      Of course brain surgeons don't "just do" brain surgery .... in any surgery, there's a ton of pre-operative work, investigation, preparation, paperwork, practice, etc. No one just dives in and cuts open your head.... and just as no one administrator hovers over the scalpel's every move, no manager hovers over every keystroke, either.

    5. Re: Just let me do brain surgery! by Rob+Riggs · · Score: 3, Insightful

      The surgeon knows his job and does it with great freedom. He/She 'just do' brain surgery

      Nobody would survive a brain surgery if a physician would have to go through the same hurdles as a professional programmer

      Very true. By the same token, by the time your average programmer was done with your brain surgery, you'd have toenails growing out of your asshole for some inexplicable reason. "Oh, we'll fix that in the next surgery." *That* is why we have "clueless" administrators pre-approving their shit.

      The brain surgeon has to be worried about malpractice lawsuits; the programmer does not. The brain surgeon requires board certification; the programmer does not. The brain surgeon requires twice the education and years of formal, on the job training before he is ever allowed to operate; your average programmer thinks he/she can write shit-hot code before they even graduate.

      --
      the growth in cynicism and rebellion has not been without cause
    6. Re: Just let me do brain surgery! by Bengie · · Score: 1

      I think what he meant is if brain surgery was as bureaucratic as many projects, it would take too long and would be a botched job almost every time. But yes, lots of pre-op stuff to do.

    7. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 0

      no manager hovers over every keystroke, either.

      Tell that to my (ex)boss.

    8. Re:Just let me do brain surgery! by k31 · · Score: 2

      This reminds me of the mythical Programmers' Stone project, and how the solution AGC had was to live as a hippy without any money.

      Not, you know, what most people want to do.

      I agree with the insightful replied below (or now, in parallel): there is a lot of stuff that impedes productivity.

      However, I would go further and say, what do you expect to happen if you create an unfair environment from the start? The only way it could get better is if computers were used as tools to empower people, and that hasn't happened since the 8-bit era, and even then, it was by accident.

      Microsoft, Google, Slashdot, and the GNU / Linux project all became big because they empowered people to do what they wanted, at the time. Even with all the problems, Microsoft still makes the best widely available stack to move from idea to product, and they will continue to do so, because Apple only wants clients with "disposable income", but Microsoft wants mindshare first and taxes behind the scenes to maintain their position.

      So as long as you want money up front (Apple, most employees, FOSS in general as consulting fees or attention of peers) and aren't setting up to rule the world (Google, Microsoft) by saturating mindshare, things are going to go the way of "big government", or any big groups, and become so full of red tape that no real innovation can occur.

      Serving the needs of the many requires that you understand how different people are, and how little most people want to pay for something. The concept of "investment" may never be mainstream, and anything which allows people at all levels to make money, most of which does not come directly back to you, then you would be able to dominate minshare... but if you want only competent, professional people on your platform then you will eventually get people who are confident at being professional rather than everyone, including those who want to make the world better or express something new.

      So, if you want to have fun, forget about the professional toolset... it is designed to increase operational level work at the expense of expression, because most of what professionals do is not new, and the more operations it takes, the more hours can be billed and the more job security is created, and the more documentation is left behind in the actual code, even if you do get hit by a bus or try to strike.

      If you want to have fun, get a Raspberry Pi or build your own stack or deal with something that gets you closer to your goals shorter. Or become a novelist, plenty of novelty there.

      The future, if there is any, won't be visible by the professional world, anymore than emulators for game systems can come from the corporate world, or meditation can come directly from big pharma.

    9. Re: Just let me do brain surgery! by Anonymous+Brave+Guy · · Score: 3, Insightful

      Programmers are just cogs in a machine nowadays.

      Code monkeys are, and that's the way that managers who hire code monkeys like it.

      There are plenty of programmers out there creating interesting and useful new software, and plenty of customers/clients willing to pay serious money for the value that software offers them without all the unnecessary bureaucratic overheads and middle management crap.

      If you are a good programmer and professional in your general conduct, you owe it to yourself not to be a code monkey for anyone, IMHO. You have to be really, really unlucky with the time and place when your current gig(s) run out not to have better options in 2014.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    10. Re:Just let me do brain surgery! by Anonymous Coward · · Score: 0

      There's too much money in the insurance industry.

      Whereas in France, a doctor MIGHT have one secretary. Maybe.

    11. Re: Just let me do brain surgery! by radtea · · Score: 1

      Of course brain surgeons don't "just do" brain surgery .... in any surgery, there's a ton of pre-operative work, investigation, preparation, paperwork, practice, etc

      Most of which is not done by the surgeon. I've worked a lot with surgeons, and can assure you they are used to having other people do almost everything but surgery for them.

      Surgeons are the equivalent of the "master programmer" team, which is a now mostly-obsolete team structure where there is one (or a very small number) of expert coders surrounded by a larger group of admin/build/whatever types who make sure the master programmer has nothing to do but code. It works on certain problems, but unlike surgery, the scope of what we expect software developers to do has grown far beyond what one person can handle in almost all interesting cases (I say this as a team of one who does everything from firmware to UI, but it is on a very narrowly defined embedded application that I've worked extremely hard to keep more-or-less within scope for a single very senior person.)

      --
      Blasphemy is a human right. Blasphemophobia kills.
    12. Re: Just let me do brain surgery! by Noah+Haders · · Score: 2

      i had brain surgery once, and I performed brain surgery on somebody else at the same time. that is how you keep the costs down!

    13. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 1

      Yeah, I can just imagine...

      "We have internal bleeding. Get me a pen, I need to write an emergency change request to stop the bleeding, and somebody get a manager in here so I can get it approved right away, otherwise it will have to go through the change advisory board, who have meetings on thursday..."

      A colleague of mine got told off for blocking a virus at the firewall. As the firewall covers internet traffic for the entire HQ building, and thus several departments, that's a major change, and must go through the change advisory board, or in this case be signed off as an emergency change request. In the two minutes it took him to log in to the firewall and make the change, five people got infected by the virus in the IT department alone (not the sysadmins, but there was one developer among the infected). In the time it would have taken to get an emergency change request approved, it would have taken out half the company.

      While nobody would have died, I don't think comparing it to requiring a brain surgeon to get written permission to stop bleeding is far off.

      And no, this is not an isolated case. The stupidity has a name: ITIL. With training manuals and everything.

    14. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 0

      And any Administrator that just lets any brain-dead code monkey write what ever he wants any way he wants would be derelict in their duty. Systems administrators may not write code, but they do keep the delivery of that code sane, often in the face of insistent dimwits who, because they learned how to script python or php think they are programmers.

    15. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 0

      The brain surgeon has to be worried about malpractice lawsuits; the programmer does not. The brain surgeon requires board certification; the programmer does not. The brain surgeon requires twice the education and years of formal, on the job training before he is ever allowed to operate; your average programmer thinks he/she can write shit-hot code before they even graduate.

      You sound like you've never worked in either medicine or IT in your life. I'll paint you a different reality: the brain surgeon doesn't have to worry for malpractice lawsuits, their employer gets those. And when they do get one, the brain surgeon is transfered to another hospital and merrily continues with his job. The only reason doctors ever lose their job is because they perform criminal acts, not ever because they make mistakes. The programmer on the contrary can go look for a new job just for missing a deadline or 2.

    16. Re: Just let me do brain surgery! by Anonymous Coward · · Score: 0

      I admire great programmers. But they are great programmers, not, to use your example brain surgeons. For your example to work, the programmers must have another degree or training other than programing. Such as accounting. The surgeon is skilled in medicine and using a scalpel, whereas being a progammer does not automatically state that you are very qualified in another field.

  3. Yeah... by Anonymous Coward · · Score: 0

    If you want to 'just code' with no controls, then take it up as a hobby in your spare time.

    1. Re:Yeah... by Anonymous Coward · · Score: 0
  4. Who is stopping him? by Karmashock · · Score: 2, Insightful

    Yeah there are some complicated tools but you don't have to use them. Use the old tools and code in the old way... most of them still work no problem. And even with the new ones there's simple ways to do the same thing.

    How many people are throwing up snipits of python code... its everywhere. I really don't know what the fuck this guy is talking about.

    --
    I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    1. Re:Who is stopping him? by nblender · · Score: 2

      Depending on the environment in which you work. Where I work, there are source code auditing tools you are required to run against your code to meet various customer-imposed requirements; there are code-review tools... There are hardware debuggers that are tied to irritating IDE's like Eclipse... There is a veritable cornucopia of mandated tools, none of which actually help me to write code, but exist to make some manager or customer happy.

      I think what the submitter wants is to be able to 'hack' like the old days. Either find a different job or sign up with some open source gig and hack to your heart's desire.

    2. Re:Who is stopping him? by Matheus · · Score: 4, Insightful

      Sounds more like a cranky dev who graduated looking forward to creating Interesting Things(tm) and found themselves in the wealth of jobs out there creating What People Will Pay You To Do(tm) and is trying to find something grander than his lack of interesting job opportunities to fault it on.

      As stated: If you want to create something fun with simple tools THEN FREAKING DO IT! There is nothing in this world holding you back unless all you are willing to work on is what someone is paying you to do.

    3. Re: Who is stopping him? by Anonymous Coward · · Score: 1

      We can see from your comment that you do not know what he is talking about.

    4. Re:Who is stopping him? by Karmashock · · Score: 2, Insightful

      Even considering all that, have a standard template that triggers all that crap and then build your little creative projects in subroutines.

      Is it harder to code in windows then in DOS? you're a lot farther from the hardware in windows. There is a lot more going on. But you don't see most of it because its abstracted or hidden away and mostly it doesn't matter.
      Do the same thing with all your debugging shit. Write a template that loads and manages all that shit so you can hack it like you want to while retaining compliance.

      If anything this guy just came up with a good coding project.

      Here you might say that your little coding projects and hacks need to be linked properly to these various systems and that can be a pain in the ass. But again... why are you doing that manually? Write a program or a script that automatically creates the links.

      What's left... documentation? First off, fuck you if you don't want to document your code and then implement it. Seriously. Fuck yourself with a chainsaw... sideways. I can't tell you how many shitty coding projects I've had to go through line by line trying to figure out how the fucking thing works or even what its doing because the asshole that coded it didn't document anything. I mean... some fucking comment lines every so often would be great.

      So what is left?

      Seriously... if you're a coder then you see all of this as something to fix... and then if it actually bothers you or interests you... you then fix it.

      Once you've built your little wrapper you can then hack it like you did in the old days and the program/script will dynamically create all the linkages and load all the debuggers and whatever the hell else you need to make the fuzzy bunnies happy.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    5. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      Dude, the fucking internet. Have you tried to write a webapp and manage the "full stack" for it lately?

    6. Re:Who is stopping him? by angel'o'sphere · · Score: 1

      All those tools are pretty simple if you spend half an hour to,learn how to use them.
      But pretending they work as you imagine they should, that does not work.
      Commands set aside,a DOS's cmd.com is not a bash.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Who is stopping him? by TheGratefulNet · · Score: 3, Interesting

      I fully understand what he's saying and he's right.

      I started doing software work in the early 80's and it was easy, fast and fun.

      now, its about 'scrum' and 'agile' and all that stupid shit (sorry if that offends). we had a simple life with makefiles and cvs, but now the librarians are complex and not intuitive, the build systems are uber complex and the CI (cont. integr.) stuff is a big change (and a whole system in itself) compared to the nightly build idea. code reviews, enforced coding standards add more slowness to the dev cycle. bug reporting systems are also complex.

      in short, its no fun anymore for us old guys. I fully see what he's saying. he's not talking about tiny snippets but getting shipping code out the door - its more process than it really needs to be, and the quality is STILL NOT THERE, so I don't think we made any real progress. and add in java where even idiots are allowed to write code (no need to free, whoopee!) and you have people who get lazy and if they ever have to write in C, they are totally lost.

      lastly, there are too many fad languages and this wastes everyone's time and since you can't be good at so many things, it spreads you too thin if a project has 5+ languages in it.

      --

      --
      "It is now safe to switch off your computer."
    8. Re:Who is stopping him? by Anonymous Coward · · Score: 2, Funny

      Yeah, I got into "computers" because I was looking forward to a subversive career in hacking into corporate systems and selling their secrets to their competitors and to undermining the US. Now we just crack systems so we can sell email addresses to guys pushing dick pills. Reality really sucks.

    9. Re:Who is stopping him? by Motherfucking+Shit · · Score: 5, Insightful

      Let's say you're a competent Java developer and you'd like to build an Android app. I wish you the best of luck!

      First you're going to need to pick an IDE. I've always used Eclipse and hey look, there's an Android SDK for Eclipse. Perfect! Download, extract, fire it up... Errors. This version of Android SDK requires Android API version foo, you have version (foo - 9), please use the SDK manager to upgrade. The hell, the IDE bundle doesn't even launch out of the box?

      Alright, so you're distributing your IDE with an outdated version of your API, I can forgive that. Run SDK Manager like it suggested, let it do its thing,. Update available for SDK tools and SDK platform tools, looks good, do it! ...And, errors. Package not found, blah blah, let's see what Google has to say about this one.

      OK, apparently hundreds of other developers are having the same problem and have, after much wrangling, figured out a solution on their own. I see, I have to go into SDK Manager Settings, create a new User-Defined Add-On Site pointing to https://dl-ssl.google.com/andr... because the URL that ships with the IDE is missing the "s" in "https" and that server doesn't have the right packages available to download. That highly intuitive process would surely have been my first try anyway, but at least someone else found the fix.

      SDK Manager seems to find the packages now, great! Got past that hurdle so let's do the upgrade. Wait, now what! What do you mean you can't upgrade to SDK Tools rev. 23 while SDK Platform Tools 19.0.2 is installed? I checked the boxes to upgrade them both; if Platform Tools has to hit rev. 20 before SDK Tools can be upgraded, why is the installer going in the wrong order?

      If and when you finally get the actual goddamned IDE installed and working, have fun with the official developer tutorials to create your first "Hello World" app. See, the API has changed over the years^Wmonth^Wpast week and so the app architecture that the tutorial talks about isn't valid anymore. XML files that it says should be there, aren't, so there's no way to follow along in the tutorial by editing them.

      I gave up on Android and won't touch it again unless I'm being paid to.

      --
      "BSD: Free as in speech. Linux: Free as in beer. Windows 10: Free as in herpes." --Man On Pink Corner in #52607549.
    10. Re:Who is stopping him? by Anonymous Coward · · Score: 1

      >Is it harder to code in windows then in DOS?

      Definitely not. In DOS I had to manually draw every UI element. With modern tools I can focus on the code that actually does work while Windows handles the UI elements.

    11. Re:Who is stopping him? by Forever+Wondering · · Score: 1

      IMO, cmd.com is [also] a four letter word :)

      --
      Like a good neighbor, fsck is there ...
    12. Re:Who is stopping him? by Anonymous Coward · · Score: 2, Funny

      Lol, I like this complaining format:

      Yeah, I got into [specialty] because I was looking forward to a [edgy adjective] career in [exciting application of specialty]. Now we just [boring application of specialty] so we can sell [boring application revenue stream]. Reality really sucks.

      Example:
      Yeah, I got into machining because I was looking forward to a fast paced career in aerospace manufacturing. Now we just mass produce injection molds so we can sell crappy plastic coffee makers on ebay. Reality really sucks.

    13. Re:Who is stopping him? by Sperbels · · Score: 1

      so I don't think we made any real progress

      Not only that, but we did it slower and at greater expense. Sometimes I go weeks without writing a single line of code anymore. It's really sad. I don't want to be in this industry anymore...unfortunately I don't have much of a choice.

    14. Re: Who is stopping him? by Anonymous Coward · · Score: 1

      Thank you...well said for some of us out here simply trying to write "hello world" with Android!

    15. Re:Who is stopping him? by tepples · · Score: 1

      Most tools have their own APIs and many have their own DSLs. You either must learn a new sub-language or you have to program them. In every direction, complexity is an insistent reality poised to take you away from the core development activity: coding.

      Here you might say that your little coding projects and hacks need to be linked properly to these various systems and that can be a pain in the ass. But again... why are you doing that manually? Write a program or a script that automatically creates the links.

      The problem here is that once "a program or a script" reaches some level of generality, configuring it becomes almost as hard as just creating the links yourself. Hence the reference to application programming interfaces (APIs) and domain-specific languages (DSLs) in the article.

    16. Re:Who is stopping him? by BronsCon · · Score: 1

      it is if your keyboard has a .com button (like my Android phone does)

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    17. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      You have no idea -- none whatsoever -- how happy I am just knowing I'm not the only one who gave up on the Android SDK for these exact reasons. Who puts up with this crap? All to sell an "app" for $0.99 ...? An app that is an exact duplicate of 99,000 other apps from developers who all had the same Bright Idea at the same time?

      What a joke. Swear to God I think Google is letting the summer interns run a few of their main projects these days, including Google Maps. If the buffoons who put the ADK together worked for me they would all be fired by now. Well, I guess we better learn to love it because it's all the future holds for us now.

    18. Re:Who is stopping him? by NormalVisual · · Score: 4, Insightful

      You are why spec and finished product do not match.

      I think the main reason why spec and finished product don't match is because "spec" is a moving target that never solidifies. Agile processes just make it worse by not even attempting to nail down requirements beforehand - "it's more important to be able to show progress than actually know what we're supposed to end up with, and don't you dare document anything because it's going to change anyway" along with the idea that it's okay to spend thousands of dollars completely rewriting stuff as the requirements continue to change. It's impossible to properly engineer a product when you don't even know what the product is in advance.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    19. Re:Who is stopping him? by Karmashock · · Score: 1

      I can't relate... anything that is repeated over and over again with known rules can be programmed. I've never seen anything that couldn't.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    20. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      You must not be married.

    21. Re: Who is stopping him? by Karmashock · · Score: 1

      Brother, I question whether you know what a programmer really is in the first place.

      Can you describe the problem? Clearly? Explain it to the computer. Automate it. You know what you're talking about? You have a problem? Good... solve it. that's what programmers do.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    22. Re:Who is stopping him? by Karmashock · · Score: 1

      what IDE do you recommend for android?

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    23. Re:Who is stopping him? by Karmashock · · Score: 1

      Married life like any fluid social interaction requires at least high level AI and wouldn't be convincing over long periods of time.

      We're talking about programming compliance. Its a totally different question.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    24. Re:Who is stopping him? by znrt · · Score: 1

      its more process than it really needs to be, and the quality is STILL NOT THERE

      this nails it.

      the fuzz about different languages, i don't see that. it's actually refreshing. and the problem with COBO^H^H^H^H java isn't the language, it's the illustrated monkey environment built around it. no wonder it's the industries' preferred platform.

      You're the problem with the software industry

      software industry broadly just sucks. because it's driven mostly by shortsighted greedy morons and perception is often more important than substance. that's unless you happen to be in very specific environments (and those typically don't last for long). the guy is right. and he being good or bad at coding doesn't change the situation so your rant is uncalled for.

    25. Re:Who is stopping him? by znrt · · Score: 1

      It's impossible to properly engineer a product when you don't even know what the product is in advance.

      actually it is, if your agile allows for enough iterations and your stuff is testable and refactorable, you should have no problem. well, you'll have a lot if you get too much pressure or simply cut short on shedule.

      agile is very good provided the goal is not completely clear and there is time. many problems are not in this category but are thrown into it regardless just because it's a lot easier not to spec, and let the scrummies figure it out later, and take responsibility. and because it has become a business mantra.

    26. Re:Who is stopping him? by Earthquake+Retrofit · · Score: 2

      Going back to the time I learned to program my TRS-80 to play the Afghanistan national anthem on the little relay switch and except for teachers, three or four people have ever looked at my code. Perhaps I take the 'person' in personal computing a bit too personally. But it only took a week of working for a soulless minion of orthodoxy to get me to quit. I'm good at it and I love it. I still know the joy of programming. Years later, the first time I wrote and executed code on a Linux machine, well let's just say I didn't need Viagra for three days. None of this should be taken as advice in making important life decisions.

      --
      Fifty years of Yippie! 1968-2018
    27. Re:Who is stopping him? by Anonymous Coward · · Score: 1

      Agile processes make it better by not designing something that will never work. Getting prototypes in people's hands is how progress gets made.

    28. Re:Who is stopping him? by Motherfucking+Shit · · Score: 1

      GP poster is just trolling, with his "Eclipse, like all free IDE's, sucks" comment. You don't notice him mentioning his own environment.

      The only other strong suggestion he can make is Android Studio, which instead of bundling Android SDK with Eclipse it bundles Android SDK with IDEA. Which would be fine, if it wasn't languishing in bug reports of its own, new major releases every week, breaking due to Gradle configurations that cause hair-pulling (what the fuck is Gradle and what was wrong with Ant and Maven for dependency management), etc etc. And forget trying to migrate from Eclipse with the SDK over to Android Studio. For God's sake, even when Google I/O was going on, the current builds of Android Studio on offer still didn't work any better than the Eclipse SDK. Life apparently is no better in the Mac world but I don't have experience there.

      Don't get me wrong, I love Android, I have 3 Android devices, I'm interested in developing Android apps personally. I'm not knocking Java, I use it. I'm not knocking existing IDEs, I use them. What I'm knocking is the constant moving target status of Android where things change so fucking quickly their own devs can't even keep up with their own IDE bundles or their own documentation. As a potential Android developer, everything I run into is a turnoff. Look at the project and look at all the open issues with the IDE tools and the SDK (forget API and device bugs, those are all to be expected, I'm talking serious problems with the developer tools only). I don't have time to deal with that shit for fun.

      --
      "BSD: Free as in speech. Linux: Free as in beer. Windows 10: Free as in herpes." --Man On Pink Corner in #52607549.
    29. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      Intellij by Jetbrains

    30. Re:Who is stopping him? by Karmashock · · Score: 1

      I notice that a lot of old android apps work just fine. So why not just use an old IDE that is stable and then just release apps that aren't up to the lastest patches. Who cares.

      Again, there are a lot of old apps that work just fine so what's the difference?

      so long as the program works and is compatible who needs to bother with the new sexy thing?

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    31. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      Yep. If you are complaining about the tools, you are not a good developer. All you need is VI and GCC. If you think there is more to it than that, then you should shut the fuck up about complexity of the tools and start writing code. I'm tired of trying to manage people who *think* they know what they are doing.

    32. Re:Who is stopping him? by msobkow · · Score: 3, Informative

      I believe he's bemoaning the complexity of frameworks and toolkits rather than the tools used to work with those frameworks and toolkits. Technically he's correct -- things are a lot more complex than they used to be for getting the most basic of tasks done.

      But you know what? Business isn't interested in basic tasks any more. They want it secure. They want it scalable. They want a web front end, and a desktop client, and apps for Android and iOS. The days of the old "read billing file, produce accounting records" code have not gone away; those projects were just done 30-40 years ago and don't need to be rewritten, just tweaked from time to time to allow for changes in regulations such as tax law or liability.

      Even the last company I worked for wasn't content with a mere rewrite and update of their core business with the new software -- they had a whole new plan of integrating another 5 or 10 vertical functionality features into the system (it was just an autodialer -- they wanted integrated CRM, push button customer calling, call answering, call forwarding, a full phone system with voice mail support and enhancements to the ever popular auto-answering system of branching menus and responses, and the ability to deploy the whole thing as a multi-client web service instead of deploying custom configured hardware to the client sites.)

      The frameworks and toolkits have correspondingly become more complex in order to support those needs. Look at the transaction processing systems of old -- you'd buy a number of seperate products including a message queueing system, a report formatting tool, a database engine, and a transaction processor, each of which had their own APIs and documentation. Each tool was relatively simple, but getting them all coordinated and working together was hard as hell. Now you take JEE, buy just about any message processor and database you like, and it all largely works with the same API regardless of which vendor's tools you chose. So while the JEE framework is incredibly complex compared to a transaction processor of old, what it does in total is also saving you insane gobs of time integrating and debugging disparate products. So technically JEE is far simpler than things used to be, despite the ramp-up learning curve.

      The same is true of every framework or toolkit I've used for over 10 years -- they tie together multiple vendors products consistently so that only small tweaks are needed to adapt to the vendor's products rather than whole-application re-writes if you decide to swap something out.

      Hell, take a look at what I did with Java, six different vendor databases, and JDBC alone for http://msscodefactory.sourceforge.net. The differences between each of those database integration layers are not subtle, but nor are they particularly arcane. All of the products have virtually the same feature set; there are just differences in how you use JDBC and stored procedures for each database. Compared to "the old days", it was a cake walk to do that integration and customization over the past 3-4 years. And remember I worked on that code by myself -- it wasn't a whole team of programmers dealing with the complexity. If one guy can produce that using standardized toolkits in 3-4 years, how can you say things are more complex than they were when it used to take a team of 100-150 programmers 2 years to produce something similar for one database?

      --
      I do not fail; I succeed at finding out what does not work.
    33. Re:Who is stopping him? by Noah+Haders · · Score: 1

      ok then, what do you do for weeks?

    34. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      It's not the tools at all...

      It's software patents that will crusch all efforts to do something useful, and probably rip him of all his money for the rest of his life!

      It is nowedays impossible to write anything without interfering with some software patent in the massive folio's of the software beomoths.
      Face it - you cannot longer code anything as "little guy", because they can and will squat you like a flie...

    35. Re:Who is stopping him? by Karmashock · · Score: 1

      which is why we don't have any open source projects or new software apps made these days...

      oh wait, yes we do... what the fuck are you talking about... don't reply... just get out of my sight.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    36. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      There is a veritable cornucopia of mandated tools, none of which actually help me to write code, but exist to make some manager or customer happy.

      And if your company hasn't set up an automated Continuous Integration + Test system for you to handle all that shit, then you should probably request it. At my company, developers are expected to run a preflight test before they send a pull request up to the master repo. That consists of about 30 minutes of time, and most of that is hands off. They run CMake, then they type 'preflight' and move on while the build & test runs.

      Once their code is committed, it goes through coverage, static analysis, further automation batteries, all managed by Jenkins, and if any failure is detected at any point, they're notified, and expected to fix it before their changes move on to eventually graduate into the "ready for Test" queue. Otherwise... they keep on coding.

      There's absolutely no reason why any developer has to run all these tools manually on his own. If you are, then either you, or your management, is grossly negligent and wasting your time & salary.

    37. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      in short, its no fun anymore for us old guys.

      "To be clear, in this model there is more demand for the skills, experience, and mindset of operations people who are willing to work to improve systems, but less for those who create “works of art” — manually configured production systems that are impossible to reproduce or change without their personal knowledge and presence."
      - Jez Humble

      Every try to manage makefiles and CVS for a massive system? I have. It's a fucking nightmare - just because that's all you had way back in my grand-pappy's days doesn't mean it's the best way to do it. Modern build systems have eliminated much of that complexity, at the cost of requiring you to structure things 'the way they expect.' Of course, this means your skills are more portable, too - if you've worked on one Maven or Cmake project, you're familiar with the way the tool works, and you can pretty easily spin up new projects using the same build systems.

      CI is not a big change from nightly builds... it simply says "build every time there's a commit," instead of building once a night. If you make 1 commit per day, you'd have the same net effect. CI lets you keep the change set small from build to build, so that build failures are quickly and easily identified. Again, a VASTLY needed improvement over "nightly builds, or build whenever the fuck you want, it doesn't really matter, as long as we ship eventually."

      Code reviews - if you're seriously arguing that proper code reviews are too onerous a task for developers, then I sincerely hope to never work with you. Adapting to coding standards has ALWAYS been part of the job as far back as I remember, and defect systems are no more complex now than they used to be.

      Your entire post is a whine about how "nobody wants my special skill set that's being automated away, I wish I didn't have to adapt to changing reality." Stop it. It's beneath you as a man, and beneath you as an engineer.

    38. Re:Who is stopping him? by Anonymous Coward · · Score: 1

      I feel your pain here, but this is what you get when the tools are free to use and slated for replacement (by Android Studio). Watch Google punt on the ADT bundle as soon as they take Android Studio out of beta.

      Android Studio isn't much more fun to work with, sadly. I just recently set it up, and here are the things that I had to deal with:

      1). I run my dev machine in offline mode (no internet connection, no network connection, no nothing) most of the time. Offline mode fails miserably by default. Turns out you have to download a ~30-40 meg .zip archive with some gradle binary files in it to get offline building to work properly. You have to stick it in a hidden settings directory. There area apparently other ways of making it work, but this is the most straightforward way. Stackoverflow to the rescue.

      2). Recent versions of Android Studio MIGHT decide to put in a setting in one of your build files that prevents the app from running if it supports any minsdk other than the L preview. Editing this line fixes the problem, though finding out about that requires some google-fu and persistence. Again, Stackoverflow to the rescue.

      3). Gradle makes the build process very, very slow. Offline build sort of solves that, though . . . see 1).

      4). People wanting to use or switch on String objects or other "fancy" stuff need to set source compliance to 1.7 or higher for their project. This is easy to do in Eclipse/ADT bundle, but not so easy to do in Android Studio (again, this is another thing which requires the proper lines in a build file, which can be found with a sufficient amount of google-fu and persistence . . . Stackoverflow to the rescue!).

      In the end, I have gotten Eclipse ADT bundle and Android Studio working to the point that they can be used to produce a working APK on a target machine/emulator, but it did take an unfortunately long amount of time to get to that point, and the latest version of the ADT bundle does not want to install software like Traceview from the supplied repositories (yes, even if you do use the https URL). The previous build of ADT bundle I had just didn't like to update from anything except a .zip archive. If there is any edge Android Studio has, it is in self-updating, plugin management/installing, and . . . yeah that. Grabbing the Genymotion plugin was a lot easier under Android Studio, and it updated itself from version .8 to .82 quickly and easily, which was a huge improvement over the ADT bundle which is a huge PITA when it comes to updates.

      Also, the official Google developer tutorials are really heavy on XML, which is great for people who like that sort of thing, and awful for those who just want to use Java for everything. I've found that it's possible to dodge most/all XML except for the manifest, in which case changes to layout file locations won't make a darn bit of difference. Heck, you can also skip the entire res directory and just use assets, if you want.

    39. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      I would recommend Android Studio, if only because Google has publicly stated that they are adopting it as their officially-supported development environment once it goes out of beta. It's getting pretty polished, though it still has bugs (see my above AC post, if you dare!). I'm sure you'll still be able to use the Android SDK in Eclipse in the future, but they probably won't release it in bundles, nor will they offer much/any support if you encounter any bugs while trying to use it under Eclipse.

    40. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      > It's impossible to properly engineer a product when you don't even know what the product is in advance.

      It is possible, it just takes more time. Simple example:
      Imagine that they want you to implement application that prints "hello". The next day specs change and now the application should not print hello, instead it should just ask a word from the user. Now that you have the new specs, you can just throw the old project away and rewrite the whole application to match the current specs. Just imagine that the old application was never implemented and you got the right specs from the start.

      Of course, if you are skilled enough, you can reuse some parts of the code from the old project and save some time in the process.

    41. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      I had a look at getting started on android SDK a few months ago, i had an idea for a project to integrate with a little electronics thing i was doing that had bluetooth.
      I wanted to list the paired bluetooth devices on the phone in a list box, but i couldnt just add strings to the list box like i can in c#. i had to create a string builder (or whatever it was called) add strings to that, attach it to the list box then notify it all that the string builder thingy had changed.
      W.T.F. seriously.
      why the hell doesnt it have ListBox.AddString(string)
      how hard do you want to make it

    42. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      "to fault it on" ???

      "fault" is not a verb.

    43. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      One thing worse than a grammar nazi is a grammar nazi who doesn't even know what he's talking about.

    44. Re:Who is stopping him? by Xest · · Score: 1

      Nonsense, you're just a classic case of "I never really bothered to learn a proper agile process, I just guessed a bit at it and went on a bit of hearsay and it all went wrong".

      Agile has it's place, and it can drastically improve some forms of development. I don't think any Agile processes declare that you should just start writing code without any idea of what you're writing. SCRUM for example encourages use of a feature list known as the product backlog (i.e. list of things we'd like to do) which you then work through in two week sprints. You can setup a burn down chart where you log each item as it's ticked off and build a chart from it that predicts the finish time of the project based on what's remaining in the current backlog.

      This means that when someone comes along and says "I want to add this feature in" they can do exactly that, but the point the burn down chart intersects with "features remaining" extends off into the future a bit further so that they have instant rough visibility of the impact of their request to change.

      Your understanding of Agile is exactly backwards, it doesn't make things worse, it makes things better by aiding visibility of impact of change and by allowing you to keep control of costs - if that chart looks like it's tending off too far into the future, you can just cut the project short and accept that the lowest priority features will be axed as a result but that at least there will be no cost overrun.

      You shouldn't really be re-writing anything much if you develop code competently in a modular manner, but if you do, at least the person demanding the re-write gets to see what other features will be cut, or how much more time and cost there will be from their actions when you use something like SCRUM.

      Am I saying Agile is the be all and end all saviour? Not at all, I think SCRUM works poorly for smaller scale projects - a SCRUM team should supposedly be between 5 and 9 people whereas an awful lot of the world's software is still built with only say 1 to 3 developers. I also think most Agile zealots themselves have no idea what they're doing but are mostly just blaggers screaming "Hey, let's all be a bunch of cool hipsters and have stand up meetings randomly and not getting anything actually useful done just because!" but that doesn't mean it's an inherently bad tool overall and if used properly. There are still a lot of large successful businesses and software houses that do quietly just get on with using it properly for what it's worth and who are better off for it.

      Agile's biggest problem is this assumption that it's a thing you can just start doing with no understanding or training, that's completely nonsense. Like everything else it's a change that has to be phased in a sensible manner by people who actually understand it. Too many people just try and implement it with about as much clue about it as you've shown just so they too can feel cool by jumping on the bandwagon and say they use Agile and then it fails spectacularly as a result but doing it this way is a bit like sticking someone with zero fighter experience into a fighter jet and watching them brag about how they're going to do a "4g inverted dive with another aircraft" because they saw Tom Cruise do it on TopGun and think they want to be cool like him. It isn't going to end well, it's going to fail spectacularly, though just like Tom Cruise, they will if nothing else be an absolute twat.

    45. Re:Who is stopping him? by Sp*rH*wk · · Score: 1

      >Agile processes just make it worse by not even attempting to nail down requirements beforehand
      I agree agile is not for every project, such as building a bridge should be a full speced and reviewed design before you start work.
      However "your" description of agile sounds more like a terrible version of waterfall process to me.

      >it's more important to be able to show progress than actually know what we're supposed to end up with
      I would use an agile process where the client or clients don't know what exactly they want.

      > and don't you dare document anything because it's going to change anyway" along with the idea that it's okay to spend thousands of dollars completely rewriting > stuff as the requirements continue to change
      You should definitely have an idea about what you are trying to end up with but getting it exactly correct is highly unlikely, that's where early feedback an agile process can get you back on track.
      What ever process you are using should support your development not hinder or prevent it.

      >It's impossible to properly engineer a product when you don't even know what the product is in advance.
      Properly engineered works only happen when nearly everything is known, this could be achieved in different ways:
          * spending "thousands of dollars", trying to learn about what you could need through meetings and discussion and reviews.
          * spending "thousands of dollars", producing working software that you can use to discover what the clients do need.

      I've worked on both projects lately and the first way seems to have had heaps more false starts.

    46. Re:Who is stopping him? by Drethon · · Score: 1

      In my line of work its less often a moving target and more about being too vague. When multiple implementations meet the requirement I often seem to end up with the one that the designers say don't match... even when I tell them my plans before hand.

    47. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      but now the librarians are complex and not intuitive

      As a librarian, I take that as a compliment.

    48. Re:Who is stopping him? by PigleT · · Score: 1

      It's the large IDEs that I hate. I've tried Eclipse 3x in my life and each time has resulted in very quick uninstallation.

      Kate is quite adequate. A few "sessions" for work and evening projects, and easy switching between them, a few shell functions to build+install projects... I'm happy enough. Lets me concentrate on the project and the language(s) involved with minimal environmental fuss.

      --
      ~Tim
      --
      .|` Clouds cross the black moonlight,
      Rushing on down to the circle of the turn
    49. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      > what the fuck is Gradle and what was wrong with Ant and Maven for dependency management

      Holy shit, yes! Though I haven't been much impressed with Ant when it comes to usability. I myself would rather ask: what was wrong with "make"?
      It at least works most of the time, and has a lot of existing users.

    50. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      > but this is what you get when the tools are free to use and slated for replacement

      No, it's what you get when you use tools from people who aren't particularly competent, lack quality management and still think they need to reinvent the wheel whereever they can, or at the very least run after the latest fads instead of making something that actually works.
      Microsoft and Google are really, really good at that.

    51. Re:Who is stopping him? by QilessQi · · Score: 1

      I have to disagree. I've also been coding professionally since the early '80s, and I think it's more fun today than it ever was.

      I work on a huge enterprise system with dozens of independent applications and services, all working on concert. Over fifty developers, plus dedicated architects, integration testers, ops staff, DBAs, business analysts, etc. We have internal and external websites and are continuously keeping our technology and tool stack up to date, because the world is constantly changing. There's no way we could keep moving forward without good IDEs to help us manage volumes of code, automated unit tests and the continuous build systems that run them, design documents/reviews, planning meetings to figure out who is doing what and when, and daily scrums to make sure everyone knows the plan for the day.

      It's like performing in an orchestra. It's not as simple as being a solo street performer. You have to play an approved instrument, and keep your instrument in tune with everyone else's, and play at their tempo, and maybe you don't even get a solo. But in exchange you get to be in the pit for a Broadway play, or onstage at the Met. You get to be a part of something bigger.

      Here's the best advice I can give you:

      Change is inevitable. There can't be progress without change, and there can't be change without something strange entering your life and something familiar leaving it. Embrace change, and you embrace the present as well as the past. Embrace change, and will never think of yourself as an "old guy".

    52. Re:Who is stopping him? by ragnarokxg · · Score: 1

      Thats why you use Android Studio. It is a lot easier to get started up on an Android project with the new IDE. The only downside is the learning curve that comes with using Gradle as default. It does make Android development very interesting. And as for trying to use the Hello World program you just need to google a newer tutorial. But it is pretty much all there, I am waiting to see if they adopt Groovy as their response to Swift because it will allow for an easier, more fun and more productive programming experience.

    53. Re:Who is stopping him? by Actually,+I+do+RTFA · · Score: 2

      Watch Google punt on the ADT bundle as soon as they take Android Studio out of beta.

      I also expect to see the second coming of Jesus riding unicorns at that point. Beta is the new Gold Master

      --
      Your ad here. Ask me how!
    54. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      Thanks. You beat me to it :-)

    55. Re:Who is stopping him? by sumdumgai · · Score: 1

      Welcome to Agile.

      --
      âoeIn theory, theory and practice are the same. In practice, they are not." â Albert Einstein
    56. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      I think the main reason why spec and finished product don't match is because "spec" is a moving target that never solidifies. Agile processes just make it worse by not even attempting to nail down requirements beforehand...

      Are you serious? You must not be doing something right then. Before a sprint team even has the stories proposed to them, they should have been hashed out by the business/product owners and not subject to change unless the sprint team decides there are problems with it. If that happens it gets dropped/rejected or put on hold to clarify. Once a story has been accepted by a sprint team, it should not be subject to change from an external party.

      The company I work for has agile implemented probably the best I have ever seen it, and it is amazing the amount of work we churn through.

    57. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      not all men

    58. Re: Who is stopping him? by Anonymous Coward · · Score: 0

      Ill just leave this little snippet here from the link mentioned above. ;)

      NeedsInfo: The bug report has insufficient information to act upon. The person who reported the bug needs to provide additional detail before it can be triaged. If enough time passes and no new information is provided, the bug may be closed by default, as one of the No-Action states.

      brilliant, they can't figure it out so they will just close it like a bug
      never happend. instead they want you to do the legwork all for free. fuxk that.

    59. Re:Who is stopping him? by Rakarra · · Score: 1

      It's not the known rules that will get you, it's the unknown ones.

    60. Re:Who is stopping him? by geminidomino · · Score: 1

      Duh, it's a Gruntmaster 6000.

    61. Re:Who is stopping him? by vilanye · · Score: 1

      Gradle: "Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build."

      That is like making headcheese and than coding it with anthrax.

    62. Re:Who is stopping him? by vilanye · · Score: 1

      errr coating

    63. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      Yeah, it is fucking easy.

      I have a web app I am developing in my own time that has all the features, plus more than of the top offerings in the category and those projects have 100+ committers compared to just me.

      The secret? I don't use shitty languages like PHP.

      Managing the "full stack" which includes Nginx, passenger, postgresql,ruby, rails, js, ffmpeg, imagemagick, pdf generation, faye, thin etc is trivially easy. From the start of the project to now, I have gone through at least a dozen Nginx updates, 19 rails updates, 8 ruby updates, etc and have never had a problem managing all the various parts.

      Sounds like you are retarded and don't know what the fuck you are doing.

    64. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      >but now the librarians are complex and not intuitive

      Librarians have always been complex and non-intuitive. That's why we have the Dewey Decimal System

    65. Re:Who is stopping him? by Anonymous Coward · · Score: 0

      I had sample code from the manufacturer of a microcontroller (Atmel) that didn't even compile. Now get off my lawn.

      AC

  5. "Just let me build a bridge!" by horm · · Score: 5, Insightful

    Engineering any complex system requires a significant amount of planning and management overhead. When you want to build a bridge, you don't just throw a bunch of construction workers at it and trust them to make the best judgements, even though you might trust each one of them individually to build a sawhorse or something equally trivial.

    1. Re:"Just let me build a bridge!" by aix+tom · · Score: 5, Insightful

      I agree, and that is actually a pretty good example on how it could/should work in IT also.

      You have an architect or an engineer to make the general plans, then split that into chunks the individual construction workers can handle, and then let them do their job. On top of that you have some sort of infrastructure specialist, who might not know much about bridges, but has determined that there is a traffic bottleneck at point X that needs a bridge.

      I would be perfectly happy to be either the architect or the construction worker in a project, but (for projects larger than a sawhorse) those two people SHOULDN'T be the same person. I that sense I sometime would also like to scream "Just let me Code!" instead of dragging me into all sorts of management meetings where people just sit around going "Say, wouldn't a bridge be nice?" First decide THAT you want a bridge, then decide WHERE you want a bridge, only then come to me to be the architect and get someone else to code, or get an architect that then gets me to code.

      But in IT a lot of unnecessary overhead is caused because people call big meetings of construction workers before having even decided if they want a bridge or not.

    2. Re:"Just let me build a bridge!" by niftymitch · · Score: 1

      Engineering any complex system requires a significant amount of planning and management overhead. ........

      Engineering vs. building is an interesting distinction.

      Most complex products mandate long term maintenance, long term liability and multiple people including management and oversight.

      Sadly companies seem to invoke a one size must fit all process.... we have all seen the camel designed by committee of platypuses jokes.

      Worse some products like Android are big thunk monolithic update piles when they look and masquerade as small elegant Unix like programming problems to developers of olden days.

      Then there are bridges over puddles and other bridges over 1000 foot canyons. In one case
      you get wet feet and soggy shoes...

      --
      Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
    3. Re:"Just let me build a bridge!" by Qzukk · · Score: 4, Insightful

      When you want to build a bridge, you don't just throw a bunch of construction workers at it and trust them to make the best judgements, even though you might trust each one of them individually to build a sawhorse or something equally trivial.

      You also don't have the president of the company come in and declare that this week we're switching to agile bridge building and fuck six, we're going to seven sigmas so we can be on the bleeding edge and shift our paradigms into high gear to synchronize our release schedule and get out ahead of the pack as we swing around the final stretch into the processification.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    4. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      To be fair, a lot of software is extremely overengineered and underdeveloped. If you've ever had the misfortune of hearing a software engineering lecture, you immediately understand how some people can be proud of software that any sane programmer from two decades ago would throw out to start over. And he'd end up with something that has better time and memory complexity and fewer bugs and is easier to understand. But none of the "software engineers" could run any tests on it, so they'd throw it out and return to the bloated mess they "engineered".

    5. Re:"Just let me build a bridge!" by istartedi · · Score: 1

      Your analogy is unacceptable. You should have written it in Esperanto. Esperanto is the new standard for analogies from corporate. Also, you should have simultaneously posted it to your FaceBook account which you are required to have if you wish to perform analogy services on this network. Furthermore, you did not submit your prose to the grammar nazi trolls, or allocate time for analogy review in the scheduling program. Please rectify these discrepancies and I will get back to you during my appointed window for analogy review, Tuesdays from 2 to 4:20PM.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    6. Re:"Just let me build a bridge!" by GiganticLyingMouth · · Score: 1

      I read the article/rant, and he's bitching about the complexity and time required to learn and use modern frameworks and tools, not so much about planning and management. The summary is a bit misleading.

    7. Re:"Just let me build a bridge!" by Impy+the+Impiuos+Imp · · Score: 4, Interesting

      I recall attending a Microsoft Visual C++ Developer's Conference about 15 years ago, when COM and interfaces were all the new rage. I recall one MS guy giving a speech about the complexity of developing with it, bragging, "If it came down to usability for developers or functionality, we chose functionality."

      I knew then I was dealing not with real engineers but with clowns proud of a college project.

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
    8. Re:"Just let me build a bridge!" by chipschap · · Score: 1

      This last post sort of hits the nail on the head.

      Yes, complex projects need to be managed, or you end up with dogpiles like most of today's ERP stuff (and many others). But by managed I mean managed WELL.

      Managed WELL does not mean all sorts of overhead and red tape that exist just because a clueless project manager doesn't know any other way than one-size-fits-all full-blown project management according to some textbook. It means using tools wisely as the project's needs demand, neither more nor less.

      I remember working at a company quite a while ago when "structured development" started to be the latest rage. We had "structured documentation," "structured walkthroughs," structured everything, whether the project was a one-day effort (except after all the structuring nothing was short) or two years. The PMs in charge applied the methodology blindly and rigidly.

      Is the same nonsense, with different names, going on today? No kidding! 'Agile' and all the rest will come and go; do better systems get produced in faster timeframes? I think we all know the answer.

      As an aside, one of these methodology instructors insisted that a good piece of code NEVER contained embedded comments, because the external documentation should be so good that comments were superfluous. And this guy got paid to teach this stuff. Yes, he was an academic with no real-world experience.

    9. Re:"Just let me build a bridge!" by horm · · Score: 1

      :) I like this.

    10. Re:"Just let me build a bridge!" by meburke · · Score: 1

      Not a bad analogy, but Engineering follows the rules of Physics and Chemistry, which were built on layers and layers of scientific thought and experiment. Hardly anyone writing code these days understands what's happening under the hood.

      Disclaimer: I've been programming since 1965. I'm proud of the fact that I can create logic gates that will do medium to complex mathematics.

      Programmers have become like lawyers: They are sometimes competent technicians but are not required to engage in original thought. We are long past the time when we should really need "coders" anymore for application production. We need thinkers who can define requirements precisely, designers who can describe processes to produce those results, and then turn the design (UML. Warnier-Orr, Flowchart, etc.) over to a generator that produces reliable, proven object code. The inventiveness is in the design, not the coding (usually...some exceptions apply).

      In a society where we are faced with self-driving cars and machines that care for sick, young and elderly, the type of "coding" (based on layers of algorithms developed back in the 60's..including errors) will not be sufficient. Committee-work will not make it better.

      Goedel? Who cares? Somewhere there is an original thinker who can traverse the wall of logical abstraction that will allow us to prove programs correct in multiple domains. When that happens, "coding" will be demonstrated in craft fairs instead of professional offices.

      --
      "The mind works quicker than you think!"
    11. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      He's not talking about bridges. He's talking about the fact that building a book case requires the same overhead as building a bridge. He doesn't even need that book case!

    12. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 5, Funny

      What about synergy? Where is the GOD-DAMNED synergy!? Oh shit, this project is totally going to fail.

    13. Re:"Just let me build a bridge!" by horm · · Score: 1

      Oh. Who has time to read the article. Isn't that the point of the summary?

    14. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      Get off my lawn!!!

    15. Re:"Just let me build a bridge!" by Junta · · Score: 3, Interesting

      those two people SHOULDN'T be the same person.

      In my experience, that is the heart of what is wrong with a lot of software projects: it's considered taboo to do both architecting and developing.

      The theory is obvious enough, but in practice an architect that is not implementing overlooks some very significant issues. The implementer has his hands tied because 'the architect said so' and the implementer trudges on also blindly unaware of anything beyond his little island.

      The best teams I've been in have had everyone participate in architecting and development, with healthy amounts of communication.

      The thing about construction projects is that they are simply so massive you need a horde of construction workers. In software development, we often like to *think* we are making something equally massive when in practice if we do need that many people working on it to get to the goal then it 99% of the time means we are doing something wrong in the first place. If we put hubris aside and realized that the scale isn't so grand as to require a trillion little dependencies and components, we produce good code. This doesn't mean the opposite situation of a gigantic monolithic blob is good, but there is a reasonable middle ground.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    16. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 1

      Sounds great until you find out workers are filling out 3 sets of paperwork for every bolt on the bridge and yet bolts are still being put in wrong.
      The solutions so far are:
      1. Just put in the bolts as fast as possible and have people drive cars on the bridge to see if it feels good to them while you turn the bolts.
      2. Two workers put in 1 bolt together and trade off every half turn or so.
      3. Hire a contractor to produce an analysis on bolt turning and why you should be using a different tool that he personally likes.
      4. Before you even start turning the bolt, put the predicted load on the section so it falls apart. Make a turn with the bolt and try again. Keep turning until it doesn't fall apart and then move on to the next bolt.

    17. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      Engineering any complex system requires a significant amount of planning and management overhead.

      2/3 planning
      1/3 doing

      - For anything "large" in scale. And if you can't explain what you are working on in simple terms to your spouse / a non-expert in the field, start over.
      - Yes, Agile is still compatible with this philosophy. You still do sprints but planning is a significant part of those sprints rather than hacking something out quickly, hoping for the best, and dealing with it "later".
      - To the OP, a good set of project managers are worth their weight in gold. Without knowing specifics I suspect that's the biggest problem that needs to be addressed first.

    18. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      Synergy is SO '10s. Where we're going, we won't need synergy!

    19. Re:"Just let me build a bridge!" by Noah+Haders · · Score: 1

      2. Two workers put in 1 bolt together and trade off every half turn or so.

      this is exactly how it works, except with rivets.

    20. Re:"Just let me build a bridge!" by TheRaven64 · · Score: 1

      In The Humane Interface, written in 2000, Jef Raskin made the same complaint. The time between turning a computer on and having written a program to add two numbers together on, say, a C64 or a BBC Model B, was about 30 seconds. On a modern computer of the time, you wouldn't even have finished booting - starting the IDE would take even longer. The problem is, this misses the point. There are lots of scripting languages with REPL environments, including a POSIX shell and PowerShell on Windows, that can do this as a single command once the computer is running (on OS X, you can add numbers in Spotlight, so it's even quicker - just hit command-space and type the sum). If you want to write a more complex application, it's vastly easier today. Extend that simple calculator to show an editable history and show equations, and you'll find it a bit easier today. Now extend it to be able to print - if you've ever written applications to print in the era before operating systems provided a printer abstraction then you'll know how painful that was.

      --
      I am TheRaven on Soylent News
    21. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      When it comes to designing the gears inside an operating system, I'd be willing to give them the benefit of the doubt when it comes to their standard of necessary complexity.

    22. Re:"Just let me build a bridge!" by canadiannomad · · Score: 1

      Obligatory: A Bridge To Nowhere

      --
      Hmm, the humour and sarcasm seem to have been be lost on you.
    23. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      15 years ago? COM was the new rage in 1999?

    24. Re:"Just let me build a bridge!" by zildgulf · · Score: 1

      There is nothing wrong with planning and needed homework before you start programming. How can you program anything if you don't know what you are trying to create? The prep work is part of the programming.

      The problem is when navigating the programming environment itself and the Byzantine bureaucracy itself are more important than actually getting stuff done and eats up 98% of your time and energy. Work in a big shop and you will understand the complexity of changing just "one item" can take weeks, including half panicked conferences with one or so of the few insane junior executives and TPS reporting systems galore. The joke of creating the 15th revision of the development plan that include red and straight lines originally and now changed to blue circles that must act like red straight lines is painfully real in those environments.

    25. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      If theyre union workers, certainly

    26. Re:"Just let me build a bridge!" by Rakarra · · Score: 1

      I would be perfectly happy to be either the architect or the construction worker in a project, but (for projects larger than a sawhorse) those two people SHOULDN'T be the same person. I that sense I sometime would also like to scream "Just let me Code!" instead of dragging me into all sorts of management meetings where people just sit around going "Say, wouldn't a bridge be nice?" First decide THAT you want a bridge, then decide WHERE you want a bridge, only then come to me to be the architect and get someone else to code, or get an architect that then gets me to code

      Boy, I don't know how many times I've seen horrible times come around because those with the most technical expertise were not involved in the design/decision making. Specs that make no sense, hardware and software choices that are unmaintainable in the long run, platform choices that the team doesn't have any experience with. Those sorts of meetings may not be that interesting most of the time, but it's better to be involved in the design, because saying "but I just wanted to code" won't make it any more fun to try to implement bad decisions.

    27. Re:"Just let me build a bridge!" by Rakarra · · Score: 1

      What about synergy? Where is the GOD-DAMNED synergy!? Oh shit, this project is totally going to fail.

      It's ok, we already pushed that out to our machines: http://synergy2.sourceforge.ne... .
      Synergy is taken care of!

    28. Re:"Just let me build a bridge!" by Anonymous Coward · · Score: 0

      I think we work at the same place.

    29. Re:"Just let me build a bridge!" by JimFive · · Score: 2

      We need thinkers who can define requirements precisely, designers who can describe processes to produce those results, and then turn the design (UML. Warnier-Orr, Flowchart, etc.) over to a generator

      We already do this, that generator is called a compiler. By the time you have specified a design to the same detail as an engineer specifies a bridge you have already written all the code. Engineers specify a design down to every individual bolt. Software specifications do not design down the individual line of code. This is the difference between engineering and programming: in engineering when a design is completed then the object still has to be built, in programming when the design is completed then the program is done.
      --
      JimFive

      --
      Please stop using the word theory when you mean hypothesis.
  6. n00b by Anonymous Coward · · Score: 0, Informative

    N00B, I've been dealing with that since the 90s. 75% or more of my time spent on project overhead and 25% of time spent coding.

  7. For given values of useful by Anonymous Coward · · Score: 0

    Things like documentation and version control make your work a lot more usable.

  8. For trivial programming by just_another_sean · · Score: 1

    I find Vi/G**/Make is still pretty simple. And things like SDL, GTK, QT, etc. simplify things even more. Having watched Windows development evolve for a long time I can sort of see what the submitter is saying but on the other hand anyone who ever wrote a C program for Windows in the 90's using the original Petzold books should really appreciate the frameworks available for Windows programming these days.

    Again, I'm talking "Coding for fun, hobby, learning" here, just simple stuff. If it's a business app or something where the subject matter is complex than my feeling is the tools are still more helpful in overcoming that complexity than having to do everything from the bottom up.

    --
    Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
    1. Re:For trivial programming by Anonymous Coward · · Score: 0

      I disagree. For complex systems people tend to rely too heavily on the toolset to manage the complexity. But the complexity is better met by modularity of the system. Rather than developing an enormous C++ application in a single repository, start farming things out into separate libraries and maintain them as separate libraries--which means minimal dependencies sometimes requiring some moderate amount of duplication.

      People spend too much time trying to abstract _everything_. The problem with that approach is that it's not manageable to apply such rules across large scales. Likewise, they try to minimize everything. That leads to excessive reuse of code (that's right, I said reuse, not duplication!). Excessive reuse of code means that small changes and bugs can ripple through a project. If you have two functions which do identical things, best practice says to merge them and reuse the same function everywhere. But in _practice_ if you do that too much you end up with complex interdependencies.

      Take, for example, the "utility" library that everybody writes. They put all their tree, list, hash, and string operations into a shared library. It slowly grows over time. Eventually you're making design decisions on some project based on the limitations of that shared component. In actuality, such simple data structures should be the last thing you need to worry about duplicating. It's precisely the kind of thing you can copy+paste, because that logic isn't going to change. Python, Perl, Java, Ruby, et al don't share a libtree or libstrops library, even though they all implement almost exactly the same algorithms in identical use cases. They do often share use of ICU (unicode library). That's not a coincidence.

      My development environment is GNU Make (not autotools! Just GNU Make.), joe (Joe's Own Editor), Git (if I have a choice although it's not that big of an issue because I don't care about IDE support), and a POSIX environment. Being well versed and well practiced in those things makes it easy for me to develop in most environments and most languages.

  9. We need to talk about your TPS reports by Joe_Dragon · · Score: 4, Funny

    It seems that you did not put the new cover letters on them.

    1. Re:We need to talk about your TPS reports by ArhcAngel · · Score: 1

      It seems that you did not put the new cover letters on them.

      Actually I did. I just used the economy ink setting so you have to squint really hard to see it.

      --
      "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    2. Re:We need to talk about your TPS reports by Joe_Dragon · · Score: 1

      you are still printing them? that is for the old job codes and not the new ones that are just E-forms

  10. Bicycles and Jets by bill_mcgonigle · · Score: 3, Insightful

    If you want to bring three hundred people half way around the world, don't try to do it on your bicycle.

    If you enjoy bicycling far more than piloting a jumbo jet, then you should be in bicycling, not commercial aviation.

    What, you don't like jumbo jets and nobody wants to pay you to ride a bicycle? Maybe you should invent the hyperloop or manage a B&B instead.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    1. Re:Bicycles and Jets by nonsequitor · · Score: 1

      If I had mod points, I'd mod you up some more.

      Any new safety critical code has to be developed with "State of the Art" techniques, which now means using a variety of fancy tools for job & bug tracking, requirements and V&V (the requirements shall be written the same way we decided 20+ years ago), design IDE (UML from the 90's), coding IDE (emacs anyone? probably not at work), static analysis for complexity metrics, coverage tools for decision and structural coverage, source control, etc. These tools then get scripted to cross reference everything. And that's just for the software portion.

      At system level, you have to perform a hazard & risk analysis to determine what the potential for harm is from hazards that may be encountered during operation. If you were writing software for radiation therapy machine like the THERAC 25, you would have to identify risks, like exposure to high dose of radiation and the severity of harm, in this case potentially lethal radiation poisoning. This determines you safety integrity level, and amount of process which must be applied, in avionics it's the difference between DO-178B Levels A - E (A = plane falls from sky, E = no risk to critical systems), in automotive it's the safety integrity level SIL 0 - 3. Then you would have to define safe operation, like maximum plausible therapeutic dosage. Then from a functional perspective you would identify critical signals from sensors, data buses which carry data that feed the algorithms which control the X Ray Beam intensity and activation. It will also mandate various software integrity tasks for each component like cyclic CPU core tests, program flow control monitoring, cyclic RAM and ROM tests, stack monitoring or analysis, and trace-ability of requirements to design to code to tests, and level of independence between coders and testers. For a SIL 3 component like an electronic steering wheel, where a malfunction in steering control at highway speeds can cause multiple fatal accidents, an independent organization would be required to develop and implement the test plan based on the requirements.

      Managing the development of software by teams of individuals requires much more documentation and meetings than working as a lone coder and a process in which only 10% or less of the work is actually coding, that means enough documentation for new team members so they don't have to bug the productive team members and having a work culture that strives towards excellence in ensuring mundane details like a decimal point don't kill someone. If you want to write software that does cool stuff like control the maneuvering thrusters on the SpaceX Falcon 9R for a soft ground landing, then you and maybe dozens of other people have to make sure all those mundane details are right when its the difference between landing softly at the spaceport and crashing into a major metropolitan area and exploding (or so I assume, considering I do not and have never worked for Space X). If you undertake a project like this and fail to do your due diligence and are negligent in carrying out these tasks and people die, you or your manager might easily end up in jail or your company could be fined Billions in damages like what happened to Toyota.

    2. Re:Bicycles and Jets by cascadingstylesheet · · Score: 1

      If you want to bring three hundred people half way around the world, don't try to do it on your bicycle.

      Better that than on an ocean liner mounted on absurdly convoluted bicycle wheels.

      I mean, as long as we're doing the wildly inapropos metaphor thing ...

  11. So what is the solution? by sandytaru · · Score: 1

    Some sort of mega-all-in-one SCM, IDE, build tool, project management software nightmare?

    Honestly, I think developers on big teams have it easier. Part of my job is to do some of the less exciting operational stuff so that they can spend more time coding. (We unfortunately lump in the build process with coding, even though it's not that sexy.)

    --
    Occasionally living proof of the Ballmer peak.
    1. Re:So what is the solution? by Krishnoid · · Score: 1

      Some sort of mega-all-in-one SCM, IDE, build tool, project management software nightmare?

      That's my text editor, you insensitive clod!

    2. Re:So what is the solution? by frank_adrian314159 · · Score: 1

      Yeah, sounds like EMACS except for not having an OS thrown in... but maybe they just forgot to mention that.

      --
      That is all.
    3. Re:So what is the solution? by jeremyp · · Score: 1

      The perennial joke is that EMACS is a great operating system, all it needs is a decent text editor. However, that's really unfair, you can get a vi emulation module for it now.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    4. Re:So what is the solution? by PigleT · · Score: 1

      I think it's pretty obvious that no one IDE is going to be the best. What's actually needed is the understanding that, no matter how many IDEs you care to standardize upon, the compiler only cares about the language. It's the fact that you're calling free() before you malloc() that causes a segfault, not whether you push F9 or F2 or type `make' to compile it. Expect text-editors to edit text and choose the one(s) that make your job easiest. The supposed integration between IDE and language just makes for a layer of glue that can come apart.

      --
      ~Tim
      --
      .|` Clouds cross the black moonlight,
      Rushing on down to the circle of the turn
  12. Cue the "artist" vs. the "engineer" by Anonymous Coward · · Score: 5, Insightful

    This is a old song and dance. It's easy to create software, but it is difficult to create and maintain good software.

    Apply Sturgeon's Law and be done with it.

    I'm tired of whiny youngsters, and not-so-young wimps who think they can program because they took a few classes, or got hired by a tech company who was desperate to hire anybody with even the slightest talent.

    Like the whining by Phil Fish in Indie Game movie about it being hard to write video games. Duh.

    Get over yourself, it's called work. Many people including many programmers have being doing it for several decades now.

    1. Re:Cue the "artist" vs. the "engineer" by Anonymous Coward · · Score: 3, Insightful

      You got that right....

      I'm working on my third decade at this job and I can assure you that the time you spend "coding" is actually one of the smaller tasks you have to do as a programmer. There are all the things you must do to get ready to code, the coordination with the people you work with, design and documentation to go with it and all the things you do AFTER you code, the testing, verification and debugging of the problems uncovered. There is also the "Oh Crap! I didn't write this!" time you use up when trying to figure out other people's code (or perhaps what they did to your code..). Not to mention the "What the!!!! What was I thinking?" time waster. Then there is all the logistics like performance reviews, filling out time cards and taking ethics and sexual harassment training...

      There are two ways to avoid all this...

      1. Only program for fun, not profit. Volunteer for some project, but keep it small.

      2. Only work in small ma & pop shops where you are the only programmer they have and none of your programs exceed a few thousand lines. Don't expect to make any money.

      If you want to make a living at this job, sit down and do the job. Stop griping about the parts you don't like....

      Now you greenhorn Java hacks who think a punch card gets you a free coffee can get off my lawn.

  13. No Surprise by digitalPhant0m · · Score: 1

    This is what happens when doing what you love turns into a job/career no matter what the industry.

    1. Re:No Surprise by Anonymous Coward · · Score: 0

      This is what happens when doing what you love turns into a job/career no matter what the industry.

      W. O. R. K. is four letters for a reason...

  14. best hacker !! by Anonymous Coward · · Score: 0

    I got into programming because I want to be the best hacker in the world.

  15. Thats why I stock MILLIONS of retro-components... by MindPrison · · Score: 3, Insightful

    ...Yep, got a pretty solid collection of those components, yesterdays micro controllers, CPU, Ram, Rom, Transistors, Tubes, Electrolytic Caps, Resistors, Varistors, Nuvistors and whatnotstors...

    Yep, they're old...but they've made me a finalist in various international Robotics competitions, given me freedom to invent stuff from scratch without making everything overly complicated, kind of like LEGO building bricks...you can make anything you put your mind to, and I like a CLUTTER FREE mind.

    I do feel the pain of many of todays youngsters who have to go trough extreme learning curves just to get into "the game" from scratch, not easy. Everything is specialized and we literally have no jack-of-all-trades coders anymore, pity...that's what we need IMHO.

    --
    What this world is coming to - is for you and me to decide.
  16. obligatory car analogy summary by NemoinSpace · · Score: 1

    Yes, we have taken the hand crank off engines long ago.
    And I miss them.

  17. And here I thought it got easier... by Anonymous Coward · · Score: 2, Insightful

    With new processors being absurdly faster than they were 10 years ago, writing programs has never been easier thanks to the plethora of scripting languages available today. It seems like a lot of the tools are easier than ever to use, or still in use (make). Text editors like SublimeText or gEdit can help alleviate some of the terminal based text editor fear in a more "Word" like environment.

    IDEs can do some crazy shit with little or no knowledge of what's going on in the inside, just sit back and "enjoy" the magic.

    I personally write a lot of small programs, and I've never thought "this has gotten harder." Granted, I'm explicitly making the choice to use a scripting language instead of something like C, Java, Haskell, Erlang, etc. but due to the advancements in hardward-- why not? Unless you're programming low-latency server applications or games it really doesn't matter.

    Maybe it's just a problem of you not finding, or having the right tool for the job?

    P.S. Try scaling up a 100 servers on the cloud using Chef, then try doing that with tools/platforms from 10 years ago... No don't. It'd be irritating as shitting on an ant hill.

    1. Re:And here I thought it got easier... by BronsCon · · Score: 1

      P.S. Try scaling up a 100 servers on the cloud using Chef, then try doing that with tools/platforms from 10 years ago... No don't. It'd be irritating as shitting on an ant hill.

      That's ops. If that's what you want to do, more power to you, but someone who wants to code wants to code; and those of us who just want to code are EXTREMELY happy to have ops and dev-ops people around. Personally, I'm happy on either side of the fence; less so if on both.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    2. Re:And here I thought it got easier... by Anonymous Coward · · Score: 0

      I'm not sure why shitting on an anthill would be irritating? Doesn't really require much other than bending over, dropping your pants and "bombs away". Perhaps if it was a big anthill, then logistically there might be annoyances as it might be hard to 'straddle' it - but even then, all that would be needed is some elevation.

      Of course, maybe you were talking about the ants being irritated by being shat upon? Though, arguably, they might see it as a gift from the gods - in the form of food. Not sure, do ants eat shit?

  18. web development, and java ee in particular by Anonymous Coward · · Score: 1

    This certainly seems the case for web dev and java ee. I am not as sure it holds true in other software realms.

    Web dev is the klugiest of environments and it's made worse and proudly so by web devs.

    1. Re:web development, and java ee in particular by Daniel+Hoffmann · · Score: 2

      I could throw so many acronyms and language/framework names at you I personally use in a single project that you would want to kill yourself before going into corporate web-dev. And I don't even use Java EE, I use Spring (which is still a beast, but not as bad as Java EE.)

    2. Re:web development, and java ee in particular by Anonymous Coward · · Score: 0

      I worked at a place (~13 years ago...) that insisted my object be an EJB and I that alone made me want to kill myself.

  19. Tools not the real problem by PerlPunk · · Score: 1

    Tools make it easier for project managers and execs to try to collect data from developers for compliance initiatives, and the additional (and often unnecessary) burden that places on a development team in turn compromises development efforts, including those not directly related to coding.

  20. Documentation by pooh666 · · Score: 5, Informative

    I don't really follow what this guy is talking about in general. But one thing I have noticed is that documentation quality on new tools/APIs has steadily gone downhill. For example, I am really excited about node.js, but on the page proper, their docs just dump some bits of info on standard functions. That ends up making learning something new, really fast, more difficult than it used to be because you have to go to 3rd party sources, they may be full of crap, way out of date or both. It is one thing to have to put in your time to get comfortable with something new, but it is another to have to act like you are hacking a black box to learn it.

    1. Re:Documentation by Tablizer · · Score: 3, Funny

      You don't gettit. See, if they documented node.js well, it would no longer have "nerd cred"; it would become Yet Another Boring Framework/Tool with 20 titles out like Learn Node.Js in 7 Days Unleashed Bible Face-First into the Deep End Without Water instead of an elite tool for elite nerds who can master the arcane and obtuse to write the distributed 3D TwitterFace.com and Fix ObamaCare.org in 3 days.

    2. Re:Documentation by Anonymous Coward · · Score: 0, Interesting

      That's because Node.js is an ugly hack built on an ugly language, both of which have piss-poor support for concurrency and parallelization. Callback continuations are idiotic. But it's the only way to do concurrency in Javascript because the language's evolution is constrained by the existing JIT implementations, which cannot cleanly support fibers or coroutines. (And in a browser context you simply don't want massively concurrent execution of contexts within a web page, anyhow. Yet in a server environment it's the precise thing you want most!)

      I manage a small Lua library which is simpler, cleaner, smaller, more useful (coroutines instead of callbacks, condition variables instead of promises, although I've implemented promises using condition variables and coroutines), infinitely easier to extend (Lua is unsurpassed this way), and more portable (O(1) polling on all BSDs, OS X, Linux, and Solaris; signal polling on all; file change notification on all; among other facilities) using Lua. LuaJIT is faster than V8, although most web apps aren't bottlenecked by the things that a JIT accelerates. In any event the library builds as a module for LuaJIT, PUC Lua 5.2, and PUC Lua 5.3.

      The last piece to my puzzle is implementing a networked module loader. I can seamlessly interpose the require() function and download modules on-the-fly, maintaining a local cache. Requiring users to pre-install modules a la NPM is so 1990s. With my library you'll be able to use any module you care about without worrying about installation or removal. I can even download updates to modules in the background, so that security updates or bug fixes can be applied to running instances, as long as the module is careful about state management.

      See http://25thandclement.com/~william/projects/cqueues.html, which is the low-level library I'm building the project around. It has zero dependencies, building cleanly on OS X, NetBSD, FreeBSD, OpenBSD, Linux, and Solaris 11 using the stock environment (libc and OpenSSL).

    3. Re:Documentation by Anonymous Coward · · Score: 0

      Eh, it's been that way at least since I started in the 90s. There are some projects here and there that have been good, but indie/academic stuff usually sucks unless there's a very large user base/community and even commercial OSes tend to have large areas of APIs that may as well be antartica.

    4. Re:Documentation by pooh666 · · Score: 1

      It is too bad you anon cowarded this, but I will reply anyway. Your lib sounds fantastic, I wish it had Windows support. I have been mainly looking for a replacement for mod_perl/mod_proxy combination. Re node, I notice they have a lib just to deal with the single thread issue of one fatal error taking down the whole server, and the caution on CPU intensive opperations seems to mean you have to create some extra complexity in offloading that, because to me, even parsing a big block of json could be considered in that realm.. So the end results is that node is for passing small messages around really fast and not doing much with them, but we have enough chat severs already...

    5. Re:Documentation by NormalVisual · · Score: 1

      For example, I am really excited about node.js, but on the page proper, their docs just dump some bits of info on standard functions. That ends up making learning something new, really fast, more difficult than it used to be because you have to go to 3rd party sources, they may be full of crap, way out of date or both.

      It's especially discouraging if you've been around for a while and remember what documentation used to be like. I still have the 30 pounds or so of manuals that the old Borland C++ compiler came with. Microsoft's current electronic documentation is pretty good, but it can sometimes still be a bit tough to find exactly what you need.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    6. Re:Documentation by Rich0 · · Score: 1

      Tutorials are also wanting. Android Studio has an online tutorial, but it doesn't match the current version of the application. They even made /. a little while ago about having an online course (free to women) on Android Studio, but it ALSO doesn't match the current version of the application.

      I get that they're changing it frequently, but that just means that they have to update the documentation. I'm not talking about anything extensive either - we're talking about a Hello World tutorial. What does somebody who understands Android but wants to learn the new IDE need help with? That would be the exact functions they keep tweaking but leaving out of the tutorials.

  21. was with op until the end... by Anonymous Coward · · Score: 0

    Everything except simplicity.

    I posit that the reason most of the tools suck is they try to make things TOO simple. examples being ui toolkits like yui or jquery-ui. Their object models may be innovative for allowing complex apps with terse code, but what if those terse code examples don't do what you want? the documentation is abysmal, and invevitably innaplicable to the version you have. What if you're trying to traverse your way up the callstack to solve the problem for yourself? by the tenth 4-line function up the stack surely it becomes obvious!
    The bottom line is they try to hide everything from the "user" (the user of the toolkit is the developer), to make it "easy". but it never is.

  22. The price you pay by petes_PoV · · Score: 4, Insightful

    The simple programs of a few hundred lines of C++ long ago disappeared from my experience

    I think the reason is, that people who pay for software have been bitten by "simple" programs too often.

    With a simple program: one where you open a file, do some stuff and produce an output - that always supposes that everything works as it's expected to. It assumes the input file has the expected name, that it contains the expected data and that the format is what you expect. It also assumes that the data will fall nicely within the bounds of "sensible" values, and that the output can be written as the coder expects.

    However, real-world data is never as neat as we plan for (especially when there is a deadline). There can be missing values, changed formats, some data is floating point or fixed and DATES. Can the "simple" code deal with DD-MM-YY and DD-MM-YYYY or even some people who randomly swap that day / month / year field order, or use names for months - or slip leap years into the fields.

    Basically, with the "simple" libraries that most of us use, there is a fundamental lack of robustness. Our code works with data we expect, but coughs a brick with something unusual - or from a changed specification.

    And then there's the security angle. There's always a security angle

    These are the factors that have made "coding" a complex business. Simply because the simple coding models we use to knock out a couple of hundred lines of code with, have shown themselves up to be wrong, limited an unreliable.

    --
    politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    1. Re:The price you pay by Anonymous Coward · · Score: 1

      With a simple program: one where you open a file, do some stuff and produce an output - that always supposes that everything works as it's expected to. It assumes the input file has the expected name, that it contains the expected data and that the format is what you expect. It also assumes that the data will fall nicely within the bounds of "sensible" values, and that the output can be written as the coder expects.

      No, it doesn't. Only if you're an awful programmer. Such checks can be inserted without going beyond a few hundred lines of code.

    2. Re:The price you pay by Anonymous Coward · · Score: 0

      Such checks can be inserted without going beyond a few hundred lines of code.

      Your code gave me an error message that it did not like my date format. You are an awful programmer.</user>

    3. Re:The price you pay by petes_PoV · · Score: 2

      Such checks can be inserted without going beyond a few hundred lines of code

      And then the next guy writes their own set of checks, which work slightly differently and check different things and in a different order. So both of you have spent time writing essentially, the same thing. - And maybe even spent even longer testing it and occasionally documenting it too. OK, maybe that last one''s a stretch. Nobody bothers to document "simple" programs, since we all know the code IS the documentation and any good programmer can work out what is going on (are they still teaching that garbage?)

      And then when there's a change to the data formats, or a migration to a new environment, instead of swapping out one library of standard code - every single soddin' "simple" program has to be checked, re-tested and debugged.

      So no. People who are still doing this sort of thing, even though the industry has been suffering from their intellectual laziness for decades, shouldn't be allowed to develop commercial code.

      --
      politicians are like babies' nappies: they should both be changed regularly and for the same reasons
    4. Re:The price you pay by Anonymous Coward · · Score: 0

      And then there's the security angle.

      The security angle dictates that we should be writing simple programs, because these are simple enough to verify.

    5. Re:The price you pay by NormalVisual · · Score: 3, Insightful

      OK, maybe that last one''s a stretch. Nobody bothers to document "simple" programs, since we all know the code IS the documentation and any good programmer can work out what is going on (are they still teaching that garbage?)

      Not just teaching it, *practicing* it. My boss is a hardcore Agile fan, and his official stance is "out of date documentation is worse than no documentation, so don't spend any time documenting anything, and if you can't figure out why this 12-year-old code is doing something, find someone in the group that does". Nice, except none of the guys that actually wrote that cruft are still there, and reading code doesn't necessarily provide any insights as to the higher-level theory of operation when multiple modules work together. Then on top of that, he says "I don't want to see any research tasks in this sprint". So what, I'm supposed to know how this works by osmosis?

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    6. Re:The price you pay by Anonymous Coward · · Score: 1

      And then the next guy writes their own set of checks, which work slightly differently and check different things and in a different order. So both of you have spent time writing essentially, the same thing. - And maybe even spent even longer testing it and occasionally documenting it too. OK, maybe that last one''s a stretch. Nobody bothers to document "simple" programs, since we all know the code IS the documentation and any good programmer can work out what is going on (are they still teaching that garbage?)

      The code development team where I work has responsibility for a huge physics software package which can run on either a parallel environment or serially. The code itself has around 100k lines of code; adding in all the other ancillary software, the code base is easily several times that size. Before any code is submitted into the repository, it must run through a test suite which tests just about everything imaginable. If the code doesn't make it through the test suite it doesn't get added to the repository. When new functionality is added to the code, a new set of test cases must be constructed and added to the test suite. The test suite is an integral part of the code writing process. If you have each member of the team writing their own set of idiosyncratic test cases, your code team is not doing it right.

    7. Re:The price you pay by Kjella · · Score: 1

      The agile way, quick and dirty. Find the code for whatever task you're supposed to do and change it. You do not try to place it on some grand master blueprint like in waterfall. Nor do you, according to agile, need that blueprint to add a new feature. If your code change breaks anything then tests will fail. Now you've got regressions, that's a task if you need one. Don't build any extra abstractions. Don't make your code overly generic. Go back and add those only as they become clearly needed and necessary. The general sentiment is that we don't know what tomorrow will bring, so fix it for today and if we need to redo it later we'll do just that.

      You ask for the big picture, agile's answer is that there is none. The whole code base is alive and trying to keep on top of everything else that's happening is too much wasted time. You just keep the bits and pieces you work on working as you make changes. If the architecture becomes a problem then we'll make that a refactoring task to solve that particular issue, but it's never a full review. If agile was to create driving directions they'd go something like "Take the road going closest to the direction you want to go. If it becomes rough, carry on as it's probably better to get through that go back. If you really hit a dead end, make the smallest possible backtrack that lets you get around it."

      --
      Live today, because you never know what tomorrow brings
    8. Re:The price you pay by Jeremi · · Score: 1

      You ask for the big picture, agile's answer is that there is none. The whole code base is alive and trying to keep on top of everything else that's happening is too much wasted time. You just keep the bits and pieces you work on working as you make changes.

      My intuition tells me that this would cause the codebase to become an incomprehensible mess over time, as it would not have any consistent organizing principles to speak of. Is my intuition correct, or is that not generally a problem in practice?

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    9. Re:The price you pay by msobkow · · Score: 0

      No, you've hit the nail on the head about the problem with "agile" development. Agile is a team of programmers hacking at a code base without rhyme, reason, or structure. It presumes there are (usually non-existent) regression tests to catch any breakage, and makes no allowance for the fact that without some overshadowing "big picture", people who are new to the team will spend months just trying to figure out what the hell the project does and where to find the pieces of code that need to be tweaked when enhancements are requested.

      As far as I'm concerned, agile is the lazy coder's answer to "I hate writing documentation."

      --
      I do not fail; I succeed at finding out what does not work.
    10. Re:The price you pay by david_thornley · · Score: 1

      FWIW, that's not my experience. We left the code arguably in better shape than we found it.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    11. Re:The price you pay by Anonymous Coward · · Score: 0

      So what, I'm supposed to know how this works by osmosis?

      The same way you check if a wood chipper is on: throw something in and see if it survives.

  23. Boy, do I hear you! by QilessQi · · Score: 4, Insightful

    As a surgeon, I long for the good old days when I could just give my patients a rag to bite on, grab my hacksaw or a good pocket knife, and BOOM, DONE. Now I'm forced to use an "operating room" which has to be "sterilized" along with everything in it -- you wouldn't believe the time it takes! My boss won't even let me use my own hacksaw; instead there's this bewildering array of "scalpels" and "clamps" and things -- they're supposed to make my job easier, but I spend half my time trying to figure out which one's the right one for the job. Oh, and goodbye rag -- I have to have an anaesthesiologist now, and IV tubes for blood and fluids, and all these doohickeys to monitor heartbeat, blood pressure, O2 sat, etc. It's a nightmare!

    Just let me cut!

    1. Re:Boy, do I hear you! by Tablizer · · Score: 1

      I hear Somalia is hiring your kind of doctors. (Libertarians should like the place: low tax, small gov't, few regulations, and lots of guns.)

    2. Re:Boy, do I hear you! by narcc · · Score: 1

      Funny.

      Unfortunately, unlike the surgeon, the added complexity developers suffer from does not offer any actual benefits -- and may even be harmful.

      It's all there in the summary.

    3. Re:Boy, do I hear you! by Anonymous Coward · · Score: 0

      As a surgeon, I long for the good old days when I could just give my patients a rag to bite on, grab my hacksaw or a good pocket knife, and BOOM, DONE. Now I'm forced to use an "operating room" which has to be "sterilized" along with everything in it -- you wouldn't believe the time it takes! My boss won't even let me use my own hacksaw; instead there's this bewildering array of "scalpels" and "clamps" and things -- they're supposed to make my job easier, but I spend half my time trying to figure out which one's the right one for the job. Oh, and goodbye rag -- I have to have an anaesthesiologist now, and IV tubes for blood and fluids, and all these doohickeys to monitor heartbeat, blood pressure, O2 sat, etc. It's a nightmare!

      Just let me cut!

      Nonesense. We had operating rooms decades ago. Now you're forced to fill out paperwork and use unreliable electrical versions of the tools while your patient bleeds to death on the table.

    4. Re:Boy, do I hear you! by sydbarrett74 · · Score: 1

      Don't worry, there are some of us for whom your irony didn't escape us. :)

      --
      'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
  24. The complexity has to go somewhere by Krishnoid · · Score: 4, Interesting

    As things become more powerful, you can't just wish away the complexity. Maybe you can hide it in one of these 'shibboleth' things mentioned in the summary. That sounds big enough to hide things. Or maybe we could just use describe things more clearly -- but that's crazy talk.

  25. Grow Up by Anonymous Coward · · Score: 0

    Yes, when we were children we rode bicycles and skateboards and such.
    Now we drive cars replete with traffic jams, speeding tickets and such.

    Writing code for operational use involves a lot of people and intricacies. Which means systems, checking and cross-checking. You will not get away from that.
    There is the same issue with mechanical and electrical design.

    Grow up and do the work you need to do which includes some of the stuff you don't like doing but is still necessary.

    Eat your damn broccoli!

  26. vi and arduino by cptdondo · · Score: 2

    That's why I work with vi and arduino, or openwrt.... Much more fun, simple, and I can do almost anything I need done.

    But yes, it's a fixie, not a jumbo jet. It's what I like doing, and I happen to make a living at stuff like that. If you are hired to build a jumbo jet, then you need jumbo tools and jumbo overhead. If you don't like it, scale down, hang up a shingle, and get a client. You might be surprised.

  27. Reality? by Anonymous Coward · · Score: 0

    So basically the author is just complaining about that his job doesn't consist of getting to write some small C++ programs without planning, documentation, and QA?

    Perhaps he should get another job and keep coding as a hobby?

  28. the problem is not coding, but coding well. by nimbius · · Score: 5, Informative

    Anyone can write software, but to make it sustainable is a serious challenge. Ive worked at corporations where there was a coding standard that everyone "was expected to know" but it was never told to anyone on their first day (it turns out that was the oreilly perl best practices book.) Im currently working in a shop on a 15 year old application with a confetti development pattern that uses tomcat, jakarta, java, josso, struts, postgres and mysql, as well as a host of other malevolent and unsustainable technology with zero implementation docs and minimal code comments. I understand the love of coding, but as a greybeard i also understand the need for the managerial aspect of it as well so let me try to expound upon what it is we seek to do. im sorry if it comes across in an arrogant way.

    standards, practices, limiting scope and clearly defining goals and objectives prevent redundancy and wasted human time, which lets me keep devs longer because im not constantly sandpitting them in your 'just let me code' app. competent documentation and a service framework with a specific workflow ensure your application can and is debugged in a timely manner when it breaks, meaning I dont drive you out of the company with mandatory 24/7 pagerduty. ITIL and SCRUM are designed to ensure you arent a permanent part of the application, and that I can rely on other teams to help support it if or when you decide to leave for your next job at $corporation. Status updates and progress reviews really dont help you though, they help me. I need this information because at my meetings I have to run defense for you, my star coder. I need to know dates, times, and what it is that you're doing because I translate that into simple english for people in charge of my departments expenditures. "hes just coding" is never an answer i can give to my superiors, because ultimately as a management droid im responsible for you. if something breaks, thats actually my fault. and it makes the entire team look bad, despite it just being your code. If there is an unexplained cancellation and I dont convey it to you, that is also my fault and i expect you to hold me accountable. We're a team.

    I love creativity, i really do, because it means I've hired a good developer. Find a solution, write an application, code a system, but i fully expect you to design it and come up with a unique and functional way to make it the best. But unlike college, the things you do here will impact the company you're a part of for a long time. your code isnt just getting read-and-shred by the adjunct prof, its expected to perform a useful function for us and as such there are dramatically different standards and practices for how you need to code. im only sorry college doesnt teach this; it can be an uncomfortable awakening for many grads.

    --
    Good people go to bed earlier.
    1. Re:the problem is not coding, but coding well. by Schnapple · · Score: 0

      Anyone can write software

      No they can't.

      If you switched me with a sales guy I could do the sales guy's job on a technical level. I could talk to people, I could make calls, I could ask for money. I couldn't do it nearly as well as the sales guy and I'm an antisocial introvert so I'm all wrong for the job on a proficiency level but I could do their job, albeit poorly.

      The sales guy can't do my job at all. He wouldn't know an IDE from his own ass. He has no idea how to write code. He sure as fuck doesn't know how to interface with COM objects or write cross platform code or perform code signing to get apps to run on mobile devices. Not "I can do it but not do it well", he can't do it at all. Not even halfass.

      This isn't me trying to say programmers are special snowflakes, this is me saying that programming is fundamentally more difficult than anything normal people do, and most normal people don't actually want anything to do with it, which is why you often hear "hire a programmer" and not "learn how to program"

      So with all due respect, no not just "anyone" can write software.

  29. Git Rid of the Java EE Stack and Go Node. by Anonymous Coward · · Score: 0

    I feel this authors pain.

    I have been doing Node and Mongo development; 90% easier, 90% faster, 90% cheaper, and 100% enjoyable.

    Gave up the below stack. The Java development stack has become way too complex, and expensive (both mentally and monetarily )

    "Just say NO"
    Java EE stack - Application Developer, DBA,

            System Admin,

            Security, WAS Admin,

            Build Coordinator,

            Deployment manager

    - JSTL
    - MyFaces
    - Spring
    - Hibernate
    - DB Connectors
    - Application Server

            -- JMS SOAP EJB CORBA

            -- Naming Directory

            -- JASS Security
    - Source Control

    1. Re:Git Rid of the Java EE Stack and Go Node. by Daniel+Hoffmann · · Score: 2

      I agree, the Java stack in general is way too big and this is from a guy that does Java development with the Spring framework (not as bad as JavaEE.)

      But Java does have one big advantage: It can do anything

      Need to connect to some ancient database? There is a JDBC driver for that.
      Need to dynamically create a new excel spreadsheet, PDF, word document and so on? There is a library for that.
      Need to talk with some bizarre web service that uses some kind of binary format? Probably there is a driver for that.

      Unfortunately for corporate development you really need this kind of flexibility, that is why you don't see Ruby/Python/Node too much in the industry. Even Python (which has a very good set of libraries) comes short in many areas.

      Sure you could write your own driver for Node, but:
      a) You are not that good with node to do it (because it is new and your devs are just learning it)
      b) It will take more time to get it stable than the thing you are trying to build in the first place or it will be buggy as hell

      Sad but true, the language really doesn't matter much these days, what matters most is what the language can talk with and how hard it is to make that language talk. It is getting better though, web-services for example are standardizing in REST APIs.

    2. Re:Git Rid of the Java EE Stack and Go Node. by Shortguy881 · · Score: 1

      Yes, because what the world needs is more Javascript

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    3. Re:Git Rid of the Java EE Stack and Go Node. by Nadir · · Score: 1

      It seems like you're still stuck in the old Spring FUD that JavaEE is complex. Since JavaEE 6 (2009), it is actually the other way around.

      --
      --
      The world is divided in two categories:
      those with a loaded gun and those who dig. You dig.
    4. Re:Git Rid of the Java EE Stack and Go Node. by Daniel+Hoffmann · · Score: 1

      Well I have used JavaEE 6 (although not as extensively as Spring) and I found it way too complex. Spring now has JavaConfig which makes the configuration part a lot easier. But the point I was trying to make is that both are insanely complex to the point you have to say you are a Java EE/Spring developer instead of Java Developer.

  30. Just some pointers to where you can go by Daniel+Hoffmann · · Score: 2

    void *unemployment;
    struct hell *reality;

  31. It's a brave new world by jeffmeden · · Score: 1

    "What was the experience of riding a bicycle has become the equivalent of traveling by jumbo jet; replete with the delays, inspections, limitations on personal choices, and sudden, unexplained cancellations — all at a significantly higher cost."

    You can't exactly get everywhere you need to go via bicycle these days. Blame globalization.

  32. development is mainstream now by Anonymous Coward · · Score: 0

    The recent influx of non-programmers getting jobs in development has caused this. They don't want to write code, because they know they are under skilled and have no interest in learning more. So they push for more process and paperwork that nobody reads. That fills their day and management can't say they are slow.

    1. Re:development is mainstream now by BronsCon · · Score: 1

      There's this, but then there's also sysadmin, testing, QA, and a whole slew of other bits, which a good developer should be able to follow but not necessarily expected to do on a regular basis, being foisted on developers, these days. There was a time when companies had people who specialized in these tasks so the developers could, you know... develop.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  33. Analogies are poor... by Junta · · Score: 1

    Yes, if a project gets to be large, then you need careful process. There are a few flaws though:
    1. A large proportion of the time, you are doing something far less complex and/or dangerous than bridge building. There are people who insist that for something akin to 'hello world' test cases must be written, everyone must use a bloated IDE, all code must be in version control managed by some project hosting site with issue tracking, wiki, code review, and continuous integration. Sure, there can be value in that stuff, but there is cost. Frequently the cost outweighs the value for simple utilities (git and test cases are generally tolerable, but venture far into mandates about IDEs and project management and it can get nasty).. One example for me was for a quick 2 or 3 line C program people might fire up visual studio, and end up with a 'project' with a lot more metadata than the application itself, when using the microsoft SDK by itself with notepad would have been just as good (in linux the 'just run gcc' can be taken for granted, in MS you don't have a compiler and most laypersons don't even realize you can get SDK without visual studio, so I used that example since I see visual studio project files for the dumbest stuff).

    2. A great deal of the tools are frankly half-assed. Particularly when it comes to deploying the tools. Once deployed they work about 80% of the time, but then fall over and block progress while someone figures out why the tooling fell over. A lot of these development tools got to the point where the authors of them could use it and that was about it. One who understands every nook and cranny and can quickly recover given a stack trace doesn't feel as strongly about doing the other '1%' of work to make it easy for others to deploy and administrate.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:Analogies are poor... by NormalVisual · · Score: 1

      in MS you don't have a compiler

      Compiler command line info
      Linker command line info
      Makefile info

      Similar info is available for managed code as well, and continuous build systems work just fine with Microsoft products using the command line.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    2. Re:Analogies are poor... by Junta · · Score: 2

      My point was that in MS world, you don't have a compiler until you get the SDK (which most people don't even know exists), and most think you only get a compiler through visual studio, whereas in linux it is commonly already there or a 'yum install gcc' or 'apt-get install gcc' away. A *whole* lot of people assume visual studio is a hard requirement to develop with microsoft first-party toolchain and as such you end up with project files for really stupid crap.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    3. Re:Analogies are poor... by NormalVisual · · Score: 1

      Ah, okay - yes, you're absolutely right that the Windows environment itself doesn't come with what you need to be productive as a programmer, and you do have to know what you need beforehand.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    4. Re:Analogies are poor... by drinkypoo · · Score: 1

      My point was that in MS world, you don't have a compiler until you get the SDK (which most people don't even know exists), and most think you only get a compiler through visual studio, whereas in linux it is commonly already there or a 'yum install gcc' or 'apt-get install gcc' away.

      If you google for programming for windows, visual studio download is going to be one of your top hits. It's not like this is any different in Linuxland, but that's my point. It's still just a download away. On the other hand, it sounds to me like you're complaining that Windows package management is shit. Obviously, Microsoft should make it possible for you to install package from repos. Oh wait, that's what they're doing now.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    5. Re:Analogies are poor... by TheRaven64 · · Score: 1

      I don't understand why you think 'yum install gcc' is somehow different from 'download and run the installer for the VS command-line tools'. Especially on a modern Linux distro, where libraries come with -devel variants to save you the 10KB taken up by the headers in the normal install, so you end up having to install a load of headers as well to get the system useable.

      --
      I am TheRaven on Soylent News
    6. Re:Analogies are poor... by Anonymous Coward · · Score: 0

      So you are saying that code review is not worth the time? There are studies that disagree with your opinion:
      http://blog.smartbear.com/code-review/code-review-worth-the-time/

      About unit testing simple one line methods. I don't have studies to help me with this one, but I have seen unit tests catching bugs from those simple methods several times. And I'm not talking just junior developers, I'm talking about best developers making those errors. But as I said, I don't know any studies, so it is not worth fighting over this, especially if you agree that you _could_ be wrong about the unit tests also.

  34. From an Ops point of view by chispito · · Score: 1

    I have really come to love the creative exercise of scripting my job responsibilities on the operations side of things. I can keep it simple, or make it complex. I can adhere or not adhere to whatever style I wish. I make the cost-benefit analysis as to whether I'm going to write it or not. I can share it with my coworkers as soon as there is an obvious benefit, or keep it on the down-low if it is not yet ready for prime time.

    I own my scripted 'products' and I reap the full benefits of them.

    --
    The Daddy casts sleep on the Baby. The Baby resists!
    1. Re:From an Ops point of view by BronsCon · · Score: 1

      And you're the sysadmin that's missing from most tech companies. You get that crap out of my way and let me focus on development, and for that I thank you immensely.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  35. He has a point by Anonymous Coward · · Score: 0

    I think he has a point. While some tools give a good deal of benefit for their added complixity, there are a lot of complex coding tools out there that, on large projects, are required or requested. For example, let's say I want to contribute to project XYZ. This project does not supply tarballs and is hosted on github. Oh and they only accept pull requests, not mailed in patches. This means the would-be coder needs to learn how to use git and how to use the github-specific features to contribute even a tiny patch.

    The same sort of thing crops up with projects which practically require (or expect) developers use a specific GUI. How many times have we seen suggestions on how to get invovled with a project which start with: 1. Install Eclipse. 2. Install these extensions. 3. Install this emulator. 4. Install git and check out the code....

    If this guy is working on his own, one-man project he can do it whatever way he wants (though heaven help him if he needs to find documentation on open source libraries). However, if he wants to contribute to a larger, existing project he almost certainly will need a lot of extra tools just to checkout the code and compile it. It's damn frustrating.

  36. I find the opposite... by jmintha · · Score: 1

    I guess it depends on what you want to achieve, but I find web based development has made it easier to do that fun kind of programming. I grab a framework (python/django currently) and I can have a fully working interactive application in 10 minutes or so. Spend a couple hours more, and I've got it polished with fancy javascript. No need to write entire client interfaces, client server protocols, etc.

  37. Wha? by Anonymous Coward · · Score: 1

    Do we now allow random rants? What the hell is this?

  38. Companies pushing tools by Anonymous Coward · · Score: 0

    Companies who offer development and server tools need to sell big, expensive, heavyweight products in order to charge big prices.

    That means Java an all the associated alphabet soup - ESB, SOA, XML, blah, blah, blah. They'll sell the VPs on enterprise ready, clustered, extensible crap that requires hundreds of hours of consultants just to install.

  39. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  40. Still possible to ride a bike by Anonymous Coward · · Score: 0

    It is still possible (to learn) to ride a bike today, you don't have to pilot a jumbo jet. It's just that riding a bike does not earn you so as cred as it did 15 years ago. On the other hand, writing an "open-source mobile app that, say, compares your distance traveled with its equivalent distance as the crow flies" would be next to impossible back then. Should you be able to pull off such a thing, you'd be the jumbo jet pilot before the jumbo's were invented yet.

  41. Simplicity is out there by allquixotic · · Score: 1

    Simplicity is out there; you just have to find it. Obviously, if you're writing a general-purpose operating system that has to use a minimum of resources, be nearly impervious from malicious attackers hitting it from all directions, scale to the largest workloads, and run on hardware ranging from smart watches to multi-petaflop supercomputers, it's not going to be simple. That's just the reality of it. Designing such a thing is no simple task. One size definitely does not fit all.

    Relative simplicity in coding can still be found in line of business applications, workplace automation, that kind of thing. Basically, if you're writing a specific program that will only ever be used by your team of staff in a 10-person office, it's perfectly fine to hard-code a file path into your program code, or require a very specific version of Ruby or Java, or write a brittle 300-line function that could really use some refactoring to be more maintainable later. If you double-click it and it does its thing and exits, you're done -- no need to write unit tests, or roll it up into a redistributable .war or .ear, or test it on IRIX and Solaris to make sure the build system builds on anything, or transport yourself 5 years in the future and make sure it'll still run perfectly on Windows 10. There's just no need. If it breaks, you can fix it in an afternoon and no one will even notice it was broken.

    It sounds like TFA author just wants an easy programming job in a back office or IT skunkworks somewhere. Which is fine -- we need people to do that, or the world wouldn't work. Not every piece of executable code ever written was intended, or should be intended, to work perfectly fine on an 81-bit microprocessor in a kerosene-powered cheese grater running System/360, and to support a user doing something totally out of the design scope with the code.

    Are you writing general-purpose software that is for sale or freely available to be used in a vast number of diverse scenarios? If so, you need to somehow manage the complexity in order to support all those scenarios.

    If you're not writing general-purpose software, you can strip out many of the layers of software engineering that you're taught in college these days, because much of it is designed to manage that complexity. If the complexity isn't there, and to the point doesn't NEED to be there, then the layers of bureaucracy and red tape and process are pointless and can be scrapped.

    That's not to say it should be a total ad-hoc hackjob. You should still use version control, no matter what, for anything beyond a 1-line batch file that you could recreate from memory. But if your version control consists of a git repo sitting on your local hard drive, and you don't have any code review before you push, who cares? You're still a developer doing productive work.

    Not everyone is Linus Torvalds. Not everyone has to write code that will stand the test of time and operate correctly in totally unforeseen contexts. It's needlessly expensive to make it so. IT skunkworks exists for a very good reason.

  42. this is why i code in php (LAMP) by Anonymous Coward · · Score: 0

    haters gonna hate

  43. Re:Now complicated? How 'bout all src in 6502 ASM? by gtall · · Score: 0

    Yep, I used to walk 20 miles a day just to pick up one processor instruction manual...in my bare feet...and then had to carry it back.

    In the 80's, you had a few manuals on your desk and it was enough. Now you need the WWW just to hack your way through all the details to get something running. The systems were smaller back then, the languages were simpler, the assembly code was simpler. Nothing is simple any more.

  44. Indeed by Anonymous Coward · · Score: 0

    Simplifying a process is great, but you cannot simplify past the problem's intrinsic complexity. Pounding your fist saying "these tools are too complicated" doesn't reduce the number of use cases they have to support.

    So, the article author got a nice taste of the real world. Time to adapt to the realities of the industry, or leave it.

  45. disagree by sonciwind · · Score: 1

    You must work in one of those bloated, systematic corporate environments where the gears have all rusted. Switch to a small, dynamic company. Start your own business. Then you can have the best of both worlds, the coding and the tools. You'll get 10 times the "transformation into living presence" than you ever got, and all the luscious typing code into a computer you can stand.

  46. Not the tools by umdesch4 · · Score: 1

    It's the damned processes. Yesterday, I got a new Jira ticket to fix a query and provide the updated results in a file to the ticket submitter. I looked at the query, realized that I knew exactly what was wrong with it, and fixed it, dumped the results, and sent them to this guy. I then resolved and closed the ticket in about 5 minutes. I took a bit of heat for it, because I didn't follow the due process of prioritizing this task, determining whether or not it would go into the next sprint, assigning story points to it, creating subtasks, and providing time estimates for them. All told, probably about half an hour's worth of meeting time and overhead to do a 5 minute task. But how dare I bypass the process to get something simple done??!!

  47. He's right by Anonymous Coward · · Score: 0

    Ask yourself how much time you spend nowadays glueing different frameworks together instead of working on the actual useful part of the project. This wasn't the case 10 years ago. If you find more and more programmers copy/pasting code from Google or Stackoverflow, it might be because they can (they're being asked to repeat the same monotonous work as many other people). That sort of duplication shouldn't be part of our daily life. Computers should be working for us, not the other way around.

  48. Yes, no coding. No, problem is not tools by michaelmalak · · Score: 4, Insightful

    Yes, it is true coders have little time to code. But the author misses the primary cause: the ratio of library/framework code to self-written code.

    In the old days (say, 25+ years ago), you would pick up a book -- a single book -- of the OS API calls, memorize, and start coding. Today, with github, it's as if everyone in the world were working on the same single project. Today, a developer needs to learn all these libraries that are coming out daily and how to work with them. In the old days, there was a lot of reinvention and co-invention of the wheel. Today, that is not allowed, because one has an obligation to "buy" (for free) instead of build because of a) of course, development time and b) more importantly, one gets updates/upgrades "for free" without having to invest (much) additional development time, and c) one's organization can advertise in the future for developers who already have experience with that particular library/framework.

    To address specifically the reasons identified by the author:

    • Deployment. This is big, perhaps even as big as the above. In the old days, deployment was copying a single executable file. Today, not only is deployment to various and numerous servers more complicated, but for the past 20 years we've had people dedicated to managing those servers, called sys admins, to handle all those non-coding tasks. Of course, coders end up doing some admin and admins end up doing some coding, so now for the past couple of years we have a new half-breed, the Dev Ops. The very existence of both sysadmin and dev ops are themselves acknowledgement that coding is a smaller percentage of the total work involved.
    • Tools. The author spends most of the piece harping on this, and it's just totally bogus. We've always had source code control, editors, compilers, and linkers, and they've always been a pain at times to work with. But in fact, it's better now because you can find or ask about work-arounds and solutions on StackOverflow instead of calling up tech support at a closed-source vendor.

    But this new development paradigm of the global github hive -- where we're all essentially working on and contributing to this one massive codebase that we all have to understand -- is what the author missed. The amount of custom code to actually code is small now, and the majority of time is spent figuring out how to get the various libraries and frameworks to work.

    1. Re:Yes, no coding. No, problem is not tools by Anonymous Coward · · Score: 0

      DevOps is not new. It's your system admin or operator who writes scripts and the odd more complex program as needed. It's your developer getting involved in running and supporting the system. We use to rubbish these things but now they're in fashion in some corners of the world.

  49. Progress Begets Complexity by organgtool · · Score: 1

    This guy sounds like a twentieth century doctor probably sounded as the medical field started to become highly specialized. There are few things in life in which we make progress and make things simpler at the same time. It's the reason that you can't see the ground anymore while looking into the engine compartment of your car and it's the reason that laws are more numerous and more complex than ever before. Sometimes it's nice to look back at the simpler times with nostalgia, but there's no going back, and even if you could, you would probably just come out of it with a greater appreciation for the lifestyle that is provided by these advances, even if it comes at the cost of significant complexity.

  50. If you can get a devkit, that is by tepples · · Score: 1

    If you can't find a place that suits you, start your own.

    And watch suppliers decline to do business with your startup company because they don't like your lack of experience or they don't like where its office is located. For example, some makers of computing platforms lock down who's allowed to have a devkit, and they have a history of reserving devkits for the most experienced companies with traditional offices.

    1. Re:If you can get a devkit, that is by Anonymous+Brave+Guy · · Score: 2

      If you're developing on a platform as developer-hostile as that and you're locked into it so your business can't port to other platforms if necessary, I would submit that you have bigger strategic problems and long-term risks than merely being a small company. An arrangement like that is an axe hanging over the head of almost any size of company and you have absolutely no control over when it might fall.

      (No, I don't develop iOS apps or write console games, despite occasionally getting enquiries in those fields, and this is why.)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:If you can get a devkit, that is by Noah+Haders · · Score: 1

      if i coded I would probably make iOS apps because they look fun and it would probably only take a couple hours.

    3. Re:If you can get a devkit, that is by ruir · · Score: 1

      If I could operate, I would do brain surgery because it looks fun and only takes a couple of minutes. If could flight a plance, I would like to do intercontinental flights because it looks fun and it might only take 15 minutes. And builds houses only takes a couple of days. meh

    4. Re:If you can get a devkit, that is by david_thornley · · Score: 1

      I'm not sure it's as bad as you make it out to be. If you're on a limited devkit list, then the platform maintainer is likely to have some sort of interest in your company, whereas by comparison Microsoft really doesn't care about me. Moreover, you have less competition in your limited area, and hence greater opportunity to make money easier. It is a long-term risk, but it has strategic pluses and minuses.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    5. Re:If you can get a devkit, that is by Anonymous+Brave+Guy · · Score: 1

      I don't disagree in general, but please remember the original context here was whether going it alone as a start-up might be a liability if Big Players declined to let you into those programmes, i.e., we are talking about precisely the situation where the platform maintainer might not have that implicit interest in your success.

      The key difference IMHO is that I don't need Microsoft to care about me. I can write Windows-based software and sell it to Windows-using customers with no help from Microsoft except selling us Windows and any related tools in the first place, and all three parties win on the deal. If I want to sell an iPhone app, my entire revenue stream is entirely dependent on Apple, and Apple are not known in these parts for the care with which they examine new apps or the caution or neutrality they exhibit when banning something they decide they don't like.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  51. Developers do everything Tm by scamper_22 · · Score: 1

    The fundamental problem is that developers do everything. Heck, even in companies where there are entire teams dedicated to the task, developers still up doing them.

    Maybe it's just because organizations are short staffed, lack of training, lack of skilled specialization. I won't dwell on the causes. I'll just state the reality.

    In some theoretical world, source control is handled by a separate team, environment setup is handled by a separate team, testing is handled by a separate team. Each of whom are skilled enough to tackle the challenges they face.

    From what I hear from some of the 'older' folks who worked back in the day at places like Nortel, this is how it was done. I'm in Toronto, so there are a lot of such people around. I'm sure similar stories could be had from other companies.

    Yet, in too many roles, Ive seen devs basically writing the test plans and cases; doing the job of the test team, which doesn't want to 'know' the product. They just want to execute a script. I've seen devs knowing more about the environment than the environment team. This is even in cases where there are dedicated teams for these functions. Sometimes devs are even creating and assigning tasks in agile environment because project management doesn't know how to break down the task.

    Let me emphasize, I'm not criticizing people in test or environment. It is just what it is.

    Due to so many factors, it's basically up to devs to do it all. We might be able to on some level as we're reasonably smart and investigative people, but on any large project, it eats away. Since the ultimate deliverable is what we produce, many of us take it on, probably when we shouldn't.

    You won't find a brain surgeon doing Vasectomies.
    You won't find a corporate lawyer in acquisitions doing divorce law.
    Heck, it's rare to find an English teacher teaching calculus.

    This is not to say they couldn't. I'm sure a brain surgeon could pick up what is needed to do a vasectomy given the training. But they won't just do it. That is part of being a professional is demanding professional conditions.

    I've seen the software field continuously scale back on people and specialization to the point where a problem does seem complex and daunting the second something is not ideal.

    Can we often hack by? Yes, but not without this great unknowing which kills the professional inside of me. Yes, I know I can setup an environment, change webserver configs, setup git, test things... but there should be dedicated people who know these well.

    'Just Let me Code' might seem like a whiny statement from someone who wants work to be fun. But it really is a big problem when you look at it. Companies are understaffed and under-specialized and they're quite frankly spoiled by having a bunch of devs who are capable of hacking away at things to get them working.

    1. Re:Developers do everything Tm by tibit · · Score: 1

      I agree with your points but one.

      What is the point of source control being "handled" by a separate team? It's a tool primarily to aid the developer in her own development process. It incidentally documents the development process's history, allows maintenance of old branches, and so on, but those are side benefits that still don't require a separate team to "handle". Sure, some internal IT team would take care of deploying the repository server and keeping it running happilly and the data backed up, but goes without saying, I hope.

      Now of course the other teams can use the repository to manage their code-related artifacts, such as test cases, CI configurations, and whatnot. But still - a "team" for source control? Maybe with some long obsolete tools you needed a team to handle it. I'm glad that we can replace a "team" with a couple hundred bucks worth of off-the-shelf tools.

      --
      A successful API design takes a mixture of software design and pedagogy.
    2. Re:Developers do everything Tm by scamper_22 · · Score: 1

      Source control is a big thing. Someone needs to setup the servers, scale it properly, investigate performance issues, know how to fix things when things go wrong, do complex work that is not normally done (maybe changing history on a git server) or whatever the case maybe, settingup/planning branches, integrating with the build system...

      The devs should naturally know how to do the basics for their job (checkin/checkout/commit...) But there's a whole lot there that is not normal. On every Git project I've worked on, there has always been a case where something messed up and we had the one git expert who happened to be a dev who could come in and fix it. Ideally, that person is not doing regular day to day coding and is a git expert. That's the point I'm making.

      Yes, using premade solutions or hosted things is a great way to reduce the size of the team needed in such functions.

    3. Re:Developers do everything Tm by david_thornley · · Score: 1

      Some of that is just distracting from getting the code done. Writing my own test plans and cases for a testing group seems like cheating, and I feel a bit guilty when I have to do it.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  52. DOS had libraries too by tepples · · Score: 2

    In DOS I had to manually draw every UI element.

    Only in your first couple projects. By your third DOS project, you probably would have built up your own UI library.

    But the big thing that DOS did better than Windows back in the early to mid 1990s was using all the features of the VGA. DOS applications could run in low definition (Mode 13h, Mode Y, and Mode X, with resolution of 320x200 to 320x240). This allowed updating the whole screen before Windows finished updating half of a 640x480 standard-definition screen. DOS could also use hardware scrolling to pan over a large virtual area without having to do the bit shifting bullcrap that plagued standard VGA mode back then. Both of these became less relevant, however, as CPU speeds and bus speeds rose and especially as graphics cards began to incorporate 3D rasterizers.

  53. Consider Apple's latest Xcode IDE with Swift by Applehu+Akbar · · Score: 2

    This new language is as much fun to code in as Python without the pure-interpretive overhead. The latest Xcode includes a "playground" prototyping space that makes it easy to experiment with pure code, including library API calls, before cementing your work into the application framework of iOS or OS X. Right now it's a one-manufacturer language, and still beta, but something tells me it's going to spread.

    1. Re:Consider Apple's latest Xcode IDE with Swift by narcc · · Score: 1

      as much fun to code in as Python

      Wow, that's almost as fun as a trip to the dentist!

    2. Re:Consider Apple's latest Xcode IDE with Swift by Anonymous Coward · · Score: 1

      You're obviously young and naive. Enjoy it while it lasts.

    3. Re:Consider Apple's latest Xcode IDE with Swift by Applehu+Akbar · · Score: 1

      My first language was Fortran on the IBM 1410, in 1965. No, we didn't ride horses then.

  54. Commodore 64 by cant_get_a_good_nick · · Score: 1

    part of my nostalgia for coding on the C64 is how you felt you could know everything about the box. There was a book, Mapping the C64 and C64C. that told you about every single address on the computer. You felt you could get everything done with some pokes and peeks, or some machine language. (LDA anyone?).

    Now, you can do more, but you don't feel you can push to the envelope of the hardware. How many classes does java add every release cycle? How often does CPAN turn over?

    I think im not the only one with that nostalgia.. there's an offer on that book for >700 dollars. I lost mine over the course of several moves during College days.

    1. Re:Commodore 64 by Wraithlyn · · Score: 1

      So true. It was possible to literally know everything about the Commodore 64, down to every single byte.

      And it was so great just flipping the power switch and instantly being in a programming environment. That blinking cursor was so irresistible, it just screamed of infinite possibilities, if you just knew what to type. Seems tragic in a way that that kind of built-in springboard doesn't exist in modern machines.

      I still have my copies of Mapping the C64, and the hallowed C64 Programmer's Reference Guide (complete with full hardware schematic poster). :)

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
  55. debt by Anonymous Coward · · Score: 0

    In the "old days" programmers just took debts by not doing the extra work. every time a few years later someone had to pay for that and most time the ones responsible for it were long gone. a quick 100 lines of code is a proof of concept, never a proper solution that can live.

  56. Dipshit by Anonymous Coward · · Score: 0

    I deal with dipshits like you all the time. Heck, half our dev staff spends weeks/months on rather trivial software projects and still can't even get them past the barely useable state because they want to write fun trivial applications. So, anything beyond that, is too much for them to break apart and do right. If you want to write 100 line "applications" knock yourself out. When you want to join the grow-up world, let us know and we can help you cultivate the necessary skills to be a real software engineer.

  57. Dijkstra vs Dijkstra by Anonymous Coward · · Score: 1

    In my pocket I carry a page of quotes of computer scientists, engineers, and others on simplicity.

    The two here are snippets from Dijkstra:

    "the purpose of abstracting is _not_ to be vague, but to create a new semantic level in which one can be absolutely precise"

    "the main challenge of computer science is how not to get lost in complexities of their own making"

    That is, you always have a tool to solve today's problem, which is to increase the level of abstraction. Over time you pile up abstractions and precisions and solve many problems. And then you wonder why things have gotten so complex and get nostalgic.

    You haven't done the hard work to lower the level of abstraction, or pivot it into irrelevance. Great software has a rightness that fits its domain snugly, that knows and does its job efficiently. It captures general patterns and allows the expert to navigate by intuition.

  58. Engineered code vs. created code by davidwr · · Score: 2

    If you have a project that's too big to fit into 1 person's head and you want it to work right and be maintainable, you either have to have a team of people who practically read each other's minds or you have to have a solid design and maintenance process.

    Either that, or you have to accept that unless you get lucky or your code is hardly ever used, you will have problems down the line.

    Having a lightweight or non-existent process is fine for projects that can stay in one person's head and which won't need to be maintained by anyone other than the original author.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  59. Making a living; devkit suppliers by tepples · · Score: 1

    If you want to create something fun with simple tools THEN FREAKING DO IT! There is nothing in this world holding you back unless all you are willing to work on is what someone is paying you to do.

    Then how does one "create something fun with simple tools" and still eat? Besides, even if you have an unrelated day job, how does one "create something fun with simple tools" if the tools have to interoperate with other tools that are made available only to established companies, as in the case of developing games and other applications that run on devices commonly connected to TVs?

    1. Re:Making a living; devkit suppliers by Anonymous Coward · · Score: 0

      Don't use developer hostile tools for hobby project, drrp.

    2. Re:Making a living; devkit suppliers by tepples · · Score: 1

      My complaint is that all developer tools for set-top and mobile-with-buttons platforms are hostile.

  60. Beginners should learn VB.Net by Anonymous Coward · · Score: 0

    I'll say this to anyone who thinks they can't program, learn VB.Net :)
    Lots think of it as a crap language, but that's what it is - an entry level language and after learning this, you can go a number of routes to more advanced languages.

  61. Derive Joy from It? by Stormy+Dragon · · Score: 1

    Project overhead, even for simple projects, is so heavy that it's a wonder anyone can find the time to code, much less derive joy from it

    If I was supposed to derive joy from it, I'd be paying my employer to do my job rather than the other way around. I'm being paid because I do it for their benefit, not for mine.

  62. Go work for a bigger company by WaffleMonster · · Score: 2

    Source control, IDEs, build systems and bug trackers... are all very ancient tools that tend to make people more productive so they can spend more time coding... leaving me puzzled and confused by TFA's point.

    He seems to be saying enabling infrastructure to manage a product lifecycle is more difficult or at least non-trivial vs. problem space itself... Suppose if your one of thousands of shops churning out proverbial flashlight and fart apps this could well be the case...otherwise it is hard to understand how it can be true. While supporting infrastructure can and does become very complex for large development efforts there are usually tooling peeps on staff who specialize in each subdomain.

    What makes matters worse you go on to hate DSL's, use NoSQL databases... which leaves me little choice but to assume you hate everything good and nice.

    Either that or you got screwed working for some grossly understaffed rinky dink company with reams of old code nobody understands who lied when they used the word "developer" in job description...LOL.. happens...a..lot.....

    1. Re:Go work for a bigger company by Bengie · · Score: 1

      He doesn't want to use frameworks, he wants to reinvent the wheel, poorly. This is a mix of sarcasm and opinion.

  63. welcome to Adulthood by Anonymous Coward · · Score: 0

    despite what we're told by decades of Disney and Hollywood productions, the vast, vast majority of adults spend most of their time doing what they HAVE to do in order to survive. Only a very tiny minority get to Do What They Love and Get Paid.

    The rest of us learn to use the job, to support the life. Or crash and burn in confusion that Disney and Hollywood lied to us.

    The lesson everyone failed to get from Fight Club is that you don't actually get out of the rat race.

  64. Tool problems by Animats · · Score: 1

    The author has a point. At one time, there were development tools, which cost money, were relatively static, and which were expected to work correctly. Then there were applications, which relied on the development tools.

    We now have a huge proliferation of tools, many of them open source, poorly integrated with each other, and most badly maintained. Worse, because everything has a client side and a server side, there are usually two independent tool chains involved.

    Web programming is far too complex for how little most web sites do. (And the code quality is awful. Open a browser console and watch the errors scroll by.)

    1. Re:Tool problems by Anonymous Coward · · Score: 0

      Can you get a bit more concrete, which tools you deem poorly integrated and badly maintained? Don't take this question as cynical, but I really haven't seen broken tools, or at least not any more broken than the old ones.

      Different tool chains are not used, because it is a client-server architecture, but because regularly one develops for different platforms using different technologies.

    2. Re:Tool problems by Actually,+I+do+RTFA · · Score: 1

      Different tool chains are not used, because it is a client-server architecture, but because regularly one develops for different platforms using different technologies.

      That's the idea I don't get. Why oh why do different platforms try to/actually encourage and enforce this? Cross-platform code is good. I suppose it behooves the dominant player (I suppose iOS) to not be compatible with, say, Windows Phone. But doesn't that mean Windows Phone should be made to be compatible with iOS?

      --
      Your ad here. Ask me how!
    3. Re:Tool problems by Anonymous Coward · · Score: 0

      Client/server only tangentially has anything to do with either IOS or Windows Phone.

  65. Define version control by tepples · · Score: 1

    Perhaps the disagreement is whether it counts as "version control" to have a weekly tarball as the revision history and diffs as the change sets.

    1. Re:Define version control by tibit · · Score: 1

      Any form of such manual version control is ridiculous. These days you're even supposed to use something like etckeeper to keep your server's configuration under version control, and for a good reason. It comes with next to no operational overhead and lets you easily figure out where things went wrong. Initializing a git or hg repo on a folder is a two-liner. Tools like smartgit/hg, cornerstone or tortiose svn (all excellent!) let you ignore the command line interface to version control, for the most part. Who the heck has time to muck about with tarballs. If you really need them for distribution purposes, for crying out loud write a cron or hook script that generates the needed files and pushes them to a web and/or ftp server.

      --
      A successful API design takes a mixture of software design and pedagogy.
  66. Re: Now complicated? How 'bout all src in 6502 AS by Anonymous Coward · · Score: 0

    What, REP MOVSB? You can't be serious. Instruction sets were so small, you could easily keep them all in your head. There was a reference manual, and the reference manuals were really good.

  67. Re:Thats why I stock MILLIONS of retro-components. by NormalVisual · · Score: 1

    Everything is specialized and we literally have no jack-of-all-trades coders anymore, pity...that's what we need IMHO.

    I would consider myself one of those. I don't pretend to be the ultimate expert in anything I work with, but I've had enough exposure to enough different environments and situations to at least be competent in just about any problem domain, or say, "y'know, over on this other system, this is how we often do this and it might be a more appropriate solution to the problem at hand". It cracks me up anytime Mr. "I'm the best thing since buttered bread" can't figure out why his VM isn't working because he's got a network submask set wrong or something similar, or is completely lost when presented with a Linux command line because all he's ever worked with is Windows and the filesystem organization is totally foreign to him.

    However, my experience has been that coders that specialize in one particular thing but can't do anything outside that domain are far more marketable than those with a wide breadth of general knowledge and honest about not being the do-all and end-all of any one skill.

    --
    Please stand clear of the doors, por favor mantenganse alejado de las puertas
  68. doctors like single player systems by Joe_Dragon · · Score: 2

    doctors like single player systems as they don't have to put up that much paper work and billing BS.

  69. Integrating with each other system by tepples · · Score: 1

    anything that is repeated over and over again with known rules can be programmed

    The rules change for each other system with which your system has to integrate.

    1. Re:Integrating with each other system by Karmashock · · Score: 1

      These compliance systems are not standardized? You have to shift to entirely different compliance regimes on a regular basis?

      Because if that's what's happening, that is the problem. Not the compliance systems but that they change so often and are not standardized.

      If they are standardized then you can automate your interactions with them.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    2. Re:Integrating with each other system by Noah+Haders · · Score: 1

      i set up code on a mac for pulling files then tried it on a pc but the syntax for file paths was diff so the whole thing wouldn't work.

    3. Re:Integrating with each other system by Karmashock · · Score: 1

      You could write a bit of code that automatically translates file paths between operating systems.

      Have the paths be a variable and have that variable go through a subroutine that checks the OS and other relevant issues to make sure the path information is accurate.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    4. Re:Integrating with each other system by Noah+Haders · · Score: 1

      the problem is, you don't know what you don't know, and there will always be things popping up to shit on your automator. not to mention changes, etc. life is not deterministic.

    5. Re:Integrating with each other system by Karmashock · · Score: 1

      programming is by definition deterministic... like... the logic... its obvious... it hurts.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    6. Re:Integrating with each other system by Noah+Haders · · Score: 1

      true programming is deterministic but life is *not* deterministic, which is why you can't solve life problems with programming. does not compute! beep beep boop beep boop!

    7. Re:Integrating with each other system by Karmashock · · Score: 1

      what are we talking about? Programming or something else?

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    8. Re:Integrating with each other system by bingoUV · · Score: 1

      This is the case of file paths changing across operating systems over different releases of operating systems. They can change due to some property in the operating system changing value. Or the place to keep that property changing. Or the property name itself changing. Or the process of determining the file path changing in some manner.

      The reason for this change is that some one in operating system design team decided to change it, or the packagers of the software being used decided to change locations of files. The minds of these people are NOT deterministic.

      You can analyze the whole operating system in your program, but you wouldn't know the location of the exact file you are looking for. This is because name of the file could have changed, or there could be many files of the same name. So even by analyzing the operating system finding file path in unknown environment is NOT deterministic.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    9. Re:Integrating with each other system by Anonymous Coward · · Score: 0

      I am an idiot, and I have no clue what I am doing

      FTFY

      Handling file paths on different systems is a solved problem.

  70. Frameworks and OOP are out of control by Anonymous Coward · · Score: 0

    I had read wholeheartedly. One can no longer just dip keep their feet in the programming pool. You have to learn the IDE, frameworks, and object model abstractions, design patterns... It is so aggravating that stuff has become so complex in programming.

  71. The real problem is people have forgotten... by Anonymous Coward · · Score: 0

    That one of the most successful paradigms of software development is the Unix paradigm: Simple apps that do a single thing really well. Many parts of the GNU codebase haven't been touched in years, because it works. For some reason, ever since the mid 90's when Java and other technologies were developed we have this notion that software should be developed to do everything under the sun, reinventing the wheel and introducing unnecessary complexity.

    Just look at web-design. As a systems programmer who is used to doing things in C at a low level, I feel like to do something simple for a web app takes me hours longer than it would if I had coded the same functionality in C using POSIX or similar cross platform libraries.

  72. Elegant Code is an Endangered Species by MarkvW · · Score: 1

    All those frameworks and APIs not only introduce all sorts of programming complexity, but they also turn programs into memory gluttons.

    It often appears that real craftsmanship (making the most efficient code for the job) is no longer valued.

  73. in the old days of mel by Anonymous Coward · · Score: 0

    I could like code so many lines per day, and I didn't have to learn all this complex stuff like SCM and IDE
    now, with the new tools, I'm like a 100x more productive (and I'm makin nice GUI stuff , no command line) but I have to learn the tools... I long for the old days, when you didn't have to know how to read or write to be a horse shoer, it was so much more productive

    what a whiner

  74. Sooooo true! by Pro923 · · Score: 1

    I thought I was the only one. It feels like the people considered the best programmers now are the ones who know the complexities of git more than the next guy. I thought I was the only one who felt like the cycle of Jira, Git and Reviewboard was much more brutal, time consuming and complicated than the few lines of code that I'm able to squeeze out on any given day. Then, since everyone has their own way of doing just about anything, every line of code is scrutinized and disected - and often changed. I used to be a great programmer, now I can't produce the amount of Jira/Git/Reviewboard FUD that others can, and thus I'm reduced to less than average.

  75. I laughed my way through this article by Trillan · · Score: 2

    I laughed my way through this article. The best part was when he said he wasn't the only one, and linked to someone with legitimate concerns.

    Don't want to use a bug tracker? That's fine. Use a TODO file in your directory if you need to put something aside.

    Don't want to use VCS? That's REALLY stupid. Hook a clapper to a backup trigger. "I'm about to do something dangerous! (clap clap!)"

    Why really stupid? Because you can argue git is too complicated, that it lets you do too many things, etc, etc. Great! You might be right. But if you're a beginner, you can get away with:

    The long, laborious setup:
    git init

    Saving changes:
    git add --all .
    git commit -m "This is what I did."

    Undoing changes before saving them:
    git reset --hard
    git clean -fd

    Hell, use a GUI. There's decent ones out there. But use something simple. Start HERE. This gives you an annotated history of what you changed and why. Do NOT argue that's some ridiculous process, because it will probably save you a significant amount of time within your first day.

    Yes, you can set up a remote repository. Yes you can push, branch, merge, whatever the hell you want. But if it's just you, you're damn right that's too much process. So don't do it!

  76. Re:Welcome to engineering by NormalVisual · · Score: 1

    Your argument boils down to "Engineering is hard".

    Not at all. The main point of my argument is that the idea that requirements are free to be changed, regardless of scope, is resulting in implementation being far more expensive than it needs to be, and IMO this isn't a good engineering practice. How many development shops take the customer aside after a project is finished, show him the dollar amounts for all the change orders, and point out that having had the requirements more in order beforehand might have ended up only costing him only half of what it actually did? "But you saw new stuff working every two weeks, even if it wasn't what you really needed!"

    Requirements analysis is (or should be) just as much part of any engineering discipline as construction. Some degree of change is inevitable, but we shouldn't be in the situation where we build an airplane with four wings before determining two would have been sufficient.

    --
    Please stand clear of the doors, por favor mantenganse alejado de las puertas
  77. suckless - software that sucks less by Anonymous Coward · · Score: 0

    You could work (for free...) on some suckless projects. Their projects have line of code limits to prevent over-engineering. You can easily read and understand the code of any suckless project, even if you're not an expert. Patches are really easy to write as well.

  78. You weren't asked to be creative... by Maxwell · · Score: 1

    "Software development has become a mostly operational activity, rather than a creative one." And this is a bad thing?

  79. I'm finding more and more that I miss raw PHP by Anonymous Coward · · Score: 0

    No frameworks. No testing. Just save - refresh plus a bunch of PostgreSQL queries. I get so much more done.

  80. I agree by Anonymous Coward · · Score: 0

    Absolutely agree

        Coding used to be fun. Now you write scripts (python etc) or spend a lot of money - or it gets complicated.....

  81. I think programming is fun again by mrflash818 · · Score: 1

    I think programming is fun again, like it was in college, now that I quit doing it as a profession, and now do it as a hobby.

    --
    Uh, Linux geek since 1999.
  82. Is WoW any more fun than Larn WAS? by Anonymous Coward · · Score: 0

    Are the newer movies, with vastly better special effects, really better than the old .. or than a book?

    No, not really. All too often they are not as good; certainly not as unique.

    What we have is increasing levels of thrill and eye candy making what used to be good enough now no longer. It's not a good road we're on, on the whole, as complexity grows geometrically while functionality grows, at most, linearly .. and too often not at all.

    "Modern" quickbooks or excel has little in the way of critical new functionality versus what was available ten years ago. But it has vastly more lines of code and runs no faster (especially considering how much faster processors have become).

    "We have become the tools of our tools."

  83. Re:Thats why I stock MILLIONS of retro-components. by Ken+D · · Score: 1

    Generalists do better in small shops because they can't afford to hire a specialist in 10 different areas when they only have budget for 4 people.

  84. FONC: Fundamentals of New Computing -- Alan Kay by Paul+Fernhout · · Score: 3, Insightful

    From: http://vpri.org/fonc_wiki/inde...
    ---
    We are faced with a need for significant action and the odds are stacked against us. Invention receives no attention, and innovation (even when incorrectly understood) receives lip service in the press but no current-day vehicle exists to to nurture it. This wiki is an open invitation for talented individuals to pool their energy and collaborate towards fundamentally changing computing.

    Over the years many groups have debated how to make progress in computing. There were likely as many opinions as there were people in the debates. Nevertheless personal accounts suggest that initiatives were sometimes reduced to a handful and then pursued with vigour. Consider what could be achieved by following the same pattern today, with the added benefit of doing it as a virtual, distributed team.

    Our goal could be to capture the significant ideas and initiatives that we have been exposed to, are aware of, or can discover, distil them into groups, reduce them to a handful of concepts worthy of vigorous exploration, and focus our efforts on these common ideas with the eventual aim of making substantial progress towards finding a common set of fundamentals of new computing.
    ---

    See also: http://vpri.org/fonc_wiki/inde...

    A big focus of FONC was in reducing lots of complexity. Smalltalk shows what is possible... But in practice new languages and new standards often just add more complexity to the mix and what we often need are better tools for dealing with complexity. And community and trends mean a lot too, as does hireability and ubiquity and easy installability. So, again, in practice, I'm moving to JavaScript with conceptually simple backends (even in, yikes, PHP) -- inspired in part by Dan Ingall's own work with the Lively Kernel which shows what is possible as near-zero-effort-to-install JavaScript apps.

    My own thoughts on FONC from 2010:
    "fonc] On inventing the computing microscope/telescope for the dynamic semantic web"
    https://www.mail-archive.com/f...
    ---
    Biology made a lot of progress by inventing the microscope -- and that was done way before it invented genetic engineering, and even before it understood there were bacteria around. :-)

    What are our computing microscopes now? What are our computing telescopes? Are debuggers crude computing microscopes? Are class hierarchy browsers and package managers and IDEs and web browsers crude computing telescopes?

    Maybe we need to reinvent the computing microscope and computing telescope to help in trying to engineer better digital organisms via FONC? :-) Maybe it is more important to do it first? ...

    It's taken a while for me to see this, but, with JavaScript, essentially each web page can be seen like a Smalltalk ObjectMemory (or text-based image like PataPata writes out). While I work towards using the Pointrel System to add triples in a declarative way, in practice, the web of calling cgi scripts at URLs is a lot like message passing (just more like the earlier Smalltalk-72 way without well-defined syntax). So, essentially, a web of HTML pages with JavaScript and CGI on servers is like the Smalltalk system written large. :-) Just in a very ad hoc and inelegant way. :-)

    ---

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
    1. Re:FONC: Fundamentals of New Computing -- Alan Kay by Anonymous Coward · · Score: 0

      You lost all credibility at JavaScript.
      The rest of your post sounds like gibberish you can use on your snowballed execs to justify an existence as programmer of complexity.
      The very thing the article talks about.

      Good Luck with all that!

    2. Re:FONC: Fundamentals of New Computing -- Alan Kay by Paul+Fernhout · · Score: 1

      I certainly understand the frustration of dealing will overly complex systems or also a rushed language like JavaScript where variables are globals by default. Still, did you know that you can compile almost anything to JavaScript these days and have it run in the browser at near native speeds (well, only some browsers, but likely more and more). See: http://techcrunch.com/2013/12/...
      "While Google is betting on Native Client to allow web apps to execute native compiled code in the browser, Mozilla is betting on its ability to run JavaScript at near-native speeds, too. While they approach this problem from very different angles, both Google, through Native Client, and Mozilla, through its Emscripten LLVM-to-JavaScript compiler, allow developers to write their code in C or C++ and then run it in the browser."

      So, JavaScript is just another platform now in that sense. But it is a platform that is almost everywhere significant for substantial human interaction... And installing JavaScript software for the end-user is as easy often-times as just surfing to a web page. If people don't actually install your software, what good is it?

      Does JavaScript have problems? Yes. Tons. But it also has a lot of merits.

      As for gibberish -- Cantonese sounds mostly like gibberish to me, but that is because I never learned to speak it. :-)

      Would I like a simpler software stack and simpler but better languages and tools? Yes. I helped fight that battle over a decade ago like with VisualWorks/Squeak and we lost to stuff like Java, PHP, and JavaScript and the associated tool chains. Squeak showed what was possible, but almost no one would install it (the Squeak licensing confusion did not help there either). See also:
      http://bitworking.org/news/290...
      "Regular readers are quite tired of me pointing to this video, Alan Kay: The Computer Revolution hasn't happend yet. Keynote OOPSLA 1997, but I think it's quite fundamental to understand that Alan Kay had a vision for the web, and though his understanding of the role of HTML in the world of 1996 was flawed, it seems the collective web has spent the last ten years building exactly what he described, with HTML/SVG being the display substrate and JavaScript being the code to drive that display. Ten years later we have the Lively Kernel: ..."

      But the past is the past. We have to start from where we are -- and today, people live in their HTML5/CSS3/JavaScript browsers or will soon (even on phones, and especially on the emerging Firefox OS phones). I'm writing this from a US$250 Chromebook that is almost entirely just a browser as far as user experience. Any sophisticated-enough system could eventually remake the stack underneath it, like native Squeak could do. So, saying we could build on JavaScript does not mean endless perpetual complexity. Chrome OS shows how a focus on HTML/CSS/JavaScript can sometimes simplify things though from one perspective, especially user experience.

      There are several issues related to complexity (inherent complexity, accidental complexity, user expectations, installability, standards, etc.). Regardless of technical merit, HTML/CSS/JavaScript/PHP won in key areas. Sure, you can create the next Squeak, and good luck with that, it is a fun project. And/or we can try to use the current widespread platform as best as we can. For me right now, that means minimizing the backend (PHP or whatever) while emphasizing the front-end (JavaScript) and ideally encoding data in useful long-term forms.

      And for those who like their Smalltalk deployed as HTML/CSS/JavaScript, see:
      http://amber-lang.net/
      "The Amber language is deeply inspired by Smalltalk. It is designed to make client-side development faster and easier. Amber includes a live development environment with a class b

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  85. I know those folks... by Anonymous Coward · · Score: 1

    Yeah, I know such people, who "just want to code". Their code looks really this way: an unstructured, non-intuitive, spaghetti code full of hacks, one bit away from falling over and as slow as a snail. Regularly those kind of people writes a thousand lines of code (of this kind) where you could solve the problem with 100 easy lines.

    Ever saw a mechanical engineer saying "just let me build!"? Would you trust him building your car or the plane you are going to fly with across the ocean?
    Ever saw an electrical engineer saying "just let me build!"? Do you think, he could build a CPU or a mainboard you would like to use?

  86. Re:Welcome to engineering by trout007 · · Score: 1

    I think the problem is that on many projects the requirements are not known enough for a complete definition. Agile and spiral design processes work well for these designs because requirements are discovered during each cycle.

    --
    I love Jesus, except for his foreign policy.
  87. The complexity has to go somewhere by Anonymous Coward · · Score: 0

    I can't disagree that many problem domains have unavoidable complexity. But why do we fall for using tools that promise to encapsulate the complexity, but then fail to do so. ...and leave us with both a complex working environment AND a complex problem domain. Give me Notepad and 1000 small C files (or asm) any day! (Just be sensible about includes and defines...)

  88. We pay for complexity, not simplicity by GreyLurk · · Score: 1

    There are basically two things that make a job pay well: Rarity of the skill, and complexity of the task. Back in the day, computer programmers were a very obscure and rare trade. Nobody knew much about the arcane inner workings of computers, so the few people who did know something about it were able to extract a good hefty paycheck without having to do anything particularly complex. However, now there's a flood of people on the market who are reasonably well informed as to how to make a computer do what they want. 100 line C programs can be cranked out by outsourced Chinese workers for pennies on the dollar. You can probably even find a college intern to do it for free if all you want is someone to read a spec, and produce code that works. So, "simple" programming is not well paying anymore. Now, if you want a career with reasonable pay, you have to start tackling the "complex" tasks. Sure, writing thread locking is fun and all, but nobody really cares how your semaphore code is working, what they care about is whether the website properly shows your profile picture on the next screen after you upload a new one, and that their 600 friends all see the new picture in their stream too within a minute. That's not a "simple problem" so if you want good pay, that's the kind of problem that you're going to be asked to tackle.

  89. git and code review by spitzak · · Score: 1

    I seem to be spending a lot more time rebasing git commits and reading/writing code reviews and doing the necessary email to merge request further-rebased git commits into the main branch than actually fixing the code.

  90. Learn the UNIX Philosophy by Casandro · · Score: 2

    It's an attempt to get the most "bang for the buck". Essentially you write lots of small programs which have limited and well defined functionality, then you hook them up any way you like. In fact taken to the extreme (as with Plan9) you can do anything with simple shell scripts.

    BTW there are simpler developing environments out there which have a decent feature set, without the complexity of a C(++) toolchain. Lazarus is just one example of it. Of course you then loose flexibility. Lazarus, for example, is mostly suitable for GUI applications. Writing a webserver with it is hard. Of course it does GUI decently well, allowing you to have one codebase compiling from everything from your bog standard Linxux (GTK) over MacOSX, Android to even exotic platforms like Win32.

  91. Re:Welcome to engineering by Anonymous Coward · · Score: 0

    The main point of my argument is that the idea that requirements are free to be changed, regardless of scope, is resulting in implementation being far more expensive than it needs to be

    The fact that you wrote this un-ironically about Agile assures me that you have never, ever worked on a properly-run Agile project in your life. Now, it's not your fault if your managers thought "no planning" was all they had to do to have an Agile process. But I assure you that changing massive parts of initial requirements simply means that you thought Agile would solve the problem of your inability to plan or conceive a product. Agile won't do your thinking for you.

  92. Just Code! by byrtolet · · Score: 1

    Why do you expect joy in your work? If you want "just to code" - do it on your own time. Or find another job with more "just coding." These jobs do exist, but they might not pay that well.

  93. Re:Kill yourself by Anonymous Coward · · Score: 0

    Puh-leeze. Come up with something more original. The "please kill yourself" thing has been used in angry AC comments for a million times already.

  94. Yes, I agree, here is why by Ramirozz · · Score: 1

    The problem is languages are old, and complex. C, even C++ are too old, designed decades ago, modified to adapt, but old. Even PHP, Python with its simplicity are behind of today's needs. Today's needs are a mixture of things like PHP and JS frameworks or Java and C++ and mix that with Server Administration, Cloud. In that mix itis the reality that a lot of the work is done by solving the real need (like managing a warehouse and inventory) and the rest is accounting or trying to find logic in ilogical and even stupid management fails. Programming is trying to mimick a problem and then create a solution and improve it... but we are basing everything in stupidity, things that we don't need, like you can create an amazing game concept but you need to adorn it with a good interface because otherwise you lost all the OCD potential customers. Or creating an amazing and organized form than nobody uses because it is boring or lacks JS validation because people can't stand a freaking page reload even with a high speed conection. It is a problem. Because simplicity is not part of our lifestyle anymore, we are using old solutions in a world that "evolves" in things we don't really need. That is the result. Not to be confused with real evolve or change, that will always be faster, but at least (maybe) well ordered.

    --
    http://www.quasarcr.com/
  95. I would also like to point out by TsuruchiBrian · · Score: 2

    I would also like to point out that back when it was every coder did everything himself from scratch (i.e. the good old days), the actual products sucked. There was a lot of fun work to be done reinventing the wheel millions of times over, but when 99.9% of the wheels had serious flaws, it was pretty hard for the user of these wheels to get any real work done.

    So it turns out that most programmers are terrible, and they think it's fun to reinvent the wheel, because wheels are the only thing (they think) they understand. They think learning new tools are "boring" or "stupid" but mainly because it's hard to do things in a way you aren't already used to and "hard" things are "stupid" to people that want to use the rationale that the only reason they might not understand something is if it's stupid. The smart programmers learn to use the tools because it actually makes more efficient use of the time spent programming.

    There was a time when programmers complained that compilers were stupid because there was no need to write in a high level language when you could just write in assembly code instead.

    The smart programmers weren't the ones that could read and write in assembly and didn't need high level languages. The smart ones were the ones who recognized that high level languages would make programming more efficient and created that tool.

  96. Complexity as a virtue by anyaristow · · Score: 3, Insightful

    That's because in the 90's programming got more difficult, and programmers *liked* it. No more soccer moms entering the field because they heard it was a way to earn a decent wage.

    Complexity makes programmers feel they can do things most people can't. So, they seek complex solutions. If it's not complex, it must not be the intelligent way to do it, since a lesser person could do the simpler thing.

    They have it backwards, of course. The ability to reduce the complexity of a task is actually a higher skill.

  97. Bicycles and Jets by Anonymous Coward · · Score: 0

    "But I deliver small parcels by bicycle. Not my fault that my boss read a management book written by someone in aviation, and has us go through several page checklists every time we get on a bicycle".

  98. is this an AD of a new IDE? by palpatine7 · · Score: 1

    its a good 5 liner with both fundamental claims being false. 1. apps are complex - and business logic complexity (also called as noone ever thought it clearly over) grants a worse programmer experience than tool complexity (at least one guy thought it over - and it works in a well defined environment) 2. project overhead is not that bad - for me at least. but yeah the tools I have to use suck a bit. so whats the whole point they advertise some new IDE that will be simplish? (in its birth its missing features as it grows it will be sluggish? :P) also why can't I frigging add a linebreak to my post ... is it a signature thing for slashdot, every post must be a wall of text without formatting?

  99. The way I see it by Anonymous Coward · · Score: 0

    I've been coding since about 1984. I cut my teeth in the demo-scene doing intros and the like on C64 and Amiga and eventually on PC.
    I've used pretty much every tool, language and platform that has been and I've had a good opportunity to sit back and watch the industry grow/(d)evolve.
    For me it's always been a hobby and my career and as another post mentioned I still manage to enjoy coding as long as I make a very clear separation between what and how I code for work and how I code for fun.
    From a career perspective I've been involved in a wide array of sectors, financial, web, intranets, mobile, insurance, telecomms, game-dev, gis, tech start-ups so I've also been lucky to be exposed to a wide array of styles, practices, team and company structures etc from 1-4 man shows up to 8,000 person organizations. I'm not a youngster anymore but I'm also not an old-foggy so I think it gives me a unique perspective on the situation (I can balance my nostalgia for yesteryear with the practicality of modern tech and forward thinking).

    I think one important thing to bear in mind with all of this is that there are a million wrong ways do something and only 1 (or a few) ways to do it right. As the industry evolves it needs to make mistakes, do things the wrong way. The important thing is that people need to learn from these mistakes and move forward in a positive direction. I don't see that happening that much anymore.. I'm quite happy to have a lousy system which I know is going to continually get better, but that seldom seems to be the case these days.

    The industry has a number of problems as I see it currently:
    1) There are far too many people re-inventing the wheel and replacing one half-arsed system with another instead of fixing or improving what is already there.
    2) Every second college kid feels the need to be a web2.0 rock-star and release yet another framework or library.
    3) The image of the whole industry has gone from hi-tech computer nerd to silicon valley chic which to me seems to me bringing in the wrong kind of people.
    4) Organizations like MS seem to change direction far too often, back-track prior decisions and have too much developer churn. It shows in their products when they bring on a new team or try to introduce a paradigm shift, the whole house of cards comes crashing down (Windows 8, Office 2013, Visual Studio 2013..Lync..).
    5) Taking C# as an example.. there should have been a point where as a language it was mature and stable. This constant need to evolve it and make it fit every case with more elements / syntactic sugar is ridiculous. Is it static is it dynamic .. is it for desktop.. is it for web.. Get it right.. make it good and leave it well alone the damn reference books get published and before they've even hit the shelves in some places they're already obsolete!
    6) Google suffer a slightly different problem.. I shall call it perpetual-beta-forget-me-itis. People go off on a tangent .. build a product which may have significant overlap with what another part of what google is doing, they'll usually come up with a few really great ideas in it but then cock the whole thing up by not considering it a go-to-market product so it's usually ergonomically flawed and then they drop any real support for it and it just meanders along.
    7) Documentation.. engineers can't write it... most programmers can't write it... and it seems these days most companies don't care. I think back (some nostalgia to kick in) about the sort of printed book/manuals that you used to get for things like Pascal, GW-Basic or the Amiga ROM-Kernel manuals. Absolute brilliance... We have to ask ourselves, once we used to be able to code WITHOUT relying on the Internet or StackOverflow and simply using some txt files we had, stuff from BBSes and real hard-copy books.
    8) Following from 7 part of the problem is the actual documentation itself.. the other (and this is one of the key things I want to raise) is that while we've made progress in some areas, in a lot

  100. The way I see it by Anonymous Coward · · Score: 0

    1993:
    mov ax,13
    int 10h

    2014:
    http://msdn.microsoft.com/en-gb/library/windows/desktop/dd370994(v=vs.85).aspx

    1993:
    in al,60h

    2014:
    I won't even bore you with the details, suffice it to say it's going to cost you a lot of money, you'll need to join some SIGs, become a USB member, read 10,000 pages of specs and spend 6 months coding.

    If you understand the above .. you'll know what I'm on about.

    ÃoeSimplicity is the ultimate sophistication.Ã
    Ã Leonardo da Vinci

    ÃoeAny intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius Ã" and a lot of courage to move in the opposite direction.Ã
    Ã E.F. Schumacher

    Everything should be made as simple as possible, but not simpler. ~Albert Einstein

  101. Mythical man month by Anonymous Coward · · Score: 0

    So this is a college new-hire's book report on Mythical Man Month?

    Welcome to the playground, new guy.

  102. Blaming the tools? by Murdoch5 · · Score: 1

    What's wrong with VIM, GCC and BASH?

  103. OK by Anonymous Coward · · Score: 0

    I have one 16-bit for You son: You are not a programmer.

  104. Arduino! by drstevep · · Score: 1

    Pick up an Arduino and start playing. It's like a return to the 70s or early 80s. A simple, clean environment. An incredibly large number of frobs. Interface libraries and code is FREELY available by the ton. And you see a problem, you piece together sensors and effectors, and you solve it. Then you give the code away.

    For me, a breath of fresh air.

  105. Software is a mature field by Anonymous Coward · · Score: 0

    All the easy problems have been solved. Most of the hard ones have, too. The intractable ones are still being worked on.

    There haven't been many breakthroughs in mathematics recently, either. It's all tiny incremental steps.

  106. Um no... by Drethon · · Score: 1

    I would not work for a company that told me to just write code. While a lot of standards and management go overboard, it is mostly about the fact that when working in the corporate environment I have almost never reworked my own code. 95%+ of what I work on is updating someone else's code and I'd rather the time and effort learning their code be saved by them following some sort of standards.

    Most companies don't even spend enough time writing requirements to define what the software should do. They often focus on the most important 5% of the design and ignore the rest, then complain that what I implemented doesn't match what they didn't tell me they wanted.

  107. Problem with tools by i · · Score: 1

    The main problem with the usage of these kind of tools is that they often is used as a remedy for the lack of skill and knowledge by the programmers.
    And they of course always fails that.

    Managers without managing skills in the area of IT projects = easy target for selling tools.

    --
    Mundus Vult Decipi
  108. Research programming by Anonymous Coward · · Score: 0

    Perhaps you should be looking into getting a job as a research programmer. Working in academia (or at least in the vicinity of acedemia) tends to bring with it a certain degree or freedom and excitement that you might not easily find in business stuff. If a scientist has figured out some new fancy algorithm on paper it's your job to make it work. You'll still be doing what others want you to do but in an environment where you are on some kind of bleeding edge, have some freedom to experiment, don't always have to jump through all the hoops of quality assurance (because in research projects it's more about having a working prototype than about shipping a product with all the inherent legal liabilities), and even get paid for it. Granted, it's not for people who are "only" programmers but for people who know something about the relevant science in addition to knowing how to transform abstract algorithms and data structures into performant computer code. Come to think of it, at the end of the day it all boils down to this: If you want to do interesting work you need a certain level of education or at least it doesn't hurt to have a certain leval of education when looking for interesting jobs. Take home message: Look beyond programming as an end in itself.

  109. Do your own projects by Anonymous Coward · · Score: 0

    I felt the same way. Work became work. Fortunately I got out of the rat race and no longer have need of money and I can work on the projects that I want to work on. Well, to be honest the rat race has destroyed most of my desire to code any longer and I haven't worked on anything for the past 3 months, but I'll start up again once the joys of summer and fall pass. :)

  110. A prayer of a coder by Anonymous Coward · · Score: 0

    I pray God the father, the son and the Holy Spirit, Jesus, Maria, and the apostres, the Angels, so that we all have bread, love, the forgiving of our sins, and good and nice coding environments, and nice jobs, and nice friends and health or at least healthcare. Thank you very much. I no longer code on computer : it's too hard today with my mindillness. I code on paper. Greetings from France, European Union. May the peace and love be with you.

  111. Can I use Mono? by Blaskowicz · · Score: 1

    I'm asking it like it's a bad thing, because how many times I could read there that it's a cancer like flash, pdf and whatever little things. But I just checked yesterday, and it exists for Windows too. And intended for actual use, unlike something like Wine on Windows. And you can even bundle the runtime or bury it in your .exe program.
    There are many "one true way" to develop things that work everywhere : java, python, web/javascript, some older things and some newer things I'm sure. But if I want to get started to do little projects, have to pick something. Web would be nice, but maybe I'll never have a smartphone to run little web apps on. My calls and positions are already tracked just by owning a dumbphone.

    Back on point, one of the early posters said how he uses C#, and it would probably be a nice fallback / somewhat default language to do semi-system stuff, networking, multimedia, imperative programming.. or gasp, a GUI. What would draw me then is the F# language, and I know its parent language a bit (ML family). It would be awesome to be able to do actual useful stuff in that language (thanks to .NET libraries/infrastructure and some additions or sugar in the language) and if worst to come (i.e. something where functional programming is pointless or gets in the way) I'd use C# or whatever other language supported in the Mono CLR for those parts?
    It's 2014 too and maybe Mono is better in 2014 than in 2009 or 2007.

  112. I Have a Friend Who Is a Top-Shelf Cabinetmaker by Anonymous Coward · · Score: 0

    He makes stuff that is extremely well-done, made from top-notch solid hardwoods and employs some extremely creative design.

    It takes him quite a while to make one of his pieces. Each one is custom, unique, and perfect.

    It costs a LOT.

    His customers are almost exclusively rich folk.

    He drives trucks for a living.

    It's pretty difficult to make money doing high-level craftsmanship, these days.

    It's also damn near impossible to have a high-level craftsmanship team.

    The Japanese have figured out how to do it, and the Koreans are catching up fast.

    Americans? Not so much.

    The problem with the Japanese and Korean approach, is that you can get super high-quality, low-price products produced in bulk, and of incredible complexity, but the innovation tends to be diminished.

    The Germans are the only ones that I know of that seem to be able to get innovative craftsman teams producing a large quantity of high-quality stuff.

    However, their stuff ain't cheap. A Mercedes S-class will usually cost more than 5 Toyotas. It will probably last as long as 3 or 4. The Mercedes-Benz company is a pipsqueak, compared to Toyota.

    It really comes down to scale, and economies, thereof. It's also all about "good enough." Microsoft was (at one time), the largest and most successful software company on Earth, and they ran on the "good enough" model.

    Teams of code monkeys, under strict (and not fun) conditions, can produce Toyota code (or Yugo code, if you remove the oversight). Teams of craftsmen can produce Mercedes code. They can often have more fun doing so. They tend to have just as rigorous a process as the code monkets, but that process is internalized, and is an unspoken language understood by the whole team.

    1. Re:I Have a Friend Who Is a Top-Shelf Cabinetmaker by Rakarra · · Score: 1

      However, their stuff ain't cheap. A Mercedes S-class will usually cost more than 5 Toyotas. It will probably last as long as 3 or 4. The Mercedes-Benz company is a pipsqueak, compared to Toyota.

      Damn! So if I get a Mercedes-Benz S-class, it will run just fine for 45-60 years? Maybe I -should- go with that for my next car, then.

    2. Re:I Have a Friend Who Is a Top-Shelf Cabinetmaker by Anonymous Coward · · Score: 0

      Damn! So if I get a Mercedes-Benz S-class, it will run just fine for 45-60 years? Maybe I -should- go with that for my next car, then.

      Exactly. The highest-mileage car on record is a Volvo, but I think the second-highest is a Mercedes. Mercedes even has a standard award for a million miles. That's what those badges on the grills mean.

      I code, so I have a nice computer. I live on it. I use it constantly. I want a nice, reliable one. It's expensive.

      However, the vast majority of folks I know want cheap crap.

      Guess who they call to help them fix their cheap crap?

      Guess who has learned to say "No. Get a decent computer, then call me back."

    3. Re:I Have a Friend Who Is a Top-Shelf Cabinetmaker by toddestan · · Score: 1

      However, their stuff ain't cheap. A Mercedes S-class will usually cost more than 5 Toyotas. It will probably last as long as 3 or 4. The Mercedes-Benz company is a pipsqueak, compared to Toyota.

      Are you kidding? Mercedes is garbage nowadays. Ever since they bought out Chrysler, their quality went into tho toilet. I'm in Minnesota, and I'm accustomed to seeing 10-15 year old Mercedes that are total rust buckets on their last legs driving around. Granted, this is salt country, but I also see Mercedes from the 70's and 80's driving around with little to no rust so it hasn't always been this way, which is kind of sad. A new Toyota will easily last longer as new Mercedes while costing less to purchase and maintain, and IMHO the quality of new Toyotas has also been sliding for about the last decade.

  113. The prayer of a coder by Anonymous Coward · · Score: 0

    I pray the Good God, the Father, the Son, and the Holy Spirit, Jesus, Maria and the Apostles and the Angels to gives us food, bread, love, and to forgive our sins, and then perhaps nice coding environments, nice jobs, nice friends, and health. I no longer code on computer, it's too hard for me, with my mindillness. I code on paper. And that gives me immense satisfaction.

  114. I don't get it by LihTox · · Score: 1

    First of all, let me say up front: I'm not a professional programmer, just a hobbyist. I could understand the need for complicated tools when you're part of a large-scale operation or programming for a corporation. But the author's not talking about that at all.

    On private projects, I keep hearing myself spit out between expletives, "I just want to code."

    Why don't you? I write little programs all the time, in Tcl/Tk, in Javascript, in C++, in Python. I don't use an IDE. I don't use any version control though I probably should. (I'm starting to learn about Git and Github.) My bug tracker is a bunch of comments at the top of the source file, or if I'm feeling ambitious, a separate text file called "NOTES".

    But what I don't do, for the most part, is share my programs with anyone else. If I were planning to release something to the public, I would have to spend a lot more time figuring out all the dependencies of my software, putting in more robust error checking, writing documentation, submitting the program to an App Store or at least putting it up on Github, etc etcyeah, that would be a drag. But I don't know that any of that is necessary; it's just important if I want other people to find my software to be useful. If all you're interested in is the problem-solving puzzle aspect of programming, or in writing something to make *your* life a little easier, then there's no need to follow the herd. Do what the heck you want; all the old tools are still there.

  115. Complexity as a virtue by Anonymous Coward · · Score: 1

    Good people are losing jobs these days because of hubris. I got into development for two reasons: 1 necessity, 2 i liked it. Unfortunately, because I'm self taught and don't hold a degree in CS or IS, and can't grasp every framework de jour, I'm slowly again being push out of a job (career). Sad. I have good skills, but can't compete with Joe programmer who's been doing this stuff since he was 14. What makes it worse, management is getting on board with the "technology for technology's sake" crowd, resulting in bloatware, complexity, and less stability/ more complex maintainability. And for what purpose? Apparently, it's mostly to stroke egos and secure jobs.

  116. Re:Welcome to engineering by Anonymous Coward · · Score: 0

    The fact that you wrote this un-ironically about Agile assures me that you have never, ever worked on a properly-run Agile project in your life. Now, it's not your fault if your managers thought "no planning" was all they had to do to have an Agile process.

    And he probably hasn't. But that's ok because about 90% of people who are claiming to "do Agile" aren't doing it properly at all and are, in fact, just paying lip service to the notion of "agile" and simply storming ahead with the "no planning" ethic that you suggest that they are.

    If you're one of those people who genuinely has worked on a "proper" agile project then you are very much in minority.

  117. Re:Welcome to engineering by david_thornley · · Score: 2

    Requirements change. The most common reason is that the requirements are normally simply not known until the project is underway. There are exceptions; my wife liked working for accountants because they knew what they wanted ahead of time. However, most people don't know what they need until they see enough things they don't need. Good requirements analysis can help (and I have daydreamed of getting mob enforcers to do it - "Is ya gonna tell me what data you need here or is I gonna break your kneecap?"), but it almost never works all the way. Another reason is that the situation changes, whether by reorganization or new laws. I've also seen requirements people meet with the managers of the workers who are going to use the project, but that's simply bad requirements analysis. I've also been on a very successful scrum project where our hardware engineer was still doing basic design work while we were getting the preparations done. We did know the overall system very well, and so we had a good idea where we were going to have to make changes. I wouldn't recommend that process for everything, but it saved time getting a new process ready for customers.

    Doing visible accounting of the cost of change requests is useful, and on a large project you really do want a change control board. You usually have to be prepared for large changes anyway.

    --
    "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  118. Exactly! by carys689 · · Score: 1

    My sentiments, exactly: just LET ME CODE!

  119. Re:Cue the by sumdumgai · · Score: 1

    And even with all of that, you can go back a year later and look at your code and think, "Wow. I have learned a lot since then. I should recode this section."

    --
    âoeIn theory, theory and practice are the same. In practice, they are not." â Albert Einstein
  120. What a rant by Anonymous Coward · · Score: 0

    I get the impression the author have not coded very much if he still is struggling to fit together features such as multi language and data storage in new projects.

  121. Re: I Have a Friend Who Is a Top-Shelf Cabinetmake by Anonymous Coward · · Score: 0

    The business "grew up" and became managed. Lots of time and energy is spent on the process rather that the product. It seems that Apple is or was one of the few companies that spent more time on design, than process. It's not that the cabnit makers are all gone. It's that they are all being managed by "productivity" managers. Jobs said his company was the largest company run entrepreneurial style. Everyone reported to him. Look at the tools. Apple used for years one language: Objective C. That is the C language with objects. The guy who invented it just wanted to add objects to C. That is a whole different approach than specifying a new language or using C++ or having a committee decide on what language they would use.

  122. Just let me teach... by Anonymous Coward · · Score: 0

    I work at a local college, and we also have to have meetings, our work is monitored, we have several HR videos we have to watch each year, etc. I earned my teaching certificate 35 years ago. I think I know how to teach a basic English composition class by now. At least I don't have to have parent/teacher conferences.

  123. Zed Shaw nailed it by Anonymous Coward · · Score: 0
  124. You describe it perfectly... apk by Anonymous Coward · · Score: 0

    How/Why? Complexity: Especially DCOM vs. WebServices - DCOM, imo @ least, is a nightmare by comparison to doing websites with real functionality for users (yes, DCOM works, but working with it is FAR more complex than putting up a Script Driven DB accessing website, for example). Security considerations aside @ least & yes, BOTH DCOM + The Web, of course as we ALL KNOW on the latter especially, have them!

    Imo @ least, yes - that's WHY web-driven programming "took off" the way it did. More coders could easily grasp & utilize it.

    APK

    P.S.=> Good post man - I wouldn't have put it *QUITE* the way you did, but your point's solid enough... apk

  125. Re:Welcome to engineering by vilanye · · Score: 1

    Ah yes, the battle cry of the agile apologist. "If it didn't work, you are doing it wrong"

    Any one size fits all process is a failure.

  126. Confusion between consultant and contractor by Dareth · · Score: 1

    Confusion between consultant and contractor? Many consultants say what needs to be done but do not implement their suggestions.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling