
Free for students: Professional developer tools from JetBrains - aphextron
https://www.jetbrains.com/student/
======
0xCMP
That also includes Reshaper, PyCharm, Webstorm, and CLion. These tools are
awesome for students.

Somewhere else mentioned if students really need these kinds of tools? To
write code? Probably not, it's better if they spent the time to use Vim/Emacs
or just got going with Atom/VSCode/Sublime. But none of those editors support
the ease of clicking on something and seeing what that is. A class, a
function, etc. Jetbrain's support for this in any language they support is
probably the best anywhere and the editor itself is damn good. I try my very
best to get rid of it and I always find myself coming back. Rarely can
anything match it's features which once you learn how to use them you'll often
need on a day to day basis.

~~~
wernercd
"it's better if they spent the time to use Vim/Emacs or just got going with
Atom/VSCode/Sublime."

It's better learning to use the tools they will need. Period.

The problem is what tools will they need? The tools for Web Dev is different
from iOS dev is different from game programming is different from... The tools
available on Windows are different from the tools available on Linux...
different form the tools on Macs...

I'm sorry, but "real programmers learn to use VIM and bad ones use IDEs" is
BS.

Real programmers do what every craft does: Gets the best tools they can get
their hands on and learns the in's and out's of them.

Which is why you keep going back to the best tools available. You'd be an
idiot not to.

~~~
0xCMP
Never said that. A student should learn the way things actually work. They
shouldn't get thrown in to an IDE so teachers don't need to explain the basics
of a developer's workflow to them. However, after a period of getting used to
things, they should DEFINITELY use an IDE as a tool to expand their
understanding since eventually they'd use it to get actual work done.

An editor is MUCH easier to learn the in's and out's of than a full-blown IDE.
Start small. Force them to understand. And THEN introduce them to IDEs. Does
this happen this way? Not Really. I started with Visual Studio. But I've
taught friends this way and it really helps accelerate them past the usual
bumps in the road when you're first learning.

~~~
wernercd
Learning how things "actually" work is different than learning how to get
things done.

There is definitely room for learning how things work "under then hood". Aka
algorithm work, creating your own bubble sort, creating your own blog, etc.
Those skills get added to your list of tools. Understanding which sort is best
for which application... which language... which paradigm.

If you don't learn the different things, you become a programmer that uses a
hammer for a solutions - because it's the only tool you know.

Granted, I may have been a bit harsh - it's hard to do sarcasm, tone of voice,
etc in text message. So take my post with a grain of salt :)

~~~
0xCMP
Grain of salt taken :)

I've got personal experiences which says IDE-first is a bad approach. However,
once you've learn the basics you should definitely graduate to an IDE as a
student like you say.

My experience has been that many students don't learn a single thing well
enough to build upon to gain those extra tools you mentioned. An IDE might
bring them closer to that point faster, but I also think it makes them leave
things behind they should know.

(recent graduate, informal teacher to many friends getting in to CS industry)

~~~
wernercd
It's definitely a part of getting a well rounded education... but a large part
depends on WHAT you are learning.

What's needed to learn C/C++ is different than what's needed to learn
Javascript. C#. Ruby. PHP. SQL. Etc...

A Javascript developer could spend his/her life without ever touching a
compiler. I've spent my "career" without ever needing that level of knowledge
as a .Net Developer (C#/VB) and Sql Reporting guy (SSMS/Crystal Reports/etc).

I would agree wholeheartedly that a C/C++/Assembly guy needs that
experience... but most programmers don't need to know how a linker works.

------
kyriakos
PHPStorm is one of the best things that ever happened to PHP.

Not sure if they still do but JetBrains used to offer its IDEs for free to
open source developers.

~~~
hulahoof
I just checked, they still do for core members of open source projects:

[https://www.jetbrains.com/buy/opensource/](https://www.jetbrains.com/buy/opensource/)

~~~
chx
I qualify for open source PHPStorm three times at least (Drupal 7, Drupal 8,
PHP documentation) and yet, I love PHPStorm enough to buy it :)

~~~
kyriakos
Indeed it's one of those applications that are constantly updated adding
features we need before we realise we did. Well worth it.

------
hulahoof
Jetbrains are my IDE of choice, I started with phpStorm when I was doing
webdev and have used most flavours during my studies - I recommend anyone
studying to give this offer a try it is incredible value.

Edit: I'd like to add all that's needed to get the student licence is a valid
university email, at least for myself.

------
thr0waway1239
At this point, the only major tech company whose products/services I _gladly_
pay for is JetBrains. I wish them all the very best.

~~~
Roboprog
They seem to have become what Borland should have.

~~~
vintagedave
Embarcadero has those tools now, and those tools are very alive and kicking.
Have you looked at them recently?

(Except JBuilder, the Java IDE. Did you use it back in the day? What did you
think of it?)

~~~
Roboprog
I have not used Embarcadero's Delphi, just their database client. I have used
Free Pascal, though. Interesting, but no demand for it :-(

The whole 90s C/C++ thing was such a debacle. Running C for app work in the
internet era reminded me of "Hunt for Red October" \- "Next, he'll be removing
the safeties from his torpedos" \- "you arrogant ass, now you have killed
us!". Widespread internet adoption was the "extinction level event" for C/C++
apps. (along with faster processors and garbage collection)

Anyway, if more companies had used an Algol descended language that actually
did bounds checking, and made less use of points constantly, the crisis that
forced Java adoption could have been avoided.

~~~
Roboprog
There are good high level languages out there that use automatic memory
management. Java (language) just isn't high up that list. If I'm going to pay
for a garbage collector, I want to do functional programming, NOT mutable OOP.

------
oliwarner
Always very wary about suggesting people cut their teeth in the warm embrace
of a IDE. It's often unrealistic.

If it's the industry standard —like it was and probably still is completely
normal to use VS.NET for .NET development— that might be okay but reducing
exposure to things that the rest of your industry like a makefile or [gp]db,
Maven/Gradle/Ant, or whatever... It's a real disservice to your students.

If you're an educator and you want your students to get a job, make sure
you're teaching the stuff we're actually using.

~~~
jsight
I'm not sure that I get your point. Is there anything about using an IDE that
keeps you from learning a build system?

Although I do think it is unfortunately that a lot of CS courses pay little
attention to build tools.

~~~
oliwarner
There's nothing stopping you learning other stuff but I've found from both
personal experience and dealing with new hires, people like to stick with what
they learnt on.

My experience is green graduates who grew up on IDEs struggle —for much longer
than you'd expect— to get on with command line scripting and tools. They avoid
a lot of very necessary experience when you have an IDE do everything.

I'll stop well short of saying "real programmers only use VIM" but experience
is everything, especially when differentiating juniors. Learning how to do
everything with one IDE is a great way to get very little real-world
experience.

~~~
jsight
That is a fair point, although my experience was that the IDE didn't matter
much. Most of my fellow students didn't learn build systems regardless of
whether they worked in the popular IDE at the time or just a text editor.

I would hope that build systems would be taught regardless of the IDE.

------
ungzd
Do students need enterprise Java IDEs (and IDEs for other languages designed
by enterpirse Java developers)?

~~~
Delmania
Speaking as someone who built his master's these using Notepad and javac, I
can say had I used IntelliJ, I would have had a much more enjoyable time.

Students don't need these tools, but they do go along way to help make them
more productive and enjoy the experience. I also wouldn't call IntelliJ (or
Visual Studio) as "enterprise" tools. They are definitely the product of
people who spend a LOT of time building software in the supported languages.

~~~
egeozcan
What are "enterprise" tools anyway? Sincerely asking. Is it a support thing?

~~~
jasode
As an example of "enterprise", scroll all the way down to the bottom of the
IntelliJ page[1] for the section _" Choose your edition"_. In the _"
Ultimate"_ column, you'll see extra features such as support for IBM Rational
Clearcase, MS TFS, and Java EE.

Hobbyists, students, and most startups in the web/mobile space don't use those
corporate/enterprise products.[2]

Since this new announcement makes the _Ultimate_ version free for students, I
suppose some observers wonder why college students couldn't just use the
_Community_ edition which was already free.

[1][http://www.jetbrains.com/idea/features/#out-of-
tools](http://www.jetbrains.com/idea/features/#out-of-tools)

[2]the IBM Clearcase of $2000 is example of "enterprise" pricing:
[http://estore.gemini-systems.com/ibm/software-
license/ration...](http://estore.gemini-systems.com/ibm/software-
license/rational-testing-software/software-change-and-configuration-
management/rational-clearcase-multisite/)

(Most college students would probably just use Git/Github instead of IBM
Clearcase.)

~~~
egeozcan
Well that confused me at first. I questioned why those features would qualify
for "enterprise software". Then I remembered that the EE in Java EE is for
"Enterprise Edition" and my serach made me end up on Wikipedia[1], which
explains enterprise software as "computer software used to satisfy the needs
of an organization rather than individual users" \- it's simple and makes
total sense.

[1]:
[https://en.wikipedia.org/wiki/Enterprise_software](https://en.wikipedia.org/wiki/Enterprise_software)

~~~
Delmania
I have just a few nitpicks:

Hobbyists and startups might choose TFS since Visual Studio Online is free for
orgs of a certain.

> "computer software used to satisfy the needs of an organization rather than
> individual users"

This applies to software like HP's ClearCase and Rational rose, whereas the EE
in Java is bit of a misnomer. Originally, Java SE was designed primarily for
single threaded desktop applications and applets, whereas Java EE was designed
for a more networked application with application servers.

What happened is that Java EE was a beast to work with, but some features of
it like servlets, injection, and data mappings were useful, so developers
built versions of those that could work with Java SE (think Tomcat and
Spring). The Java team took the lessons and redid Java EE to make it easier to
work with. It's still a bit of a beast to work with, but good enough to build
an application with.

~~~
paulmd
> What happened is that Java EE was a beast to work with, but some features of
> it like servlets, injection, and data mappings were useful, so developers
> built versions of those that could work with Java SE (think Tomcat and
> Spring). The Java team took the lessons and redid Java EE to make it easier
> to work with. It's still a bit of a beast to work with, but good enough to
> build an application with.

This is a really important point for all of Java, in fact. It's a fairly old
language (21 years) that has had a lot of trial-and-error and a lot of very
niche applications (embedded/mobile development). There is a lot of stuff that
is abandoned, obscure, deprecated, or not really used for its original
purposes anymore.

For example of something that's widely acknowledged as an outright mistake,
see the Cloneable interface.

[http://www.artima.com/intv/issues3.html](http://www.artima.com/intv/issues3.html)

Do also see the DEFCON talk "The Secret Life Of SIM Cards" that was posted
here last night, for an example of a niche embedded usage of Java. There is a
LOT of Java running around - not just on smartphones, but on all kinds of
embeddable/mobile devices.

[https://www.youtube.com/watch?v=_-nxemBCcmU](https://www.youtube.com/watch?v=_-nxemBCcmU)

In many ways DotNet is a clean-slate reimplementation of what Java could have
been. It avoids many of the pitfalls that Java ran into, but I think it also
misses the boat on some others. I would love a Maven equivalent for C#. And
checked exceptions actually are useful in some contexts and C# misses out, but
on the other hand Java took it way too far by adding tons and tons of checked
exceptions for generic "something happened!" failure cases, many of which are
implementation errors and should be unchecked. C# has a lot less boilerplate
but also more opportunity for mistakes if you aren't careful.

------
haffla
Since at least two years ago I'm doing exactly that. Sorry that you only found
out now ;D

------
LeanderK
I am currently a CS Student and use a lot of the tools from jet brains. It's
awesome that they are free!

To give a bit of an perspective/motivation: They make it really easy to try
something out. You can click things, visualise things and get guided by the
IDE, then they scale with your skill until you never click things and only use
the shortcuts. There is a plugin for nearly everything and the documentation
(NOT the openapi-doc, thats horrible or nonexistent) is great. I would not
want to teach an freshmen (is this correct? first year university?) javascript
with vim/emacs.

------
calebsurfs
I've been using pyCharm for the last 2 years and its code completion has
helped me code and learn at a much faster pace than other editors.

It offers code suggestions for any module that has been imported in addition
to everything in the current script. Sublime and vim's code completion seem
very primitive in comparison.

That said, I usually use the free Community Edition because it loads faster.

~~~
junnan
Emacs's elpy package is also great at auto-complete. I haven't used PyCharm
myself but Emacs is more than enough. Also, most of my other programming are
done in Emacs.

------
novaleaf
Resharper is great, totally awesome features for C#... unless you have a large
professional project. The performance tanks and features become unreliable the
larger the project gets. This has been a problem with every resharper version
since 5.x

------
SmooL
One thing I love about the jetbrains suite is that the keyboard shortcuts
remain mostly the same across all of them - whether I'm coding python in
PyCharm or javascript in Webstorm, I can use the same keyboard shortcuts.

------
Zekio
IntelliJ IDE support for hi-dpi displays is great compared to netbeans.

------
user5994461
> all you need is a valid ISIC card.

Too bad for non American non UK students.

~~~
Symbiote
The card is available in over 130 countries, according to the website.

------
douche
When I was in college, Microsoft had DreamSpark, which was a similar kind of
thing (use your school email, get a bunch of free licenses to VS, SQL Server,
etc). I don't know if they still do it, but especially in those days, it was
great, because the free Express editions hadn't quite come out yet, and when
they did, they were pretty gimped. Using a real version of Visual C++ was head
and shoulders better than trying to fight with Eclipse, or CodeBlocks, or
DevC++ in those days.

~~~
provemewrong
They still do, I ued it to grab Windows 8 and 10, Visual Studio, Access and
Visio. They rebranded it as Microsoft Imagine like a month ago though.

------
infinity0
they're IDE's what?

~~~
sofaofthedamned
'Their', surely?

~~~
jessaustin
The plural possessive still doesn't match the singular verb. "JetBrains"
simply won't parse as a singular noun, so "offers" should be "offer".

------
triplebit
Eclipse is also free and it's better.

~~~
what_ever
I don't know about Eclipse being better. I switched to IntelliJ two years ago
and I love it. I find it much better, faster and less buggy compared to
Eclipse.

~~~
gravypod
It depends on what you are using it for. IntellJ's maven integration is to die
for. Eclipse has a better auto-completion engine.

IntellJ is far less resource intensive but eclipse has some features (mutli-
projects in one 'solution') that IntellJ won't add.

------
joelthelion
Learn open source tools, you'll be able to use them freely your entire life.
These tools may be shinier, but they offer no real productivity gains in the
long run.

~~~
aphextron
>but they offer no real productivity gains in the long run.

I'm pretty sure things like code completion, interactive debugging, and static
analysis have increased my productivity by an order of magnitude. Sure, I
could spend days and weeks memorizing every Vim command and obscure UNIX
program to handle these things, but why?

~~~
joelthelion
Open source tools offer all of these features.

