JetBrains releases open-source Python IDE
jetbrains.com
jetbrains.com
Intellij just as a much more intuitive UI and layout. Eclipse is fine if you're used to it, but it's much more dissociative by design when switching languages or usages than Intellij.
The top image[1] at the Slant programming font rank list[2] was a screenshot I took of Liberation Mono when using Intellij on Windows, just to give an example. I miss having bitmap fonts (which Eclipse does allow), but Liberation looks close enough to my favorite bitmap font (Dina), that I don't mind anymore.
[1] http://img59.imageshack.us/img59/3066/pythono.jpg (anti-aliasing was set to off when that was taken; italics suffer, but it's tolerable to me)
[2] http://www.slant.co/topics/67/viewpoints/26/~what-are-the-be...
(e.g. Console.Write("blah blah "); )
It could be because I'm using resharper, but just curious what the feature is you mention.
Hitting the literal key that closes the completion (e.g. " or ) ) jumps out of the quote without adding another ) or " though.
see http://www.jetbrains.org/display/IJOS/Home and https://github.com/JetBrains/intellij-community
Incredible!
Community Edition FREE
Lightweight IDE for Python development only
Free, open-source, Apache 2 license
Intelligent Editor, Debugger, Refactorings, Inspections, VCS integration
Project Navigation, Testing support, Customizable UI, Vim key bindings
I recently started trying to learn some basic C/C++. My usual initial step in setting up an environment for a new language is to google "intellij plugin for X", so I was very disappointed to find that C/C++ is very poorly supported with respect to most other mainstream languages.
I ended up having to go with Visual Studio, which is also impressive, but there are features I miss coming from the Jetbrains world.
Visual Studio + ReSharper is awesome for C#, IntelliJ is awesome for Java. For C++ you're pretty much screwed.
Additionally, they have an interesting blog post here describing whether they are an IDE or editor here:
http://blog.slickedit.com/2007/08/editor-or-ide/
tl;dr SlickEdit has no built in compiler or debugger. It's other IDE level support is fantastic though and it was perfect for embedded development work where you're building from the command line (Which you can connect to the SlickEdit Project) and debugging using GDB.
I assume you know of the 'External Build System' project-level support.
from a quick search: http://meandmark.com/blog/2011/10/using-makefiles-in-xcode-4...
"The IDE will be integrated with Clang Analyzer, so that more than 2000 code inspections and error diagnostics results from Clang compiler would be shown right in the editor. Of course, you also would be able to review them in a bulk mode."
I use QT Creator for C++ authoring today primarily because of the Clang integration. Pretty excited to see it well-implemented by JetBrains.
I m constantly amazed at the quality and integration IDEA has for everything - from google appengine, gwt, spring/javascript/css/html, to heaps of templating languages…the list is endless….
I've been using the JetBrains screencasts[2] to get up to speed with the IDEs features. Although these are too thin on the ground currently and i confess that i keep getting distracted by the JavaScript / AngularJS videos! The presenter on those i find draws me in more. Some of the PyCharm videos don't even have narration.
I have explored the Flask integration which was better than i expected but not life changing for me.
VirtualEnv integration is well enough, but PyCharm <--> command line <--> virtualenv integration is not ideal yet. Getting virtualenvwrapper and PyCharm playing nicely together was more work than i anticipated. PyCharm doesn't make it easy to be notified about newly created virtualenvs.
I feel all the default templates for modules and test files are not ideal for me, i ended up replacing them with my own templates. The only reason this even registers with me is because some less experienced Python developers persevere with the default PyCharm templates and end up with __author__ and other cruft in their modules.
The internal jetbrains supplied static validation (Pep8 / PyLint) functionality doesn't appear to be vanilla pep8 / pylint. This is only a minor issue but i don't like that there are potential violations i don't see until i've pushed to Jenkins and viewed the reports there.
I intend to push further with PyCharm, i'm open to the idea that there's productivity benefits to be had with python from an IDE that are not available to me in vim - although i strongly advocate the JEDI plugin with VIM, it's leaps and bounds over the old ROPE system IMO!
I missed footnotes for JEDI too https://github.com/davidhalter/jedi
In my experience they're always missing a crucial motion or two and it just becomes counter productive for me to keep stumbling into the missing command. I think it's the curse of vim, we all use different subsets of its abilities!
Another factor is the vim layer tends to be incomplete in terms of functionality exposed by the host application. ST2's Vintage mode (which i did play with) is a good example of this problem.
EDIT: brain fart
also emacs's evil mode has come a long way.
JetBrains products have awesome personalization capabilities.
It's a completely separate system (which also supports quick fixes and suggestions). PyCharm has built-in support for running pep8.py (though not pylint apparently, you'll have to do that yourself)
Do you have a write-up on how you are doing this?
I'm sure I could assemble a tool chain that does 90% of what I love about PyCharm in vi, but I'm a-OK with having my company pay $200 to have someone assemble that for me (or $100, if they didn't pay for it). In the same way that some people - but not me and my Lenovo - will pay extra for a shiny metal computer that just works, I'll pay extra for an IDE that gets out of the way when it should, and gets in the way it needs to.
http://download.jetbrains.com/python/pycharm-community-3.0.t...
(I'm the author of the last comment in your linked thread). The idea is to take a font and modify it by stripping all the hinting info.
Java, Scala, Groovy, Clojure, XML, XSD, DTD and Regular Expressions.
So unfortunately not. They do offer free open source project licenses though if you're working on an opensource project, or even 50% off of commercial licenses to startups.
http://www.jetbrains.com/idea/features/editions_comparison_m...
Second, we're specifically mentioning that we want people who first start to learn programming to have access to our products. And a lot of learning these days happens with Python specifically.
(not a learner, but back when I coded .NET I couldn't have lived without resharper. Quite excited that I can use PyCharm now too!)
Of course, with the Google partnership that came later, the decision turned out far better that we had originally expected. :)
The idea probably is to get the people to use (and love) it and then when they want the non-free features, to buy it.
And with Android Studio: Probably Google is paying a bit for the development.
And thanks for such a great IDE!
So if I'am using Android Studio I am a bit ahead (Android specific) feature wise that by using the latest EAP of IntelliJ IDEA?
Forgot to mention: I also use Android Studio too.
This is a bit OT, but Komodo got an update some days ago with multi-selection support, which I was quite excited to try. Only to find out their implementation is quite frankly useless.
http://www.activestate.com/blog/2013/09/komodo-8-5-release
'Right-click in the editor and choose "Select --> Multiple Selection --> Add", then use Ctrl+Click (Cmd+Click on Mac) to quickly make additional selections.'
When it's a text editing operation that you're trying to do (as opposed to a defined transformation on valid source) then it makes sense to use a text editor.
I keep emacs and intellij open usually.
But there is also column selection mode.
For me, the killer things in PyCharm are the excellent Python library support, and the fact that it indexes my codebase so that "Where is this defined?" is extremely fast. That is the feature I use all the time which is less convenient to do with many other editors.
CTRL+K,CTRL+Y to mark current selection (or if no selection word under cursor), then CTRL+D to map next occurence.
I'm coming from the Ruby point of view
The direct ancestor to today's IDEs are Smalltalk environments. Smalltalk is about as un-compiled as you can get. This and that are completely orthogonal concerns.
> In what ways could it be helpful?
Navigation across projects (via structural searches or hyperlinking), static analysis (including library- or framework-specific e.g. PyCharm knows some strings have specific meaning in django projects and can check that there's no mismatch), refactorings, documentation, visual debugging, ...
Some of it can be replicated with extensively customized editor and a multitude of external tools, others not really.
But then i found PyCharm and never looked back. I feel i develop at least 50% faster with any serious project; i still use Sublime for the one-off scripts, but everything else i find the introspection, code completion and refactoring just so good its now hard to go without.
Props to Jetbrains, and I look forward to v3 pro! (my 2.7 isn't yet telling me i have an upgrade... i'm hoping this is coming soon!)
Note: I still use my other text editors for one-off file editing and such, but PyCharm is my control center for the projects...
This is a gross oversimplification, but it's how I sold a few of my friends on Jetbrains during their Apocalypse sale :)
I find it extremely helpful to have symbol lookup in my own codebase, suggestions, fast file opening and the ability to have useful highlights in Python, Html, coffeescript, javascript, css, et al.
You do write tests, right? :)
I've read on the site that people like me are supposed to receive a free update by email, but i didn't see anything... Anyone in my case ?
Didn't realize the "via email only" concerned the support only. (non-native english speaker here).
Where I am working now, Eclipse is the supported environment so I am using it. OK, but not as good...
BTW, when they open sourced Idea for Java, I was pleasantly surprised how easy it was to build. Nicely packaged.
Personally I use both, continuously switching between the two. I play around in ipython/pylab until I've gotten all the algorithms and details worked out, and then use Pycharm to add that code to the larger library or application which those algorithms will be a part of.
If you do a lot of development in the REPL (i.e. exploration), then that is where iPython (in a notebook, or a shell) really is nice. If you don't, then you may not see the benefit.
I primarily program with python for shell scripting/text processing, or data analysis/simulation with numpy/scipy/pandas.
I do a lot of exploration, I rarely ever type anything directly in the REPL/interpreter - I write all my code in scripts and send them to the REPL with emacs keystrokes. Afterwards, I'm left with a script that contains my analysis/processing method. (never had a local web server running except when playing with emacs ipython notebook).
Am I possibly missing a way to do it better?
I find ipython with its magic commands and ability to directly call shell commands more handy than the standard REPL for interactive shell type scripting.
Other than that, not really. Inline graphs are nice if you like that sort of thing, and some of the magic commands are occasionally useful. But beyond that I don't think you'll gain much if you have a approach that works for you.
I also gather that ipython's parallel processing tools are pretty powerful, but I've never really played with them.
Also is the professional version any of the paid licenses on this page http://www.jetbrains.com/pycharm/buy/index.jsp?
It's just that the term "Professional Version" is used to differentiate it from the "Community Edition" on all the informational pages and then the terms are not used anywhere on the Buy page.
bin/pycharm.sh
ERROR: Cannot start PyCharm
No JDK found. Please validate either PYCHARM_JDK, JDK_HOME or JAVA_HOME environment variable points to valid JDK installation.
I wish this had been mentioned up front, before I spent all that time watching videos and such. :/ Nothing against java per se, just that it's a giant runtime/security-surface that has no bearing on my Python work.I'm still happy with Geany, gvfs, meld, and terminal, etc... though they might not be as flashy. :)
If arbitrary code is able to access the JVM on your computer, then you already have arbitrary code running on your computer.
export JAVA_HOME=/my/install/dir; bin/pycharm.sh
There is really no conceivable way that your browser would be scanning your operating system looking for a downloaded JVM (if it does that, it's not a browser, it's a virus.)
If you truly are religiously against jvm it's w/e to me, but the security concerns are not valid.
I'd use the system java/browser which has an extension available, no need to scan. FF just enabled javascript for everyone without their permission, and Chrome does plenty of shady things. The fewer software installed, the better. I prefer to stay far away from potential security problems, with multiple hurdles whenever possible. If it makes you feel better I don't install flash or ruby either unless the situation calls for it.
I realize Linux in 2013 is not so dangerous, but take a gander at recent java security bulletins when you get a chance anyway. Steve Gibson recommends not even having it installed if you don't need it (I don't) and that's good enough for me.
Also, I think you may be overselling the trade-offs. I've not been inconvenienced in the last decade of avoiding java, as far as I can remember. On occasion I will install random things into a VM for temporary experimentation.
Off the top of my head, all of the recent serious vulnerabilities were applet related. The JRE doesn't require a Java plugin for your browser, no plugin, no applets.
IntelliJ IDEA product familly is really well done. They do not feel javan at all.
https://aur.archlinux.org/packages/pycharm-community/
Someone is working on Debian packages for it?
Is there a .zip version available?
I also assume the installer doesn't require administrative privileges... Am I right?
Better at code introspection, better at refactorings, better at debugging. Also, I prefer the UI.
Of course, you're the final arbiter of these things for yourself, so give it a short.
all free-pascal need now is a decent web-framework, but for desktop apps, i think its one the best options at the moment
Anyone having same issue?
That can get occasionally annoying, if you drop in a a bunch of 1mb text files in your repository and it insists of examining them.
But, introspection and refactoring capabilities are great.
You can right click the directory and mark it as excluded from the project. We have an integration test suite that likes to emit gigabytes of XML into its local directory - which IDEA happily tries to index. Excluding it saves me a lot of CPU time.
The above probably is not a deal breaker for many people, but just as many people indeed use Python as REPL, so I would like to see more improvement.
Otherwise, no problem with the software so far that I have tried. Thanks, JetBrains.
Out of my curiosity, I was wondering whether you could explain why pydev was chosen to be the base work.
http://ebb.org/bkuhn/blog/2009/10/16/open-core-shareware.htm...
And, this is true whether the Core is GPL'd or permissively licensed. In both cases, the final story is the same: take a proprietary license or be stuck with cripple-ware.
Except that IntelliJ Community Edition is a perfectly usable and able IDE already. In fact, Android Studio is based on it. Certainly not crippleware.
And in this case I very much like this model. InteliJ CE is open source software under the Apache License version 2.0. If JetBrains would disappear tomorrow (hopefully not!). A non-profit project or another company could continue where they left off.
That said, I am a very happy user of the Ultimate Edition :).