
Announcing .NET Framework 4.6 - ScottWRobinson
http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx
======
tobz
Switching to RyuJIT is great. Also, the SIMD support being a first-class
citizen in the runtime and BCL seems huge for gaming and number-crunching
related applications.

~~~
CmonDev
_> huge for gaming_

Not really, as they have no story for Mono not to mention ARM NEON support.

~~~
TillE
Is "story" the new hip substitute buzzword for "solution"? I really don't
understand why I've started seeing it used in weird contexts lately.

~~~
OldSchoolJohnny
Marketing buzzwords should not be used by programmers who want to be taken
seriously.

~~~
Lawtonfogle
I remember reading a report that found that the use of buzzwords was a benefit
when done among management. But telling developers to leverage their synergies
is probably not going to help you at all unless you are joking.

------
hvs
I really like the .NET Framework, so this is firmly tongue-in-cheek, but I
found this amusing:

    
    
      Switch.MS.Internal.DoNotApplyLayoutRoundingToMarginsAndBorderThickness=false

~~~
s_kilk
Yikes, that's horrible. Both for it's length and the double-negative.

~~~
CmonDev
Really? Stay away from Java then :):

_HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor_

[http://grepcode.com/file/repository.springsource.com/org.asp...](http://grepcode.com/file/repository.springsource.com/org.aspectj/com.springsource.org.aspectj.weaver/1.6.3/org/aspectj/weaver/patterns/HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java)

~~~
Lawtonfogle
You forgot the best part.

    
    
      public boolean wellHasItThen/*?*/() {
        return ohYesItHas;
      }

~~~
hobarrera
I _honestly_ though you and gp were just making it up exaggerating. This is
even more absurd than made-up examples I've seen. And it's _real_.

I'm unsure if I should laugh or cry.

------
sanjeetsuhag
> High DPI support in WPF is now better.

Its about time.

~~~
hobarrera
"better" means "not yet finished, but we've started" in my book. Which is
quite quite sad. Why aren't windows' GUI elements all vectorized by now?

~~~
ygra
WPF actually is, but apparently not everything in code is measured in WPF's
quasi-pixels, apparently, so a few spots may look off. That said, none of the
things they fixed looked especially horrible before. I've seen much worse in
other toolkits.

------
rottyguy
It really does put a big fat grin on my face to see C#/.Net get love here.
I've been using it for years and love what it has evolved to. But the msft
bashing on hn (thus, by default, all ms products, with maybe the exception of
F#) was really hard on the proverbial soul for the longest time.

I hope to one day be able to natively do C# on linux under a vs parity ide
(the tools are really great).

~~~
mixmastamyk
MS has definitely made strides the last few years.

Still, they haven't given up on their product-key nonsense and their
unfortunate cozy relationship with govt-surveillance types which are
incongruous with open platforms. There's progress left to be made before I
will consider their products again.

------
rjusher
I am really curious at how is the scene for .NET developers, with the rise of
things like nw.js(node-webkit) and electron(github's atom shell).

I do know that the framework is stronger and more test proven but the traction
this type of tools are earning is important.

Will the .net framework will conquer the heart of developers with the release
of some of their projects as open source, and will create the best cross
platform desktop development kit?

Or is it doomed to be a Windows only beutiful thing.

~~~
leoedin
If you can live with the Windows only target, developing desktop apps in
.NET/WPF using Visual Studio is incredibly pain free in a way that I've never
found developing HTML websites. Maybe those frameworks take some of the pain
away, but I can't imagine that ease of development is anywhere near that of
WPF. It helps that C# is a very nice language with a really great standard
library.

~~~
pjmlp
Webapps still haven't catched up with the 90's Delphi experience of doing
desktop apps.

~~~
mike_hearn
Yeah. The sad thing is so many web devs have never written a desktop app of
any kind, so have no idea how painful the web really is. I loved Delphi in the
90's. That said, modern tools have far surpassed it.

If you want a C#+WPF type experience that's also open source and cross
platform, check out Kotlin and JavaFX. JFX is the new third gen (post-Swing)
GUI toolkit in Java and it's quite impressive. It's scene graph structured
like WPF, has data binding, but also pays close attention to visuals: you can
style it with a dialect of CSS, everything is 3D accelerated via D3D or
OpenGL, you can do shader based effects on any part of the UI, etc. It has all
the usual layout management and business components but also can do things
like embedded h264 videos, 3D objects, and there's a tightly integrated
embedded WebKit too if you need it.

Finally there's a tool that takes your app and spits out bundled/native
packages for each platform, so the user doesn't ever have to know that the app
was written in Java. No JRE or awful toolbars to install.

I've written a few apps this way and it's much more fun than writing a web
app.

~~~
aswanson
I tried JavaFX circa 2009 and it was scary; pure black magic in terms of what
the same code would on a given day. I guess Oracle put some effort into it
over the years, but never, ever again will I touch that language.

~~~
mike_hearn
It's not a custom language anymore. It's just a regular widget toolkit API
like Swing. There is a thing called FXML which is a run of the mill XML based
layout language, with a GUI designer called Scene Builder.

------
maxlybbert
> New in C# 6! Enables a concise syntax for calling static methods without
> type qualification.

Essentially you still have to put your functions in a class, but you're
allowed to call them without the class (if desired). Kind of like "free
functions" in C.

I like C#, but it looks like the team is running out of ideas. Or, perhaps,
they realized that the "everything must go in a class" mantra was a bad idea.

~~~
Moto7451
I don't think it's that they've run out of ideas, it's that they're being
picky with what they implement as C# is fairly modern but also fairly mature.
This isn't like the C++ revolution of the past few years where they've been
adding new, interesting, (and sometimes dramatically different) features to a
decades old language.

Regardless, this change is very handy. Even if "everything must go in a class"
is a bad idea (I think it's fine), the end result of this change, from the
library consumer's standpoint, is the same as having functions defined outside
a class but within a namespace. It's a great pragmatic change that doesn't
rock the boat much.

In line with that are the other mostly minor but time saving changes like
simplified null coalescing.

    
    
      public static string Truncate(string value, int length)
      {          
        return value?.Substring(0, Math.Min(value.Length, length));
      }
    

In previous versions this looks like:

    
    
      public static string Truncate(string value, int length)
      {          
        return value != null ? value.Substring(0, Math.Min(value.Length, length)) : null;
      }
    

Not a huge change, but a very handy one to have.

~~~
maxlybbert
I recognize that this particular change is meant as a convenience. But I'm not
the person who put the exclamation mark in the part that I quoted from the
article. And it makes me laugh that one feature they specifically call out is
the ability to do what programming languages could do in, say, 1958 (
[https://en.wikipedia.org/wiki/ALGOL_58](https://en.wikipedia.org/wiki/ALGOL_58)
).

