Mastering PyCharm Transcripts
Chapter: Why PyCharm and IDEs?
Lecture: The spectrum of editors
0:01 Of course, there's an entire spectrum of editors.
0:04 On one hand, we have things like Emacs or Vim that are super fast to start,
0:09 they can run anywhere because they'll run in a terminal
0:12 or a command prompt, something like this,
0:15 and you can use them if you're ssh-ed into a server, you can use them wherever,
0:19 and these are powerful editors, but they're very much focused on,
0:24 "I'm going to edit a single file," and while they are powerful
0:28 and people who are really master of these things
0:31 can make them sing— they are not as powerful as PyCharm,
0:35 they do not bring all the tooling together in one place
0:38 and understand all of the project,
0:41 all the different files and pieces fitting together.
0:44 For example, if I was working on an HTML file or an HTML template
0:48 that was rendered to a Jinja 2 or Chameleon template,
0:52 rendering static files that were also being passed
0:57 like some sort of model data from like a web framework,
1:01 it's unlikely that Emacs is going to be able to understand
1:09 the data being passed from the web server, all those sorts of things.
1:12 It doesn't have a totally great understanding
1:15 and it's really focused on editing a single file which does lead
1:18 to certain types of programming styles
1:21 and an organization for Python projects
1:24 namely putting a lot of code into a single file.
1:27 Somewhere in the middle of the spectrum
1:29 I would put things like Sublime Text and Atom
1:32 and to maybe a little lesser degree Visual Studio Code
1:35 these are the more lightweight editors but they are GUIs,
1:39 as you can see this is a Mac application,
1:41 this Sublime Text right here, but of course it runs on other platforms as well,
1:45 but this is a GUI application right,
1:48 you wouldn't run this on the server when you are ssh-ed in.
1:51 So, there are limitations to using it, but it does understand more files,
1:54 it does have this little folder thing on the left,
1:57 there is lots of plugins, it does a lot of cool things and it's nice,
2:02 I would say this is a little more heavyweight than things like Emacs,
2:05 a little more restricted in where it runs
2:07 but not as holistically understanding of what you're up to as an IDE.
2:12 Speaking of which, there's PyCharm,
2:14 and it's one of the various IDEs that we can use for Python.
2:19 It understands a lots of stuff about our code,
2:22 you can see we've got our project structure,
2:24 it has a little runner down here, up in the top right it has the database.
2:28 Now this app doesn't actually talk to the database
2:30 but if it did, it would have a database view,
2:33 I could generate UML diagrams from my data,
2:36 or I could have a query window with auto completion pop-up.
2:42 It's more heavyweight, it takes more to start, more to install and things like that,
2:46 but it's definitely worth it in my opinion.
2:50 What we should be optimizing for is programmer productivity,
2:54 not rapidness of tools or efficiency of memory or something silly like that
2:58 when memory is cheap and our computers are fast.
3:01 So, I would say you should want to think about
3:03 where PyCharm lands on the spectrum
3:06 and I would put it at the far right, on the IDE of big heavyweight tool
3:09 but I think it's also a big, powerful tool that is worth it.