Speaking of linux, has the 64bit version improved at all? Everytime I try it out I can't stand it more than a few minutes and revert to Eclipse. (previous discussion: https://news.ycombinator.com/item?id=5201366).
I'm fairly new to the Python world but I've been using PyCharm for a couple months now and it is absolutely amazing. JetBrains makes really great products, I've been a huge fan of IntelliJ IDEA (Java) for a few years now - converted many die hard Eclipse users over to it, and they never looked back.
For what it's worth, I used Eclipse for 3-4 years before Intellij (it was what my university introduced students to for programming in C++ and Java). Switching to Intellij was pretty painless other than initial configuration overload (since there's so much more built into it by default than Eclipse). Having to switch back to Eclipse at times for a few things since was not so much.
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.
IntelliJ has such an ugly font rendering system on Windows that it makes it very hard for me to dump Eclipse. This prolly has to do with Eclipse's native font rendering.
Yeah, it's not too great due to relying on the JVM for rendering. I use Liberation Mono with it and it looks pretty good (even with anti-aliasing set to off). Everything else, not so much.
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.
But the Intellij editor has some noticeable deficiencies. You cannot tab out of auto-completed text (parenthesis, quotes, etc). This feature is a major time-saver and if you are familiar with this feature in eclipse/visual studio/sublime text, you can find yourself handicapped in Intellij.
Too late to edit my post, but you can complete the current line (in quotes or parentheses) by pressing ctrl+shift+enter, which jumps the cursor to the next line below. Works for Intellij or Visual Studio with Resharper.
For exploratory interactive programming and shorter scripts, not really. For building larger more complicated systems, very much so.
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.
I feel like IPython is better for sharing your final analysis but I do all of my coding/development in Emacs + python-mode and haven't been able to figure out all the hype around IPython. And once you start with Pylab it becomes difficult to map your functions back to their original namespaces (especially since many are redundant between numpy and scipy) in a bigger project, so I stopped using it altogether. Could you explain a bit if I'm missing the point?
What entrypoint are you using to run your programs? REPL function calls / test runners / main methods from the CLI / local web server w/browser? I think understanding that matters the most.
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).
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.
Are direct shell commands that useful...? I either have a shell running in emacs or in a separate terminal that I can quickly switch to. I've heard about the parallel processing tools, but sounds like I'm doing alright with emacs. Thanks much.
There doesn't appear to be a .zip version. They have zip versions of the Intellij so they may add it if you do a feature request. The installer only requires admin to install to the Program Files. If you say no, it installs to your local user location (in Roaming).
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.
Using C++ professionally for a while now (College, grad school, embedded sw) the best two complete IDEs I've found are SlickEdit (Cross platform) and Visual studio. If you've not tried SlickEdit I definitely suggest it (They have a trial).
Additionally, they have an interesting blog post here describing whether they are an IDE or editor here:
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.
With this new JetBrains IDE, Unix toolset, Xcode, etc, OS X might finally become a strictly better C++ development environment than Windows. One can hope...
Main things for me are the refactoring, code navigation (find usages is awesome!), and coding assistance. Check those out here : http://www.jetbrains.com/objc/features/
does this mean that it will be an intellij plugin (similar to the way pycharm is - as far as i can tell - intellij + the python plugin)? i hope so - it's frustrating being a (paid!) intellij user without c support.
"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.
There's a difference between using Clang (Analyzer) to provide error reporting and using it for their own internal parsing (for refactorings, cross references, etc.). I suspect their internal parsers are all written in Java, but let's hope in this case the parser is just a thin wrapper over Clang!
google changed from eclipse to intellij IDEA because it just supported android so much better (imho), even before the switch!
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….
They provide an edition comparison matrix[1] that mentions the only languages supported in the open-source version are:
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.
The link that you provided is for IntelliJ and not for the separate products that the GP is referring to (AppCode for ObjC, RubyMine for Ruby and PhpStorm for PHP).
First, with PyCharm there is a possibility to have both a community edition which covers a sufficient breadth of scenarios and a good value-add for the professional version to make it commercially attractive. This wouldn't work for other products.
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.
Awesome! I think you guys are going to be for Python what Eclipse was for Java about a decade ago. I'm a paying PyCharm customer, and I absolutely love it. The pace of development is excellent too.
I was wondering how it's possible that IntelliJ is free for Android development? What drives the decision making to make one product free and the other paid? In a way I like paying for RubyMine, hoping that it won't be discontinued in the long run, although I'm guessing IntelliJ has a much larger user base.
The reasons for the decisions are different each time. As for Android, we felt that IntelliJ IDEA Community Edition didn't have as much uptake was we had expected, and we thought that adding Android support to CE would be a great way to make it more attractive without endangering the revenue that we get from selling IntelliJ IDEA Ultimate to enterprise customers.
Of course, with the Google partnership that came later, the decision turned out far better that we had originally expected. :)
Google is not paying anything for the development of Android Studio. Instead, they've put their own development team to work on the Android features in Android Studio, which we then integrate into our distribution of IntelliJ IDEA.
Love your products! Love them! I buy WebStorm and IntelliJ IDEA whenever you release a new version. I'm using EAPs for both and while there are some slightly rough edges here and there the products are stable and much better than the already great previous versions. I follow Kotlin and when I have time intend to use it... point is y'all do really great work. Thank you!
The link wasn't posted by anyone from JetBrains as far as I can see. But we do always watch comments on Reddit and HN for the discussions of our stuff.
I've been using the Anki[1] spaced repetition system to quickly get up to speed with the PyCharm key bindings.
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'm a fussy bugger sometimes :-) Over the years I've learned to shy away from vim plugins.
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.
This is a known problem. The multiple undo actions per single 'u' command bug has been fixed recently. The updated version of IdeaVim will be released soon. We have been working on making IdeaVim more stable, see the changelog https://github.com/JetBrains/ideavim/blob/master/CHANGES.md.
> The internal jetbrains supplied static validation (Pep8 / PyLint) functionality doesn't appear to be vanilla pep8 / pylint.
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)
Yes, but that's not the most likely interpretation. Teams are new, people are young. Of course, it's possible that "new" was meant, but it's a lot more likely that they were describing the attractions of the people on the team, not the organization's friendly newness.
It's a description of a given situation, not a requirement for the job. If this is discrimination, then also the fact that the job is in Russia is discriminating the US job seekers.
First of all, the team being young could refer to the age of the team and not the employees' ages. Either way, are you seriously that uncomfortable about your current age that this stands out to you?
Have we become so PC that noticing that your company is young and then saying your observation out loud or typing it with your keyboard is now discrimination?
So, would calling it a "friendly, white team" be merely an observation and only a problem for PC people who were seriously uncomfortable about their own race?
I've bought the 2.7 version a couple of months ago and I don't regret it, but does anyone know if the 3 (pro edition) will be available as a free update for people like me ?
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 ?
From the site: "PyCharm license is permanent and includes one year of free product upgrades since the purchase date, including even major version upgrades."
What exactly do you expect to get in your mail? Just install the new version and import the settings from the previous one, and it'll work with your current license.
Ok, cool.. I read this line wrong apparently :
"PyCharm license includes the initial 1-year upgrade subscription qualifying you for the receipt of the new product releases and technical support (available via email only) free of charge"
Didn't realize the "via email only" concerned the support only. (non-native english speaker here).
You won't get any mail, there is no reason for one. If you license is less than 12 months old, download PyCharm 3, enter your license again and off you go.
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 :).
Excuse me if I'm being naive, but does Python development need an IDE? In what ways could it be helpful? I'm under the impression that Python is not compiled generally.
IDE's are used for more than just building the code; they provide UIs for debugging capabilities, code completion, syntax highlighting, refactoring support, VCS integrations, and much, much more. That said, I do my python development in Sublime Text using the Jedi autocomplete library (https://github.com/davidhalter/jedi).
> I'm under the impression that Python is not compiled generally.
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.
I've tried a lot of IDE's for python development in the past and always went back to a basic text editor; the extra features never outweighed the bloat.
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!)
See my question above. You don't need your 2.7 to tell you anything. If you've got a license you can simply install the 3, import the settings and use the same license.
Same boat here. I got PyCharm when it was on sale last year. Never looked back. I enjoyed setting up my viertualenvs, having multiple projects open, source code navigation. And then to top it off, all the Javascript/Html/css editing stuff as well. All in an easy to setup package. Rich set of plug-ins, too.
Note: I still use my other text editors for one-off file editing and such, but PyCharm is my control center for the projects...
PyCharm can show color your code based on style checks (pep8) or compatibility with python 3. This helps me notice typos and mistakes more easily, as well.
b/c type hinting in PHP is a wishy-washy half feature typical of the language. Python engineers don't understand type hinting either -- and we like it that way. Because if it walks like a duck and quacks like a duck, treat it like a duck.
It's not a half feature. But yeah, I can see that "engineers" like you don't understand it. The same duck metaphor is stupidly used to criticize interfaces. And then you have everyone trying to use hacks to get around this issue, usually people who do understand what "design by contract" is, but for some reason don't want to leave Ruby. Just google "ruby interface" and see for yourself. This problem won't go away until people like you stop spreading lies to justify the lack of features (eg: "Hurr durr, Java needs interfaces because it's too rigid, Ruby doesn't need that, lol!").
IDEs allow you to treat your entire project scope as one big ass open file. You can refactor, autocomplete, click-through, etc. in an entirely natural way that text editors cannot do (out-of-the-box).
This is a gross oversimplification, but it's how I sold a few of my friends on Jetbrains during their Apocalypse sale :)
It is overkill until you start to build something like http://gridspy.com (entire web stack in python)
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.
Does it support multi-selection, Sublime style? I just can't use an editor without it anymore.
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.
'Right-click in the editor and choose "Select --> Multiple Selection --> Add", then use Ctrl+Click (Cmd+Click on Mac) to quickly make additional selections.'
I just created a model from a table with over 20 columns. A few days ago I had to hardcode a list of settings I screenscraped into a JS array in the Chrome console. You can't refactor things like that.
For those sorts of things I think it's completely reasonable to drop into emacs, vim or sublime and then just copy paste back into your primary IDE.
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 usually have the files open in both the IDE and in sublime. Any program worth its salt will be able to cope with me changing in another program and reload the changes.
A sibling mentioned refactoring, but one thing I also use a lot is column-mode editing. It's something you can toggle just like you can in Eclipse, and can be very useful. Not quote as useful as selecting multiple regions to edit, I agree, but still very good.
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.
By multi-selection do you mean putting multiple things in the buffer? Because you can do that if you use Vim mode (using the standard multiple buffers of vim).
Is it a multi-language editor? I.e. can I switch between html, javascript and python and expect to have a similar interface, commands, API, etc. ? If so, it looks like a strong contender against Sublime IMHO.
PyCharm Community Edition does support HTML but does not support JavaScript or CSS. PyCharm Professional Edition does support HTML, JS and CSS (and many dialects thereof).
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. :)
There is no way they would 'port' away from Java. JetBrains has been building this platform for more than a decade. This is what has allowed them to support many operating systems concurrently and with great results. No need for the FUD on Java. Java is really what they excel at.
Why does it matter? You can't even notice it's java except having to have it on your system. And why is having it a bad thing? The security issues are the browser plugin, not the JVM.
JVM security concerns are irrelevant when you are running a desktop application. You aren't running it as root, and you aren't executing arbitrary code as if you were running applets.
If arbitrary code is able to access the JVM on your computer, then you already have arbitrary code running on your computer.
If you're truly worried about the second point, to run JetBrains software all you need is to download the jvm somewhere on your system (it's just a directory) and set the JAVA_HOME variable before starting it:
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.
Sorry, not going to set up a custom runtime for an editor. Note the "giant runtime" concern I put first.
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.
imo you are making huge tradeoffs for very little benefit, as there is no such thing as a 100% secure system anyway.
But still its your decision, to each their own.
I learned this paranoia while running Windows XP through the 2000's and I can tell you it served me very well. While others were rebuilding their systems I was working.
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.
> I realize Linux in 2013 is not so dangerous, but take a gander at recent java security bulletins when you get a chance anyway.
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.
It's not an "editor", it's an IDE. I presume that considering you don't know/understand the difference that such features aren't much use to you anyway so carry on with the deluded paranoia...
>I'd use the system java/browser which has an extension available, no need to scan.
System java? Which OS (barring Oracle Linux) ships with JRE pre-installed? Browser extension for Java? I assume your familiarity about the Java ecosystem has not been updated since HotJava (or whatever it was called).
On the other hand I love using Pycharm on Windows and Linux. I also love the fact that should I choose to use a Mac, Pyharm would be working just the same.
IntelliJ IDEA product familly is really well done. They do not feel javan at all.
Is there any point in owning a license for IntelliJ and RubyMine/PyCharm? I thought that IntelliJ Ultimate had all the features of RubyMine and PyCharm but I haven't used them so I could be mistaken.
You are correct, Ruby and Python plugins add most of RubyMine/PyCharm features to IntelliJ IDEA Ultimate. You may want to have separate IDEs if you need more lightweight environment. RubyMine & PyCharm are in general updated more frequently too.
I'll happily continue to pay for PyCharm even now that it's open-sourced (I re-upped for another year last week, and don't feel like I missed anything by not waiting for this). Aside from the fact that the Pro version has some killer features - Django support, remote interpreters, diagramming, and a .less editor - these guys deserve to be paid for an outstanding product.
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.
217 comments
[ 3.8 ms ] story [ 271 ms ] threadhttp://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.
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.
https://s3.amazonaws.com/superjoe/temp/dvorak.png
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.
[1]http://www.iep-project.org/
Is there a .zip version available?
I also assume the installer doesn't require administrative privileges... Am I right?
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.
http://clang.llvm.org/features.html#applications
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….
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.
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?
A "young team" can also mean a team that has not been together for very long.
Have we become so PC that noticing that your company is young and then saying your observation out loud or typing it with your keyboard is now discrimination?
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).
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 :).
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? :)
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 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.
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.
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.