top | item 4837758

Ninja IDE: written in Python for Pythonists

234 points| mmariani | 13 years ago |ninja-ide.org | reply

132 comments

order
[+] kghose|13 years ago|reply
It is FOSS (GPLv3). The license information was a wee bit hard to find (Wayyy down on the about page http://ninja-ide.org/about/) and I first thought it was some frankenstein freemuim product where you had to apply for a free license if you were an OSS devel (like PyCharm) etc. etc.

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.

[+] vvpan|13 years ago|reply
I would rather have developers work on the IDE than make yet another GUI interface for Git. You have the command line for that.
[+] masklinn|13 years ago|reply
> 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")

[+] fmoralesc|13 years ago|reply
It has bazaar and git plugins (check the Addins menu).
[+] ishbits|13 years ago|reply
I'm not sure why, but I've never used the VCS integration in an IDE.
[+] nakkiel|13 years ago|reply
There are plugins that add support for bzr and git.
[+] ketralnis|13 years ago|reply
I realise these are at first blush, but:

* 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

[+] sho_hn|13 years ago|reply
Can someone explain to me why this is at the top of the front page despite a website devoid of useful detail, while this completely fails to catch on: http://scummos.blogspot.de/2012/11/kdev-python-14-stable-rel...

(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)

[+] khill|13 years ago|reply
Perhaps because not everyone is doing development on KDE?

The Ninja-IDE supports linux, windows, and osx so it has broader appeal.

[+] streptomycin|13 years ago|reply
I'd guess it's due to KDE's general lack of popularity. Typically, nothing done under the KDE umbrella gets noticed.
[+] rplnt|13 years ago|reply
I had no luck with Python under KDevelop (tried it something over a year ago). It worked, but not really as an IDE. I liked it for C though, maybe it would be worth trying it again.

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.

[+] milliams|13 years ago|reply
Indeed. I tried out Ninja about 6 months ago. While it was very nice I found it just didn't compare to KDevelop in terms of features and ease of use (admittedly I am also using to KDevelop for C++ work).
[+] unohoo|13 years ago|reply
What would really help is a small demo video just to get a whiff of what the IDE feels like. The description and screenshots are somehow not enough for me to download and install an entire IDE and take a test drive. If there is a demo video somewhere, my apologies - I was not able to find it.
[+] gatox|13 years ago|reply
Hello, I'm part of the NINJA-IDE Team, and first to all, I would like to thank everyone for the feedback (good ones, as much as bad). Currently we are working to make NINJA-IDE compatible with Python3 (among other features) and taking care of several issues to ensure better stability (and guide the development process with tests).

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!

[+] kstenerud|13 years ago|reply
Pretty cool all around, but it needs a lot more stability work. It crashed a few times just scrolling around in some of my python projects, and there are quirks such as complaining "This font can not be used in this editor" if I open the font selector and then click "Cancel".

Also, changing the margin line doesn't seem to take effect unless you quit and restart the IDE.

[+] kstenerud|13 years ago|reply
After a few hours use I'll definitely say the robustness is not there :(

I can't use it for more than 10 minutes without it crashing, which is a shame because it looks really nice.

[+] jra101|13 years ago|reply
Would be nice to be able to selectively disable some PEP 8 rules in the style checker. I don't care about lines longer than 80 characters and I don't like separating functions by two empty lines.
[+] Derbasti|13 years ago|reply
But, PEP8, man. It's the LAW!

/kidding

[+] hoka|13 years ago|reply
I'll definitely give it a shot.

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.

[+] zlapper|13 years ago|reply
As others have already mentioned, PEP8 validation is enable by default, which is a little excessive in my opinion (specially with the line < 80 chars rule). It would be great to be able to disable individual rules, a la Ecliplse/Netbeans.

All in all it looks very nice, thanks for sharing.

[+] mikle|13 years ago|reply
I think that we as an industry need to drop the 80 char per line rule.
[+] mikle|13 years ago|reply
I hate to be that guy, but after almost a decade doing Python one thing I learned is that we prefer Pythonista, not Pythonist.
[+] buster|13 years ago|reply
Wow.. how did this not make it to HN before? Already version 2.1.1 and never heard of it?
[+] nirvanatikku|13 years ago|reply
Crashed while scrolling =( Was curious, but can't see myself moving away from PyCharm/Sublime.
[+] recuter|13 years ago|reply
Something something second system syndrome, just use vim/emacs/sublime. 'etc.
[+] rxc178|13 years ago|reply
This is nice, but one quick question, why's the windows installer in spanish?
[+] briancurtin|13 years ago|reply
Most (all?) of the team is based in Argentina. I'll bring it up to one of the devs (a coworker).
[+] gatox|13 years ago|reply
Yes, as Brian mentioned, most of the team is from argentina, as the windows packager, we already take care of that for the next release.
[+] jlujan|13 years ago|reply
On mountain lion, it requires X11. Not sure why as my PyQT apps do not.
[+] wcoenen|13 years ago|reply
My experience when I tried it on Windows 7:

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.

[+] rplnt|13 years ago|reply
> 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.

[+] yuvadam|13 years ago|reply
Don't know about the IDE but that font is horrendous.
[+] jotaass|13 years ago|reply
Just tried it. Looks nice but a bit lacking on the code completion, i think. Maybe I need to give it another chance.

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.

[+] azinman2|13 years ago|reply
Tried it out on existing code. Was complaining that spacing wasn't a multiple of 4, when I set it to 2 spaces in the prefs. I even reloaded it and verified the setting.

Back to Sublime!

[+] adamrt|13 years ago|reply
I don't use this editor but I can almost guarantee that its actually pep8 complaining about spaces. Not that this solves your problem but there is a disconnect between editor configuration and pep8.

Side note: Hope you use 4 spaces on new projects! :)