Hi guys,I think it might be worth keeping IDE separate. Let me introduce the possibility of 'development frameworks' to explain why. (I am using the term in a way inspired by a look at how Processing insulates users from Java.
Node classes, NodeProxy, Patterns, Crucial, etc all encapsulate approaches that can be thought of as different dialects within SC3. This is fatastically expressive, but confusing for beginners. In classes, I have experimented with writing little frameworks that introduce a specific library. These are essentially a set of buttons that autogenerate bits of code (Patterns friendly SynthDefs, for example) or GUI's (for NodeProxy) or lists of options of various sorts.
Anyway, such frameworks are inherently IDE-specific but are also distinct from Document. Perhaps Document (combined with the application menus) comprises a default development framework. Perhaps contextual menus would be a way to improve these frameworks and allow user-defined menu items
without chaos in the basic UI. Anyway, all of that might suggest keeping the IDE separate RJKPS: A sidebar: Document should probably grow some additional formatting methods. Copying and pasting from elsewhere, Documents can suddenly have different line sizes, etc.
@bham.ac.uk>:
This is interesting, but it seems to me that there may well be IDE related stuff that doesn't really have anything to do with Document. An IDE class orsomething like that might be more appropriate in that case.OK: for example the Cocoa help menu thing is IDE-specific, it only runs on SC.app, and we don't really think of it as being a documenty feature. But the very nature of Document is tied to the IDE - the document is a feature of the IDE, and can't be separated from it - which is why I wonder if a separate class would actually be superfluous. Grateful for further thoughts on this.I think we need to sit down and have a detailed look at what functionality belongs to Platform, to IDEs, and what might be shared, and then come up with a strategy which creates the fewest foreseeable maintenance hassles. Ithink Ron suggested doing this at the Symposium?Yes, and it will be good to talk about these at the symposium. But it would be helpful to get something in place for 3.3, in particular to get psycollider working nicely!A related issue is the question of to what extent we can or should takeevery available Platform + IDE combination into account when makingdevelopment decisions. Currently we tend to think of SC.app, scel, and PsyCollider, and not really worry about anything else. That may be the pragmatic choice in the current context, but that may change as time goeson. Worth considering...Agreed. Although most people don't even think about scel or psyco ;) I'd like to see sc-eclipse become a nice option even for non-eclipse-heads. That requires a good slimmed-down eclipse bundle, but also good handling of Document functionality etc. DanOn 26 Dec 2008, at 13:06, Dan Stowell wrote:Hi -There's been some discussion about cross-platform-ness. Specifically,the primary home for crossplatform awareness is the Platform class (osx/windows/linux) but there's been some concern because now the choice of IDE (cocoa/emacs/vim/eclipse/psyco) is more and more independent of platform choice. Someone suggested we should create a new "IDE" class or some such, to encapsulate this knowledge. I just noticed that Document already is the home of IDE awareness.Document.implementationClass tells us if we're using CocoaDocument orScelDocument. I've added a rudimentary PsycolliderDocument class. We could create an EclipseDocument class and a VimDocument class (eventually, these classes will do useful things).So we could make the Document class do similar things as the Platformclass, e.g. the rather nice Platform:case functionality. At its most basic this would look like... *case { | ... cases | ^implementationClass.name.switch(*cases) } ...and would give us a syntax like... Document.case( \CocoaDocument, { "I like SuperCollider.app best".postln }, \ScelDocument, { "I like emacs best".postln } );...but that syntax is a little graceless, so maybe better would be toadd a class variable "ide" to each Document subclass with a nicervalue such as \cocoa, \emacs, \psycollider, \eclipse. The syntax wouldlook more like Document.case( \cocoa, { "I like SuperCollider.app best".postln }, \emacs, { "I like emacs best".postln }, \eclipse, { "Real coders use eclipse".postln } );There are a couple of things in the class library that already need toaccount for choice of IDE. This would streamline that business IMHO.I propose to commit this added functionality to Document and subclasses. Let me know if there's something I haven't accounted for... (I bet thereis...) Dan -- http://www.mcld.co.uk _______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: https://listarc.bham.ac.uk/marchives/sc-dev/ search: https://listarc.bham.ac.uk/lists/sc-dev/search/_______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: https://listarc.bham.ac.uk/marchives/sc-dev/ search: https://listarc.bham.ac.uk/lists/sc-dev/search/-- http://www.mcld.co.uk _______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: https://listarc.bham.ac.uk/marchives/sc-dev/ search: https://listarc.bham.ac.uk/lists/sc-dev/search/
_______________________________________________ sc-dev mailing list info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml archive: https://listarc.bham.ac.uk/marchives/sc-dev/ search: https://listarc.bham.ac.uk/lists/sc-dev/search/