A place to kick around dreamy ideas for (integrated) (software) development (environments). ---- The IDE might train a neural net (or otherwise "smart" engine) with all code it has ever seen. With this database it might automatically * make educated suggestions about identifiers (package, class, method, variable names...) ** Emacs already does this. * suggest code templates based on alike methods in alike contexts * suggest call parameters for method invocations * point out existing methods/classes, that do the same/alike as the current method/class. To do so it would use the complete syntax tree and remember common features. It would also need some measure of alikeness of parts in the syntax tree, e.g. * how alike two identifiers of the same kind are (e.g. loadCar() is like load_car()). * how alike two structures are (e.g. { int f, char g } is like { char g, int f }). * how alike two types are (e.g. long is like int). * how alike two methods are (e.g. considering loop nesting). To gather this information the IDE might provide this feature to its users only under the condition, that they allow the IDE to periodically upload extracts of their code (i.e. the neural net weights) to a central server, where everybody else may download the latest base. -- GunnarZarncke ---- Find good software engineers... 1.Automate the SimplestThing they do 2.Repeat ---- An IDE which applies the parsed symbol table, object code, and executable as markup layers on top of the source code. Modifying a variable name directly in the symbol table would then refactor the source, instantly. Changing the object layer would allow refactoring of a While loop into a Repeat loop, etc. -- MikeWarot I think this latter idea corresponds to IntentionalProgramming, or? In a way a good RefactoringBrowser does this already (e.g. EclipseIde). ---- See ExperimentalLanguageIdeas