Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is source code text-only?

All my life I have used text-based source code editors. I can't believe we're all still doing this! There must be a better way.

I don't mean that I want to use a WYSIWYG-editor, I usually hate those, since they don't exactly produce what you want.

No, I mean a text-based source-code editor that is greatly enhanced by the following extra's:

  • include pictures, excel-data, pdf's, etc. INSIDE the source code, to explain certain data-structures, to include (mockup) screenshots of what the client actually wants, etc. Of course with the option to minify/hide/fold these things. (the advantage of this as opposed to separate file, is clear, you want to store this information together WITH your source code)

  • comments not as text, but more like post-it-like items, that are resizable, moveable, clickable, etc.

  • Class definitions and instances not as text, but as clickable object-boxes, maybe even with an icon to quickly see in the source code which class an object is).

  • operators that are now 2 characters as 1 symbol. For example: -> in PHP as a real arrow.

  • possibility to use colors, different text sizes and other layout tools inside the source code (i'm not talking about automatic syntax coloring, sometimes it can be handy to emphasize certain blocks of text by using a layout tools as you do in Word)

  • include separate files inside a different file, but still be able to edit/view those as if it were 1 file (comparable to Adobe Illustrator where you can place separate files inside a document, but still be able to edit them).

I know a lot of hardcore programmers are appalled by these kind of things, but they can still edit the way they want, I just think it would be neat to have those extra possibilities. Why on earth is source code STILL only text, where so many other types of documents are much more complex?

Does anyone know of any source code editor that has some of these features??

like image 836
Dylan Avatar asked Nov 14 '11 14:11

Dylan


People also ask

What is difference between source code and object code?

Source code is generally understood to mean programming statements that are created by a programmer with a text editor or a visual programming tool and then saved in a file. Object code generally refers to the output, a compiled file, which is produced when the Source Code is compiled with a C compiler.

How do you write source code?

To write a source code, all you really need is a simple text editor - like the Notepad on Windows or TextEdit on Mac. This way, source code can be saved as plain text (e.g. in ASCII coding or with UTF-8 encoding) with the correct file name ending for the programming language. So if you find a file with the ending “.


1 Answers

There have been attempts to make visual development tools in the past - but the problem is that computers need very precise statements in a formal language in order to fully meet a specific requirement of a user.

In fact, if you write down a requirement and then read it with different emphasis you will see that it is very hard to write an unambiguous statement.

This example is from Software Craftsmanship: The New Imperative by Pete McBreen (978-0201733860).

Mary had a little lamb - the lamb belongs to Mary and not anybody else

Mary had a little lamb - she no longer has it

Mary had a little lamb - there was only one

Mary had a little lamb - it was exceptionally small

Mary had a little lamb - everybody else ate chicken

This is why we need a language that requires us to be more explicit that natural language requires and why visual aids to development are not useful.

For example, being to annotate code with a "post-it" is less useful that writing clean readable code that is easy for other people to read. In fact, sharing code with other developers means changing text size and colour would require other developers to suffer your personal style, which is not cool.

Some of the ideas you mention are actually available now. Being able to view a class diagram and navigate to the code by clicking on the class "boxes" is a feature of Visual Studio - as is organisation of multiple files behind a single file in the tree view.

like image 102
Fenton Avatar answered Sep 29 '22 06:09

Fenton