Ninja IDE: written in Python for Pythonists
ninja-ide.org
ninja-ide.org
I gave it a whirl:
1. Snappy, which is nice, since PyCharm can be sluggish on my Mac 2. No VCS integration 3. By default very strict code checking is turned on, which turns my (functional) code into a sea of underlines, which is not so pretty
It looks to be an interesting start, but it will need VCS integration before it looks suitable as a PyCharm replacement.
I didn't look in detail at code completion/code assist, which PyCharm does very well.
Also various refactorings (both refactoring-refactorings and smaller rewriting which PyCharm/IntelliJ calls "intentions")
"GUI Interface" expands to "Graphical User Interface Interface."
Sorry, I could not help myself.
Also, all this discussion about grammar is useless noise which should've been taken privately in order not to interrupt the flow of ideas that might improve the software.
So, please, in the future redirect grammar nitpicking efforts to a more appropriate place like StackExchange's English Language and Usage [1].
> grammer or spelling nitpicks
grammar
http://youtu.be/xCqiOEXfZd4 http://youtu.be/auVJF44XSnM http://youtu.be/tA_BJBLdduQ
I won't say it's indispensable, but it is handy. I don't miss it outside of Netbeans though.
* Scrolling is way too slow. This isn't nitpicking, this is really very important to me
* I like PEP8 warnings and use them in other editors, but I don't like not being able to pick which style stuff I care about
* I don't like the PEP8 tooltips. They cover up my code and that's the worst possible place to put them. Even if I do plan to "fix" the issue, coming up over the code that I'm typing right now is never okay.
* It's really quite a lot of work through some confusing terminology to get a test run of the IDE going on an existing project. I don't want to move my code into your workspace. I don't want to import my existing project (that sounds scary)
* Some glaring bugs seem to indicate that this is more young than is indicated on the very flashy project site. For instance, if I try to import a project but cancel the "select a directory" popup, I inconsistently get it either removing my previous selection or crashing the whole IDE
(Seriously, check it out - KDevelop's Python plugin and Microsoft's PTVS are currently the two projects doing serious work on static analysis of Python for live editing purposes. Here's a nice subthread comparing the two: http://news.ycombinator.com/item?id=4725634)
And to become more markedly opinionated for a moment, it's also most likely why Gnome managed to catch on and get to a place where it could make some meaningful contributions to the space, despite always having run on arguably inferior technology: The US FOSS scene had a little bit more of an entrepreneurial spirit going (also due to the early decision for LGPL licensing - well, kdelibs was always LGPL as well, but Qt only went LGPL a few years ago, while GTK+ always was) and the US IT market is simply somewhat bigger as well. If KDE had put some more effort into growing US mindshare early on (like it has tried to in recent years by launching a second annual conference just for the US, Camp KDE) things might have gone differently.
The Ninja-IDE supports linux, windows, and osx so it has broader appeal.
Admittedly, a lot of the download size comes from additional dependencies, but still - I don't want to have to install all that when I use an entirely different WM, and there are alternative WM-independent solutions to begin with.
As for alternatives, I'm not aware of a Python IDE with comparable abilities for Linux (Wing probably comes closest, but is proprietary).
What has the potential for greater impact on your productivity - 320 MB of used disk space or a useful IDE?
A shame that it probably will be a bit tricky to get this running on OSX...
Maybe a good starting point is here: https://github.com/mxcl/homebrew/pull/8511
And it might be silly but I really loved the KDE's variable coloring. Example for those who don't know: http://www.kdevelop.org/sites/kdevelop.org/files/photos/Kdev... Basically every variable name is hashed and colored differently. Upside is that different variables have different colors in the code and the orientation was much easier/quicker. Downside is that you sometimes catch yourself renaming variable just to have a different color.
http://youtu.be/xCqiOEXfZd4 http://youtu.be/auVJF44XSnM http://youtu.be/tA_BJBLdduQ
I hope we can find the time to take care of some of the stuff mentioned here as videos, screenshots, user guide, etc.
It's a lot of work, but we are proud of what we can achieve with a free software project.
Thx everyone!
Also, changing the margin line doesn't seem to take effect unless you quit and restart the IDE.
I can't use it for more than 10 minutes without it crashing, which is a shame because it looks really nice.
/kidding
"Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is most important. But most importantly: know when to be inconsistent -- sometimes the style guide just doesn't apply."
From a usability perspective, your download button could be better. It doesn't download right away (which is fine), but redirects to downloads/win for me. Might be nice to have it auto-scroll to the win downloads since it took me a while to figure out what was going on.
Here's a screenshot from Win7 32-bit: http://i.imgur.com/2RT6u.png
That random pink line makes it unusable for me.
http://ninja-ide.org/downloads/
Thank you.
All in all it looks very nice, thanks for sharing.
I have a fairly large screen (27inch cinema display) and use Vim. 80 Character lines are perfect. They look nicer, are easy to read (in the same way books are easy to read when lines are not super long) and with vim can accommodate ~4 split windows side by side which is useful.
[1] http://desktoppub.about.com/cs/finetypography/ht/line_length...
0) Downloaded and installed it. For some reason the installer was in Spanish. Launched the IDE itself. Fortunately it was in English.
1) clicked file - new project, selected python, named it "test"
2) tried to type the project location, it wouldn't let me. Selected the project location via the "Examine..." button instead. (The filesystem browser launched in program files instead of my home folder.)
3) typed print("hello world") in __init__.py
4) hit F6 to run. This doesn't seem to do anything except pop up a save dialog. The only output I get is "Failed to start" with no further indication of what is wrong.
Chosing a "main file" in the project properties didn't seem to make any difference. I don't know how to make this thing execute code.
This happens to me basically in every IDE, with every language. I somehow got used to the fact that IDE requires some maintenance prior to working with it. I guess it shouldn't be the case but it is my (limited) experience.
Also, I think would be nice if there was a way to interact with the console after running a script. I realize this may be sort of an odd request, but it is very convenient when you're not quite sure on how you want to solve a problem, and you need to try out some solutions interactively. I greatly enjoy this in spyder, my current python ide of choice.
Back to Sublime!
Side note: Hope you use 4 spaces on new projects! :)
I've been looking forever for a text editor that does this and surprisingly few do.
Looks good though. I thought it was going to be YET ANOTHER ECLIPSE distribution, but apparently it's not. It seems to be pretty fast. Hope they fix the crashing issue on Lion soon.
The one feature I truly love in that IDE is "debug probe". Once you breakpoint (or hit an unhandled exception), you can walk up and down the call stack and evaluate arbitrary expressions in any frame. SO handy.
I'm a bit reluctant to download an app with so little information except from a sparse bit of text.
As a long time Emacs user this saddens me a lot.
I hope the group who agrees with me is cancelling out all the down-votes I got for expressing a valid & common opinion. :)
Many users do value a good cross-platform application.
PyDev seems to heavy to me when you need to write a standalone script and too buggy at evaluating module dependencies resulting in bad tooltips. Ipython notebook doesn't have this problem because you evaluate code as you develop, so tooltips come from object introspection.
It works out of the box and also supports javascript/html/css/... so is ideal for developing webapps with a python backend.
Ninja looks nice, but nothing I saw in the screencast makes me want to make the jump.
There is a big difference with PyDev/Aptana that is not apparent in the screencast: its lightweightness!
* it is a 1.3Mb download (vs 126Mb).
* startup time is ~2s (vs 30+ seconds)
* memory footprint is ~28Mb after startup (vs 400Mb)
Now I'll definitely try it.
Update: the memory quickly jumped to ~120Mb usage, hope it's not a memory leak.
Qt comes the closest, and it has all sorts of platform-specific hacks in it, some even visible at the API level.
If you're going to be writing something that's used as frequently and intensively as an IDE, then it had BETTER conform to the user interface guidelines of whatever OS it's running on. Those differ on Windows or Mac, and Linux doesn't really have any.
But GNOME definitely has them[1], and newer projects which have dedicated themselves to a really solid HIG are gaining a lot of traction[2].
[1] http://developer.gnome.org/hig-book/stable/ [2] http://elementaryos.org/docs/human-interface-guidelines
I guess the issue comes down to more people needing to _care_ about them :)
IDEs are mostly just big rectangles full of text, which are eminently platform independant. Developers are special in that that we are very used to staring at terminals and logs, and are very accustomed to work with colored but unformatted text. Also, workflows tend to be very similar, across platforms and environments.
So that leaves us with not much reason for platform dependance, and thus Eclipse, Emacs/Vim/etc., and terminals. Even Visual Studio sports many things, but a native look is not among them. I guess XCode is the only really platform-dependant IDE I know. All the others could just as well run on different platforms or even do so.
So, umm, I respectfully disagree.