WhyNot?

Smarter Programming

Category: Software
Responses: 5 (5 in support, 0 neutral, 0 in opposition)
Number of views: 914
Tracking: Track this idea
Community Rating:Strong StrongYour Rating:

(It's been a while since I've used programming interfaces, so bear with me if these ideas have already been implemented.)

Programmers are certainly a hardy bunch, having to deal with hundreds or thousands of lines of text. I feel that there are plenty of ways to make working with code a lot simpler. While a program using these ideas can work with the code on a fundamental basis, the coder can interact with it much like someone uses an HTML editor, word processor, or diagram:

- Tree interface: By imagining functions and other blocks as collapsible elements, the overall structure of a program may more easily be discerned.

- Displacing comments: If we can give comments a different color, we can also treat them as bonafide annotations, with differing levels (such as permanent comments or temporary observations) with tools to conceal, reveal, or remove them as needed.

- Metadata: Instead of clunky comment boxes adjoining functions, important details can be entered into a customizable form, which in turn can be standardized for education or style purposes.

- Other Document Object Model considerations: Functions and variables can be linked to their first declaration, important (marked) instances, or other relative instances.

- Diagram view: On-the-fly diagrams can be constructed, showing the relationships between variables, the functions that alter them, and the working of the program as a whole.

I'm sure other inspirations can be found in how we interact with spreadsheets, databases, and other means.

nayhem, Sep 11 2006

What do you think of this idea or comment?
(You can change your vote at any time)

agree I agree no opinion No opinion disagree I disagree

Users who liked this idea also liked:

Other ideas in category (Software):

Salty encryption (1 votes) Average
mute a web page (11 votes) Strong
Distributed set with bittorren (1 votes) Average
Text VoIP (1 votes) Average
Economics Simulation (9 votes) Strong
Invention Management Software (3 votes) Average
Attachment Notation (137 votes) Very strong
Fight Recognition Software (3 votes) Average
Make Photo Slideshow yourself (2 votes) Average
Studying leaf patterns (3 votes) Average
Encryption (3 votes) Weak
Searching for images (6 votes) Average
Compiler Security Optimization (4 votes) Average
Vector Datatype (3 votes) Weak
LIP-C (1 votes) Average
Spell checker collector (2 votes) Average
Cascading search (3 votes) Average
Software Formula for 2000 Years (3 votes) Weak
Triangular Pixels (4 votes) Average
Forwarding sent email message (5 votes) Average
Organise the Start menu (6 votes) Average
Simple Shared Key Setup (1 votes) Average
DDR-style piano software (4 votes) Average
root means suid (2 votes) Average
Scorchware (2 votes) Average
Six Degrees of Computation (2 votes) Average
X-drive ==> 2 physical drives (3 votes) Average
Fast parallel secure hashing (1 votes) Average
Standardized EULA (2 votes) Average
Description field for email (3 votes) Average
Honeypot feedback/automation (1 votes) Average
Audio bass and treble (3 votes) Average
Extension that highlights tags (1 votes) Average
Upper-lower case (2 votes) Average
New image file format (2 votes) Average
dual scroll bars (6 votes) Average
Tabbed Working (3 votes) Average
Temporary file highlight (5 votes) Strong
Better Search Engine Links (2 votes) Average
Smarter Programming (5 votes) Strong
Linux Distro for Business (2 votes) Average
File multiple rev eliminator (3 votes) Average
Mech. Design Software (2 votes) Average
Checking email addresses (3 votes) Average
Why Powerpoint? Be nonlinear (6 votes) Strong
Chat with iTunes Listeners (3 votes) Average
Ebay database (2 votes) Average
Encrypts the whole OS (2 votes) Average
Wind offset for car (3 votes) Weak
Collaborative License Rating (4 votes) Average
Multiscopic image modeler (2 votes) Average
Simple fix for posting here (1 votes) Average
Torrent-based podcasting (2 votes) Average
Browser Preloads Next Page (4 votes) Average
Officepets (3 votes) Average
Self Authentication & Decryptn (1 votes) Average
Ductile disk encryption (2 votes) Average
Printing Cost per Page (2 votes) Average
Community Font Classification (1 votes) Average
Ubiquitous virtual honeypots (7 votes) Strong
MS Outlook spouses (1 votes) Average
MS Outlook Contacts updates (1 votes) Average
One card for the wallet (12 votes) Strong
Camera as A4 Scanner (6 votes) Strong
Ogg/PCM (3 votes) Average
Keyboard equivalents (1 votes) Average
OS for visually impaired (4 votes) Average
Window Size Limiter (1 votes) Average
Print Police (1 votes) Average
MS Outlook Highlighter (1 votes) Average
Eye-Tracking Video Drivers (2 votes) Average
Linipedea (3 votes) Weak
MS Word Bookmarks & Summaries (3 votes) Average
anti-virus T-cells (2 votes) Average
savable scroll bars (2 votes) Average
save changes dialog options (3 votes) Average
Viral Marketing in Open Source (7 votes) Weak
Microsoft CD Bug Fixes (4 votes) Average
Virtual Scanner Software (5 votes) Average
Better Shrink Wrapped License (3 votes) Average
Bayesian learning for (4 votes) Average
enclosures (2 votes) Average
Chat Prog & Problem Solving (2 votes) Average
Comments from other members:

Add your comment

This is a good idea. Sounds as if you have given this considerable thought. The question is how do you find the resources to implement it?

bkeene12, Sep 11 2006

In my eye, this is just a more advanced coding enviroment. Rather good, IMO.

classicsat, Sep 12 2006

Kinda weird how programmers themselves don't seem to have examined ways to improve their coding.

nayhem, Sep 22 2006

I have always imagined VISUAL PROGRAMMING (not Visual Basic) you drag and drop concepts and variables and procedures into a "system" and the system represents its state of memory usage and speed with which it will work..

marun, Sep 22 2006

Regarding tree interface. See Graphical Programming Language This seems like it is related. The sequencing of logic is compartmentalized into graphical blocks and the user connects blocks together to obtain a function without having to write any code.

I would like to choose comment types that would allow me to automatically create a report to help explain in English the flow and intent of the functions and code created. How much better would C++ classes be if there were inherited documentation embedded in all code. The software engineer could annotate his concerns for being compatible with other code and document their assumptions as work progresses. In the end, a report can automatically be generated that spells out the assumptions, hooks, and flow of the code.

I've done programming and worked with programmers. I was in computer science as a major. Most of the things you suggest are already implmented by modern IDEs such as Visual Studio and Eclipse. You have tree views, syntax/comment highlighting and coloring, metadata, page folding, documentation generators, etc.

I have to take the HTML editor as an example here, as a great example of why we do not go after graphical programming interfaces.

Nobody who is a true professional web developer or designer uses Frontpage, Dreamweaver, or any other similar package. Art students and the like use Frontpage and Dreamweaver for conceptual webpages, where learning HTML, CSS, PHP, and SQL would get in the way of their overall vision. It doesn't allow the level of sophisication that you can get by manipulating raw text. Programmers work with text because it's much, much faster than development with visual tools. That's one of the reasons linux is popular with both engineers and progrgammers alike - it has a very robust, fast, and flexible text interface.

Visual tools (not visual analysis, there is a difference), in many ways, are a lot like swiss army knives. They don't do any one thing particularly well, but allow the layperson to do rudimentary tasks they would otherwise be unable to accomplish.

Take Microsoft Word and PageMaker. They allow relatively unskilled persons to create documents and publications: edit basic formatting, insert tables and grapics, etc. What is used for scientific journals and the like? LaTeX, a true typesetting language. A text language, edited by typesetting professionals who want fine grain control over what is going on and don't want to screw around with dialog boxes to find what they want.

Even though you have all these fancy tools, with great GUIs, people are still firing up a text editor and writing in old languages for advanced projects like newsletters, magazines, etc. Why? Because the old tool works better.

If you can come up with a graphical tool that gives you the absolute fine-grain control that text languages give while maintaining the same speed, kudos.

It just hasn't been done yet, and nothing in the pipeline looks like it will, either.

toastydeath, Nov 01 2006

Try to use Visual Studio Enviroment.

Bogdan, Nov 13 2006