The next programming method?

  1. Greg Bernhardt

    Staff: Admin

    For you computer geeks out there. What do you think the next method of programming might be? We currently have Procedural, Event and OOP. OOP is the most popular, but it isn't the best. What is next?
     
  2. jcsd
  3. Greg Bernhardt

    Staff: Admin

  4. dduardo

    dduardo 1,918
    Staff Emeritus

    OPP is not a method of programming but rather a way of thinking. The way humans develop ideas make OPP very natural. For example, you want to build a cardboard box. Although the process for creating a box is linear, developing the process is very much OO. You have to figure out how what the material is made, the size , the color, etc. All of these attributes are easily contained in an OO structure such as a CLASS. All the attributes can be built onto of each other. This layering allows the developer to visualize the structure in a very precise manor.

    Event driven systems are a way to collect input in an OO enviroment. An event triggers an object to run which then triggers other events, creating a dynamic system.

    This methodology of thinking is not going to change. The next major leap in programming will be the way we enter programs into the computer.

    What plagues programmers today is the constant reinvention of the wheel. Sure there are functions, allowing repetitive tasks to be called from any point in the program, but thats not enough. We need to STANDARDIZE a method for program to program inheritance. It will be like the click and drag method of creating interfaces in VB, but more sophisicated.

    Imagine being able to take the chat (function) from XYZ's instant messenger and dragging it to ABC's first person shooter.

    With this type of capability, programming will not be just for the experts, but for the average joe that wants to be productive.
     
  5. Hurkyl

    Hurkyl 16,089
    Staff Emeritus
    Science Advisor
    Gold Member

    I concur with dd; some sort of standardized abstraction is definitely the way to go. There needs to be a way to write powerful code with no loose ends which others can easily use and customize.
     
  6. Well, the thing is that ABC would have to pay XYZ for that. I mean, we already have code libraries and APIs and such so that you don't have to "reinvent the wheel." Also, people often like to create things for themselves sometimes...to marvel at their own genius.

    Although, it can be hard to integrate things from completely different codebases. For example, a game will have different structures for representing clients than will a chat program.
     
  7. Hurkyl

    Hurkyl 16,089
    Staff Emeritus
    Science Advisor
    Gold Member

    That's pretty much the reason why I think a good standardization or abstraction scheme is where things need to go; so that the chat program can use the FPS's client object directly, or at least with a trivial wraper.
     
  8. dduardo

    dduardo 1,918
    Staff Emeritus

    1) If your a proprietary software maker like Microsoft, then yes, you probable would have to pay a licensing fee. But software development is changing and IBM, Apple, Toshiba, etc are realizing that open source is the way to go.

    2)People just want software to work. Period. Sitting in front of my computer, I wish that some applications could take on the attributes of others. The everday users aren't going to fire up their text editor to modify source code to add features.

    An example: Average Joe likes the tabbed browsing feature in mozilla and would like to add it to the OpenOffice Writer in order to be more productive. If every feature in mozilla was a standarized template, then one could drag a tab from mozilla into openoffice, and all the attributes from the tab would be inherited.

    Ok, sure code libraries and APIs exist so you don't have to "reinvent the wheel," BUT it takes time to find out if a library is available that suits your needs. And on top of that you need to figure out the contruction of the library and how to make calls. I mean, if the feature you want is right in front of you, and already implemented, then why can't you just drag that feature where you need it visually, rather than through a text editor.

    If we have a standarized abstraction, as Hurkyl said, programmers will build the components and arrange them. The computer then figures out how to connect the components. If the user wants to an a component, all they have to do is point to where they want the new component and the computer figures out how to connect it.

    3) If you have a standarized template, it shouldn't matter what type of data your dealing with. For instants, STL(Standard Template Library) for c++ is very flexible and allows its data stuctures to contain any type of structure.

    struct bob
    {
    int x;
    };

    queue<bob> builder;
     
  9. I have to agree, a related development has been in gooey interfaces. The new Apple Aqua system is a case in point. It allows you to make any picture you want an icon and just arrange things however you want. The ultimate interactive etch-a-sketch so to speak but without all the hassle of the two knobs and having to erase everything the minute you make a simple mistake.

    In other words, two trends are at work here: expanding the parameters of the system and making them more user friendly. Microsoft already has patents on 3-d versions of windows, for example, but who the heck owns a 3-d monitor? The real rush then is not to predict the immediate future of the technology, but what makes things more user friendly. This has been microsoft's focus all along, and why their modular architecture and bells and whistles are so infamous for being unstable.
     
  10. dduardo

    dduardo 1,918
    Staff Emeritus

    Microsoft and Modular Architecture. HAHAHAHAHAHAHAHAHAHA

    Removing Internet Explorer = Removing Windows
     
  11. well im not sure I understand the question, but when programming Multi User Systems (some games, some not), we found a stable metaprogram with user functions that allowed other authorized people to change the environments & code were very effective.

    This kind of system though is only as powerful as the metaprogram, but allows otherwise uneducated users to revise a system with some measure of variability.

    One of the systems I worked on had a rather suprised System Admin when I was, sitting at the bottom of the ranking system, able to use Mobile subroutines to delete his account, as if he were the one doing it. I think this is an example of exactly how powerful Online Coding can be.

    For a more radical aproach, I think we need to devise anti-logic proccessors, which is possible with something akin to a profile system for each Flag

    instead of "let red = 45"/"let red = random (1-300)"

    we should have a whole list of possible meanings for subject matter as step 1
    let red = 45; and/or random (21-69); and/or temperature code "hot"; and/or emotion code "angry"

    Followed by step 2 of the anti logic code, (this is the real step) A search engine proccessor that matches a programmer's input structure and/or sentence structure to lists of flags with possible matching data.

    Basic example " Make the room hot"

    I know this sounds wierd, but in programming, if we spliced a fuzzy logic search engine into a bunch of higher language protocals, we would have a very real, synthetic artificial intelligence programming aid, which even a 6 year old could toy with.

    I'm sure it wouldnt work well for a serious programmer, at not until the AI/search engine utility feature were highly attuned and possibly (through cookie subroutines) personalized or "watermarked" to the individual programmers.

    Imagine a programmer named Keichi... and his AI search engine-meta utility named "May"

    Keichi: " May, make the background blue please..."
    May changes the background color to Azure
    Keichi: " May, you know I hate this shade of blue... "
    May changes the background color to Deep Blue
    May: "Sorry sir, just kidding"
    Keichi: " Thank you May"

    the quirky thing about humans is the fact that they have favorites, and favorites can be set as defaults. Humans also splice things and mix and match them, something a computer could do, but normally requires whole arrays of programs to do.

    The above style of programming could be infinitely complex, or as simple as a search engine spliced into another programming platform. Commands like " name that line of code that I spent the most time on, now insert it here (cursor)"


    Further down the road, I noticed that they built a very basic cybernet eye for someone that inputs information directly into the brain. I also saw a person in an intensive care ward, moving a mouse cursor with their mind - the wires in their brain were sensing nerve motions normally reserved for things like arms and hands.
    I believe that this kind of technology, in the next 20 years, could be used for a whole new variety of virtual reality. And if there is indeed a field of sensory data that fires up somewhere in the brain when someone imagines, then it is possible, that such an imagining could be recorded in a VR environment, replayed,
    and if someone had a brilliant idea for a flash, and then forgot it, it could be rewound frame by frame, paused, and studied. I have no idea about the implications of some kind of internet based wireless mind reading/telepathy, but it is obvious that a person could definitely, with technology today, project wirelessly basic ascii characters from brain to brain, although the process would be very slow.
     
  12. sol

    sol 0

    Mind Brain Reality Software Applications

    Soft Computer Apllication

    I know people do not like when I post stand alone posts, but the idea here is to understand from the previous posted link to see the idea in how such application might work.

    The fifth element idea sprang into existance engaging the idea of the superstringtheory board. I have called it the fifth element for specific reasons, and requires the understanding of connecting not only geometrical consideration under one umbrella( Felix Kleins Order of geometries- linked previous) and the unification of mind in the undertanding of enveloped bubble technology.

    I am open to corrections in my thinking

    Sol
     
  13. sol

    sol 0

    What Is Driving the Technology

    Spooky Action At a Distance

    This posted link is in answer to the "light of all things"(Einstein Mysticism) and its motivation based in our quest for?

    Planck Length measure, becomes the signal for Fuzzy language. Yet what is Fuzzy language and you learn to see the progression of the logic that is taking place.

    Venn Logic and Tranactional Analysis is specifc here on the direction we have to go in terms of soft computer language developement. This is based on the understanding of the Fifth Element containing all geometries. Enveloped in bubble technology.


    Venn Logic and Transactional Analysis

    Sol
     
  14. sol

    sol 0

  15. Back on track

    Programming has consistently evolved in a pyramid, with the previous "standard" code being used to construct the next generation. So it stands to reason that OOP will become the building blocks of the next language. I'm thinking along the longs of the internet, and the way everything is interlinked and cross referenced. I thought the referenced article in the TOP one, which references the weaknesses of hieraccacal tree structure weaknesses was a good indication of the way things are going. If standardization can become a universal term, then you will eliminate a huge duplication process which plaugues programming. Interoperability is the key word, I think. Fortunes are made by people do nothing more than create the code to help programs and databases communicate with each other. I'm not a programmer, but I've worked with, and known many programmers, and that is the greatest flaw. Too many proprietary programs which can't communicate because companies are so concerned with intellectual property rights and proprietorship.

    Personally, I'd like to see a programming interface similar to the type that we saw in that last tom cruise sci fi flick (can't think of the name). Just point(with your hand) and select, or verbal commands. This would speed the process up 500 times.

    Example.

    "computer, take subroutine alpha and insert to line 15."
    "computer access msdn july 2040 from the microsoft programmer database and extract basic verbal interface array. Add to line 73, then compile."

    I think this is very realistic scenario given Moore's law. Realtime verbal interface is only 10-15 years away- if that. It already has a rudimentary beginning. That's the way I see things headed.
     
  16. There will never be a standardized language, by virtue of Godel's incompleteness theorem, nor is it desireable - different languages evolve largely because they are the most suitable for the task at hand, and the abilities and prejudices of the programmers involved.
     
  17. Hurkyl

    Hurkyl 16,089
    Staff Emeritus
    Science Advisor
    Gold Member

    I don't see how Godel's incompleteness theorem applies. Also, it is certainly conceivable that a standardized language could be general enough to do any task.
     
  18. selfAdjoint

    selfAdjoint 8,147
    Staff Emeritus
    Gold Member

    John McCarthy has just asserted on s.p.r. that all programming languages are universal, that anything you can code in one you can code an emulation of in another. Grant the McCarthy is more knowledgable than I - he is sort of the AI opposite number to Professor Kaku - I find this hard to believe. Emulate machine language in COBOL?
     
  19. Nereid

    Nereid 4,014
    Staff Emeritus
    Science Advisor
    Gold Member

    I'm sure he'd be the first to admit that it wouldn't necessarily be easy, efficient, useful, or most other good adjectives. The 'all' seems rather sweeping though.
     
  20. I really don't think OO is where programming is headed. Let me speak generally: OO is fine for some things, but some things don't work well conceptually when you try to think of them as objects. The main benefit of OO is that it's supposed to be more in line with the way people think--but some things are conceptualized as processes, not objects. Hence procedural languages.

    Take Java, for instance. It's taken OO to the extreme (not to mention all the buzzwords and BiCapitalizedMumboJumbo). Not good.

    Also, there's yet to be a truly successful OO language. I mean, sure, you can talk about Java and C++ and even Objective C if you really want to, but nothing's really caught on that's been as well designed as C (or my personal favorite, lisp). The current object oriented languages are all, at best, implemented mediocrely. Java's too slow, C++ is just...C++. It can't replace C. If OO is going to redefine the future of computing (doubtful), it needs to replace C with a viable alternative, a standard. That's not happening. Java's probably already on its way out with the advent of C#. C++ isn't going to survive Java and C#. OO can't succeed until there's a really well implemented model.
     
  21. selfAdjoint

    selfAdjoint 8,147
    Staff Emeritus
    Gold Member

    My opinion - admittedly I've been away from the field a few years - is that OO got big because it could match the hierarchies of screens and windows in GUIs. All that inherritance built in was a boon to front end designers. But your point on process is very well taken, and OO has problems with saving and organizing its data "persistently", and the larger design issues get reduced to canned methodologies - it's hard to be original or creative above the simplest cases. But probably these criticisms are out of date.

    Here's a thought you might want to respond on, maybe the whole programming thing will go away the way kerosene headlamps did in cars. Currently it's being outsourced to Bangladesh, and in the near future, automated programming - long foreseen - may finally arrive. Of course that's Vinge's singularity again!
     
Know someone interested in this topic? Share this thead via email, Google+, Twitter, or Facebook

Have something to add?