The present and future of editors and IDEs for Dart (Educational Perspective)

768 views
Skip to first unread message

Marco Jakob

unread,
May 1, 2015, 11:18:04 AM5/1/15
to mi...@dartlang.org
As we have heard from the Dart Summit and has been communicated on the official blog: The DartEditor will be deprecated!

The New Strategy
  • DartPad to get started and to try small code snippets.
  • WebStorm for professional Dart development.

The Problem for Starters and Education

I'm perfectly fine with using WebStorm for my professional projects but I see a problem for people new to programming and for people in education.

I have been teaching a lot of introductory courses for programming, most of them using Java. In the last couple of years I have been promoting Dart as the better alternative for learners. There are a lot of advantages in using Dart for education:
  • Very clean, simple, and concise language (everything is an object, etc.).
  • Dart is a "fresh" language and doesn't have historical baggage like older languages. This makes it so much easier for beginners.
  • Can easily be deployed as web app on clients (this is big!) and even works on the server.
  • Everything is included (libraries, Pub, Editor, etc.)
  • And much more...

Learning how to program is difficult and one of the obstacles is the code editor. Big editors like Eclipse, NetBeans, and VisualStudio are really difficult to use for someone new to programming. Editors that are specifically tailored for education usually can't keep up with the time and don't provide features that are expected from modern IDEs.

In my opinion, the Dart Editor was the perfect editor for people new to Dart and even for people that have never programmed before. It is very easy to install, has all the features needed and no unnecessary menus and buttons! And it was still an Editor that could be used for professional development.

Targetting beginners and education might not be the highest priority of the Dart team, but if it is a priority, I see some problems with the current strategy:
  • DartPad can only be used to tinker with simple programs. You will have to switch to a "real" IDE very soon.
  • I have just created a five-part introductory course to programming in Dart. I think it's much more fun to have some visual feedback for beginners instead of just using the command line. So I published a library called hello_dart that creates a visual world. Since DartPad currently doesn't provide a way to include libraries from pub, DartPad can't be used.
  • Dart Editor was really easy to install: Download, Unzip, Open the hello_dart scenarios. See my installation instructions.
  • Webstorm takes a few additional steps for installation: Download, Install Webstorm, Download Dart SDK, Install SDK, Select SDK in Webstorm. Yes, this is very relevant for beginners and especially for schools.
  • There is no easy way to run Webstorm as a portable version. In schools it's usually difficult to install new software. Dart Editor was easy as it was only a zip folder.
  • Webstorm isn't free. I know that it is free for students/teachers but to get it is an obstacle for teachers. The free IntelliJ Community Edition could be used but that requires an additional step to install the Dart Plugin (in addition to the Dart SDK).
  • Webstorm is nice but is much harder to learn than Dart Editor (has a lot of menus and buttons).


Possible Solution

Well, I guess the decision has been made about Dart Editor :-(. But I hope you can somehow provide a better experience for Dart beginners and educators.

One solution that I see would be to provide a free Dart Webstorm. Ideally a single download that includes the Dart SDK and maybe is even portable.

If we want to see adoption of Dart in schools and universities I think it is crucial to have a very, very simple installation experience!

Davy Mitchell

unread,
May 1, 2015, 11:30:13 AM5/1/15
to mi...@dartlang.org
I totally agree - the single download was a great story and removed a lot of barriers for getting started with Dart.

I am hoping the Dart team (or the community) will distribute Eclipse+Dart plugin. Visiting other sites, configuring plugin downloads etc is just a turn off for potential new Dartisans.

Cheers,
Davy

--
For other discussions, see https://groups.google.com/a/dartlang.org/
 
For HOWTO questions, visit http://stackoverflow.com/tags/dart
 
To file a bug report or feature request, go to http://www.dartbug.com/new

To unsubscribe from this group and stop receiving emails from it, send an email to misc+uns...@dartlang.org.



--

Lex Berezhny

unread,
May 1, 2015, 12:51:03 PM5/1/15
to misc
Given that Eclipse plugin will continue to be officially developed/supported. And Dart Editor is open source. Seems like for the most part releasing new editions of Dart Editor is just a matter of updating the dependencies (Eclipse + Dart plugin) and re-releasing (although I have not looked at Dart Editor in detail, so I could be wrong on that point).

I think it makes a lot of sense for Google to abandon Dart Editor (and all of the support/headache that comes with that) and focus on the engineering side of things while allowing the community (in case of Dart Editor / Eclipse) or a 3rd party (in case of WebStorm/IntelliJ) to provide the IDE experience (read: deal with annoying/annoyed users when stuff doesn't work).

 - lex

Kasper Peulen

unread,
May 1, 2015, 12:56:24 PM5/1/15
to mi...@dartlang.org
> One solution that I see would be to provide a free Dart Webstorm. 

Would this really be a solution for your problem ? I imagine that one the biggest pros of dart editor is, in the context you are describing, is that Dart Editor is much easier to learn than Webstorm. I absolutely love webstorm, but I think it is really for power users, people who are willing to invest some time to in the end become much more productive. I don't think Webstorm as it is, is not suited for such a course as you are describing.

I think, if you want absolute beginners to learn Dart. I would first indeed go for tutorials in a lightweight editor. As Webstorm is going to be the primary dart editor, I think it would be very nice to have Webstorm specific tutorials as well, learning people who to be productive in webstorm with dart. But I don't think this is something for a beginners course.


Possible Long Term Solutions
  • Making dartpad so feature rich so that it can be used for a dart beginners course. Also, in the course you have made, I think it would be really cool if people could do the challenges in an embedded dartpad in the page. I'm not sure which direction dartpad is exactly going, but if dartpad (or some other service) would have functionalities like this: http://plnkr.co/edit/?p=preview. Would that be sufficient for such a course ?
  • I don't hear much talk about chrome dev editor lately any more. I would guess that chrome dev editor should be able to grow so that it would be feature wise very similar to dart editor. Or maybe the dartpad editor could be packed into some chrome app so that you have local file acesss and some project structure support.
  • Do you know the pycharm education edition of jetbrains ? https://www.jetbrains.com/pycharm-educational/ From the website:
    "Many code editors, IDEs and other tools are too complex if you’re just learning how to program. They often make you invest a serious amount of effort and time into understanding how the tool works. PyCharm Educational Edition is easy to get started with, not intimidating, yet powerful enough to guide you all the way through to becoming a professional developer."
    Besides that, you can also open interactive tutorials in this edition. I think a free Dart Educational Edition from jetbrains with the same kind of features as PyCharm Educational Edition would be quite awesome.

Filipe Morgado

unread,
May 1, 2015, 1:28:33 PM5/1/15
to mi...@dartlang.org
+1

Goodbye trying to promote Dart to my colleagues, if they have to pay for the editor and spend 30 minutes installing/configuring it.

Dart is not an open stack anymore if it includes a paid IDE.

Don Olmstead

unread,
May 1, 2015, 1:51:45 PM5/1/15
to mi...@dartlang.org
Thats absurd to say. While it would be nice for Google to have an agreement with JetBrains like it does with Android Studio there are plenty of plugins for different editors.


Use Sublime if you want the light weight editor for your students or want to bootstrap colleagues.

Bernardo

unread,
May 1, 2015, 2:05:07 PM5/1/15
to mi...@dartlang.org
It should be noted that Sublime Text isn't free either.

Justin Fagnani

unread,
May 1, 2015, 2:06:35 PM5/1/15
to General Dart Discussion
Which is one reason I'd like to see more support for Atom, which can actually run plugins written in Dart thanks to Mr. Endfinger and friends :)

Graham Wheeler

unread,
May 1, 2015, 2:08:44 PM5/1/15
to mi...@dartlang.org
IntelliJ Community Edition is free and supports Dart.

Austin Cummings

unread,
May 1, 2015, 2:16:15 PM5/1/15
to General Dart Discussion

Kenneth and I have been putting some work into the atom-dart package. We have been working out some kinks with the JS interop, but we're making progress and hope to soon have support for calling most of the common SDK functions. Then after that we will integrate the analysis server.

Don Olmstead

unread,
May 1, 2015, 2:17:27 PM5/1/15
to mi...@dartlang.org
My bad I thought it was free. Amazing that a simple text editor costs more than WebStorm for personal use.

Marco Jakob

unread,
May 1, 2015, 2:41:38 PM5/1/15
to mi...@dartlang.org
Also, in the course you have made, I think it would be really cool if people could do the challenges in an embedded dartpad in the page. I'm not sure which direction dartpad is exactly going, but if dartpad (or some other service) would have functionalities like this: http://plnkr.co/edit/?p=preview. Would that be sufficient for such a course ?

I agree. It would be great if I could embed or directly link to DartPad for the exercises. Something like Plunker looks interesting. 



I don't hear much talk about chrome dev editor lately any more. I would guess that chrome dev editor should be able to grow so that it would be feature wise very similar to dart editor.

Yes that would be a nice solution if we had Chrome Dev Editor with similar features as Dart Editor. This would even work on a Chromebook.


 I think a free Dart Educational Edition from jetbrains with the same kind of features as PyCharm Educational Edition would be quite awesome.

I have never tried PyCharm but it looks like an interesting way to get started.


In general: I like it if an IDE is simple enough but still lets beginners continue towards professional development without having to switch the IDE multiple times.

Devon Carew

unread,
May 1, 2015, 2:42:59 PM5/1/15
to General Dart Discussion
Hey Marco, your hello-dart tutorial is pretty incredible! One of our main goals for DartPad is to make it a good environment for learning Dart, and we want to be sure that we have enough pieces in place to be able to build tutorials with DartPad.

There may be some technical limitations to what we can do, but it'd be great to talk to you and get a better sense of what some of the requirements would be. We'll reach out to you off-list. Cheers,

Devon


--
For other discussions, see https://groups.google.com/a/dartlang.org/
 
For HOWTO questions, visit http://stackoverflow.com/tags/dart
 
To file a bug report or feature request, go to http://www.dartbug.com/new

To unsubscribe from this group and stop receiving emails from it, send an email to misc+uns...@dartlang.org.



--
Devon Carew
Software Engineer
Google, Inc.

kc

unread,
May 1, 2015, 4:04:27 PM5/1/15
to mi...@dartlang.org
Is Chrome Dev Editor still under active development? What's it's status?

K.

Jos Hirth

unread,
May 1, 2015, 4:33:59 PM5/1/15
to mi...@dartlang.org
On Friday, May 1, 2015 at 8:16:15 PM UTC+2, Austin Cummings wrote:

Kenneth and I have been putting some work into the atom-dart package. We have been working out some kinks with the JS interop, but we're making progress and hope to soon have support for calling most of the common SDK functions. Then after that we will integrate the analysis server.


Excellent news, Austin. TypeScript works really well in Atom. Would be really nice indeed if Dart would work just as well.

By the way, Microsoft's VS Code (Microsoft's cross platform editor) is build on top of the same stack as Atom. Once it starts to support plugins, porting the plugin over to VS Code probably won't be too tricky. 

Thomas Schranz

unread,
May 1, 2015, 5:01:34 PM5/1/15
to mi...@dartlang.org
I use IntelliJ CE + Dart plugin which is a free solution.
You have to disable quite a few ui panes to get a lightweight experience but I enjoy it a lot.

Strategically it makes a ton of sense to improve DartPad even more (support for multiple files and packages)
as this provides the ultimate zero install and run everywhere experience.

I also would love to see support for Atom as a lot of people are using it and having some of the DartPad features
like autocompletion and warnings within Atom would really stand out (= popular lightweight fully open source solution).

Similarly impressive would be analyzer support in Vim but I have no clue how hard it is to make this happen.

Jos Hirth

unread,
May 1, 2015, 5:48:09 PM5/1/15
to mi...@dartlang.org
On Friday, May 1, 2015 at 11:01:34 PM UTC+2, Thomas Schranz wrote:
I use IntelliJ CE + Dart plugin which is a free solution.

IntelliJ CE doesn't support debugging, does it? 

Jim Trainor

unread,
May 1, 2015, 9:59:46 PM5/1/15
to mi...@dartlang.org
The editor is source code is open: https://github.com/dart-lang/bleeding_edge/tree/master/dart/editor

... just pick up the project and carry on.

Even better: JetBrains have a program to provide free tools to students: https://www.jetbrains.com/student/


--

Alex Tatumizer

unread,
May 3, 2015, 11:44:51 AM5/3/15
to mi...@dartlang.org
WOW. The thing is more than tutorial-  it's a work of art!
If DartPad could support it with no need to install anything locally - that would be excellent.
Maybe the idea can be developed further - so that reading tutorial and running the code becomes more seamless.
If a right combination is found, this can serve as a basis for a lot more content.
Kudos to the author(s)!

Filipe Morgado

unread,
May 3, 2015, 12:22:39 PM5/3/15
to mi...@dartlang.org
On Sunday, 3 May 2015 16:44:51 UTC+1, Alex Tatumizer wrote:

Just took a look.

On Sunday, 3 May 2015 16:44:51 UTC+1, Alex Tatumizer wrote:
WOW. The thing is more than tutorial-  it's a work of art! 
Kudos to the author(s)! 

+1 ... The kind of work that could really make a difference!

tomaszkubacki

unread,
May 4, 2015, 7:59:55 AM5/4/15
to mi...@dartlang.org

I hope Debugger in IntelliJ will be a bit more polished before axing Dart Editor 

ATM My quite big app kills debugger in IntelliJ whereas still works in Dart Editor (IntelliJ plugin version simply does not show variable values). 

What is even worse (for smaller projects which seem to work with IntelliJ plugin) debugger does not show object graphs in Lists (you can't expand object property if object is on other's object List).

Dear Dart team: developer experience is extremely important for Dart success in general - hope you will take it into account before axing Dart Editor.

Günter Zöchbauer

unread,
May 4, 2015, 9:54:20 AM5/4/15
to mi...@dartlang.org
Did you create a bug report in YouTrack? https://youtrack.jetbrains.com/

Bob Nystrom

unread,
May 4, 2015, 1:43:40 PM5/4/15
to General Dart Discussion

On Fri, May 1, 2015 at 2:48 PM, Jos Hirth <google...@kaioa.com> wrote:
IntelliJ CE doesn't support debugging, does it? 

Yes, it does. I switched to WebStorm recently, but I used the free community edition for several months to hack on my Dart code including lots of heavy debugging. I found it, in every single respect, a better user experience than the Editor.

- bob

Adam Lofts

unread,
May 5, 2015, 5:33:53 AM5/5/15
to mi...@dartlang.org
Can you clarify if this is client side or server side debugging? I just gave IntelliJ CE a spin and couldn't figure out how to debug an in-browser app.

Alex Tatumizer

unread,
May 5, 2015, 11:42:21 AM5/5/15
to mi...@dartlang.org
Gave WebStorm a try. Totally ecstatic experience! CTRL-F works!. This feature alone more than justifies a price. Now, it someone is willing to conduct an experiment: offer me $49.99 for switching back to DartEditor - I will decline it in disgust!

Unfortunately, other features, while certainly exciting, require completely rewiring your brain. To jump to declaration, you need to hit CTRL-B, which is a bit unexpected. BTW, what is the motivation for choosing shortcuts like this? Maybe, there's some mnemonic rule? If there's one, it's not obvious: word "declaration" doesn't even contain "B" (though, equivalent Russian word has "B" in a prominent position - maybe this is the rationale?).

On the other hand, one may argue that "declaration" doesn't necessarily have F3 written all over it either, so there's certainly a room for debate here.

I'm sure there's a way to redefine keyboard shortcuts, but I think it's equivalent to cheating. No, you have to learn it the hard way!

Bob Nystrom

unread,
May 5, 2015, 12:02:15 PM5/5/15
to General Dart Discussion

On Tue, May 5, 2015 at 2:33 AM, Adam Lofts <adam....@gmail.com> wrote:
Can you clarify if this is client side or server side debugging? I just gave IntelliJ CE a spin and couldn't figure out how to debug an in-browser app.

Oh, I should have specified here. I'm debugging command line apps. I'm not sure what the web debugging story is like for IntelliJ, sorry.

- bob

Günter Zöchbauer

unread,
May 5, 2015, 1:34:16 PM5/5/15
to mi...@dartlang.org
There are pesets for VisualStudio, Eclipse, Emacs, ... you can choose from or define your custom set.
Menu > File > Settings > Keymap > Keymaps

Jan Mostert

unread,
May 5, 2015, 1:47:15 PM5/5/15
to General Dart Discussion
Debugging client-side Dart code in Dartium (have yet to try it, but it's being mentioned on Jetbrains): https://www.jetbrains.com/webstorm/help/running-and-debugging-dart.html

No transpilation into JavaScript is required when you debug your Dart code in Dartium.
Configure the JavaScript debugger.
Configure and set breakpoints in the Dart code.
Proceed as if you were debugging JavaScript:Create a run/debug configuration of the type JavaScript Debug.
Initiate a debugging session. For details about local and remote debugging, about debugging single files and entire applications, see Debugging JavaScript.
Install and configure the JetBrains Chrome Extension. For details, see Live Editing of HTML, CSS, and JavaScript.
Step through the program, stop and resume program execution, examine it when suspended, etc.

--
Jan Vladimir Mostert
janvladimirmostert.com


Jan Mostert

unread,
May 5, 2015, 1:51:48 PM5/5/15
to General Dart Discussion
Also, I noticed when you go to Run -> Edit Configurations, you can add Dart Remote Debug, default port being 5858, are there any parameters I need to set when I do pub serve in order to make use of remote debug?

--
Jan Vladimir Mostert
janvladimirmostert.com


Jan Mostert

unread,
May 5, 2015, 2:12:58 PM5/5/15
to General Dart Discussion
@Alex, you can also install the Vim plugin for WebStorm / IntelliJ if you're used to working in Vim, if you already know Vim shortcut, you can be very productive, never needing a mouse. While you're coding, use Vim keys, switching to other files, committing, etc, use WebStorm / IntelliJ shortcuts.
For example, if I want to do a window split, I just type :split or :vsplit and I have a split window, if I want to search replace, :%s/find/replace/g, Cmd+1 and I'm in my code explorer and can just type the file name I'm looking for and it filters the whole list for me, Cmd+1 again and I'm back in Vim mode, want to jump to a declaration, just type gd on the class and it jumps to the declaration, just awesome!
Eclipse also has a Vim plugin, but it it's horrible and not nearly as smooth as the Jetbrains one.
Rewiring was worth it, can't go back to Eclipse for anything.




--
Jan Vladimir Mostert
janvladimirmostert.com


Alex Tatumizer

unread,
May 5, 2015, 4:09:36 PM5/5/15
to mi...@dartlang.org
WOW.  VIM rocks!
Thanks for the tip!

Kenneth Endfinger

unread,
May 5, 2015, 8:14:41 PM5/5/15
to mi...@dartlang.org
Austin and I will be ramping up development much more. I am very busy this week however, school ends next week :)

Atom has great potential and I am excited to start working hard on the Dart plugin for Atom. You will find that it is a full ide: We are actually going to support 100% of the Analysis Server features, so as long as it's in the Analysis Server, it will be in the Atom plugin :P

Bob Nystrom

unread,
May 5, 2015, 8:20:57 PM5/5/15
to General Dart Discussion

On Tue, May 5, 2015 at 5:14 PM, Kenneth Endfinger <kaend...@gmail.com> wrote:
We are actually going to support 100% of the Analysis Server features, so as long as it's in the Analysis Server, it will be in the Atom plugin :P

\o/

- bob

Thomas Schranz

unread,
May 5, 2015, 11:55:03 PM5/5/15
to mi...@dartlang.org
So looking fwd to this :)

Kendrick Wilson

unread,
May 6, 2015, 11:36:34 AM5/6/15
to mi...@dartlang.org

Marco Jakob

unread,
May 6, 2015, 12:20:08 PM5/6/15
to mi...@dartlang.org
A quote from Devon Carew concerning Chrome Dev Editor in another post:

The Dart team is doubling down on IntelliJ on the IDE side, and investing in adding infrastructure that can help all IDEs and development environments - specifically the analysis server. I myself moved over from working on CDE to DartPad. As a dev. environment it's a lot more focused in scope, and fills a clear need for the Dart team.

Jack Murphy

unread,
May 6, 2015, 1:34:35 PM5/6/15
to mi...@dartlang.org
I'm trying to get a list together of the differences between Community Edition & WebStorm here: http://stackoverflow.com/questions/30076342/

It would be great to have a comparison matrix so people can make an informed decision on if the paid WebStorm version is worth it.

Metronome

unread,
May 9, 2015, 3:02:35 AM5/9/15
to mi...@dartlang.org
What about building a virtual machine image with Webstorm already installed?  From a pedagogical standpoint doing things this way will eliminate issues with installation of Dart etc.  This even lends itself to a thin client type of setup where students would simply login to a VM running on a server somewhere and work from there.  All they would need is appropriate remote desktop software.

As for Webstorm itself, the Dart plugin probably should download and manage a default SDK on its own as it is.

George Moschovitis

unread,
May 9, 2015, 3:51:13 PM5/9/15
to mi...@dartlang.org

Yes, it does. I switched to WebStorm recently, but I used the free community edition for several months to hack on my Dart code including lots of heavy debugging. I found it, in every single respect, a better user experience than the Editor.


Not every single respect. working on multiple projects is much smoother on Dart Editor.
I also miss the custom editor for pubspec files (with  auto-complete for packages).

-g.

Monty Rasmussen

unread,
May 10, 2015, 1:42:56 AM5/10/15
to mi...@dartlang.org
Yes! The pubspec editor will be sorely, sorely missed.

Rich Eakin

unread,
May 10, 2015, 2:27:11 PM5/10/15
to mi...@dartlang.org
IIRC you can't debug code in a with IntelliJ CE, you need IntelliJ ultimate or webstorm.  Personally, I would love it if they added this as a feature for the free version, since otherwise I'm having to switch to chrome to debug web code.
 

Randal L. Schwartz

unread,
May 10, 2015, 2:37:20 PM5/10/15
to mi...@dartlang.org
>>>>> "Metronome" == Metronome <metachr...@gmail.com> writes:

Metronome> What about building a virtual machine image with Webstorm already
Metronome> installed?

Or even a Docker recipe?

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<mer...@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix consulting, Technical writing, Comedy, etc. etc.
Still trying to think of something clever for the fourth line of this .sig

Reply all
Reply to author
Forward
0 new messages