Slashdot Mirror


Ask Slashdot: How Do You Choose Frameworks That Will Survive?

First time accepted submitter waslap writes "I have a leading role at a small software development company. I am responsible for giving guidance and making decisions on tool usage within the shop. I find the task of choosing frameworks to use within our team, and specifically UI frameworks, exceedingly difficult. A couple of years back my investigation of RIA frameworks lead me to eventually push for Adobe Flex [adobe.com] as the UI framework of choice for our future web development. This was long before anyone would have guessed that Adobe would abandon the Linux version of Flash. I chose Flex mainly for its maturity, wealth of documentation, commercial backing, and the superior abilities of Flash, at a time when HTML 5 was still in the early stages of planning. Conversely, about 15 years ago I made a switch to Qt for desktop applications and it is still around and thriving. I am trying to understand why it was the right choice and the others not. Perhaps Qt's design was done so well that it could not be improved. I'm not sure whether that assessment is accurate. I cannot find a sound decision-tree based on my experiences to assist me in making choices that have staying power. I hope the esteemed Slashdot readers can provide helpful input on the matter. We need a set of fail-safe axioms" Read on for more context. The backing of Adobe, an industry giant, gave me what I later discovered was a false sense of security. I thought that the Flex framework would not get lost in a back alley like so many open source projects. We invested heavily in Flex and were disillusioned a couple of years later when Linux support for Flash was ended. (Linux support is vital for us for reasons outside this discussion.)

I had evaluated Adobe Flex alongside OpenLaszlo, which at the time had the ability to use a DHTML back-end instead of Flash with the flick of a switch. In retrospect, this alone apparently made it a better choice in the long run regardless of its flaky state when I first looked at it.

A similar scenario arose with CodeIgniter, which we chose for getting away from classical spaghetti PHP. CodeIgniter was recently dropped after we've invested a Tesla Model X worth of money into using it. (EllisLab Seeking New Owner for CodeIgniter.)

I am standing at a cross-roads once again as people are pushing Laravel [laravel.com] for PHP, and giving other suggestions. I am scratching my (sore) head and wondering how to prevent eventual failures in the future. It seems there is no way to predict whether a tool will survive.

Even in retrospect, when I consider my decision-making processes, everything was reasonable at the time I made the choices, yet some turned out to be wrong.

227 comments

  1. IE6 by ArhcAngel · · Score: 5, Funny

    That thing will be around FOREVER!

    --
    "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    1. Re:IE6 by homey+of+my+owney · · Score: 4, Insightful

      The problem is you're thinking about it all wrong. The decisions were probably all right at the time. If you think there's a crystal ball that will tell you what the future will bring, you're going to look long and hard. The right decision is right for now. The best you can do is design so that moving to something else is possible instead of painful.

    2. Re:IE6 by mwvdlee · · Score: 3, Insightful

      +1 Funny and -1 Not Funny in one sentence.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    3. Re:IE6 by RavenLrD20k · · Score: 2

      Kinda like "Death by snu snu".

    4. Re:IE6 by K.+S.+Kyosuke · · Score: 1

      That thing will be around FOREVER!

      I've heard It's going to marry OpenVMS in a same-endian wedding.

      --
      Ezekiel 23:20
    5. Re:IE6 by xaxa · · Score: 1

      Our thoughts around this are:
      - Pick something open source, so it's possible (within our available resources) to fix small bugs if the software goes out of fashion
      - Pick things used in big industries, who should keep them running for far longer than software only used by start-ups etc.
      - Pick things maintained by reliable projects like Apache and GNU, where that's an option.

    6. Re:IE6 by davester666 · · Score: 1

      Yeah. They totally should have stuck with Visual Basic.

      --
      Sleep your way to a whiter smile...date a dentist!
  2. Open source survives by Anonymous Coward · · Score: 1

    If the company which develops a closed source framework ditches it, you can't do anything about it.

    If a company or any organisation which develops an open source framework ditches or otherwise nukes it, anybody else with an interest and the capacity to do so can take over or fork it.

    1. Re:Open source survives by Anonymous Coward · · Score: 4, Insightful

      Thanks captain obvious.

      Most folks who want to use a framework have no interest in forking or taking over the project. They want something that works that they can use to save them time. Writing your own from scratch, or maintaining can be a lot of work. That's why some folks are willing to pay for a framework. They defray the cost by only paying for a small portion of the development cost that's shared with others.

      If they can pay someone in-house to fork/maintain, they can probably afford someone to write a customized framework that fits their use-case better than a generic one from either an open or closed source provide.

    2. Re:Open source survives by Anonymous Coward · · Score: 2, Insightful

      Capttain Obvious (GP) here...

      You don't have to do it yourself, just piggyback on somebody else who takes over the project.

      Look at what happened when Oracle lost interest in OpenOffice, or when they started to do weird things with MySQL.

    3. Re: Open source survives by Anonymous Coward · · Score: 1

      Agreed, with one caveat: widely adopted open source projects survive, because eventually they get too big to fail.

    4. Re:Open source survives by LurkerXXX · · Score: 1

      Sometimes no one else takes over the project.

      I refer you to Sourceforge. There are a lot of projects on there that haven't been touched by anyone for a long, long time.

    5. Re:Open source survives by Grishnakh · · Score: 1

      Most folks who want to use a framework have no interest in forking or taking over the project. They want something that works that they can use to save them time.

      Right, but if that framework gets dropped later, you're going to spend a LOT more time trying to switch to another framework than you ever saved by adopting the framework in the first place. So maybe you shouldn't even bother with the framework unless it's a sure thing.

      Finally, even if an open-source framework gets dropped, that doesn't stop you from using it. You can keep using the most-recent release of it, indefinitely, or until you're ready to make a change to something better. You can also maintain it yourself (which would only consist of bug-fixes), which again is surely less time than you'd need to invest to switch to something altogether different.

      Finally, this guy's big problem wasn't with a framework per se, it was in adopting Adobe Flash (not Flex; they just needed that to create Flash sites). That's quite different from frameworks because it relies on clients/customers/visitors to have Adobe's Flash plug-in installed on their system, which of course is a problem on Linux systems (which apparently is very important for his business for some reason). Anyone should have seen this coming; you can't rely on a proprietary client program on Linux for web browsing, and Flash on Linux has always been a giant problem. Yes, HTML5 wasn't ready at the time, but that just means you have to make do with less or be happy with a site that doesn't have so much "flash". It's no different than targeting Active-X; you're at the mercy of MS there to keep supporting it for everyone's client system, something that obviously didn't happen and is causing massive problems with web apps developed with Active-X.

      When you want something to have real longevity, you can't target the cutting edge; you have to target the lowest common denominator, and stay farther behind in technology.

    6. Re:Open source survives by Melkman · · Score: 2

      But that depends on other parties with the will and capabilities to support the framework having an interest. Being open source definitely is an advantage but by no means a guarantee a project will survive. Sturgeon's law applies to open source software just the same as to proprietary software.

      The request of the submitter for a fail-safe set of axioms can never be answered. With fail-safe systems tending to fail by failing to fail safe. But with common sense a few indicators of long term viability are easy to give:

      1) Who controls the software ?
      If it is a single party chances are good it will be abandoned at some point in the not so distant future. Open Source can help with this point but as said earlier it is no guarantee. There are many open source projects which are for all practical purposes developed by a single company. These projects are just as likely to be abandoned as commercial software.

      2) Who uses the software ?
      The more people use the software the less likely it is it will be abandoned. For commercial proprietary software a big user base means income and companies are not in the habit of slaying the goose that lays the golden eggs. For open source software it means there is a bigger potential pool of contributors to continue development if a main developer exits the project.

      3) How long has the software existed ?
      New software is continuously written and released. Again according to Sturgeon's law 90% will be crap. It will take a little while before the writers realizes their software belongs to this majority and stop supporting it. The longer software has been actively developed the less likely it is to be crap and discontinued.

      4) What was the motivation for creating the software ?
      If the motivation is a specific goal other than meeting the needs of the users expect the software to be abandoned if it becomes clear that the goal is unrealistic. If the goal is met the software might be continued. Think about lock-in strategies and subverting standards in this regard.

      The choice for Adobe Flex had issues in at least point 1, 2 and 3.

    7. Re:Open source survives by turbidostato · · Score: 1

      "Most folks who want to use a framework have no interest in forking or taking over the project."

      Unless really needed.

      There.

      "If they can pay someone in-house to fork/maintain, they can probably afford someone to write a customized framework"

      Bullshit on itself and bullshit-plus once you consider the hidden costs and hindrances of such a decision.

    8. Re:Open source survives by MightyYar · · Score: 2

      But, for the most part, those are small projects which are unlikely to have won the submitter's approval in the first place. His other examples were giant projects like Qt and Flex. You can bet that if Adobe open sourced Flash, someone would maintain it for Linux.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    9. Re:Open source survives by fast+turtle · · Score: 1

      Another mistake in depending on Flash is the lack of ADA compliance. Come on folks. If you're doing any god damn commercial website designwork, then you absolutely have to comply with either ADA rules in the US/EU. Otherwise you'll eventually loose business and end up going under. This means by all means do not depend on Flash or even javascript. If I hit a site that depends completely on either of those technology, then I'm probably never going to return even if you're the only place to get the last twinkie on earth before the zombies get me.

      --
      Mod me up/Mod me down: I wont frown as I've no crown
    10. Re:Open source survives by Sique · · Score: 1
      But the problem is that then the original task of the framework to provide a high level interface to often used tasks and to abstract from the actual platform is also limited to the moment the framework gets abandoned. Any later development, any necessary adaption to emerging new platforms or to changes in the current platform are out of reach with the framework. Thus you are stuck with more and more outdated platforms you are supporting.

      It's the same reason some shops still have to support Windows 98 or WinNT 4.0, because some important software was developed using a framework whose development was abandoned around 1999, and there is no replacement yet.

      --
      .sig: Sique *sigh*
    11. Re:Open source survives by Grishnakh · · Score: 1

      Well this is only true if you're supporting multiple "platforms". One of the things this guy complained about was PHP frameworks; for that, there's only one platform, which is "web browsers" (though perhaps you need to make sure it looks the same on all browsers). Yes, if you're developing a native application, and deciding between Qt and some other framework, then you definitely need to worry about whether that framework will be supported in the future because you're not going to want to port it to newer platforms (like Win8) after the framework development is abandoned by its original authors. But this shouldn't be the case with web-development abstraction layers, at least not nearly to the same extent.

    12. Re:Open source survives by RavenLrD20k · · Score: 1, Insightful

      Open Source is the Free Market at work. If a technology proves useful, there will be people that are going to be supporting it for as long as it remains useful. If a tech doesn't get wide adoption and people don't see a use in it, it's not going to go far. I argue that if a framework is Open Source, it will last longer than any proprietary format. If no one takes over a project, it's quite likely because no one sees a use in the technology in the form that the project took.

      Also, look at it from this way: Microsoft's .NET is still a very popular programming framework in the enterprise, despite its flaws. Microsoft has every bit of power to say that effective at close of business today all .NET development will cease, all licenses are hereby revoked, and no new licenses will be given. Congratulations, every Enterprise that's been relying on .NET for their day to day operation has just been royally fucked and need to adopt a new framework standard to rewrite every single one of their applications YESTERDAY!

      Granted, that scenario is hypothetical and not very likely, but it is a very real example of the limitations of reliance on a closed source framework. QT, an open source framework, worked well for the Waslap. If he went with GTK+ it may not fare so well considering the state of Gnome and uncertainty of direction (how many forks are in the wild now?) but it would not have to be a cold turkey forced migration but rather it could be relatively easy to begin a roll over to another available open standard in a phased solution since (correct me if I'm wrong here) it couldn't be done as an immediate all at once license pull.

    13. Re:Open source survives by Anonymous Coward · · Score: 0

      "Most folks who want to use a framework have no interest in forking or taking over the project."

      Unless really needed.

      There.

      "If they can pay someone in-house to fork/maintain, they can probably afford someone to write a customized framework"

      Bullshit on itself and bullshit-plus once you consider the hidden costs and hindrances of such a decision.

      Well, at least someone in this thread gets it, odds of monumentally bad decisions that get entrenched in a well maintained framework are far lower than the eventual fragility and bad decisions that ALWAYS gets entrenched in house. I sometimes wonder exactly what big things any of the people saying, "Do it in house!" have actually done, because anyone with any experience knows that while that is in the realm of decisions that are the correct decision, it's one of the most unlikely to actually be the case.

      DON'T ROLL YOUR OWN. If you're not an expert at logging, you don't write your own framework, if you're not an expert at mathematics and encryption, you don't write your own encryption, and unless you're an expert at frameworks you don't write one of those, either.

    14. Re:Open source survives by stenvar · · Score: 1

      If you pick an open source project with lots of users, that's not a problem: someone will pick up maintenance.

      For commercial, closed source projects, having a lot of people in the same boat as you doesn't protect you against anything; even potentially money-making products whose maintenance someone could profitably take over often end up being dead.

    15. Re:Open source survives by Anonymous Coward · · Score: 0

      If he went with GTK+ it may not fare so well considering the state of Gnome and uncertainty of direction

      Gnome uses GTK, not the other way round.
      Many projects use GTK, and not care a wit for what the Gnome folks do.

    16. Re:Open source survives by pigiron · · Score: 1

      MySQL has always been weird.

    17. Re:Open source survives by jmcvetta · · Score: 1

      Right, but if that framework gets dropped later, you're going to spend a LOT more time trying to switch to another framework than you ever saved by adopting the framework in the first place. So maybe you shouldn't even bother with the framework unless it's a sure thing.

      As an alternative to switching frameworks, a company could just start treating the framework code the same as their bespoke code. They'll no longer get the support of an active community - but they'll be in no worse shape than if they'd written it from scratch. Also, the quality of FOSS framework code is generally a LOT better than that of bespoke corporate code. Wheel-reinvention almost never results in a superior wheel.

  3. Write your own! by Anonymous Coward · · Score: 5, Insightful

    Depending on what you're doing, you should consider writing your own framework. I love using the one I wrote from scratch 10+ years ago: it's proven, high quality code, there are no secret corners I don't understand, and I know how to fix or modify it to do new things. It's also small and fast because it only needs to solve the problems *I* encounter.

    To anyone who starts preaching the religion of code reuse, I think you're just scared of the unknown ... or not a very good programmer. The sorts of things most people need a "framework" for are so simple that any experienced programmer should be able to do it.

    1. Re:Write your own! by JustinKSU · · Score: 4, Insightful

      Depending on what you're doing, you should consider writing your own framework. I love using the one I wrote from scratch 10+ years ago: it's proven, high quality code, there are no secret corners I don't understand, and I know how to fix or modify it to do new things. It's also small and fast because it only needs to solve the problems *I* encounter.

      To anyone who starts preaching the religion of code reuse, I think you're just scared of the unknown ... or not a very good programmer. The sorts of things most people need a "framework" for are so simple that any experienced programmer should be able to do it.

      This is a challenging option in a corporate environment when you need to hire someone to support said framework after you have left the company unexpectedly.

    2. Re:Write your own! by rsborg · · Score: 1

      Depending on what you're doing, you should consider writing your own framework. I love using the one I wrote from scratch 10+ years ago: it's proven, high quality code, there are no secret corners I don't understand, and I know how to fix or modify it to do new things. It's also small and fast because it only needs to solve the problems *I* encounter.

      To anyone who starts preaching the religion of code reuse, I think you're just scared of the unknown ... or not a very good programmer. The sorts of things most people need a "framework" for are so simple that any experienced programmer should be able to do it.

      Sorry, This doesn't necessarily work either. If it's produced at a workplace, that code is now owned by them. I've had this happen to me before where, on my departure, I wasn't given permission to open-source my framework, it was "competitive advantage" that stayed with the company.

      Instead, if I had used an existing framework, I would have a much stronger angle to open-source fundamental changes (ie, ones that aren't part of the business logic) that would benefit others (possibly me in my future role outside the company).

      In my experience writing your own framework for longevity purposes only makes sense if a) you work for yourself or it's hobby code or b) you get a written guarantee from your employer that you can open-source it or own it outright (latter is exceedingly unlikely) or c) you never plan on leaving that employer.

      Even with option (a) above, if I decided later on to join a company, I've found employers very resistant to licensing my IP (or buying it) - almost all the employment contracts indicate that if I do own such IP, that an agreement exists that any use/licensing is not authorized. Sure, if it's open-sourced, it's easier to get employers to adopt it, but again, I've never been in a position where I've either been allowed to open-source my work or had time outside of work to develop it independently.

      --
      Make sure everyone's vote counts: Verified Voting
    3. Re:Write your own! by miketheanimal · · Score: 1

      There can be a lot going for this. I work on a quite large web application written in Python, used by medium-to-large companies. It uses a custom MVC framework which I started 4-5 years ago. Like AC, we understand it, there are no hidden corners, and when we need to modify it to do something we need, we do so. Downsides are documentation (you can't rely on others to do it), and maybe recruitment.

    4. Re:Write your own! by crazyaxemaniac · · Score: 1

      I agree in that a pure framework is just a design pattern and that would be easy to implement. The really useful part of these frameworks is likely the libraries they are bundled with. Sure, somebody with the right experience can duplicate all the work of another person but there's obviously the problem of the duplicate of effort and the waste of time. In the case of code that have many users it is also benefiting from the experience of a large community. If the framework/library is open source there's really nothing preventing you from become familiar with the parts of the code you use. When it comes down to it I don't think it's really a matter of developer experience so much as the time it takes to learn another person's code and managing the risks of that external code changing. Really it seems there are benefits to each approach but certainly there are many benefits to using community developed code.

    5. Re:Write your own! by Anonymous Coward · · Score: 0

      To anyone who starts preaching the religion of code reuse, I think you're just scared of the unknown ... or not a very good programmer.

      Ahhh ... how much fun it would be to be so young and dumb again.

    6. Re:Write your own! by angel'o'sphere · · Score: 1

      Very good post.

      I evaluate frameworks in a simple way:
      o do I understand it
      o would I write it in the same orma similar way

      Well, if the first is false, the second is false, too, obviously.

      However I encountered so many frameworks that simply don't come to the point, don't really simplify the programmers work, that my main point is "is it designed / written in the way I would do it."

      That comes to the point of my parent: there is nothing wrong in writing your own. You should do that once. That will help you in evaluating other frameworks.

      Hint: 90% of the stuff on the internet with the phrase "framework" in them are no frameworks but simply fancy class libraries.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Write your own! by K.+S.+Kyosuke · · Score: 1

      To anyone who starts preaching the religion of code reuse

      I'd argue that when you write it for yourself, the reuse will be perfect, because the parts you write you'll use repeatedly, and the parts you won't use you won't write in the first place.

      --
      Ezekiel 23:20
    8. Re:Write your own! by Anonymous Coward · · Score: 0

      I have a framework that has stood up to 20y of development and changing environments. The problem in a corporate environment is that your custom framework is unlikely to survive until the new boss arrives, and declare that "X" is the new flavor of the day and building your own or supporting it is too expensive.

      People seem to rarely understand the lock in of frameworks and class libraries, alas.

    9. Re:Write your own! by xaxa · · Score: 1

      This is a challenging option in a corporate environment when you need to hire someone to support said framework after you have left the company unexpectedly.

      Exactly. This situation means we have some software that no-one dared to change, because the framework is undocumented and incomplete. Since it only does what's necessary, it doesn't leave much room for future improvements. (We have since changed it, but only the two better developers are willing to work on it.)

      I'll take a 10% loss of performance in return for telling a new developer "this is written using X, Y, and Z. Use W to add the new feature. If you get stuck, search StackOverflow first".

    10. Re:Write your own! by Greyfox · · Score: 1
      Well the assumption is your programmer won't write shitty undocumented code. Which I suppose is a dumb assumption given the amount of shitty, undocumented code I've encountered in the course of my career. Another assumption would be that the company would want to have a small team working on the framework so that if any one person leaves, the company doesn't lose everything it knows about that code in one shot. That's another dumb assumption. Of course they're going to have just one person maintaining code vital to the company's survival. Another assumption is that code's not carved in stone. If something about it sucks, you can just redesign that bit. Everyone always seems to think code is carved in stone. The only exception to that rule seems to be for vital API interfaces. They always seem to want to change THOSE up at the drop of a hat.

      The company COULD write an open-sourced GUI library that doesn't suck and people would probably flock to it. The cost to that is that the library would never be revenue-generating, but it probably wasn't ever going to be directly revenue-generating anyway. The benefit would be that if the one guy you have maintaining it leaves, you might be able to find some more people in its community of followers who know something about it and are willing to maintain it for a living. If companies actually used this strategy when it was sensible for them to do so, IT would suck rather significantly less than it does now.

      --

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

    11. Re:Write your own! by Bogtha · · Score: 1

      That's insane. He's asking about frameworks that will continue to be supported in the future, and you're telling him to use one that is guaranteed to have zero support.

      There's a time and a place for people writing their own frameworks, and this is 100% the opposite of it.

      --
      Bogtha Bogtha Bogtha
    12. Re:Write your own! by Anonymous Coward · · Score: 0

      Depending on what you're doing, you should consider writing your own framework. I love using the one I wrote from scratch 10+ years ago: it's proven, high quality code, there are no secret corners I don't understand, and I know how to fix or modify it to do new things. It's also small and fast because it only needs to solve the problems *I* encounter.

      To anyone who starts preaching the religion of code reuse, I think you're just scared of the unknown ... or not a very good programmer. The sorts of things most people need a "framework" for are so simple that any experienced programmer should be able to do it.

      This is a challenging option in a corporate environment when you need to hire someone to support said framework after you have left the company unexpectedly.

      I disagree. IF development work was done properly (documentation!) there would be no big difference in somebody learning a third-party framework or and inhouse framework.

  4. does it have to be PHP? by js_sebastian · · Score: 0, Offtopic

    Maybe one reaosn PHP framworks come and go is how broken the underlieing language actually is and just how much a framework needs to do to compensate for that, leading almost to a new language that therefore needs a very big community to even survive.

    For comparison of how simple a framework can be when the underlieing language is sane, just look at python flask. Not that i'm saying that's the solution to your particualr problem.

    1. Re:does it have to be PHP? by Grishnakh · · Score: 1

      It seems to me from my limited work with PHP to everything I've read about it, that it's a great language if you're just building a fairly small and simple website (since it's supported by every dirt-cheap web hosting service out there and is fairly C-like in its syntax, plus it's really easy ), but totally sucks if you try to scale it up to anything really serious and high-performance. So why does anyone bother? If you're doing heavy-duty stuff, pick something better suited.

    2. Re:does it have to be PHP? by Grishnakh · · Score: 1

      Stupid Slashdot; when are they going to get with the times and allow editing?

      What I meant to say was:
      and is fairly C-like in its syntax, plus it's really easy to embed into otherwise static HTML code.

    3. Re:does it have to be PHP? by Hewligan · · Score: 1

      Flex was Java on the server side, so apparently just not using PHP didn't save the OP.

      --

      "If God created us in his own image, we have more than reciprocated"

    4. Re:does it have to be PHP? by geminidomino · · Score: 1

      t seems to me from my limited work with PHP to everything I've read about it, that it's a great language if you're just building a fairly small and simple website , but totally sucks if you try to scale it up to anything really serious and high-performance

      As someone who works with PHP day-in, day-out... every day... every week... until the end of time (*sob*)...

      No. It's pretty much a sucky language all along the gamut of use cases.

      So why does anyone bother? If you're doing heavy-duty stuff, pick something better suited.

      For a long time, you'd have been hard pressed to find something "better suited." Unless you wanted to use CGI or mod-perl instead of PHP, but that'd just be trading one misery for another (said as a long-time lover of perl)

    5. Re:does it have to be PHP? by Grishnakh · · Score: 1

      No. It's pretty much a sucky language all along the gamut of use cases.

      How so? I used it for some simple website work, and it was extremely easy to get started and write simple code with it. I really don't get where all the hate comes from. Yes, the language is kinda messy compared to some others, but so is Perl. What's a better alternative? Java is verbose and unwieldy for a small, simple website, and not supported by cheap web hosts. Python maybe, but again it's frequently not supported by cheap web hosts, and it doesn't have a C-like syntax at all. And I don't think there's anything else that's so easy to embed into static HTML.

      Every time I see someone complain about PHP, it just looks like a bunch of bitching and moaning, with zero constructive advice or suggestions for something better, and your post is no exception.

    6. Re:does it have to be PHP? by geminidomino · · Score: 1

      What's a better alternative? Java is verbose and unwieldy for a small, simple website, and not supported by cheap web hosts. Python maybe, but again it's frequently not supported by cheap web hosts, and it doesn't have a C-like syntax at all. And I don't think there's anything else that's so easy to embed into static HTML.

      I didn't say it was inaccessible. I said it wasn't a good language.

      Every time I see someone complain about PHP, it just looks like a bunch of bitching and moaning, with zero constructive advice or suggestions for something better, and your post is no exception.

      Because they've been listed elsewhere, endless times already.

      • Inconsistent naming of builtin functions: isset() vs is_numeric() vs empty()
      • Poor array implementation, going so far as to blindly re-type indices
      • The kluge "===" operator as a workaround to bad type-coercion logic
      • In fact, everything about the type-coercion logic
      • Large integers? Good luck with that.
      • Unicode support after only 20 years! (maybe)

      That's just a few of the reasons. The only things PHP have going for it are accessibility to novice and/or weak developers, and wide availability. If you'd ever used it for anything more complex than a web forum, you'd have experienced first hand "where all the hate comes from."

      Just because it's "the only game in town" doesn't imply quality (insert IBM/Microsoft/AOL comparison here).

    7. Re:does it have to be PHP? by Grishnakh · · Score: 1

      Again, no suggestions for anything better. I've never seen them listed anywhere else, all I ever see is people whining about how bad PHP is.

      If you'd ever used it for anything more complex than a web forum,

      This implies that it IS a good language for simpler projects, which is exactly what I said before.

      The only things PHP have going for it are accessibility to novice and/or weak developers, and wide availability.

      These are extremely important features to many. What good is a language if you can't use it on most inexpensive web hosts? It's useless.

      Just because it's "the only game in town" doesn't imply quality

      Again, irrelevant. If it's the only game in town, then it's a lot better than the alternative, which is either nothing at all or something much harder to get working because it's not easily available.

      If PHP were really so bad, someone would have come up with a better alternative by now. There's no shortage of programming languages out there, but PHP is doing fine, while there are practically no other alternatives, except maybe Perl which is pretty kludgy itself.

    8. Re:does it have to be PHP? by geminidomino · · Score: 1

      I've never seen them listed anywhere else, all I ever see is people whining about how bad PHP is.

      Then you've never looked, and never gotten more than a toe into the pool to run into them firsthand.

      This implies that it IS a good language for simpler projects, which is exactly what I said before.

      No, it doesn't. It implies that if you've only scratched the surface of the language, you don't have the experience with it necessary to judge its quality.

      These are extremely important features to many. What good is a language if you can't use it on most inexpensive web hosts? It's useless.

      Irrelevant to the quality of the language. It's a question of design and philosophical flaws, not popularity, no matter how many times you try to use that excuse.

      If PHP were really so bad, someone would have come up with a better alternative by now.

      There are plenty of alternatives. Python, Ruby, TCL, Perl, etc. They're all better, even Perl, but less popular.

    9. Re:does it have to be PHP? by Grishnakh · · Score: 1

      Most of those aren't supported on typical inexpensive web hosts, so they're useless. What good is a language if you can't actually use it anywhere?

      And Perl used to be the king of server-side scripting, and it's all but died out. Are you going to try to argue that that was some kind of accident, and it really is better somehow even though everyone's given up on it?

      You keep trying to brush off popularity like it's not important, when in fact it's one of the most important factors there is in a language. Popularity dictates support and availability.

    10. Re:does it have to be PHP? by geminidomino · · Score: 1

      Your excuses of popularty and being available on cheap hosting makes PHP work for simple developers to write bad code, and has nothing to do with the language being "good" for any project, simple or otherwise. Repeating your incorrect position over and over again will not make it any more true.

      Regardless of your pointless metrics, it is a bad language because it objectively flawed in more ways than it has redeeming qualities.

    11. Re:does it have to be PHP? by Grishnakh · · Score: 1

      You still don't get it. A "good" language by your metric is useless to me if I can't use it on cheap hosting. If I have to pay a fortune or go to a lot of trouble to use a language (because I need a dedicated server with root access or whatever), that's not "good", that's decidedly bad, no matter what you may think of it. You're like a snob that tells everyone to buy a Ferrari or Bentley because $100k cars are all crap. It doesn't matter how "good" something is if people don't have access to it.

    12. Re:does it have to be PHP? by geminidomino · · Score: 1

      No. YOU don't get it. "Useful to Grisnakh" and "well designed" are completely orthogonal concepts.

    13. Re:does it have to be PHP? by Grishnakh · · Score: 1

      No, YOU don't get it. Please point to where I EVER said PHP was "well designed". I never said any such thing. I said it was good for certain uses, namely small sites. You're the one that went off on a tangent about good design, something I never said much about and certainly not in favor of PHP, since that's obviously one of its shortcomings. I'm only arguing for usefulness, and good design is not very well correlated with usefulness. For an analogy, look at Phillips screwdrivers. That's a totally shitty design, compared to Robinson and Torx heads, because it's so easy to cam them out. However, if you don't have some Phillips screwdrivers in your tool set, you're not going to be very useful since so much stuff is made with the things. And if you're designing something with screws, you have to consider using them because everyone has Phillips screwdrivers (not so much for Robinson and Torx), and they're at least better than flat-blade screws in most ways. Another analogy would be Ogg Vorbis vs. MP3; if you're releasing music for sale, you'd be pretty stupid to refuse to release it on MP3 even though it's a shitty format compared to Ogg Vorbis, since everyone's familiar with MP3, most people have no clue what Ogg is, and many devices (including everything from Apple) won't play Oggs.

  5. Practical answer by micahraleigh · · Score: 5, Insightful

    Whatever shows up (significantly) on the hiring boards.

    1. Re:Practical answer by Sarten-X · · Score: 4, Insightful

      This is an insightful answer, and I wish I had mod points now.

      What's on job listings gives a good indication of what other companies have invested in, and what they're going to need support for in the next decade.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    2. Re:Practical answer by gstoddart · · Score: 1

      Whatever shows up (significantly) on the hiring boards.

      Do you think that's an indication of what will survive, or merely what a bunch of HR people have been told is the latest buzzword they need to ramp up on?

      I'm not sure it's a sign of longevity so much as it is a sign of what's effectively trending on twitter.

      --
      Lost at C:>. Found at C.
    3. Re:Practical answer by TooTechy · · Score: 1

      I guess it's kinda like 'Ask the Audience'.

      The answer is open-source answered by companies you might trust.

      Perhaps IT staff more experienced/intelligent/informed than us have reached a conclusion that we happen to be seeking.

    4. Re:Practical answer by MrEricSir · · Score: 1

      Whatever shows up (significantly) on the hiring boards.

      That's a double-edged sword. While it indicates that the framework is heavily used, it could also indicate serious problems with the framework that require excessive amounts of manpower to maintain it.

      --
      There's no -1 for "I don't get it."
    5. Re:Practical answer by micahraleigh · · Score: 2

      As a parlor game, yeah, I think that is a pretty good indicator of what will survive. If industry goes in a direction (i.e. more than just MS or Oracle) the devs follow. Sometimes the other way around, but either way I believe what shows up on the jobs boards survives. If a company is dangling money/positions they have skin in the game, and while they can change that its a better indicator than, well, internet talk.

      More seriously, the reason why I pay more attention to the boards (although it is hard to get an aggregate view, but a guy at Dice told me he was open to talking about ways to get that information and I never got around to it ... a big business opportunity by the way) than TIOBE/PYPL is not because they indicate what framework will survive but a loose guess about how *I* will survive coupled to that framework as a developer looking for work to feed my kids. And Dice sometimes indicates what you can get paid doing it. It might not be the best way for gauging demand, though.

      King David just poked his head in my cubicle and told me census-taking leads to ruin (if you don't believe that, I can show you my poetic license). Seriously though, you never know when lightning might strike, as Bill Perish once said.

    6. Re:Practical answer by micahraleigh · · Score: 1

      As a system architect, that's something to weigh.

      As an individual human being looking for a framework he can commit to so he has a paycheck to do what he finds meaningful, I wouldn't call it a factor.

    7. Re:Practical answer by Anonymous Coward · · Score: 1

      ...like Java, and its 44 all-different frameworks? What a nightmare. Popularity may be, but is not always, an indicator of success.

      The criteria the OP used at each decision was based on some factors - ease of use, documentation, support, and yes, popularity. Its hard to hire for some unknown toolset. Trust your gut feeling, that first choice is usually the right one.

    8. Re:Practical answer by sjames · · Score: 1

      Do you have a license to sell hair tonic to bald eagles in Omaha Nebraska? :-)

    9. Re:Practical answer by micahraleigh · · Score: 1

      I'll have to check on that. Not looking likely :)

  6. Open Source by Anonymous Coward · · Score: 0

    Avoid vender locking as well as corporate politics.

  7. A problem not only for web apps. by TheManInTheMoon · · Score: 1, Interesting

    This is a major problem for desktop applications too. In the company I work for, we still use C++/MFC for our development. (We only need to support Windows.) I have always felt that C#/.Net was not going to be around for long, and it seems I was right. Silverlight. Ditto. HTML/JavaScript? I can't see that being used for high-performance desktop applications (data acquisition, data display, analysis etc.). I thought Qt might be the way to go. Then Nokia got their grubby little hands on it. Then Microsoft got their grubby little hands on Nokia. Now, bizarely, Qt is "free" again (not controlled by any Evil empire), and I'm starting to feel happier about switching to Qt.

    1. Re:A problem not only for web apps. by Pino+Grigio · · Score: 3, Interesting

      In what respect is C# and .NET "not going to be around for long"? AFAIK, Microsoft's roadmap doesn't include getting rid of them any time soon. They're too important for LOB applications.

    2. Re:A problem not only for web apps. by Anonymous Coward · · Score: 0

      I have always felt that C#/.Net was not going to be around for long, and it seems I was right.

      Care to back that up at all? Because I've seen zero evidence you are correct on that one.

    3. Re:A problem not only for web apps. by Anonymous Coward · · Score: 0

      Dude, you're SERIOUSLY behind the times with your opinion about HTML5/CSS3/Javascript. Welcome to the new millennium... about 13 years late.

      http://www.youtube.com/watch?v=BV32Cs_CMqo&feature=youtu.be
      http://alteredqualia.com/canvasmol/#Ethanol

      Whole C++ engines/frameworks have been ported to javascript with tools like Emscripten. The browser javascript engines in use today are optimized to the point that you're getting near-native performance (http://asmjs.org/spec/latest/)

      JS is running on both the client and the server these days. Honestly, there's very little left that you couldn't do with javascript. You could probably implement an old-school RDBMS in it now-a-days, but who'd want to? RDBMS's themselves are becoming old news.

    4. Re:A problem not only for web apps. by gl4ss · · Score: 1

      but c# is around still.. metro and wp.
      qt ain't bad and is going to be somehow, through some way, usable for a long time.

      I just choose the toolkits based on what I have to use, so qt was used when it had to be.. and avkon when it had to be..

      point being, don't get as a person married to a toolkit.

      --
      world was created 5 seconds before this post as it is.
    5. Re:A problem not only for web apps. by Anonymous Coward · · Score: 0

      I have always felt that C#/.Net was not going to be around for long, and it seems I was right.

      What makes you say that? .NET has been around for over a decade now, and I don't see any sign of it going away any time soon. There's a gradual shift from WinForms to WPF, but hardly an overnight break.

    6. Re:A problem not only for web apps. by interval1066 · · Score: 1

      There was nothing plainly broken about Qt under Nokia, at least from anything I could see, and its still the only truly cross-platform gui framework around for native applications. As for the web, I would bet on RoR, at least for the forseeable fututre. For mobile apps, well, That's going to be interesting. HTML5 seems like the way to go, not even Qt for Android seems usable to me right now. But the OP has a point, its a difficult situation. Best thing to do is pick one and be prepared to maintain it yourself, hopefully its a foss angle.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    7. Re:A problem not only for web apps. by viperidaenz · · Score: 1

      RDBMS's themselves are becoming old news

      I know right! RDBMS is not Web Scale!

    8. Re:A problem not only for web apps. by scorp1us · · Score: 1

      Qt has only gotten freer.
      GPL - Trolltech
      LGPL - Nokia
      LGPL - Digia

      Nokia kind-of had a negative affect in that desktop stagnated why mobile was developed, but now that Digia is in it, desktop will be the focus again.

      You will be happier switching to Qt. I started my professional career as MFC, but quickly found and liked Qt. It's API is so much better. Even if you are onyl targeting desktop, it makes sense. There are a few caveats though. Qt is notoriously bad at servers - web servers. TCP servers are ok. But there doesn't exist a web server in Qt proper. LibQxt (Qt extension library) has one though, that is pretty good.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    9. Re:A problem not only for web apps. by Blaskowicz · · Score: 1

      Nice Unreal tech demo (your first link). But :
      - it's probably running on a 4GHz Intel CPU, we don't all have that.
      (there are little pauses too, relatively short and infrequent)
      - Firefox singletasking. Do anything else in the same browser instance and stuff will get slow and annoying. As an end user you need to juggle with profiles with "firefox -p" and reconfigure stuff from a blank profile. And well I'm trying it with firefox already open, doesn't work, it opens a new window and not a new instance (even with ssh -X localhost. I have to ssh from another machine)
      - How much memory does that use? Launching heavy stuff on a 32bit firefox that already uses over 1GB will fail.
      - Everything is written in C++ and stuff, then compiled in a restricted javascript subset. So, Javascript/HTML/CSS is great! Just don't use any Javascript, HTML or CSS feature.

      In effect it looks like kind of running a program that targets the JVM in your browser, but without needing the Oracle plugin and with different limitations. And you still.. a framework to build your application in.

      That said I'm devil's advocate here, it's impressive stuff. For one thing it'll be useful on Firefox OS devices.

    10. Re:A problem not only for web apps. by RightSaidFred99 · · Score: 1

      I have always felt that C#/.Net was not going to be around for long, and it seems I was right.

      Says the guy who has no idea what a huge chunk of back-end enterprise and e-commerce services are written in.

      C#/.NET are very nearly the perfect language/runtime for enterprise applications and frankly most client/server apps. When I have to work on some Open Source stuff in Python I feel like I'm slumming, badly. I mean what a fucking mess.

    11. Re:A problem not only for web apps. by Bite+The+Pillow · · Score: 1

      Nice job missing the point. For typical desktop use, HTML 5 is not a non-choice. Sure you might need a beefy machine to run unreal, but that is the extreme end. And a demo of what is possible.

      With client side processing libraries like knockoutjs and datatables, there is no limit on what can be done in the browser. With asm.js, even hard core number crunching can be done

      You would not run Seti@home on it, but it is functional.

    12. Re:A problem not only for web apps. by Blaskowicz · · Score: 2

      With Silverlight dead, XNA dead (which was a multimedia and gaming thing), one might be under the impression that XAML is dead too and that WPF will be deprecated and .NET will end up being just server stuff like Java. A gross misconception from someone outside the .NET ecosystem maybe but that's perception.. Also the fact it's mostly only used on Windows desktops and servers.

    13. Re:A problem not only for web apps. by Anonymous Coward · · Score: 0

      It's a standard troll comment. Always thrown out without any back up at all. And back up is never forthcoming.

    14. Re: A problem not only for web apps. by Anonymous Coward · · Score: 0

      .net and windows only development is dead a doornail after M$ decided to lock down windows and demand a 30% tax on the software you sell.
      People have decided that windows is a dying platform after win8, secure boot, TPM2, and lockdown fiascos. As such, they are looking for development strategies that won't lock them into the dying windows and .NET doesn't do that for them.

  8. What is the future of the product? by kawabago · · Score: 3, Interesting

    Choose the framework that supports, or can be extended to support, planned features of the product.

    1. Re:What is the future of the product? by Pino+Grigio · · Score: 1

      Perfect answer. Please mod this guy up ^.

    2. Re:What is the future of the product? by Anonymous Coward · · Score: 0

      perfect answer? This totally disregard the very real, true example of FLEX given in the question. Flex was plenty extensible.

      My answer: the OP is looking for a crystal ball that no ones has. The suggestion to look at job postings is good, but to be fair, a LOT of people got caught by the FLEX thing. I think it's possible to improve your chances of betting right via some of the tricks exposed in the comments, but overall you do have to accept there is no formal way to get this right all the time. OP is asking for "We need a set of fail-safe axioms". Sorry buddy, there is no such thing.

  9. Choice is good. Lock-in is bad. by Anonymous Coward · · Score: 0

    If there's something that will handle swapping out components (like your OpenLaszlo example), then it will by any measure be more resistant to a dying vendor's abandonment. Go for things that provide the most flexibility and choice.

    And on the other side of the coin, if there's a vendor that is going to lock you in to a single One True Way, then they and their products should probably be avoided. A vendor's history is good to know, but not always reliable. Adobe's history would've shown a red flag, as they've dropped popular products at a whim before. A counter-example might be Microsoft's handling of .Net. While they haven't always had a clear roadmap, they've never threatened its overall survival, nor have they locked unapproved, unofficial, or competing libraries out of that ecosystem.

    But in the end, setting an "offical", "supported", or otherwise "blessed" One True Technology For All Time is going to fail. Perhaps you should focus on becoming more flexible yourself, making informed decisions about new technology between projects or at periodic intervals instead of using the wrong tool for a job or hanging on to something long past its prime.

  10. Hindsight is 20/20 by nitzmahone · · Score: 5, Insightful

    Ultimately, it's nearly impossible to predict market forces and corporate decisions. You made a good choice in both cases based on the information available. There were good communities and significant momentum behind both frameworks at the time. You could post-mortem the decisions endlessly and surely find "signs" that you could use when evaluating for next time, but guaranteed there will be different forces in play when (not if) it happens again. Don't beat yourself up about it, and don't let anyone else, either.

  11. Forever by Anonymous Coward · · Score: 0

    Is "being around forever" the most important criterion? The first thing I would do is question the validity of your premise. The second thing I would do is say this is an interesting question regardless.

    Are you sure you should be targeting the web? Maybe you should make the interface component a very thin abstraction, and build all of the intelligence elsewhere, where you're less subject to the whims and vagaries of the most volatile discipline in the IT industry.

  12. Answer: Don't. by Anonymous Coward · · Score: 0

    Just raw dog it. You'll have more control, develop more expertise with the language you are making your application in, and you won't become dependent on a third party for updates/support.

    I feel sorry for people who feel like they can't touch Javascript without jQuery, or feel they need a PHP PEAR extention instead of just writing in the functionality themselves.

  13. Apache Flex by atom1c · · Score: 1

    Apache Flex (available at http://flex.apache.org/) became the natural progression after the proprietary strategy by Adobe failed.

    There is never a way to predict the future... merely expect change and anticipate failure. When new frameworks are available, there are typically code-conversion utilities that demonstrate (or incite an appearance of) maturity. As any new technology is presented, the strength of attendance AND technical prowess of the developer community surrounding the technology is a reliable indicator to its longer-term viability.

    A simple measurement is this: IF the tech should last for 4 years, then how much history and roadmap (and financial backing) is equally present? If there are sufficient history and roadmaps present, then how sound is the technical basis for the framework? Should the basis and direction apply to your problem, then it becomes a viable solution; otherwise, look elsewhere because it doesn't matter whether it sticks for 10 years or 10 months, it still won't solve your problem and thus be a viable option for you or your projects (or career).

  14. It isn't about PHP by Anonymous Coward · · Score: 1

    The OP mentioned Flex as one of the examples. This isn't a PHP issue. This is a technology issue. The idea is to try to guess which technology will still be supported 5-10 years into the future.

    My guess: you can't. I would say that you have a better chance with commonly used open source than you have with most commercial packages. But a better assumption to make may be that you'll simply be changing your technology in 5-10 years, and plan accordingly. I know that makes the business pull their hair, but would you expect to use the same car in 10 years? The same computer? If we can budge for those changes, and accommodate them, perhaps we can have a process to accommodate tech changes.

  15. Qt by BreakBad · · Score: 5, Insightful

    Firstly don't design your software around the view. Consider separation of your data structure from your view (MVC architecture), so the view is easier to replace if necessary.

    With that said, I've done extensive development in Flex, openLaszlo, and Qt (PySide). I really enjoy all three, but lean towards Qt development (PySide/PyQt). I tend to get quality (designed, tested, nerd approved) product out much faster. Furthermore I'm not a big fan of the lore that comes with the flash plugin, or browsers in general. Of course I do deal with some cross platform inconsistencies with Qt.

  16. All roads may run ill... by OmniGeek · · Score: 5, Informative

    Been there, done that, wondered "What were we thinking?"

    In selecting an instrumentation framework for a test system, we went through a careful process of defining what was important, listing the pros and cons of each competing option, ran some tests to see if both would run the instruments we needed, ... Aaaand chose the worse option of the two, as events ultimately showed. The choice was evidence-based, reasonable on the basis of what we knew at the time, and suboptimal. The system worked, but we had to do some ugly stuff to make it work.

    Sometimes you just can't outwit Murphy.

    --

    "My strength is as the strength of ten men, for I am wired to the eyeballs on espresso."
    1. Re:All roads may run ill... by superflippy · · Score: 5, Interesting

      I worked on a project this year to completely rewrite a company's signature application from the ground up. Objectively, you'd think that's something you never, ever want to have to do. But, having done it, I think planning a complete overhaul & rewrite into the product's lifecycle is probably a good idea.

      Since the application was first written about a decade ago many, many features have been added with each upgrade. The scope and customer base have expanded. And programming technology has changed hugely during that time.

      Rewriting the entire application is a massive effort, sure. But to truly modernize and streamline it, to get rid of the legacy cruft and take advantage of new tools that didn't exist 10 years ago, I think it's worth it. I also think it would've been wise to do this sooner than we did (though that wasn't possible in this case for business reasons).

      So maybe when you're choosing a framework, don't worry about whether it'll be the right solution forever. Plan to reevaluate your decision every 3-5 years and change frameworks if something better comes along. And, yes, absolutely adopt the MVC model, because then you don't need to replace every part of your application if one becomes obsolete.

      --
      Your fantasies contain the seeds of important concepts.
    2. Re:All roads may run ill... by Anonymous Coward · · Score: 0

      nice Tolkien reference in the title!

  17. open source is a factor by DdJ · · Score: 1

    While it's not a complete answer, the degree to which a framework is open source is a significant factor.

    If you use a proprietary framework, then it is possible that it won't get updated to support future platforms or that it'll be yanked out from under you entirely.

    If you use an open source framework, it may become unpopular and difficult to support, or may even never get very wide support to begin with (cf. "GNUstep"), but the option to "keep it going" is there. Your future is more firmly in your own hands (or the hands of hired experts). It stops being "we have no practical choice and must stop using this" and instead becomes "the cost of using this is going up".

    Does this mean "always pick open source"? I won't assert that it does. But, when all things are otherwise equal, some risks are certainly lower with open source.

    Another factor is picking a runtime that's got demonstrated portability. You could be running open source all up and down in your own software, but if you were targeting Windows Phone 6 or Blackberry as your target platform, nothing would have saved you. But if you're running in an extremely portable interpreter (potentially including things like the JVM or CLR) that hides the underlying system from you, again, you have options you wouldn't otherwise. (Heck, a lot of Java code can even be portable between the JVM and Davlik.)

    1. Re:open source is a factor by tepples · · Score: 1

      But if you're running in an extremely portable interpreter (potentially including things like the JVM or CLR) that hides the underlying system from you, again, you have options you wouldn't otherwise.

      On the other hand, companies that were tied to the JVM ended up getting blind-sided by Apple's choice not to make the JVM available at all on the iPhone and iPad.

  18. First by Billly+Gates · · Score: 3, Funny

    Pick a single product at a single version that wont work with anything else.

    Second, make sure its old and obsolete already.

    Third tie the whole company processes for everything under the sun even outside the project. Make sure they all use it and save data to its own format. Encrypt it to a password only you know.

    Last note EOL of platform and quit.

    One year before EOL offer your services for $250 as a consultant.

    1. Re:First by angel'o'sphere · · Score: 1

      Well, happens all the time.
      But the risk is that you get sued into oblivion instead. Don't know the proper english term,,but something like "insensible engineering conduct" comes to mind, simoly fraud would be the next.

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

      Eponysterical.

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

      You're talking bout .net, are you?

    4. Re:First by Billly+Gates · · Score: 1

      We cqll them Oracle here. Also intranet venders llooove IE just for this reason. They need to get money each year.

  19. Desktop vs Web by Anonymous Coward · · Score: 0

    The chances of an API or framework surviving X number of years severely diminish when it's something oriented solely or mostly towards the web (or languages used mostly for the web). Past that, I think it's good to generally look for a.) open source b.) functioning versions on multiple platforms c.) answers for common questions even if you already know the answer, as a measure of ability to find help when you have a problem.
     
    Sometimes closed source is the answer, but you have to head into it acknowledging that bugs will likely not be fixed, the framework may be changed capriciously at any time, and all development could stop at any moment regardless of the relative popularity of the framework. I don't work on traditional client/server systems, so this may not be practical, but generally if I'm going to use a private API/framework, I'm going to wrap it with my own framework that is designed closer to what I really want. This costs more development time in the beginning, but has saved me tons of work over the years and the whims of other companies cause them to make seemingly pointless large-scale changes to add a few small bits of functionality.

  20. Two things by Anonymous Coward · · Score: 1

    1) Open Source is always better, because the worst that can happen is it doesn't change. You don't have to worry about some company pulling the plug. Even if there are no more updates, you can always keep using the version you have, and if necessary, you can fix things yourself.

    2) If you design your system right, you should be able to switch with a minimum of fuss. Note that even a minimum might still be quite a bit, but it should at least be plausible. Always write a library to serve as a compatibility layer, so that if you need to move to another framework, you just have to rewrite that layer. This might not always be feasible, but you should make an effort to insulate your code from third-party libraries as much as possible.

  21. Tracking the Scene by joseph.hare · · Score: 1
    Part of picking libraries/frameworks is staying up-to-date on how things change over time in the community for that language/platform. Getting a feel for the trends and how the current trends compare to previous ones will help you make this decision.

    Side Note
    Keeping the important/abstract business and data logic modular should reduce the impact of choosing something that dies later on. In the Java realm (just for example), there are frameworks that do their best to keep your code in Plain Old Java Objects, keeping your code relatively "vendor-clean". Using interfaces judiciously could be your savior later on.

    Related Questions
    • Is it backed by a recognizable/reputable company?
    • Is anything good written in it that you've used?
    • Is there paid support? Not that you'll use it, but are there humans somewhere that will claim responsibility for this product?
  22. You're at the whim of the owner. It's political. by Sarusa · · Score: 0

    Sadly, this isn't a technical question, it's a political question. You've got the following considerations:
          - Is it a clean, well designed framework with good docs and good support?
          - Can I count on the ecosystem it's designed for surviving?
          - What's the owner's record on this?

    Only the first is really technical. In the case of Flex, at the time you couldn't predict that Flash would fall from grace so fast and that Adobe would abandon the Linux version. In the case of Qt, well, there's always a need for embedded device GUIs - but there was a chance that after Nokia bought Trolltech it might have ended up being bought and killed by Microsoft when they bought Nokia. Luckily it was already spun off into Digia.

    I guess you could collapse this into 'Do I trust the owner?' I don't trust Adobe, so I would have skipped Flex, but on the other hand Flash had a good long run. I know going in that any MS framework like XNA will be obsoleted in a couple years, but will be supported for quite a while at least. I trusted Trolltech, but then they got bought by Nokia - that's the sort of thing you can't really predict.

  23. Bake-off by under_score · · Score: 3, Insightful

    I've been faced with this kind of decision a number of times. I always remember: if I'm not filthy stinking rich right now, then I'm probably bad at predicting the future. Any attempt to do so should be taken with a huge dose of scepticism.

    That said, I think that the practical answer is simple: invest a bit of time doing a bake-off of the likely candidates. Try to choose some real high-priority business features, and then get very small teams of 2 or 3 people each to use each of the frameworks to build production-quality functionality for those business features. Don't take more than a week to do this. To use your example, Flex vs. HTML5, you would get two small teams to try to build the _same_ functionality using the two different frameworks.

    Evaluate your results based on how much the teams actually got done. (Remember: production quality, not prototype quality.)

    Since you can't predict the future, I also strongly recommend good Agile Engineering Practices to help to build a system that is not just change-tolerant, but is actually easy to change.

    1. Re:Bake-off by Anonymous Coward · · Score: 0

      But we don't have TIME! classic.

  24. The Only Way by Anonymous Coward · · Score: 0

    The only way to pick a framework that will survive is to NEVER USE ONE!

    -The End

  25. Flex is a Framework but Flash is a Platform by omnichad · · Score: 4, Insightful

    Perhaps he should have chosen the platform correctly. His problem was choosing the wrong platform, not the wrong framework. It doesn't matter which Flash framework he used if Flash as a platform didn't survive. Might as well have chosen ActiveX if he wanted to put himself in a corner.

    1. Re: Flex is a Framework but Flash is a Platform by Anonymous Coward · · Score: 0

      Or .NET With Win8 M$ has pretty much killed it.

  26. Some notes from a seasoned web developer... by Dracolytch · · Score: 5, Insightful

    Truth be told: Tools won't survive. They're notoriously fickle. That said, this is one place where good development practice can really help. Here are some of my guidelines:

    Get off the bleeding edge. Let the youngsters and startups do the bleeding. Learn from them, and use cutting-edge tools after they've matured a bit and have widespread market adoption. Yes, I was late to the jQuery party. No, I don't feel bad about that, as I could have just as easily chosen a failed alternative and been left with something that's damn near impossible to maintain.

    Quality separation of concerns is VITAL for survival. Keep your data store separate from your business logic, and for Knuth's sake, keep your UI the HELL away from everything else, since the UI is the most volatile bit.

    Don't resist your platform: Working on the web? Learn JavaScript. Learn jQuery. Do not use things like SharpKit to turn one platform into another.

    Use things for which the were initially intended, and ignore many of the add-on features. Use databases to store data, not as process engines. Use JavaScript / jQuery for user interface goodness, not your entire application logic.

    APIs / web services / interfaces are your friend... Not just to use, but for you to enforce separation and flexibility.

    --
    This sig has been enciphered with a one-time pad. It could say almost anything.
    1. Re:Some notes from a seasoned web developer... by Anonymous Coward · · Score: 0

      This is good advise. The best predictor of future behavior is past behavior. Pick something that already is widely used, it will take longer to vanish, and your developer pool will be more experienced.

      Flash on Linux of course is the exception to this guideline, but on hindsight, an indicator might have been that Flash on Linux was a port and when it's time to trim the fat, you don't trim your active development platform (Windows).

    2. Re:Some notes from a seasoned web developer... by scorp1us · · Score: 0

      I am in pretty strong disagreement with your advice, bleeding edge advice aside...
      MVC separation is ideal but expensive. Either in development time or performance. Today's approach would to be provide a REST webservice as the controller database as the model and a JSON client as the UI

      Resist the platform. These change. Do not bother to learn JS beyond he basics. Do not learn jQuery. JQuery is no better than raw JS. I have compared it a number of times, LOC are roughly the same, it's just syntactic sugar. JavaScript, CSS, HTML all change. These changes should not impact you. Your application does _something_ the /what/ is important, not so much the /how/. Look at AJAX - it (XML) was the end-all be-all until JSON came around in a relatively short amount of time. And We're on the cusp of WebSockets. The application developer should not care about the state of the web development. Web development isn't top down, a number of very different technologies have been assembled and I refuse to believe that this is the best application development system we can come up with. 5 very different techs - HTML, JS, CSS, HTTP and MIME are all in constant development. (MIME is old, but what about MIME+xop or MIME+mtom?)

      A good platform will isolate you from all that and allow you to work on your application. That's why I prefer Wt (http://webtoolkit.eu) which will isolate you from all that nonsense.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    3. Re:Some notes from a seasoned web developer... by angel'o'sphere · · Score: 0

      While your post makes sense in some way, it makes nomsense in others, e.g. "Don't resist the platform" Sorry, I program in JavaScript regulary. Doing simple stuff in the environment of Java based tools. However I *never* will learn JavaScript properly and I will *never* use it to program anything "cross platform" inside of a web browser.
      For that we have GWT etc.

      The rest of your post mentioning "tools" etc. makes pretty clear that you neither know what a tool is (hint: make is a tool, or awk ) nor what a framework is (hint: jQuery is no framework)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Some notes from a seasoned web developer... by multimediavt · · Score: 1

      Truth be told: Tools won't survive. They're notoriously fickle. That said, this is one place where good development practice can really help. Here are some of my guidelines:

      Get off the bleeding edge. Let the youngsters and startups do the bleeding. Learn from them, and use cutting-edge tools after they've matured a bit and have widespread market adoption. Yes, I was late to the jQuery party. No, I don't feel bad about that, as I could have just as easily chosen a failed alternative and been left with something that's damn near impossible to maintain.

      Quality separation of concerns is VITAL for survival. Keep your data store separate from your business logic, and for Knuth's sake, keep your UI the HELL away from everything else, since the UI is the most volatile bit.

      Don't resist your platform: Working on the web? Learn JavaScript. Learn jQuery. Do not use things like SharpKit to turn one platform into another.

      Use things for which the were initially intended, and ignore many of the add-on features. Use databases to store data, not as process engines. Use JavaScript / jQuery for user interface goodness, not your entire application logic.

      APIs / web services / interfaces are your friend... Not just to use, but for you to enforce separation and flexibility.

      I will second everything you said and add some more web dev wisdom. I am assuming that the OP is developing middle-ware or other web apps (social, ecommerce, etc). Sound development practices should mitigate the impact of changes in component architectures, from data stores to UI you need to compartmentalize as much as possible and use each underlying tech as they were intended.

      I have developed dozens of web apps from FileMaker Pro (mid to late 1990s) to PHP/MySQL today; with a few things in between. If you know this is more than a one-off project or you are just really a good dev you will want to make sure that the product is as serviceable and extensible as possible, even if you're doing C# or .NET stuff, or Tomcat, or Ruby, things that have been around a while and evolved. Just because it's good today doesn't mean it will still be good five to ten years from now.

      You will always have things like deprecation to deal with no matter what. You should be dealing with these framework disappearances in a similar way to you dealing with legacy functions that are no longer supported. As the person making the decisions you should also be doing annual evals and almost constant research into emerging frameworks that may be useful or have more longevity to what you are currently using. In the web world there are few instances where you can rest on your laurels and stick with one framework for long. Things change WAY too fast and you need to account for that going in. The desktop world tends to change at a slower pace to the web and that seems why those frameworks tend to stick around longer. The web is much more buzzword, tech-o-the-day oriented. Keep up or get left behind! Basically, use what works today, but keep an eye on tomorrow with your code structure knowing that in a year or two you may have to retool.

    5. Re:Some notes from a seasoned web developer... by Anonymous Coward · · Score: 0

      I agree with pretty much everything said here. Although I like staying with bleeding edge - I just make sure I have that strong separation of concerns to insulate me from the fallout.

    6. Re:Some notes from a seasoned web developer... by DanielOom · · Score: 1

      The viability of a framework or language is proportional to the time it has been in use already multiplied by the number of people using it.

      Support by a large and profitable company helps, but the software may have to be recreated when the original vendor fails. To minimise risk, always select a standard for which three or more independent implementations exist.

      A product does not have to be perfect to succeed, just reasonably good. If Unix is still successful after more than fourty years, it's because of its flexibilty allows much redesign.

    7. Re:Some notes from a seasoned web developer... by stenvar · · Score: 1

      All those are good recommendations... except when they are not. Companies do programming not for its own sake, but to make a profit. And making a profit, sadly, often doesn't involve delivering the best possible product.

      For example, if you don't get paid for longevity, providing it is going to cost you. For example, if you bid for some government contract but aren't required to do the long term maintenance, you may well choose tools that let you get the job done quickly and cheaply, but for which you know that long term maintenance is hell. Furthermore, if you don't do that, your competitors are.

  27. Toss of a coin by c0d3g33k · · Score: 1

    Well, not seriously. But short of precognition, a coin toss is as good a criterion as any as far as predicting the future longevity of a framework goes. It's one of the things that should be considered when choosing a framework, but it shouldn't be the top consideration. Give due diligence to the other important factors relevant to framework choice (age/maturity, degree of completeness, level of adoption, suitability to task, number of projects/products using it, nature and size of community, quality of development team, past history of development team members if known, quality of code if available, ...). If you've chosen well, some degree of longevity will come naturally because good frameworks tend to keep getting used (and thus supported). Beyond that, the only guarantee of longevity is your own willingness to support it yourself if that's at all an option.

    It sounds like you've learned at least one important lesson, which is that backing by a giant corporation is no guarantee of anything. Except maybe that if they abandon a product or framework, there's not much you can do about it due to intellectual property considerations. It's been said many times before, but at least with free software, you can maintain the source yourself, build a community, or pay someone to make the changes you need to maintain your application. (Note that this isn't meant to say anything about the quality of the framework - commercially backed frameworks often represent the best of breed in that category, sometimes not. But if abandoned, that's where the story ends.)

  28. Thunderdome! by tippen · · Score: 1

    Two frameworks enter, one framework leaves

  29. Re:You were (and still are) an idiot. by calzones · · Score: 1

    Inflammatory though this comment is, I actually have to agree.

    Adobe Flex was a steaming pile of crap.

    Here's a clue: DON'T pick solutions just because they make your life as a developer easier if it comes at the expense of the user.

    --
    Asking people to think is like asking them to buy you a new car
  30. Twitter Bootstrap by rdsingh · · Score: 1

    Have you considered twitter bootstrap? http://getbootstrap.com/

  31. Firework? by danomac · · Score: 2

    Must be the time of year, I read the title as Fireworks instead of Frameworks, and my first impression was "don't light it".

  32. Use libraries, not frameworks by purpledinoz · · Score: 1

    I'm not saying all frameworks are bad... There are a bunch of frameworks out there that will definitely be there for a while. But I don't like to be constrained to a framework. At the beginning, things might seem like it's going well and development seems to be going so fast, until there's a requirement that your framework doesn't support. Then you spend the rest of your life figuring out how to work around the framework. I prefer to develop as much as I can independent of a framework (ie - building libraries), using whatever libraries necessary to get the job done fast, then use the code in the framework. If you have to change the framework, then a lot of your code is still usable without any framework dependencies.

    1. Re:Use libraries, not frameworks by BitZtream · · Score: 1

      So what is your magical definition of framework versus library? Last I checked, they were the former was just a buzzword for the latter, or perhaps a collection of libraries.

      From a practical perspective, saying they are different illustrates how much you don't understand what either is.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    2. Re:Use libraries, not frameworks by MadAndy · · Score: 1

      Frameworks tend to define the structure of your application, and if you attempt to use two different frameworks together in the same project they'll generally not play nicely together. The problem with frameworks is that when the one you're using is out of date it's hard to switch to a new one because they'll conflict.

      Libraries attempt to enhance the power of the underlying platform, but don't impose as much structure on your project. As a result you can mix them or introduce them to existing projects. For example, I was able to introduce jQuery to clean up and enhance an existing old-style web site, without significantly changing its architecture.

      I was in the same situation as the article poster a few years ago. I had to create a new interactive website, and had a tough choice to make: Flash or HTML? Flash was still strong, and the only website that really demonstrated what I needed could be done was Google Maps. But I wasn't keen on the vendor lock-in and the nature of the Flash plug in. I went with HTML and the then-immature jQuery. I knew the web wasn't going away soon, and jquery could be replaced if necessary. Fortunately I was lucky there and the choice has served me very well.

      If it's not your core product, you can use a framework (and be prepared to live with the consequences). But if this IS your core product, so you need to invest in creating and maintaining your own framework. Your business depends on it so you need to be able to control it.

  33. Clearly the OP has only himself to blame by ilsaloving · · Score: 0

    Clearly, it's all the original posters fault. I mean, if only he had taken advantage of his ability to see into the future, then he could have avoided these problems.

    But seriously, this is life. S**t happens. The only way to avoid the risk of choosing a failing framework, is to not use a framework at all. But writing everything from scratch can be complete overkill. It really depends on the project.

    Heck, even behemoths like Microsoft have been known to put together big fancy frameworks/platforms, only to abandon them later.

    Really, the only thing you can do is to follow best practise coding principles, such as making sure your code is as loosely coupled as possible. That way if you do have to make a paradigm shift, you will minimize the amount of effort required to recode.

    Personally, when I look at frameworks I look at ones that have *already* stood the test of time. I look around and see all these people going crazy over every latest and greatest thing and I just shake my head. For some reason when it comes to technology, people just assume that new is better, and old is crap. And then you see companies like twitter abandoning their precious ruby on rails platform because the scalability was so bad. Or the London Stock Exchange having to abandon .Net.

    Sometimes it's better to stay behind the curve and use stuff that has already proven itself to be stable and long term.

    1. Re:Clearly the OP has only himself to blame by RightSaidFred99 · · Score: 1

      The LSE didn't abandon .NET, they abandoned the shitty implementation they were given that happened to be on .NET.

      .NET will scale _massively_ if you do it right. You could write a trading platform in super-modern C++ or OCaml or whatever the trendy kids are using these days and it could still perform like shit if it's not designed correctly.

    2. Re:Clearly the OP has only himself to blame by ilsaloving · · Score: 0

      Oh? I did a quick google search and all I could find was that they abandoned the entire .NET/Windows platform complete and switched to linux.

      eg: http://www.theinquirer.net/inquirer/news/1588339/london-stock-exchange-switches-linux

      Can you point me to a link saying they are still using .NET?

    3. Re:Clearly the OP has only himself to blame by RightSaidFred99 · · Score: 1

      You don't abandon a runtime environment, you abandon a product. The product they abandoned happened to be developed on .NET and the new one on Linux (why are we comparing .NET with Linux, they are not the same type of thing, btw).

      Point is that platform choices are vastly subordinate to architecture, design, and implementation.

  34. Make sure everyone understands by EMG+at+MU · · Score: 1

    Disclose that you have no control over the frameworks. Make sure all the stakeholders understand that the world of UI frameworks is always changing and that you will not predict what the market will look like in 5 years. Then make your best guess.

  35. Tools won't survive. by Anonymous Coward · · Score: 0

    "Not so," said Emacs.

  36. I am in your situation and here is what I did by scorp1us · · Score: 1

    Qt for local app development.
    Wt for web app development. (http://webtoolkit.eu - C++/ Java/ Jython) It supports Twitter's Bootstrap theme as well.

    The commonality between the two past the two letter names is a boon for your developers. True, Wt (C++) uses boost, Qt does not, but your C++ devs will get over it, as they are very close. You can however use Java or Jython with Wt. They will like it because Wt is a API copy of Qt, but for the web. I can actually share my abstract item model code between the two.

    One reason to choose either toolkit is the amount of isolation and independence it gives you from the platforms. As CSS. HTML, and JS changes, your application code in Wt does not, the Wt library picks up the slack and automatically takes advantage of new features. Both only need a C++ compiler.Anyone's C++ compiler.

    Keeping your application code, to your application, and not to a framework really helps. Even if you move, having it in OOP makes porting it later easier.

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  37. How To: (Best Guess) by snadrus · · Score: 4, Interesting

    Step 1: Ensure your whole toolchain (libraries, tech, etc) is either open or too commercially essential/purchasable to obsolete (Win32 libs).
        Proof: There are old PHP code that hasn't been touched in 10 years but can be improved easily.
        More proof: When the incompatible Python 3 came out, years went by where the other environment was maintained, and now for most code you run the converter and you're set. No commercial interest would have taken that much care.

    Step 2: What is BIG? _Size-big_ On most resumes for the field big.
        Proof: Oracle's Java interpreter is so insecure that you can't use it in browsers anymore, yet it persists everywhere it can because the engineers know it.

    Step 3: Don't put a lot of dependent code on-top of it
        Frameworks don't last, but neither does the product you're creating. If you don't have much code atop the framework, moving to another will be easy. If it will take a lot of code to make your tech work on a framework, it's better to fail fast. Keep your code atop the framework modular so you know where your integration points are.

    Step 4: Be the integrator.
        If you rely on many small libraries (who doesn't), be sure you are-or-run the glue and not their compatibility. It's more code, but allows you to entirely replace a library that doesn't live up to your changing needs.

    Step 5: Model Linux's ecosystem: standards win since they're multiply-implemented.
        As the most research-able long-lived full system, you see lots of libraries, fickle front-ends, separate long-running processes (daemons) to manage long-running and security-intensive operations. Large programs are broken into smaller programs which are each audit-able, replaceable, reusable, easier to divide labor, etc. Programs with the longest life depends on standard wrappers like the C libraries (which many libraries implement identically-enough) and not on the fickle kernel /proc sources of the C API wrappers source from.

    --
    Science & open-source build trust from peer review. Learn systems you can trust.
    1. Re:How To: (Best Guess) by angel'o'sphere · · Score: 1

      Step 5:
      Frameworks usually have no standards.
      They are single entities like Qt or Wt or zApp or even MFC.

      The C library etc. is a library hence the name, and not a FRAMEWORK.

      Your Step 3 makes pretty clear, you don't know what a framework is.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:How To: (Best Guess) by radtea · · Score: 4, Interesting

      Step 5: Model Linux's ecosystem: standards win since they're multiply-implemented.

      I'm surprised there hasn't been more mention of standards here, although I've had variable success with standards myself, and good success with open non-standard systems.

      Good chioces: Qt, VTK, OpenGL has been extremely long-lived.

      Mediocre choices: XML, wx (I moved to wx from Qt when TrollTech went insane over licensing, but have been slowly migrating back in recent years as wx support has decayed on platforms I'm interested in.)

      Bad choices: XSLT, VRML

      I still use XSLT for some stuff, but VRML was a mistake. Apparently you should stay away from four-letter-acronyms.

      Summary: although I prefer standards over non-standards, open vs closed is the fundamental divider between good vs bad bets. Not everything open will survive, but nothing closed will.

      --
      Blasphemy is a human right. Blasphemophobia kills.
  38. My Criteria by cowdung · · Score: 4, Insightful

    What I've found works well (90% of the time) is:

    1. Look to see if people are hiring for that technology. If you check dice.com or something similar you'll see if companies are invested in it.
    2. Are 3rd parties building "plugins" or "extensions" for it?
    3. Does it make sense to you? Does it adapt well to your needs? Is it well designed?

    While many frameworks may be cool or superior technologically, the sad thing about software is that popularity DOES matter.

    1. Re:My Criteria by Anonymous Coward · · Score: 0

      Popularity only matters when you're trying to feed yourself that way. If you write code for fun, then you don't have to live with that limitation. And that's where the innovation comes from.

  39. Depends by mugnyte · · Score: 1

    Frameworks, Platforms, Languages.... which to choose for "longevity" isn't the right question.
      Ask First: How long is the product's lifetime?
      Will the tools used be supportable over that period? Most business applications don't live more than 10 years. Mostly because the data requirements completely change over that time.

    Regardless of tools, if you really want to avoid the future "big rewrite" make sure the system is partitioned - all the way through the persistence/data layers. You should be able to someday migrate it in pieces.

  40. Flex is not dead yet by ByteSlicer · · Score: 1

    From the Apache Flex webpage:
    What happens to my projects if Adobe Discontinues the Flash Player?
    It is true that current Flex projects are tied to either the Adobe Flash Player or Adobe AIR. We have been making great strides to compile projects to native JavaScript, therefore bypassing the Flash Player in the browser. Adobe has made a commitment to support the Flash Player and our current runtime for at least 5 years from the time they donated the project to Apache.
    --
    See for example the FlexJS project, that intends to run Flash directly on a JavaScript VM instead of the Flash Player VM.

  41. Qooxdoo by jcdr · · Score: 1

    For new embedded design I now use Qooxdoo, so the application work with any computers, tablets, or smartphone with any OS as long as it has a decent web browser. The usual setup is to use lighttpd web server for the statics Qooxdoo files and a FastCGI service for the JSON command parser. This allow remote operations and since the Qooxdoo part is static, this lower the load of the system to the minimum.

    Best of all, the user don't have to install anything to use the application: It just have to enter the URL of the system.

  42. Adopt, don't Use by Anonymous Coward · · Score: 0

    The beauty of Open Source is -- it's Open Source.

    Never choose a piece of software over a promise of what they say they will someday do. It's a false promise that can be derailed on their schedule, not yours.

    If you choose an open source project, then embrace it. That means that you can track it as it continues development, and gets bug fixes, but if it "suddenly stops", then -- what's the problem? It's always doing what you asked it to do, now what it was promised to do. You have the source code, and you can maintain your own fork.

    How long do you maintain the fork? Forever? No, you maintain it until you're sick of maintaining it. Until it's impossible to make it do what you want to do, then you gradually port away, just like everyone else does when they tire of software.

    If you go status quo, the biggest risk is that some change in the underlying dev platform make be incompatible with your source base, but that's rare. Even then it may be practical to port to the new development kit, could be some simple syntax changes or build options.

    But here's the key point. Something folks in your position seem to miss.

    Whenever you choose something, No matter what the glossy lit says, no matter how bright the smile on the sales person, no matter how glowing the revues on the inter webs and blogs, YOU are RESPONSIBLE for ALL OF IT. Not just the features you use, but the whole kit. All that you allow in to your system, you're on the hook for. If you take that responsibility seriously, then you can see the advantage having access to the source code, having the ability to create a reliable build, and having the skill set to go inside and figure out how things work, and possibly even change it.

    Up front, you can rely on the vendor, or the community, or Frank, the guy who wrote it on GitHub. But when they're gone, when it's 3am and the phone is ringing, it's YOUR phone, not theirs that's clattering away. So, IMHO, better to be on top of it all as much as possible, have as much access as you can get to chart your own destiny that rely on others.

  43. Not a good track record there.. by FryingLizard · · Score: 1

    You picked Flex _and_ PHP as winners? Damn dude, don't ever go to Vegas.

    --
    [FrLz]
  44. Write it by Murdoch5 · · Score: 1

    The only way to guarantee quality, and longevity is to write your own frameworks. Well excellent third party frameworks exist you just can't trust they will be around for ever, if you're serious and you want the best product possible, you have to write it.

  45. LOL .... by Anonymous Coward · · Score: 0

    I chose Flex mainly for its maturity, wealth of documentation, commercial backing, and the superior abilities of Flash

    Then I would suggest you're not the right guy to be selecting frameworks at your company.

    Repeat after me ... Flash is shit, and those who choose to use it are morons.

  46. Large, old, widely-adopted open source projects. by Lendrick · · Score: 4, Insightful

    There wasn't room in the subject, but I should add "with stable APIs."

    Things like Qt, GTK, OpenJDK, Apache, and PHP, to name a few. These are all so widely used that even if they were abandoned by their current maintainers, someone else would pick them up and at least patch them so that they continue to work. This someone wouldn't have to be you. And yes, I know everyone hates PHP, but the fact is, a lot of the old cruft is still there to ensure backwards compatibility, and much of it has been superseded by cleaner OO interfaces. Much like with Java, they're making a lot of effort to make sure that your old code will continue to work with at most minimal changes, and if you're looking for something that will work for you in the long term, this is really helpful.

    Failing that, your best best bet are expensive proprietary frameworks that will contractually guarantee some term that the framework will be supported.

    After that, big open source projects with less stable APIs (I'm looking at you, Drupal). Drupal is big at the moment, but their nasty habit of breaking everything every two or three years is likely to lead to a fractured community and eventual abandonment of the software unless they can get their APIs stabilized enough that modules will continue to work from release to release. It looks like maybe they're trying to do that, but the pattern thus far is that they haven't. Regardless, if you see a framework with a constantly changing API, you're probably taking more of a risk than you would be if you used a mature product, even if the userbase is large. On the other hand, a large userbase does provide a certain amount of protection against obsolescence. I'm not saying that Drupal is a particularly unsafe framework (I'm quite fond of it myself), just that their development process might lead to intractable problems down the line. Note that GTK and Qt make occasional major API changes, but these are infrequent, and there are so many users of the older versions that linux distros tend to keep the old code around just to make sure things will work.

    After that, probably small open source projects. At least if those are abandoned you'll have access to the code. But before using an open source platform with a small userbase, make sure that you have the time and technical expertise to maintain it yourself if it's abandoned. Most likely, you don't. Also, large, complex open source projects with a small number of users tend (in my experience; I'm sure there are exceptions) to be buggy and poorly documented.

    The worst offenders are free or cheap proprietary frameworks that don't come with any sort of guarantee, like Flex. In those cases, you're at the mercy of the whims of a commercial interest, and when the product you depend on becomes unprofitable, you're cut off with absolutely no recourse.

  47. one possible indicator by DriveDog · · Score: 3, Informative

    It may be difficult to tell, but I would ALWAYS choose a platform that had capable independent fans over one backed by an enormous corporation. Single entities abandon things seemingly on whims (OK, well actually, expectations of profit, sometimes by folks who can't predict there'll be wind accompanying a hurricane). But if there's a viable community of folks who aren't just fans, but are capable of providing some kind of momentum and support, then the platform will probably survive until something unequivocally better comes along (at which point you would probably want to switch anyhow).

    1. Re:one possible indicator by dkf · · Score: 1

      It may be difficult to tell, but I would ALWAYS choose a platform that had capable independent fans over one backed by an enormous corporation. Single entities abandon things seemingly on whims (OK, well actually, expectations of profit, sometimes by folks who can't predict there'll be wind accompanying a hurricane). But if there's a viable community of folks who aren't just fans, but are capable of providing some kind of momentum and support, then the platform will probably survive until something unequivocally better comes along (at which point you would probably want to switch anyhow).

      Another way to look at it is to think in terms of looking at how many small businesses are involved in the community associated with a platform. Big organisations can move between platforms at the whim of a manager, but small businesses tend to be highly committed to keeping what they're using going; the cost of moving to another platform can be prohibitive for them. What's more, they'll usually be able to tell you about tricks you'd have never thought about: small businessmen are fairly inclined to share in areas outside their main business as they're often hard-pressed to take on more work.

      Sharing things back with them encourages them even more; they tend to quite quickly get the idea of a gift economy. Or at least that's true in my experience. It's larger companies that you shouldn't trust so much, as they tend to want to grow into new areas and care less about getting anything in return other than money-by-year-end (or quarter-end). Such an approach is fundamentally scummier.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  48. Framework Fetishism by Anonymous Coward · · Score: 0

    I'm witnessing this process at $DAYJOB.

    Not UI -- more a back-end thing. A data unification of sorts, for all kind of enterprise data, indexing, yadda yadda.

    Instead of thinking about structures, picking up current usage patterns, doing some data architecture, cobbling up cheap prototypes to validate assumptions, folks are all excited thumbing through the Apache Software Foundation catalog as if it were Ikea. Elastic this, Kafka that, Storm there.

    Many colorful Lego bricks instead of architecture. Sigh.

    My take: keep your designs as abstracted away from the framework as possible. The rest will come.

  49. General rules by comrade1 · · Score: 1

    God-tier: Open-source with corporate backing (many apache.org projects, maybe some google frameworks but they're usually not as well designed) Good-tier: Open-source without corporate backing but with an active developer community Ok-tier: Open-source with small community Shit-tier: Closed-source, especially if it's coming from a company.

  50. You deserve problems by Anonymous Coward · · Score: 0

    If you are going to use a web browser as a user interface then you deserve every single problem and I hope you choose wrong every single time.

    1. Re:You deserve problems by tepples · · Score: 1

      But how is a web application worse than having to write 12 native apps for 12 different platforms and beg the platform's owner for approval on 8 of them?

  51. My thoughts on this... by Anonymous Coward · · Score: 0

    Choose the best tool for the job and be prepared to support it. Always create a PoC in a few frameworks first when evaluating a new target platform and you should get a feel for the way to go. Unfortunately you can't future-proof something against loss of support, but consider whether it should be brought up to date with a new framework if this happens (echoing previous comments about strict UI separation).

    I have been a UI developer for 15 years and have a lot of languages and frameworks under my belt as there has never been a 'do it all' solution which gives the user a perfectly native experience.
    Across the products we support/develop, I still come back to the following on a day-to-day basis and would consider new projects using these, too.

    Cocoa - Apple desktop
    Qt/Gtk - Linux desktop/embedded
    C# .Net - Windows desktop/Windows web apps
    CI/Node.js - Linux web apps
    KnockoutJS/JQuery - Light web client functionality
    Dojo - Heavy web client functionality (single page apps and embedded webkit)

    I've never experienced mobile phone development, but I get the impression it gets even harder to choose the 'right' platform.
    I found this report interesting/educational if a little old now:

    http://www.visionmobile.com/product/cross-platform-developer-tools-2012/

    -Rob
     

  52. Open your eyes? by BitZtream · · Score: 1

    Look at the frameworks that have already been around for a while, thats the first place to start.

    Don't chase bleeding edge technology unless you want to continue chasing it and replacing old frameworks that were shitty from the start but you were too busy chasing the bleeding edge to notice.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  53. Flex was dead in the water years ago by Anonymous Coward · · Score: 0

    A couple of years back my investigation of RIA frameworks lead me to eventually push for Adobe Flex [adobe.com] as the UI framework of choice for our future web development. This was long before anyone would have guessed that Adobe would abandon the Linux version of Flash. I chose Flex mainly for its maturity, wealth of documentation, commercial backing, and the superior abilities of Flash, at a time when HTML 5 was still in the early stages of planning.

    If this was the analysis you did a couple of years ago, you need to re-think your analysis methodology. There is nothing in Flex that justifies using it over HTML + JavaScript + AJAX requests.

    Flex has not held a competitive advantage since around 2007-2008. (Prior to that, the only real competitive advantage for it was pixel-precise positioning of elements cross-browser, which was troublesome for JavaScript + CSS at the time. I happened to develop software that required that specific use case.) Once browser compatibility improved, there was nothing stopping us from ditching Flex.

    1. Re: Flex was dead in the water years ago by waslap · · Score: 1

      Flex/flash allows persistent sockets obviating polling which architecturally made a world's difference back then and to a certain degree still does for a certain class of applications.

  54. Pick the winning horse by segmond · · Score: 1

    For PHP pick Symfony and just Symfony. For Python Django, For Ruby Rails. It's that simple. Symfony is beautiful PHP code, it's huge and has a much higher learning curve, but it's not going anywhere. Hell, Laravel uses some Symfony components.

    --
    ------ Curiosity killed the cat. {satisfaction brought it back | it didn't die ignorant | lack of it is killing mankind
  55. How frameworks survive by scorp1us · · Score: 1

    No one wants to invest in a burning platform, (Aside from Elop, who went from an already hot frying pan in to a cold skillet that was just put on the hot stove.)

    Frameworks fail because of:
    Political pressure - blame the consortiums and trade groups (HTML5, anybody?)
    Commercial pressure - blame the manufactures trying to shuffle you from a free offering into a vertical
    Declining development interest - something got invented that was better, or a sole supporting company cut funds
    Declining support interest - can;t get support, means no new users to carry the torch

    Frame works work when:
    Open access - ideally to the source, but free to try. if it isn't free to try, then it can't compete without having customers locked in. Good toolkits are free because they can compete against other free and non-free options.
    Open Governance - ideally not just by corporations, but by the non-corporate users.
    Open Access and Open governance combined to accept patches for bugs/features
    Effective - Not over designed or under designed. Over-designed forces you into a vertical, under-designed doesn't get the job done
    Good support options - open bug tracker, mailing list and IRC channel at a minimum.and optional paid support. If your toolkit doesn't have an IRC channel it's not big enough to bet the farm on)

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  56. Design for multiple languages by tepples · · Score: 3, Interesting

    The best you can do is design so that moving to something else is possible instead of painful.

    How is this possible when widely used frameworks are designed for one language and one language only? For example, the web runs on JavaScript, but if I remember correctly, Flex used ActionScript and Silverlight used C#. I can see rewriting the user interface when switching frameworks, but rewriting the application logic in a different language for each framework can get very tedious and introduce plenty of bugs.

    1. Re:Design for multiple languages by lgw · · Score: 3, Insightful

      Accept that the price of using a framework is probably re-writing everything every few years. Don't lie to yourself about it. This is the fundamental problem with frameworks: even if they don't go away, mature projects often hit their limits.

      I don't think that any framework is a good plan for a well-funded successful project - for the few projects that make it there. So I'd say: take the framework that gets V1.0 done quick and easy. Probably the framework will die, but that's OK because probably your project will die first. If the project is one of the very few that really takes off and is a big deal 2-3 years later, then you'll have the resources to do it right.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    2. Re:Design for multiple languages by Billly+Gates · · Score: 1

      Where I camefrom JScript, not javascript was the defecto standard for 95% of all users in 2003. Its what everyone else is using and had the most features and least bugs.

      Hint hint back then there was no firefox. Netscape had too many quirks compared to the more standards compliant IE 6.

      You are looking at this with 2013 glasses.

    3. Re:Design for multiple languages by tepples · · Score: 1

      Hint hint back then there was no firefox. Netscape had too many quirks compared to the more standards compliant IE 6.

      Yes, IE 6 was better than Netscape 4.7. But I remember having used Mozilla Application Suite as my primary browser since my junior year of college, which would put it sometime around the 0.9 series (and around the release of IE 6). I think I still have some of the minimal test cases that I wrote for bugzilla.mozilla.org. But I admit that my use pattern was atypical.

      You are looking at this with 2013 glasses.

      So as of 2013, how should a web application that needs WebGL, IndexedDB, and/or Stream API inform the user when Modernizr returns a bunch of falses? Showing "Best viewed with Firefox or Chrome" when a feature is detected as missing in IE (Windows), IE (Windows Phone), Safari (OS X), Safari (iOS), or Android Browser (Android 2.x) would bring us back to the "Best viewed with" days of 1999, wouldn't it?

    4. Re:Design for multiple languages by Billly+Gates · · Score: 1

      Hint hint back then there was no firefox. Netscape had too many quirks compared to the more standards compliant IE 6.

      Yes, IE 6 was better than Netscape 4.7. But I remember having used Mozilla Application Suite as my primary browser since my junior year of college, which would put it sometime around the 0.9 series (and around the release of IE 6). I think I still have some of the minimal test cases that I wrote for bugzilla.mozilla.org. But I admit that my use pattern was atypical.

      You are looking at this with 2013 glasses.

      So as of 2013, how should a web application that needs WebGL, IndexedDB, and/or Stream API inform the user when Modernizr returns a bunch of falses? Showing "Best viewed with Firefox or Chrome" when a feature is detected as missing in IE (Windows), IE (Windows Phone), Safari (OS X), Safari (iOS), or Android Browser (Android 2.x) would bring us back to the "Best viewed with" days of 1999, wouldn't it?

      Webkit is the new IE 6 in many ways as well as html5test.com which test features not implemented with w3c.

      We have the opposite problem this decade. Progress too slow and corps and grannies resisting change and demanding IE 8 support or they will use a competitior who will. Even if you try to use w3c you can not tell a client you plan to say fuck off to 14% of your customers who do not like Metro and decided to stick with XP and the blue E which is what hte internet hides under.

      I pray I am wrong but IE 8 is here to stay more than IE 6 because it is not as buggy and businesses dependent on crappy intranet apps were not prevaliant in 2003 like in 2013. These intranet companies on purpose make proprietary versions that do not work between versions so customers keep coming back. Accountants at these companies will want IE 8 until 2021. Webmasters will be threatened with job termination if they do anything from the previous decade. IE 8 is more standards compliant than IE 6 but is quite aged and more intranet apps than ever damn before are dependent on just that version.

    5. Re:Design for multiple languages by OdinOdin_ · · Score: 1

      Why IE8 ? Win7 Pro is the new XP, so surely IE10 will be the new target ?

  57. Whither Chatroulette? by tepples · · Score: 1

    How should cross-platform web-based video chat applications have been made without Flash Player? Support for getUserMedia isn't even 50% yet.

  58. Not on closed source devices by tepples · · Score: 2

    If a company or any organisation which develops an open source framework ditches or otherwise nukes it, anybody else with an interest and the capacity to do so can take over or fork it.

    Nobody will be able to use this fork if the majority of revenue comes from people who own closed-source devices whose manufacturers refuse to implement the framework. This has become true of the iPhone and iPad, for example, whose Safari web browser can't run Flex despite the existence of Gnash and can't run Java applets despite the existence of OpenJDK.

    1. Re:Not on closed source devices by Anonymous Coward · · Score: 0

      iOS but it can run for example, FreePascal programs based on the LCL libraries once they get compiled to ARM.
      iOS can also run Java that has automatically been converted into C#. (From Bytecode!)

  59. As a contractor by tepples · · Score: 1

    In my experience writing your own framework for longevity purposes only makes sense if a) you work for yourself or it's hobby code or b) you get a written guarantee from your employer that you can open-source it or own it outright (latter is exceedingly unlikely)

    You can accomplish b) by adding a dash of a). Develop the framework in your home office as a contractor and license it to your employer. Or are there laws keeping someone from being a 1099 contractor and a W-2 employee (or foreign counterparts) at once?

    1. Re:As a contractor by rsborg · · Score: 1

      In my experience writing your own framework for longevity purposes only makes sense if a) you work for yourself or it's hobby code or b) you get a written guarantee from your employer that you can open-source it or own it outright (latter is exceedingly unlikely)

      You can accomplish b) by adding a dash of a). Develop the framework in your home office as a contractor and license it to your employer. Or are there laws keeping someone from being a 1099 contractor and a W-2 employee (or foreign counterparts) at once?

      If it's not illegal, it's generally not practiced/advised. I'm sure it's something that'd be red-flagged on financial audits. In this case, it'd be best to just stay 1099 or corporate supplier, and not actually be employed by your customer, so basically still option (a).

      However, these days it's much more preferable to not go 1099 (you can't do that for more than 1 year at a time), so consequently major corps hiring contractors generally require you incorporate or work for one of their existing contracting corps (as a sub contractor). In the latter example, all the same IP contractual issues will likely still apply unless that happens to also be a small contracting firm that's somewhat flexible (in which case, I'd be wary since it likely indicates they're not familiar with the legal complexities).

      --
      Make sure everyone's vote counts: Verified Voting
  60. Sometimes it does by tepples · · Score: 1

    If your application has to integrate with other functionality already written in PHP, you may have to either a) write your own application in PHP on top of the existing code or b) turn the existing PHP code into a web service and call it through HTTP requests to localhost. And if you're in a hobby or small business, you might be on a hosting plan that allows only PHP and may have to pay more to upgrade to better hosting.

  61. Electrolysis by tepples · · Score: 1

    Firefox singletasking

    For now. The Firefox team is moving toward a process per document. This will help with both the slowdown issue and the 32-bit issue.

    1. Re:Electrolysis by Blaskowicz · · Score: 1

      Nice to read current status about that :), and that the end user might have some control over it. I actually use Firefox because it's still single process, the memory savings are huge. I'd be inclined to run 90% of stuff in a single process the old way and whitelist or one-time spawn some web sites, pages or apps into another process (i.e. game, heavy app, porn site or ultra heavy commercial/media site)

  62. When different platforms use different languages by tepples · · Score: 1

    Consider separation of your data structure from your view (MVC architecture), so the view is easier to replace if necessary.

    I agree. However, a change in framework may require a change in programming language. How should an offline-usable application keep its data structure going in parallel in three different programming languages, one for each target platform?

  63. Did anyone ask, SHOULD YOU use a Framework? by jhumkey · · Score: 1

    (I've done other things too but) Having worked now for 26 years on one application . . . (monitoring system for manufacturing machines), no one ever asks the question first . . . Should we even be looking at frameworks?

    I know the "xyz" framework for Java will allow me to generate 2 trillion lines of code in 30 minutes that will run on any device known to mankind, but "xyz" wasn't around last year, and if this is another "20 year" project . . . will "xyz" even be around in five years?

    If you're writing "conversion" code to move data off one system to another new one . . . that conversion is a "one time" deal. Use anything, Forth, Haskell, APL, heck, use Java . . . I don't care. And don't care what Framework you use to go with it. But if this is to be an application that will run for five (or ten, or . . . more) years, maybe that "xyz" framework or toolkit that came out last month, isn't the best choice.

    No one ever seems to first ask "how long will this program/solution be around . . .?", then . . . base the language/framework choice on that.

    Yet another case of . . . "we tend to solve the problems we've encountered before". If you're like me, supporting an ancient code base, the "flavor of the month" framework or toolkit, loses most of its merit. I suppose, if you're grinding away on "one time" solutions with overbearing requirements of "fast more so than better or maintainable" . . . frameworks look much more appealing.

    jkh

    --
    No, I don't remember your name. But the memory mapped screen on a TRS80 from 1977 is from 15360 to 16383 if that helps.
  64. You chose a framework only once by msobkow · · Score: 1

    You chose a framework once: Qt.

    You chose a product the second time.

    Therein lies the difference. The latter is at the mercy of one corporation's budget and marketting decisions.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:You chose a framework only once by vikingpower · · Score: 1

      Mod parent up. I have made the same experience ( and have seen other software architects make identical experiences ) over and over again. No-SQL frameworks against Oracle or MySQL RDBMS products. Open programming languages vs. "product" ( proprietary ) languages. Products, as TFA so well describes Flex with calling a duck a duck, vs. frameworks ( Qt ). I am currently looking for a security solution for what is gonna be a server-side piece of software. I will never, never ever ever, choose a product for that. I am close to choosing Apache Shiro: a framework with a vibrant community, which is standards-based, and can be modded / extended by me our our developers.

      --
      Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
  65. Another option: do not worry. by jythie · · Score: 1

    When people talk about frameworks not surviving, what they are generally thinking is more in terms of 'will it still be sexy'.

    There is an old saying, "The software is done when the last user is dead." Frameworks, languages, etc often stick around a LONG time past when they are the hot new thing, and chance are no matter which one you go with, a decade from now it will still be around and you will still be able to find people who know it well enough to be hired.

    Look into what does the job NOW and focus on getting stuff out the door. You can always switch 5 - 10 years down the road.

  66. Changes in language by tepples · · Score: 1

    you should make an effort to insulate your code from third-party libraries as much as possible.

    But how is it possible to insulate one's code from platform changes that dictate language changes? Consider the shift from Java ME phones running apps written in Java to the iPhone running apps written in Objective-C, and from PCs running Flex apps written in ActionScript or Silverlight apps written in C# to the iPad running either web apps written in JavaScript or native apps written in Objective-C.

  67. What's worked for me by bill_mcgonigle · · Score: 1

    I went to an Adobe Flex party in Boston shortly after the Macromedia acquisition. The visuals were really good, the development model looked nice, I was pretty stoked. Then I found out that the SDK was proprietary and difficult to extend, that the licensing was deployment-based, and that the front-end was also proprietary and limited regarding devices it would run on.

    That was enough to not look at it again. I just am reading now that they gave up on that, tried to give it away, and eventually dumped it on Apache.

    Still today, look for an environment that is open, extensible, runs its output on standards-based devices, and also one that has a vibrant community and a good contribution model. Avoid monolithic solutions, but rather parts that do their jobs well and play nice with others.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  68. How Do You Choose Platforms That Will Survive? by tepples · · Score: 1

    I invite you to trying answering this rephrased Ask Slashdot: How Do You Choose Platforms That Will Survive? Better yet, seeing as how so many client platforms stress a single language to the exclusion of others: How Do You Choose Languages That Will Survive?

    1. Re:How Do You Choose Platforms That Will Survive? by omnichad · · Score: 1

      I don't think anyone's expecting HTTP/HTML to go away for a long, long time. And this person was creating an RIA using Flash instead. HTTP/HTML is in the hands of standards groups and Flash is in the hands of one corporation. Even if HTML5 is just buzz and mostly dies away, that's not going to require a rewrite. ActiveX was the first example of a closed platform going away, and I was surprised then how many people made such a poor choice. Java is fine for running on the server, but Java Applets are almost dead for good reason.

      In this case, the server platform doesn't even matter. Their end problem was relying on proprietary client software.

  69. Offline web applications by tepples · · Score: 1

    Working on the web? Learn JavaScript. Learn jQuery. Do not use things like SharpKit to turn one platform into another.

    That doesn't help if you have to target platforms, plural, and these platforms don't expose the machine's full functionality to web applications. For example, more than half of web traffic comes from browsers that don't give the user a button to grant camera and microphone access to a web site. Or the machine might allow connection of game controllers but the web browser is unaware. Or the latest version of a web browser for a given platform might not implement technologies that let web applications run offline (application cache, localStorage, and IndexedDB). Would you instead claim that offline use, gamepad input, and audio and video input are poor fits for a web application in the first place?

    Use JavaScript / jQuery for user interface goodness, not your entire application logic. APIs / web services / interfaces are your friend

    If you'd prefer to run all application logic on the server, what should be used for a web application that can also run while the user is offline, such as on the laptop of someone riding the bus? "Problem loading page: You are offline" is useless.

    1. Re:Offline web applications by Anonymous Coward · · Score: 0

      Isn't the point of a web application to be as of or relating to things-Web? I swear, the world became a worse place when people started being so lazy that they expected their web browser to act like a fucking operating system, regardless of the browser, its version, or the ACTUAL operating system they're on. Like, video in gchat is nice and all, but I'd frankly rather just download a program to do separate from my WEB browser (since I have to anyways, in the form of Google's plugin).

    2. Re:Offline web applications by Anonymous Coward · · Score: 0

      Would you instead claim that offline use, gamepad input, and audio and video input are poor fits for a web application in the first place?
      Yes.

    3. Re:Offline web applications by tepples · · Score: 1

      Isn't the point of a web application to be as of or relating to things-Web?

      The other point of a web application is as a platform that abstracts the differences of multiple competing native platforms. Advantages include not having to write your application a dozen times, once for each platform, and not having to beg each platform's owner (like Apple, Microsoft, Nintendo, or Sony) for permission to run your application.

      I'd frankly rather just download a program to do separate from my WEB browser

      Good luck installing an msi on your Mac or a dmg on your non-Apple PC.

    4. Re:Offline web applications by tepples · · Score: 1

      If not as web applications, what would you consider the best way to provide for offline use, gamepad input, and audio and video input without having to develop your application 12 times and beg device makers for permission to run your application on their devices?

    5. Re:Offline web applications by Anonymous Coward · · Score: 0

      Java?

      I'm not talking locked down environments here; I'm talking environments in which you'd actually play a game or use multimedia software, i.e. at home/on your own computer.

      Web development is golden hammer to web developers, and to them every problem looks like a nail.

  70. Slashdice by tepples · · Score: 1

    Look to see if people are hiring for that technology. If you check dice.com

    Bingo. This whole article is just a Slashvertisement for the job board that Slashdot's corporate parent owns.

  71. Devil is in the research by MillerHighLife21 · · Score: 2

    In order to bet well on a framework, you have to pair general population with investment psychology. For example, let's look at Code Igniter.

    CodeIgniter is a PHP framework. There are A LOT of PHP frameworks. The reason there are a lot of PHP frameworks is because of the language and the community. Most other languages are specifically built for web development, so the frameworks in them add all of the tools you need to handle web development more efficiently. Because PHP has so many of those tools, everybody rolls their own framework. As PHP frameworks become more mature, you start to see speed issues because unlike Java/Python/Ruby/.NET ALL of those PHP files have to get loaded on every request, creating a lot of disk I/O. It's server-suicide to use a PHP framework without APC configured. This leads to a conundrum of framework maturity vs framework speed in the PHP space. The language needed 5.3 and 5.4 to make frameworks REALLY feasible.

    But without even getting into all of those details, the sheer fact that there are dozens upon dozens of frameworks in the language is generally a HUGE red flag. If there are that many choices, nobody has got it right. If there isn't one, distinct, clear leader in the space then there isn't going to be an ecosystem AROUND the framework contributing to plugins, etc. Additionally the framework fragmentation will generally mean that you will have a very hard time finding people who use the language who already know that framework. I spent 5 years as a CakePHP developer and I've lived everything I just described.

    The end result is that if you want to use a framework PHP itself is a bad choice because there isn't a great option. PHP is great for many things, it's just a valid point in the framework discussion. Because of the level of framework fragmentation your choice of framework is basically "how do I want to organize my code" as the only actual benefit...which really is almost the same thing as just rolling your own.

    If you look at other languages:

    Ruby has Rails
    Python has Django .NET has MVC
    Groovy has Grails

    For the last 2 years, I've been using Ruby on Rails. For one thing, it's basically the standard bearer for web frameworks. Within the ruby ecosystem, pretty much EVERYTHING makes sure that it works smoothly with Rails. It was really the clear choice from the time that I was making choices the only thing that prevented me from using it was the very stubborn "but I already know PHP" line. I looked at Groovy so I could deploy on Java infrastructure, but jRuby solves that problem for Ruby as well. If I was in a .NET shop, the choice would be MVC and if I was using Python it would be Django. Until PHP gets a "main" framework, there will not be a good framework option for PHP. Laravel seems to be going the right direction though, so that's one to keep an eye on.

    In the front-end space, anything Flash based has pretty much always been a bad idea unless there is no alternative. Front-end web development should generally always follow a philosophy of graceful degradation, meaning everything should work without javascript and javascript should be used to enhance the experience with only a few exceptions on the actual-in-browser-application front. jQuery made graceful degradation EASY while also emphasizing compatibility (you could use jquery and prototype at the same time, that wasn't the case with most JS tools) and as such, took over in popularity.

    The short answer to all of that is simply this: the market leader leads for a reason. Look for the market leader that works across the broadest set of platforms and you'll generally find your answer.

    --
    "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
  72. caniuse.com by tepples · · Score: 1

    HTML also has poor feature coverage according to caniuse.com for features that are standard in Flash Player. For example, Flash has 3D graphics, while WebGL is on only 32.43% of web browsers. Flash has webcam access, while getUserMedia is on only 47.23% of web browsers. Flash had cross-origin requests before HTML did, and even as of right now, 9.61% of browsers don't support XDomainRequest or cross-origin XMLHttpRequest. Considering replacing Flash animations with canvas animations? They won't play on 19.27% of browsers.

    1. Re:caniuse.com by omnichad · · Score: 1

      When I hear RIA, I think of Gmail - not Farmville.

      For example, Flash has 3D graphics, while WebGL is on only 32.43% of web browsers. Flash has webcam access, while getUserMedia is on only 47.23% of web browsers.

      Please don't do this in an RIA. Just do a full blown application. The vast majority of RIA's are not games - there's a lot of things that don't need fancy graphics at all. I just don't know what this poster was doing in their app.

      Flash had cross-origin requests before HTML did, and even as of right now, 9.61% of browsers don't support XDomainRequest or cross-origin XMLHttpRequest.

      This is a security risk. Why would I want XSS attacks to be allowed rather than blocked?

      Considering replacing Flash animations with canvas animations? They won't play on 19.27% of browsers.

      Again - most things don't need animations at all. I'm considering that it wasn't likely that the projects in question were graphics-heavy.

  73. wrong by stenvar · · Score: 1

    If they can pay someone in-house to fork/maintain, they can probably afford someone to write a customized framework that fits their use-case better

    You don't have to pay someone to "fork/maintain" when the original developer goes away; open source projects generally get picked up by other commercial entities to maintain without you having to do anything. In fact, many open source projects you use and rely on have gone through that process without you even noticing.

  74. Hype curve by Anonymous Coward · · Score: 0

    Go by Gartners hype cycle when in doubt. Then realize Flex actually is in a much nicer place than most other frameworks.

  75. Re:You're at the whim of the owner. It's political by NewWorldDan · · Score: 1

    You're also at the whim of the masses. Development platforms benefit tremendously from network effects. Success begets success. On the other hand, it was arguably Apple that killed Flash. HTML5 combined with their refusal to allow Flash on iOS devices was devastating to the platform. The popularity of the iPhone meant that everyone had to support it, and because that could be done in a generic fashion, there was no reason to build 2 versions of the same product, thus Flash died as a platform in a very quick fashion. Compare this with, say, Silverlight, which was an excellent platform, but everyone looked at it and said not interested, mainly because of the proprietary nature. I could give my users a superior experience with less effort, but it's not ubiquitous, so it's just not an option.

    If you can identify frameworks that clearly don't have a future, you can improve your odds substantially. Just ask yourself, is it proprietary (Flash)? Is it ubiquitous (HTML/JavaScript)? Does it have a reputation as a clumsy and flawed platform (PHP)? Is it popular (jQuery)? If your answers are No, Yes, No, and Yes, you stand a pretty good chance of long term success. In my own shop, we've gone with C#/MVC and HTML/JavaScript/jQuery. Honestly, HTML and JavaScript is a pretty shitty platform. But sometimes popularity and ubiquity win the day. Meanwhile, it can safely be assumed that as long as Microsoft is around, C# will be well supported. Silverlight is a far superior platform, but it's a dead end and we want to be certain to avoid dead ends.

  76. "We need a set of fail-safe axioms." by osu-neko · · Score: 1

    I got a good chuckle out of that. Hopefully you had your tongue firmly in cheek when you wrote that.

    --
    "Convictions are more dangerous enemies of truth than lies."
  77. Criteria by Anonymous Coward · · Score: 0

    Before investing a ton of time even building a toy project, I usually will try to eliminate some candidates based on:

    - Is it Open Source (you can always update it yourself if it gets abandoned, and if it's reasonably popular, chances are someone else will if you don't have the chops)

    - Documentation and learning curve (which significantly affect uptake)

    - Existing ecosystem (libraries/modules/plugins/extensions/whatever)

    - Community (both size and median skill level -- to develop ecosystem and provide support)

    - Core developer culture (how do the BDFLs or equivalent make decisions about what to include/exclude in new releases; what's participation in core development and discussions like, etc, etc.)

    - Community culture (check out mailing lists)

    - Shortcomings (What do members of the community most often complain about about the framework? Are there reasonable workarounds? Does the core team have plans to address them, or are there well-maintained forks that do?)

    Build a toy project in each framework that exercises the major features that you need in your line of development (e.g. for a web framework I might build a simple blog or to-do list with authentication and an admin panel). Get a sense for how ergonomic the basics are, how well it matches the way you work, how much work it saves you building wheels from scratch, what the learning curve is like, what the documentation is like... then try to push it to do something minor that looks like it's outside of the center of the framework's wheelhouse -- see how flexible it is.

  78. Not one but twelve full blown apps by tepples · · Score: 1

    When I hear RIA, I think of Gmail

    And even then, only 57.52% of browsers support the IndexedDB needed to store messages for offline viewing.

    not Farmville

    So for things like FarmVille, with what would you replace Flash? Cookie Clicker uses HTML5, but I wonder how gracefully it degrades on downlevel browsers.

    Please don't do this in an RIA. Just do a full blown application.

    Good luck installing "a full blown application" shipped as .msi on a Mac or installing "a full blown application" shipped as .dmg on a non-Apple PC. You end up having to ship not one but twelve "full blown applications": one each for Windows 7, OS X, X11/Linux, Android, iOS, Windows RT, PS3, PSP, Xbox 360, Windows Phone, Wii U, and 3DS, and eight of these twelve platforms need the hardware maker's permission before the app will even run.

    Why would I want XSS attacks to be allowed rather than blocked?

    CORS has absolutely nothing to do with XSS. XSS means opportunity for an attacker to inject script into your application. CORS retrieves the resource as data, not as script, and your script interprets it. The closest attack to CORS is CSRF, the submitting of forms, and that's why CORS sends an OPTIONS request before any POST that isn't standard form data. You want it because your web application integrates resources provided by other entities with whom you have contracted to provide resources.

    Again - most things don't need animations at all.

    Most don't; some do. With what would you replace Flash used in the vector animations seen on places like Newgrounds and Albino Blacksheep? Rendering them to WebM or H.264 would cause the file size to increase by an order of magnitude.

    1. Re:Not one but twelve full blown apps by omnichad · · Score: 1

      Good luck installing "a full blown application" shipped as .msi on a Mac or installing "a full blown application" shipped as .dmg on a non-Apple PC. You end up having to ship not one but twelve "full blown applications": one each for Windows 7, OS X, X11/Linux, Android, iOS, Windows RT, PS3, PSP, Xbox 360, Windows Phone, Wii U, and 3DS, and eight of these twelve platforms need the hardware maker's permission before the app will even run.

      Flash runs on all of those? I had no idea.

    2. Re:Not one but twelve full blown apps by tepples · · Score: 1

      You got me there, but Flash Player runs on the Wii, PSP, and PS3.

    3. Re:Not one but twelve full blown apps by omnichad · · Score: 1

      Do any of the 3 have anything but basic vector animation? I thought they only had a limited subset.

  79. Success is learning to manage change by scamper_22 · · Score: 1

    I learned a long time ago, that success on any project is learning to manage change.

    For whatever reason, software tools just keep changing.

    1. Separate your layers. As others have said already (MVC...)
    2. Try not to use special functionality in a particular choice of technology. This will make getting off that particular technology choice easy when porting to a different vendor or technology. You can be a bit of a pain enforcing this, but ultimately, it is good. It requires good judgment. For example, I personally would have avoided using lamda expressions in any language prior to it being availabe in c++/Java/.NET.
    3. Learn to use bridges. Sometimes you can't port something due to a lack of resources or time or whatever. Don't be afraid to throw computing power at the problem. I have a simple rule that will probably annoy people. If enough time has passed to outdate your technology choice, chances are computing power has increased enough that you can ignore many performance concerns you had at the time you developed the product. Throw up a webservice proxy or whatever between components.
    4. Keep your APIs simple! This one, I can't stress enough. If at all possible, keep your APIs simple between components. If you can stick to basic strings and int or whatever, more power to you. Just try to keep it simple. It will make interoperability a million times easier.
    5. Stay away from all encompassing frameworks that give you everything.
    6. Keep some skilled staff on board for the build process and who know the ins and outs of frameworks. ...
    I think you get the point.

  80. "What's In It For Me?"Counts For Open Source Too by theshowmecanuck · · Score: 1

    If you pick an open source project with lots of users, that's not a problem: someone will pick up maintenance.

    They'll only pick it up if there is a benefit to them doing so. Obviously EllisLab feels there are not enough benefits to 'owning' CodeIgniter. They don't want to put the time and money into it without it paying back some way. And it is obvious from the link that it isn't. I would bet you have seen a few open source projects that you used tools from die. Did you offer to start supporting any? Why? Not knowing the technology is not an answer. Not getting enough benefit out of learning a new technology, or from learning the code base, or from your free time being used up to start supporting it... That is the answer.

    The bigger the project the more time, money, and sweat goes into it. The bigger it is, the less likely someone or some group will want to spend all their free time away from family, friends, downtime, to make something that others will benefit from without anything in return for themselves. This is the economics of life. You make a distinction between open and closed source that is complete bullshit. In both worlds people do stuff that is beneficial for them or leave it eventually (whether quickly or not).

    Most open source projects end because people were not getting any benefit from the hours they put into it. Initially the benefit might have been fun or the dream of making money. After they spend enough time away from things that really matter without it helping to pay the bills, the project gets dropped. Large or small project it doesn't matter. CodeIgniter is obviously not paying the bills for EllisLab. Who says it will for anyone else?

    --
    -- I ignore anonymous replies to my comments and postings.
  81. Pick the horse that will keep on running. by brainbuz · · Score: 1

    Catalyst is one of the oldest MVC frameworks and very actively developed. Catalyst is also very stable, a few years ago the Catalyst team implemented the new Moose Object system for Perl and older Catalyst code still generally works. When I upgrade a system running Catalyst or redeploy my applications to a new system the major headache is from missed dependencies, but once I sort them out it is unusual to have to change code, and deprecations are infrequent and get long notice periods. When the new MOP object system (it is based on the Moose Object extension Catalyst already uses) ships in an upcoming Perl release your old Catalyst Code is still going to work, and as each release of Ruby and the path from Python 2 to 3 show, those other languages don't maintain the stability that Perl does.

    --
    minds, get scrambled like eggs, abused and erased. Hard Hearted Alice is who you want to see.
  82. Remember WiiCade? by tepples · · Score: 1

    When Internet Channel came out, it supported Flash, and there was a site called WiiCade showcasing Wii-friendly Flash games. In September 2009, Internet Channel was upgraded to Flash Lite (compatible with Flash 8 and some features of Flash 9).

  83. Fast rise, fast fall. by Spazmania · · Score: 1

    The faster the technology rises, the faster it falls. Things like Flash become sensations for fickle reasons. Then the next thing comes along and everybody who's anybody switches. Yet all the crap dumped into the tech upon demand of the fickle people remains, weighing it down.

    Technologies which mature more slowly (if you're willing to wait for them to mature) tend to have better staying power.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  84. Seriously? Just know what you are doing by Bogtha · · Score: 1

    You know it's not really all that difficult to see the writing on the wall for some technologies.

    Flash in particular you could see coming from a mile off. It was a web browser plugin that hated the web. It tried its best to fight against web technologies at every turn. Many aspects of the web - URLs for discrete resources, the DOM for discrete page elements, source-based delivery, cross-platform authoring, open-source authoring, etc. - were actively subverted by Flash. So all the forward progress for the web that improved or relied on these things fell by the wayside for Flash.

    Likewise with PHP frameworks. With few exceptions mainly relating to lock-in, everybody who's got any taste and skill abandoned PHP years ago or never took it up in the first place. As a consequence, this leaves the people driving PHP forward very poor stewards. PHP is a zombie at this point - the killing blow has already been struck, it's already dead, it's just going to take a while for this to become so obvious it cannot be ignored. Competent people don't do things like cause security issues because they make releases after ignore failing tests.

    You say that you deliberately eschewed open-source, but if you look at where the forward progress for the web has been coming from, it's predominantly open-source projects.

    I just don't see how you can have any understanding of this industry and continue to make those kinds of choices.

    --
    Bogtha Bogtha Bogtha
  85. You're already wrong for starting with PHP by reiserifick · · Score: 1

    Just kidding. :) But seriously, I think Ruby on Rails will be around for a very long time since it already has a lot of momentum, and isn't entirely subject to becoming stagnant when a single company loses interest in it. For better or for worse, Rails has a lot of fanatics that are utterly devoted to the project, which can be annoying, but it also lends an air of longevity to the project. Also, there is no such thing as a good front-end framework that does everything you want it to do, but that said I would recommend checking out backbone.js. You'll spend more time and money trying to shoehorn a UI framework into working for a large application than you would having a few good developers build and maintain your own internal framework.

  86. Fail-safe axioms? No such thing by GPS+Pilot · · Score: 1

    Just as an investor can do world-class research and due diligence, with no guarantees that his investment will provide a positive return, there's no fail-safe way to choose a framework that will thrive.

    Do your best, and good luck.

    --
    That that is is that that that that is not is not.
  87. You don't need to by Doomsought · · Score: 1

    Unless you are using a programming language over than I am, you are using an object oriented programming. It is a huge mistake to forget the basic tenets of OOP. In this case, its Encapsulation that you need to leverage. If you hide the framework behind some of your own classes and use good design practices, you can hot-swap APIs with minimal fuss. One minute working on good design will save you an hour of programming and a year of debugging.

  88. Struts 1 by sproketboy · · Score: 1

    We still maintain apps in Struts 1. So I don't think you can go wrong with Java for longevity.

  89. Choose something you can control by Anonymous Coward · · Score: 0

    If you choose something you have the source to, and can control the deployment of (by compiling it into your program or including it as DLLs), then you win.

    I use Delphi and Lazarus, and even if those two aren't super popular, it doesn't matter - the capabilities aren't going to *decrease*, and I don't have to cajole the user into installing some certain version of Java, .net, IE, etc. (And the libraries are written in the language itself, so they can be statically linked into the EXE for a portable app).

    Something like QT and/or GTK are also probably safe. Something like Adobe Flex is most certainly not because you have to convince people to install it, and you con't have the source for and can't control flex itself.

  90. Platforms with a web browser but no JVM. by tepples · · Score: 1

    Java?

    Until you run into one of the things that Java doesn't handle by itself, such as gamepad input, OpenGL graphics, webcam access, etc. Then you have to install native code. Or until you run into a platform that doesn't have a JVM. I know of plenty of platforms with a web browser but no JVM, and I can list them if you wish.

    not having to beg each platform's owner (like Apple, Microsoft, Nintendo, or Sony) for permission to run your application

    I'm not talking locked down environments here; I'm talking environments in which you'd actually play a game or use multimedia software, i.e. at home/on your own computer.

    A lot of people prefer to "actually play a game" on their own game console at home, and game consoles other than OUYA are locked down environments. They don't run Java applets or Java applications.

  91. Six more months until the XPocalypse by tepples · · Score: 1

    14% of your customers who do not like Metro

    My aunt's PC runs Windows 8. So does my PC at work. On both of these machines, I installed Classic Shell, which lets me avoid the Windows Start Screen (and thus most of Metro). Windows 8 thus ends up feeling like Windows 7.

    Progress too slow and corps and grannies resisting change [who] stick with XP

    In less than six months, there's going to be a grandmapocalypse bigger than anything you see in Cookie Clicker.

  92. Wrong perspective by holophrastic · · Score: 1

    It's not about picking the right one. Beta was way better than VHS. Blu-Ray was way better than HD-DVD. Sony lost. Then Sony won. You won't predict it with any degree of precision. Don't try.

    You can choose multiple solutions. Odds are that both or many won't all fail at the same time. So you'll better stagger your mistakes.

    Or, you can do what I do. I built my own framework. Then it's mine. It's supported by me. It does what my business needs it to do.

    Roll your own. It ain't hard.

  93. Reputation and community by Anonymous Coward · · Score: 0

    It is not objective but much like other self-fulfilling prophecies, I think reputation is important in choosing a framework. Also, if the company or group puts in place the right tools for taking into account the feedback from the community, then it sounds right. A forum can be either good or bad news. You need to check if it's only about PR stunts and lame excuses or if they truly address technical problems and develop the features requested.

  94. Re:"What's In It For Me?"Counts For Open Source To by stenvar · · Score: 1

    They'll only pick it up if there is a benefit to them doing so.

    Yes, usually that benefit is called "money".

    Most open source projects end because people were not getting any benefit from the hours they put into it. Initially the benefit might have been fun or the dream of making money. After they spend enough time away from things that really matter without it helping to pay the bills, the project gets dropped.

    Just like most closed source projects.

    You seem to operate under the erroneous assumption that open source products are not for profit or that people don't make any money of them. That's wrong. While open source licenses don't guarantee longevity, but all things being equal, your risk is much lower when the product you use comes under an open source license than under a closed source license.

  95. Re:When different platforms use different language by BreakBad · · Score: 1

    Qt is cross platform, I was assume if it had to be replaced, it would be by something that is also cross platform. If not, you would probably be looking at ideas/techniques like SOA, and wrapping your model with services.

  96. Re:When different platforms use different language by tepples · · Score: 1

    Qt is cross platform

    Until I get to a platform that A. doesn't have Qt, or B. allows web applications but forbids native applications entirely without the express written approval of the hardware manufacturer. Such platforms include Apple and Microsoft mobile devices and all major game consoles. For such platforms, I'd have to rewrite the view in JavaScript + HTML + CSS, and I'd have to rewrite the offline portion of the model in JavaScript.

    If not, you would probably be looking at ideas/techniques like SOA, and wrapping your model with services.

    But on which machine would these services run? Running the model on the client would require rewriting the model in multiple languages if different platforms require applications to be written in different languages. I can give examples of platforms that accept only one language if you wish. Running the model exclusively on a server may work for some apps but not for apps intended to have an offline mode.

  97. Consider no framework at all. by Medievalist · · Score: 1

    Especially if you're in PHP or another high-level language which can be very rapidly developed.

    The problem, of course, is that it takes much more skill to build something good without a framework. The hard part is finding the right people. People who don't need "frameworks". You may not be able to find or afford programmers of the requisite quality.

    Really well written code won't be significantly benefited by the inclusion of stylistically different one-size-fits-all code written and supported by other hands.

  98. Re:When different platforms use different language by BreakBad · · Score: 1

    Until I get to a platform that A. doesn't have Qt, or B. allows web applications but forbids native applications entirely without the express written approval of the hardware manufacturer.

    The original topic did not indicate which platforms, so the big three desktop platforms were assumed (by me). You are seeking a one-stop solution for deploying to any platform ever created deep in a slashdot thread. So here goes:

    Contribute any missing platform support to kivy.org

  99. HTML5 by AbominousSalad · · Score: 2

    It's impossible for a UI framework to stay relevant for more than a few years, unless it's based around a slow-moving standard too big for corporate interests or bottom-lines to affect.

    Your choice to use something other than HTML5 because HTML5 wasn't ready yet, was good. However, you probably should have used something HTML4 related at that time.

    As someone who's been predicting Qt's demise ever since he learned Nokia had bought it, I can only shrug and wish I'd been there to tell you so.

    Do not rely on corporate frameworks, ESPECIALLY open source ones. Corporations treat open source projects as hot potatoes the second money gets tight. They only keep them on board to reduce costs and gain a little PR magic with the less-cynical geeks. As soon as it starts costing resources to improve and especially if the non-paying user base gets uppity (which, as a monied stakeholder, you can't control), out the window it goes.

    Since corporations get their fingers into everything they rely on, your rule of thumb should be the ratio of unattached volunteers (those working on the project in their spare time regardless of who they work for -- meaning their employer had no influence on their choice to volunteer with that project). If total project brain drain is just one cost-cutting decision away, that framework is dead code walking.

    --
    Every trollism an AC posts is prefixed, in my mind, with "A. Coward whined, in a weak and cowardly voice:"
  100. Re: You're at the whim of the owner. It's politica by Anonymous Coward · · Score: 0

    stay away from C#. M$ is quietly killing it.

  101. Re:"What's In It For Me?"Counts For Open Source To by theshowmecanuck · · Score: 1

    No, I'm not under the erroneous assumption that open source projects are not for profit, etc. I am pointing out the flaw in your comment; that even open source projects must provide some benefit to the person working on it (whether money or shear satisfaction). And when that benefit fails to materialize it will be dropped. Look at your comment. If a maintainer of a project stops maintaining it (like EllisLab is about to do), just because a lot of people are using an open source product doesn't necessarily mean someone else will take it up. They will only do it if there is something in it for them, regardless of the currency. i.e. a profit.

    --
    -- I ignore anonymous replies to my comments and postings.
  102. Re:"What's In It For Me?"Counts For Open Source To by stenvar · · Score: 1

    just because a lot of people are using an open source product doesn't necessarily mean someone else will take it up. They will only do it if there is something in it for them, regardless of the currency. i.e. a profit.

    When a lot of people are depending on an open source project, the ability to earn a profit from maintaining and supporting is pretty much automatic because there are a lot of potential customers with unmet needs. Sorry, but the flaw is in your understanding of economics.

  103. Java. by Anonymous Coward · · Score: 0

    Despite what people say, it's alive and doing well, it's NOT going to die given it's market share in enterprise. For intranet, you don't even need to use applets, just JNLP for a full desktop app, merely delivered by browser.

    Not that I like it though. Two years ago we started to invest in Silverlight, building our own framework on it for RAD. Even though it seems dying today, it's still the very best choice for business apps in terms of development speed, runtime performance and functionality, far surpass HTML/JS and Flex because it allows very low-level controls such as pixel shaders, weak object reference and IL code emitting.

  104. PHP vs other languages, and number of frameworks by Cato · · Score: 1

    Good points about other languages such as Python, Ruby and Groovy - none of those languages is as popular as PHP, but they are harder to get started with than PHP, and perhaps as a result are generally chosen by more experienced programmers.

    These smaller communities of more experienced programmers do seem more likely to create and choose a dominant framework - while Django is not the only Python framework, it is by far the most popular, with the most addon modules.

    PHP isn't a completely bad language, but it does have a lot of problems that drive many experienced programmers to other languages. And the sheer number of frameworks in PHP is a huge problem.

    Generally a strong framework without a single commercial backer is best - a strong core team of developers is more resilient to future decisions and competition than a single company whose strategy decisions can alter the future of a framework.