Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I program a lot of Python using PyCharm, and one of my favorite features of this combination of language and IDE is how easy it is to hop into the source of your dependencies. Anything you have imported into your code you can bring up the context menu for and click "go to declaration" (or use the relevant keyboard shortcut).

Python dependencies are source code, not compiled blobs, and the import syntax makes it very explicit where definitions come from.

If I'm unsure how to do something with the library I usually look at the source of the relevant module before looking up online docs.



I think the ease with which your IDE lets you get and debug into the source code of your dependencies (assuming your language lets you do this) is definitely something I overlooked in my earlier development career as pivotal to better understanding not only the dependencies, but how to think about software from other peoples' POV, which when done often enough gives you a better intuition for where and why different bugs manifest. JetBrains indeed makes some awesome products.


Java, Maven and Netbeans is almost as easy but since dependencies are compiled I have to click one more time, -download sources- and there I have it.


Eclipse will automatically attempt to download sources from Maven when you jump into a dependency.


I suspected it was easy in eclipse as well and should possibly have mentioned that.

That said let me add that IntelliJ probably has similar systems.


If you don't have the source, IntelliJ will decompile the binary and I must say it does a terrific job.

It also handles downloads via Maven, but I have only done it only once and don't remember the details.


This is why I love C++ and C even though you cant find the source you can read the headers.


What programs or libraries are these for which you can't find the source but have the headers available to read?


All proprietary third party libraries which one might depend on. And depending on the domain that could be at lot.


Anything proprietary? Trivial example: Windows or MacOS system headers.


Doh! Of course. Being on Linux almost all the time has given me tunnel vision.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: