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."

248 of 372 comments (clear)

  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 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.

    6. 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.

    7. 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!!
    8. 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!!
    9. 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.

    10. 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
    11. Re:Code the way you want... by Noah+Haders · · Score: 1

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

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

      Do you watch Desertbus For Hope by any chance :)

    13. 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...

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

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

    15. 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.

    16. 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
    17. 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.

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

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

    19. 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
    20. 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
    21. 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.
    22. 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.

    23. 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.

    24. 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.
    25. 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...
    26. 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.

    27. 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.

    28. 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.

    29. 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.

    30. 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.

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

      Small projects like stackoverflow.com.

    32. 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
    33. 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.

    34. 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.

  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 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.

    8. 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.
    9. 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.
    10. 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!

    11. 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.

  3. 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 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.
    6. 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."
    7. 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.

    8. 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.
    9. 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.

    10. 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 ...
    11. 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.

    12. 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.

    13. 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!

    14. 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.

    15. 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.
    16. 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
    17. 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.
    18. 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.
    19. 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.
    20. 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.
    21. 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.

    22. 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.

    23. 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
    24. 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.

    25. 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.
    26. 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.
    27. 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.
    28. Re:Who is stopping him? by Noah+Haders · · Score: 1

      ok then, what do you do for weeks?

    29. 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.
    30. 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.

    31. 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.

    32. 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.

    33. 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.

    34. 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
    35. 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".

    36. 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.

    37. 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!
    38. 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
    39. Re:Who is stopping him? by Rakarra · · Score: 1

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

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

      Duh, it's a Gruntmaster 6000.

    41. 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.

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

      errr coating

  4. "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 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"?
    5. 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.

    6. 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.
    7. 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.

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

      :) I like this.

    9. 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!"
    10. 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.

    11. 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?

    12. 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.
    13. 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.

    14. 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.

    15. 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
    16. 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.
    17. 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.

    18. 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.

    19. 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!

    20. 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.
  5. 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
  6. 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

  7. 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 ...

  8. 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
  9. 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.

  10. 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.

  11. 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.
  12. obligatory car analogy summary by NemoinSpace · · Score: 1

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

  13. 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.
  14. 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.)

  15. 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.

  16. 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 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...

    3. 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
    4. 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.

  17. 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 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
    3. 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
    4. 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.

    5. 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
    6. 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.
    7. 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
  18. 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 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
  19. 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.

  20. 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.

  21. 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.
  22. Just some pointers to where you can go by Daniel+Hoffmann · · Score: 2

    void *unemployment;
    struct hell *reality;

  23. 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.

  24. 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
  25. 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.
  26. 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.

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

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

  28. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  29. 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.

  30. 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.

  31. 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.
  32. 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.

  33. 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??!!

  34. 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.

  35. 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.

  36. 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.
  37. 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
  38. 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.

  39. 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.

  40. 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
  41. 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.

  42. 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.
  43. 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 tepples · · Score: 1

      My complaint is that all developer tools for set-top and mobile-with-buttons platforms are hostile.

  44. 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.

  45. 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.

  46. 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 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!
  47. 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.
  48. 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
  49. 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.

  50. 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.
  51. 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.

  52. 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.

  53. 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!

  54. 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
  55. 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?

  56. 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.
  57. 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.
  58. 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.

  59. 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 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.
  60. 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?

  61. 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.
  62. 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.

  63. 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.

  64. 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.

  65. 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.

  66. 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/
  67. 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.

  68. 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.

  69. 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?

  70. 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.
  71. Blaming the tools? by Murdoch5 · · Score: 1

    What's wrong with VIM, GCC and BASH?

  72. 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.

  73. 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.

  74. 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
  75. 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.

  76. 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.

  77. 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.

  78. 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.

  79. 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
  80. Exactly! by carys689 · · Score: 1

    My sentiments, exactly: just LET ME CODE!

  81. 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
  82. 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.

  83. 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.

  84. 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.

  85. 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