About IDE's that check the syntax and format the code, the first IDE is the one invented for QBasic, I'm sure all QuickBasic's since version 4.0 (if was before 1990 I think) have it, even now all Visual Basic's does.
About the IDE that would be able to hide and then show structures and comments, it is possible, microsoft .NET IDE has it, I think C++BuilderX also. Even a general purpose note pade from KDE has it (KWrite & Kate). And all those editors use textfiles (maybe except .NET).
Code in database like file?, not a problem, it exists already, PowerBuilder has it. PowerDynamo (a web server) goes even fother, it has the entire web site in a database.
XML is a great invention, the best non-relational data storage method since INI files. Ofcourse, since it is in text format, there a two basic ways to handle them:
- Directly on a file (if it is possible, but I can't image that code)
- Tranlate the text file into data structures stored in memory
Since I don't think someone whould try the first method I will talk about the other.
I already used XML to store some data in it. It is a great method, much beter than any other config file I saw. But it have a great problem, Imagine the memory usage for a 1MB XML file, and imagine that you need to load a few of them.
When I was making my first compiler I used a database aproach, it was easyer to parse only the code of a function than code + all declarations of functions, data and structures. I must say that if was fun, but I'm not a good enoth GUI programmer to make a good IDE with suyntax highlighting so I've stoped the project.
Some times ago I wanted to make a strange interpreter that could be used for some diferant uses like for www. It should be executed asynchronusly on diferant machines to not use the entire PC's ressources.
The language was not important form me, I prefered to make the interpreter, so I've decided to use XML for example:
<loop type="for" counter="i" while="i<1024" count="i++">
<call func="create-thread" sync="true">
<parm type="func">ThreadCode</parm>
<parm type="int">CTHREAD_NO_DELAY</parm>
<return type="int">$ht</return>
</call>
<call func="echo-thread-state-string" sync="false">
<parm type="int">$ht</parm>
</call>
</loop>
You said about translating a programming language to an other language? So now imaging how many help files you would need. A simple internet tutorial would need to be translated to each variant. There is only one language that is translated like that (I think), it is MS Excel's code. For example:
In english:
IF, COUNT, ..
In polish
JEŚLI, SUMA, ....
And it is made like this for users that only know one language.
If this days, one language is not enoth. I know my native language Polish, and foreing French and English. I was also learing Spanish and German (not counting Latin).
In poland all high schools teach AT LEAST one foreing language, witch is mostly English, but also German, French, Spanish, Italian and Russian.
When you learn a programing language, it is like learning a real language, except you don't talk that language.
So what I propose to you is:
- Learn english,german or french, most programming sites are in those languages
- Continue the work on a new source code file format (who knows, maybe one day we will all use it?)
- If you still have problems with internet pages in other languages, write a good translator