Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'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/liveprogr...



WinRT was not built on the CLR. MS didn't eat it's own dogfood. Divided story between Windows Phone and Windows 8.

MS should open source the CLR. Also, the new MRT - minimal native runtime.


> 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 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) 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):

    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.


> 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 they also had a website and blog pleading for MS to keep investing in WPF and fix its issues.

WPF still works very well, it is not broken. It is still one of the best UI toolkits ever constructed with a lot of flexibility that I don't think is still appreciated enough.

> When and what was the most recent feature added to WPF?

No clue. I'm as curious as everyone else.

> You may not, but most popular languages can be developed without and IDE, which is important for simplicity / deployment / portability.

As far as I'm concerned, the IDE is a part of the language and at the very least the programming experience. People programming in emacs and VIM will eventually retire, the future is undeniable at this point. A language designed for an IDE will work better in an IDE than a language that is designed for least common dominator development environments. But then I'm biased since that is part of my research.

And also, Dart is so far very weak on the IDE side. I wonder if the Dart team has lots of compiler people and not a lot of IDE people, or if they have the same old-fashioned mindset as you in de-emphasizing the value of a good IDE experience. But I would expect it to get better, they hired Luke Church after all.

> It's so totally usable that MS invented a new completely different language written for creating command-line scripts (PowerShell).

PowerShell is an optional tool, not required. I've seen huge C# projects build from a CMD prompt (not that I want to bother with build configuration management myself).

> Citation needed, it's not as performant as the JVM

Citation needed, in my experience, C# kicks the JVM's butt in Win performance. Reified generics also reduce lots of boxing issues.

> The Sudoku benchmarks shows that it's slower (and more verbose) than Dart

Your numbers are completely whack. First, it shows mono being faster than the CLR, oh and you are using a virtual machine on top of that. Do you really think people will take that seriously? Also, do you ever try..you know..a multi-threaded shared memory solution?

> 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) to now work at Google on the Dart project no less.

Jim and Jon are gone, but the work they did is totally still around and works wonderfully. I use it, its fast, and it puts C# on par or beyond with any dynamic language that supports dynamic eval.

> 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.

I'm not talking about C#'s dynamic language feature, which I don't really care for, but dynamic expression tree compilation that came along with the rest of the DLR. As a language implementer, it is very useful.


> WPF still works very well, it is not broken. It is still one of the best UI toolkits ever constructed

What exactly do you think the FixWPF campaign was about? And what else have you used? If it's so good, why are so few Windows desktop apps that come with Windows written with it? At least Apple uses Cocoa for all its OSX Desktop apps which I find to be of much higher quality and has smoother performance.

> People programming in emacs and VIM will eventually retire, the future is undeniable at this point.

You're making it sound most developers using text editors are old kooks with 1-foot into retirement. How disconnected are you? What % of OSS projects on GitHub do you think use an IDE? More or less than 50%? https://github.com/trending

> Dart is so far very weak on the IDE side. I wonder if the Dart team has lots of compiler people and not a lot of IDE people,

They actually have quite a few IDE people on the team with many years of experience developing IDE tooling. Any immaturity is simply that the DartEditor is still so young. It was only recently that they rewrote the old Analyzer that was previously written in Java to Dart, which now runs much faster. No doubt VS benefits from a large experienced IDE team as would JetBrains.

> I've seen huge C# projects build from a CMD prompt

Seeing something done once doesn't extrapolate itself into a common use-case or a well-supported story, which it isn't. Having to maintain your own build scripts is a slow, painful and mundane experience which is why it's a rarely considered approach. Even the just released Swift has a better command-line story than C#, which supports #! scripts, a command-line REPL and LLVM debugger.

> Citation needed, in my experience, C# kicks the JVM's butt in Win performance.

Citation is still needed. Where can this butt kicking be seen?

> Your numbers are completely whack. First, it shows mono being faster than the CLR, oh and you are using a virtual machine on top of that.

They're not my numbers, that's the actual output from the command-line Console apps which you can see on the project page. But don't take my iMac's word for it, all the source code is there, run the benchmarks yourself. Your 2 points aren't exclusive, there is no "on top of that" they were all run from my iMac, I would've run C#/.NET natively, but y'know that's hard to do when it's the only platform that doesn't work cross-platform. Running inside Parallels likely accounts for about 10-15% performance overhead, it doesn't explain 2.3x worst performance.

> As a language implementer, it is very useful.

Language VM features that are optimal for compiler writers doesn't translate itself into killer general-purpose language features for everyone else.


> And what else have you used? If it's so good, why are so few Windows desktop apps that come with Windows written with it? At least Apple uses Cocoa for all its OSX Desktop apps which I find to be of much higher quality and smoother performance.

WPF is used for Visual Studio, and that is from VS 2010 on. WPF is used for a lot of stuff internally, its not like people are still breaking out WinForms or GDI. And then there is WP and WinRT, which are WPF derivatives.

> You're making it sound most developers using text editors are old kooks with 1-foot into retirement. How disconnected are you? What % of OSS projects on GitHub do you think use an IDE? More or less than 50%? https://github.com/trending

GitHUB isn't even a small percentage of all developers, it only represents public OSS projects. There is lots of value in a good IDE, language designers and implementors who treat it as a second class concerns are going to pay the price in popularity eventually.

> They actually have quite a few IDE people on the team with many years of experience developing IDE tooling. Any immaturity is simply that the DartEditor is still so young.

That isn't what I've heard. Anyways...Eclipse...wow...I don't see anything good coming out of that.

> It was only recently that they rewrote the old Analyzer that was previously written in Java to Dart, which now runs much faster.

Fast tools mean nothing if the UX is crap. Also, incremental performance is quite different from batch performance that you expect from the command line.

> Running inside Parallels likely accounts for about 10-15% performance overhead, it doesn't explain 2.3x worst performance.

In general, I've seen the CLR beat Mono anywhere from 1.5 to 3X. So if Mono is coming up faster than the CLR, something is probably seriously off.

> Language VM features that are optimal for compiler writers doesn't translate itself into killer general-purpose language features.

Right. But it does give you lots of options in one's managed time live programming language.


> WPF is used for Visual Studio, and that is from VS 2010 on. WPF is used for a lot of stuff internally

So neither that ships with Windows then?

> its not like people are still breaking out WinForms or GDI.

Do you think they've been overrun by developers breaking out WPF? Even when MS is trying to push everyone into creating WindowsStore apps? I hardly ever see any mainstream desktop apps written in WPF. What are some of the most popular WPF apps developed outside of Microsoft?

> WP and WinRT, which are WPF derivatives

How can WinRT be a derivative of WPF if it's written in C++? What WPF code-base did they derive from?

> GitHUB isn't even a small percentage of all developers,

So what does show a good measure of overall developers that shows the slow death of languages/devs without IDE's?

> There is lots of value in a good IDE

There's also lots of value in small, wrist-friendly languages that don't need an IDE and have a good story for text-editors / command-line. You may want to check out what the dev story is for Clojure / Go / Node which support live-reloading / auto-running of modified tests and fast dev iteration times without IDE's.


> How can WinRT be a derivative of WPF if it's written in C++? What WPF code-base did they derive from?

They derived WPFs design and API language, along with XAML. Its not like MILCORE was written in C# either.

> So what does show a good measure of overall developers that shows the slow death of languages/devs without IDE's

It shows nothing. IDEs haven't really been a thing (they weren't that good until then) since the late 90s or even mid 00s. It is taking awhile, but its happening. We will see more language designs that don't bother with IDE independence for better features. Couple that in with the Bret Victor candy, and there is only one way to get there.

> There's also lots of value in small, wrist-friendly languages that don't need an IDE and have a good story for text-editors / command-line. You may want to check out what the dev story is for Clojure / Go / Node which support live-reloading / auto-running of modified tests and fast dev iteration times without IDE's.

I know all about those systems, and they aren't very inspiring. We can do much better than that if we don't limit ourselves to languages just being syntax/semantics/and a compiler.


> They derived WPFs design and API language, along with XAML. Its not like MILCORE was written in C# either.

Got it, so it's derivative in the same way Chrome is a derivative of IE because HTML/CSS. Only a little less so due to different namespaces, missing controls, completely different runtime and incompatible desktop modes - maximizing developer happiness since 2011.

> It shows nothing. IDEs haven't really been a thing...

Not nothing, apparently it's enough to declare text-editor devs an extinct species and decree the new generation of devs will skip text editors entirely and only consider IDE-coupled languages.

> Couple that in with the Bret Victor candy, and there is only one way to get there.

Bret Victor showcases the benefits of previewing changes in real-time like the kind you can see with Clojure in LightTable or Swift's playground. Late-bound languages are more suitable for effecting real-time changes than static pre-compiled IDE-coupled languages, the kind that was being done in Smalltalk decades ago, even VB6 had better live-editing support than C#/VS.NET does now with Edit/Continue.


> Got it, so it's derivative in the same way Chrome is a derivative of IE because HTML/CSS. Only a little less so due to different namespaces, missing controls, completely different runtime and incompatible desktop modes - maximizing developer happiness since 2011.

WinRT really is WPF cleaned up a bit and done with a different language (though it supports .NET bindings easily), and ya, missing a bunch of features that even I sorely miss (though to be share, pixel shaders are kind of dangerous!). Same people, same API architecture, same etc...I still prefer WPF, but because I'm writing dev environments and not apps.

> Not nothing, apparently it's enough to declare text-editor devs an extinct species and decree the new generation of devs will skip text editors entirely and only consider IDE-coupled languages.

IDEs weren't a thing until recently (the last 15 or so years). Text-editor devs aren't extinct, just shrinking in numbers. Extinction doesn't occur for another 20 or so years. Anyways, you need IDE believers to make good IDEs, you can tell when an IDE has been pushed out by non-believers (it sucks, because they don't get it).

> Bret Victor showcases the benefits of previewing changes in real-time like the kind you can see with Clojure in LightTable or Swift's playground. Late-bound languages are more suitable for effecting real-time changes than static pre-compiled IDE-coupled languages, the kind that was being done in Smalltalk decades ago, even VB6 had better live-editing support than C#/VS.NET does now with Edit/Continue.

Why must an IDE-coupled language "static" or "pre-compiled"? I agree C# isn't very live nor would I try to make it be live, but the CLR provides a lot of the tools needed to get there (quick real-time tree compilation). I'm working on this right now...(see [1] again if you haven't, and that's from last year).

Your standards of live editing are kind of low, but that's an argument for some other time.

[1] http://research.microsoft.com/en-us/people/smcdirm/liveprogr...


> IDEs weren't a thing until recently (the last 15 or so years).

IDEs originated in the 1970s, and became popular in the 1980s.

> Text-editor devs aren't extinct, just shrinking in numbers.

The line between "text editor" and "IDE" is so blurry now that there's probably not a clear line between text editor devs and IDE devs. (And there's plenty of multilanguage devs whose preference on the "editor-IDE" axis probably varies by language -- certainly the level of tooling sophistication I want with Ruby is different than I want with C# or Java.)

And more and more modern languages have both "doesn't need an IDE as much as older static languages" and "can more easily support IDE tooling than older dynamic languages" as features, so there's plenty of fuel for both sides. I don't think the preference for lighter tooling is dying out.


>>They're not my numbers, that's the actual output from the command-line Console apps...<<

http://benchmarksgame.alioth.debian.org/u64/benchmark.php?te...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: