proj-oot-old-150618-ootIdeNotes1

table 5 of On the Syllogistic Structure of Object-Oriented Programming has a list of queries on OOP stuff that an IDE maybe should be able to answer: http://www.softlab.ntua.gr/~kkontog/publications/conferences/C5-2001.pdf

---

C#'s #region defines places for the IDE to allow to expand or hide

--

voidr 19 hours ago

link

You won't have good IDE support.

You won't be able to directly debug your code.

Also it can be really fun to reason about nested macros.

reply

--

(re: macros:)

Dewie 1 day ago

link

I think things like syntactic sugar is perfectly fine, as long as I can desugar it in a straightforward way. I want to be able to programmatically desugar some piece of code, not have to Google it each time I am curious.

--

A great example is the IPython notebook. The notebook doesn’t make Python better than other languages—it makes all languages better.

http://nbviewer.ipython.org/url/beowulf.csail.mit.edu/18.337/fractals.ipynb

http://gibiansky.github.io/IHaskell/demo.html

http://nbviewer.ipython.org/github/minad/iruby/blob/master/IRuby-Example.ipynb

--

bch 3 days ago

link

What are the first-class IDE-style features you want?

reply

millstone 2 days ago

link

I am not the person to whom you replied, but the feature I use most often in Xcode is Go To Definition (with command-click). This integrates with clang, so it knows how to navigate templates, overloads, etc. It also integrates with the build system, so it knows the correct header search paths, preprocessor macros, etc.

I imagine there are some plugins available for vi and emacs that try to provide these features, but I would guess they require some configuration and won't work as reliably.

---

IDE: for any given symbol, where was that symbol defined? for dynamically defined, needs runtime support too

---

" other code that can be very difficult to find. What is the type of that function? Is it a method of a class? If so, where is that class defined, and where is the instance defined? You can't necessarily find that out very easily from just the imports in the current module, or possibly not even with the imports together with the build-depends: field in the cabal file.

Even parametric polymorphism has a cost to semantic clarity. What are the types of the arguments of this function? "

---

http://android-developers.blogspot.com/2014/12/android-studio-10.html

built on IntelliJ? IDEA (Community Edition) Java IDE

---

more details on grok:

renamed to Kythe

https://plus.google.com/115849739354666812574/posts/WUgoSr8VVsq summary: this is a rant against the cloud-based nature of at-that-time Grok. Mentioned some other related systems and features:

desired features:

links:

'similar projects' from wikipedia:

another blog post with lists of similar projects (todo take notes on this; i think i read it years ago already tho):

---

http://pchiusano.github.io/2015-03-17/unison-update5.html#technical-note-avoiding-the-need-for-impredicative-instantiation-when-searching-for-functions notes that we probably need API functions for things like "tell me all possible supertypes of type X that could go at position Y in the code" with modifiers "exactly", "without false positives, but with false negatives" and "without false negatives, but with false positives", and the modifier "out of the following universe of types: ..."

--

"

Execution tracing

The new execution tracer collects data to produce diagrams of process execution.

Front end is the Android/Chrome trace-viewer. (github.com/google/trace-viewer)

golang.org/s/go15trace

Analysis and Refactoring Tools

We have been working on tools for analyzing and manipulating Go source code.

Analysis tools:

    oracle: a tool for answering questions about Go source code (w/ plugins for Sublime Text and Emacs).
    callgraph: display the call graph of a Go program.
    godoc -analysis=pointer: see pointer analysis details in godoc.

Refactoring tools:

    eg: a template-based refactoring tool
    gorename: type-safe renaming of identifiers in Go source code.

" -- http://talks.golang.org/2015/state-of-go-may.slide#17