Slashdot Mirror


Software Tools of the Future

An anonymous reader writes "What are the sofware tools of the future going to be? It's an interesting question, with many facets. Here are some important trends in design and construction tool strategy, which will effect the kinds of software tools that will be delivered in the future. It looks at how to improve software development efficiency through visual modeling, generating code from abstract models, and systematic reuse."

10 of 337 comments (clear)

  1. Eclipse! by JKR · · Score: 2, Informative
    I believe Eclipse will become a major part of software tools of the future, simply because the Rich Client Platform initiative brought in for Eclipse 3.0. This makes it easier to create custom Eclipse API applications, compared to version 2 which was a much less modular design.

    My employer is working on an Eclipse-based development environment for their Cascade product, instead of developing yet another custom environment from scratch with all the incompatibility and test overhead that that entails.

    Jon.

    1. Re:Eclipse! by eenglish_ca · · Score: 3, Informative
      Eclipse has a great design no doubt. Automatic code generation through the use of omondo was very helpful in the work I have done with it. However, being a program written in Java it suffers from serious lag even with Java 1.5. It just cannot keep up with Anjuta or KDevelop in terms of raw speed. This may not seem like a serious impedement but it can make working with it quite irritating. Given that using java does give it platform independence, there are solutions like gtk for windows and mac or wx windows in terms of the gui.

      Additionally, I have found it quite buggy when running it on Solaris and Redhat based systems at school where i've primarily used it. I shouldn't have to delete my workspace directory just to get it to run as I have needed to.

      These issues need to be resolved before it can be considered seriously.

      --
      Checking out my form of escapism.
  2. Re:Usability in Non-MS Environments by Guillermito · · Score: 4, Informative

    Eclipse is not just for Java. You can use it for C and C++, python, COBOL, among others.

  3. MDA, Code generation, and the like by SlySpy007 · · Score: 3, Informative
    As systems beome more complex and the amount of code required to do it grows, we need to actively find new strategies to help us create better software faster. Development activites also need to be tailored to suit other related activites, most notably verification and validation. MDA is a good step because it allows the developer to focus on the higher level concerns of the system, and step back from some of the code level concerns. Code generators and transformational systems are an excellent counterpart -- if you have a modeling language with a formal syntax and well-defined semantics, you can easily write very powerful transformational tools to spit out anything you like -- models in a different representation, code, test cases, graphs...the list goes on. A colleague of mine has a saying "No more software engineers"; I personally think he's on to something. We as a profession spend altogether too much time worrying about code-level concerns and the like, when to make more robust, fault-tolerant, higher-performance systems we need to spend more time focusing on higher-level system concerns.

    Some links to check out on these topics:

    Semantic Designs (makers of a very powerful, generic transformational environment) http://semdesigns.com/

    Link to Nic Rouquettes slides from a talk on MDA at the UML 2003 conference) http://ase.arc.nasa.gov/uml03/rouquette.pdf

    Link to an article from ACM Computer magazine (last january I think) about MDS, and project at JPL which aims to incorporate some of these ideas into the design of a robust, re-usable flight software platform http://www.computer.org/computer/homepage/0104/Reg an/r1059.pdf

  4. Refactoring Browsers (eg, Eclipse) by sean.geek.nz · · Score: 3, Informative

    Refactoring Browsers were a radical change 2 years ago, and improved coding immensely.

    But the claim that they "aren't commonly used" is bunk. They are in very common use today. Eclipse, IDEA, JBuilder, etc. Java IDES have made a huge leap in the last 2 years, and they rock.

    They succeeded because they weren't trying to reinvent programming. They just aim to make coding easier and better.

    Why non-Java IDEs haven't caught up, I don't know. The worst part by far of having to deal with C++ is that these days the tool support just isn't up to the standard of Eclipse or IDEA. emacs does great stuff with syntax, but it can't replace an IDE that is tracking the codes semantics and making clever use of that knowledge.

    sean

  5. Re:On the Amiga by starbird · · Score: 2, Informative

    AmigaVision it was called. It came with my A500, but without a HDD and 2 megs ram it was pretty useless.

    I saw some pretty impressive presentations done with it.

  6. Poor tools, No credibility. Re:dubious by jageryager · · Score: 2, Informative

    I've spent the last two years in a OOD project with a team of 5 - 15 SW Engineers. I can't speak for the Rational XDE tools, or Rose RT, but Rational Rose really really sucks bad. It's the kind of tool that will make you claw your eyes out.

    Any company that can sell a tool like this and claim to be in the buisness of "improving" your software process and productivity has absolutely no credibility with me.

    Rose has Modal, non-resizable, dialog boxes that display paths. If the path doesn't fit in the box it is truncated. You can't resize the box. So.. You can't see the end of the path.. ( Error could not write to /some/really/long/pa, really helpful.)

    Rose has modal, non-resizable, scrolling boxes. With these it is at least possible to see the path if you need too. But you'll still go mad as the box is only big enough to hold about three 30 character lines. Of course I'm looking through a list of 200 files, and all the paths are 100 characters long.

    Rose has sequence diagrams that forget their sequence, and can't be rebuilt.

    Rose has a bug that makes it just go insane if a version 0 of a file gets created in UCM/Clear case. And it can't tell that it has gone insane.

    Rose can't keep track of files that have changed underneath it. It has a bad habit of hijacking files and not telling you.

    Rose has no good way to merge many parts of models.

    Rose has a bad habit of "disappearing" modeled objects during a reverse engineer step, and not telling you. If you accidently screw up a path to a file, and reverse engineer, your modeled object will disappear. And all of the other artifacts that depend on it will get corrupted. And god help you if you check everything back in that way.

    I'll take my coffee black. I'll take tcsh and vi as my integrated development environment and OOD tool over Rose any day of the week.

    Kevin

    --
    "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety"-B.Franklin
  7. Re:O'Caml....the future today by pkhuong · · Score: 2, Informative

    (here, Lisp = Common Lisp)

    Depending on the implementation, you can get some type checking (CMUCL and SBCL do type inference a lot, iirc).

    While ML has type checking, it also needs a different operator for each type of argument. It probably affects refactoring a little and is sort of annoying, but nothing serious.

    Just consider the Lisp "system" as a library. Depending on the smartness of the compiler, it can be shaken down to a smaller size.

    FFI isn't exactly hard to do. From UFFI's (LGPL) manual:
    def-function name args &key module returning

    (def-function "gethostname"
    ((name (* :unsigned-char))
    (len :int)) :returning :int)

    Bah syntax. Both our opinions are probably extremely well anchored :)

    How's Lisp harder to use imperatively? Just about every control operator has an implicit progn.

    Faster. Often true, but how much so? Lisp, with annotations and compiled for speed instead of safety, is pretty to close to C. (Here's the last troll-induced response I can remember: http://home.comcast.net/~bc19191/blog/040308.html) . However, how much and how often does it matter?

    Better metaprogramming support.

    --
    Try Corewar @ www.koth.org - rec.games.corewar
  8. Re:Usability in Non-MS Environments by omicronish · · Score: 2, Informative

    Good list. Refactoring and method references are in VS.NET 2005, so your complaint is valid there. However, I rarely experience crashes (maybe once every few months), including at home, school, at my internship, and even with the beta.

    Regarding method search dropdown (which I'm interpreting as IntelliSense in VS.NET), are you trying to use it with C++? It's always been crappy with Visual C++, so Eclipse might be better in that regard, but it works wonderfully with C#, and comes up in even more situations with 2005.

    As for navigation and the UI, you can customize menus, toolbars, and keyboard shortcuts. I customize the toolbars but the rest of the UI is fine with me, so it's likely a subjective thing.

  9. Re:Completely lacking vision by beelsebob · · Score: 2, Informative

    You specify a set of rules that pattern match sub-graphs of the current state graph, and transform that sub-graph into a new one. You then specify a program as a series of these transformation rules, any valid program can be applied either once or until it can be applied no more. Give it an input graph and you get a new graph as output.

    If you want more information go ask Detlef Plump at the University of York - it's his research that I'm getting this from.

    Bob