5 ms·
I just don't trust Google to do languages and developer tools very well. They don't seem to depend on developers enough to bend over backwards for us the way th
by WorldWideWayne 12y ago
I just don't trust Google to do languages and developer tools very well. They don't seem to depend on developers enough to bend over backwards for us the way that Microsoft does.
Plus, they seem to want to use web tech to build native desktop tools all the time and little things like "keyboard acceleration" don't seem to matter to them because there are no standards for that in web-world.
- mythz 12y agoNot sure what you mean: MS has a history of abandoning its developer platforms and frameworks that thier developers have invested in, so much so that there's no longer a clear UI story for building native desktop windows apps, i.e. VB6, Silverlight, WinForms and WPF are all effectively deprecated. Although they have long support life, when they officially abandon a platform they also refuse to Open Source it so others can keep it alive (e.g. VB6 http://bit.ly/KPMUS6 http://bit.ly/KPMUS6). I personally can't see how anyone can put trust into building native Windows desktop apps (i.e. over web apps) given the repeated a history of abandonment. Even the #1 feature for VS.NET is to continue developing very popular XNA framework: http://visualstudio.uservoice.com/forums/121579-visual-studio/filters/top http://visualstudio.uservoice.com/forums/121579-visual-studi... Likewise on the server side there's been history of deprecated frameworks a lot of developers have invested a lot of energy into learning, e.g: .asmx, CSF, WCF, WCF/REST, WSE, WCF DataServices, RIA Whilst VisualStudio is a great IDE, I find it a subpar experience without R#. The major advantages Dart has over C# is that it still provides an enjoyable experience to develop even without an IDE which also includes support for the most popular text editors: https://www.dartlang.org/tools/ https://www.dartlang.org/tools/ If you like IDE and tooling support, the DartEditor offers a good experience with built-in analyzer, debugging and refactoring support you can expect from a well engineered language. By contrast, C#'s configuration model, msbuild project format, heavy frameworks and tooling makes it unfeasible to develop without an IDE. The other major advantage Dart has is that it compiles down to JS where even the compiler is completely self-hosting and runs inside a browser without plugins: http://try.dartlang.org/ http://try.dartlang.org/ Being able to share the same code on client and server and having a single integrated development full-stack experience is a huge win in re-usability and utility. Another killer feature is that the language and tooling is cross-platform which supports Windows, OSX and Linux. Something .NET devs often miss out on is the value and utility of being able to host apps on cost-effective Linux servers. Google continues to invest a tonne of resources in Dart and Polymer which are massive undertakings that are providing a much simplified and consistent experience for developing large, complex web apps. Nothing like Dart or Polymer exists. Dart is a platform that transpiles to JS, includes a native Dart VM, an entire toolchain including IDE, analyzer and debugger both in Dart Editor as well as in Chrome, in both the Dart VM as well as debugging with Source maps. The worlds best VM engineers work on the Dart VM, i.e. the same pedigree responsible for the StrongTalk VM that was later acquired by Sun to form the basis of the world-class Java Hotspot VM that later went on to develop V8, are now leading the development on the Dart VM. The excellence shows itself in the consistency and minimalism goals in the language, providing a productive, iterative dynamic language experience for fast prototyping with the benefit of static analysis with optional typing when scaling up to a maintainable, well-documented code-base (best of both worlds). Not only is Dart a productive dynamic language, it also has excellent performance, the best performance of all languages I benchmarked with a port of Peter Norvig's Sudoku solver: https://github.com/dartist/sudoku_solver#benchmarks https://github.com/dartist/sudoku_solver#benchmarks
- seanmcdirmid 12y agoI'm feeling a little defensive here (disclaimer, MS employee, but I work for MSR, not devdiv): > Not sure what you mean: MS has a history of abandoning its developer platforms and frameworks that thier developers have invested in, so much so that there's no longer a clear UI story for building native desktop windows apps, i.e. VB6, Silverlight, WinForms and WPF are all effectively deprecated. WPF is still chugging a long strongly even if there aren't so many new features. Visual Studio was recently rewritten in it, and its a very good design with lots of room for encoding desktop apps in the future. I use it daily and cringe at the thought of ever doing something for the web without it. > Whilst VisualStudio is a great IDE, I find it a subpar experience without R#. I use visual studio just fine without R#. I see no point these days writing code without an IDE, I'm addicted to code completion. Not to mention amazing things are being done with Roslyn. > By contrast, C#'s configuration model, msbuild project format, heavy frameworks and tooling makes it unfeasible to develop without an IDE. C# is totally usable from the command line, most developers just refer the IDE. > he worlds best VM engineers work on the Dart VM, i.e. the same pedigree responsible for the StrongTalk VM that was later acquired by Sun to form the basis of the world-class Java Hotspot VM that later went on to develop V8, are now leading the development on the Dart VM. The CLR is one of the best VMs ever (read: very fast), worked on by some of the brightest who are very comparable to the Animorphic crowd. The DLR feature (ability to generate/compile expression trees at run-time) is also very cool and missing from the JVM. If you are into building language run-times, it is an awesome base for a dynamic language. True: it is only available on Windows, but Mono has made progress as well (most features available sans WPF). I've been thinking about porting my language work [1] over to mono.cairo to see if I can achieve cross platform without going to Java or the web. [1] http://research.microsoft.com/en-us/people/smcdirm/liveprogramming.aspx http://research.microsoft.com/en-us/people/smcdirm/liveprogr...
- mythz 12y ago> WPF is still chugging a long strongly Your definition of strong sounds different to other peoples. There was entire FixWPF grass roots campaign to petition more investment into WPF, twitter account is at: https://twitter.com/fixwpf https://twitter.com/fixwpf they also had a website and blog pleading for MS to keep investing in WPF and fix its issues. When and what was the most recent feature added to WPF? > I see no point these days writing code without an IDE You may not, but most popular languages can be developed without and IDE, which is important for simplicity / deployment / portability. It's also much easier to develop in smaller laptops which can maximize real-estate. Obviously a language that is suitable without an IDE is also more suitable in an online IDE, which we're seeing with the new online IDEs becoming available. > C# is totally usable from the command line, most developers just refer the IDE. So it's only usable where it's worst than most other languages at? i.e. Scripts and Command-line apps? It's so totally usable that MS invented a new completely different language for creating command-line scripts (PowerShell). As you likely already know, most .NET developers don't spend their time developing 1 file Console apps. Any task that has any meaningful user-share requires an IDE. > The CLR is one of the best VMs ever Citation needed, it's not as performant as the JVM, and its lack of cross-platform is a major limitation. The Sudoku benchmarks shows that it's slower (and more verbose) than Dart even removing time spent on pre-compilation. Dart also offers high-level productivity features like variable-sized integers, saving a lot of boilerplate from having to deal with specific fixed-size integers. > awesome base for a dynamic language. Really? All dynamic languages targetting both the CLR/JVM are either deprecated or second-class citizens on the CLR and are always better supported on the JVM: Jython/IronPython JRuby/IronRuby Clojure/ClojureCLR. The CLR is a wasteland of unpolished efforts with relatively no traction/community behind them. The DLR team has actually been disbanded with the primary developer behind it (Jim Hugunin / IronPython) having left Microsoft (http://hugunin.net/microsoft_farewell.html http://hugunin.net/microsoft_farewell.html) to now work at Google on the Dart project no less. What he had to say about Dart (http://www.infoq.com/news/2011/11/dart-roundup-frog http://www.infoq.com/news/2011/11/dart-roundup-frog): I've spent most of my career trying to end the battles between the dynamic and static worlds and instead bring them together so that each side can enjoy the benefits of the other. Writing this compiler in dart is the first time that I've really felt the effortless blend of these worlds that I've been seeking. Dart is the first time that I have been able to start off writing code in a very dynamic fashion and incrementally add static checks as designs become solid or complexity warrants the effort. Dynamic itself is a heavyweight solution and may many suggest may have been a mistake, C# 6.0 is actually introducing new '$' syntax to avoid dynamic and make working with dictionaries better.