News for hackers. Stuff that matters.
Re:.NET Framework 4.6.2 by agentgt on Tuesday August 02, 2016 @08:49PM (#12214671)
As a Java developer I am always so envious of how attentive Microsoft is with .NET. Maybe it is the grass is greener but it feels like oracle just sits on its ass and ignores most of the Java community.
Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @01:30AM (#12215810)
Java always suffered from Sun not being serious about it for OS development.

While .NET was pushed by Microsoft for everything else that didn't necessarily require the features of C++ and as such got a good focus in the whole stack and OS integration.

Sun like any other UNIX company, never understood the desktop, and the only OS stack they pushed Java was the network computer failed attempt and later on J2ME.

It was JEE (J2EE back then) that made it relevant again.

Oracle has always invested a lot in Java, they already quite a few Java based products in the early 2000. They were the first DBMS to support stored procedures in Java.

They also kept the Sun research labs going and will be integrating the Java JIT Graal into the standard JDK.

The Java Language Summit is taking place this week.

https://www.youtube.com/playlist?list=PLX8CzqL3ArzUY6rQAQTwI...

The problem is that Oracle designs languages for suits not jeans.

Re:.NET Framework 4.6.2 by lmm on Wednesday August 03, 2016 @05:35AM (#12216758)
How much OS development is there to be done?

Sun was serious about write once run anywhere; Java is remarkably successful in that regard. Part of that was not including OS-specific functionality. We'll see how well MS does on that front.

Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @06:56AM (#12217062)
Having the capability for doing OS development implies having a whole stack language, which Java never achieved.

Java is failure on the desktop, nowadays besides IDEs and a few FOSS tools there are hardly any applications done in Java on the desktop.

If Google hadn't forked it for Android, it would be yet another server language.

Besides Android, we only get RFPs for JEE projects nowadays.

Also all the features that should bring Java up to speed with the new generation of compiled languages in value types, generics and AOT compilation as standard toolchain feature are planned for Java 10 or later.

Why do you think Scala guys are exploring Scala Native?

Re:.NET Framework 4.6.2 by lmm on Wednesday August 03, 2016 @07:16AM (#12217140)
> Java is failure on the desktop, nowadays besides IDEs and a few FOSS tools there are hardly any applications done in Java on the desktop.

Nowadays there are hardly any applications done on the desktop, full stop.

I agree that the JVM would benefit from being usable for a) command-line utilities that are lightweight enough to use in pipelines, and perhaps also b) decent native GUI applications (if you believe that niche is still important). But you don't need the capability for OS development to do those things. I mean, Python does those things. I don't think Scala Native is or should be serious about OS development.

Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @07:22AM (#12217164)
> Nowadays there are hardly any applications done on the desktop, full stop.

The guys paying us didn't got the memo apparently.

Nor did the ones targeting Android, iOS and IoT LCD displays.

Re:.NET Framework 4.6.2 by gregmac on Wednesday August 03, 2016 @12:21PM (#12219111)
> targeting Android, iOS and IoT LCD display

What is an IoT LCD Display and who is targeting them in the same way they target Android and iOS? Sounds like some class of hardware, but only thing I can find by searching is toy projects hooking up an LCD to a RaspberryPi or Arduino

Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @01:44PM (#12219921)
It is just what I remembered to type to mean any kind of screen being used in IoT scenarios, from car displays, factory control units, plane dashboards, cranes, ATMs, entertainment systems, biology cell screeners ...

They are targeting them the same way as iOS and Android in the sense that those type of applications are native to the underlying platform without any kind of browser playing the role of an OS.

Re:.NET Framework 4.6.2 by Retric on Wednesday August 03, 2016 @08:35AM (#12217446)
You can't port Java code cross platform, Java Card for example is not 'Java'. It's more their developers are somewhat cross platform.
Re:.NET Framework 4.6.2 by lmm on Wednesday August 03, 2016 @08:58AM (#12217579)
Different sense of "platform". The point is that Java SE runs on many different OSes and architectures in write-once-run-anywhere fashion, including GUI applications. We've yet to see whether .net can deliver that.
Re:.NET Framework 4.6.2 by Retric on Wednesday August 03, 2016 @01:54PM (#12219999)
Even Java SE needs testing and often dev work on a new platform. It's possible to write C or Java code that's cross platform, but that's not the default.
Re:.NET Framework 4.6.2 by lmm on Friday August 05, 2016 @08:06AM (#12231599)
It's a lot closer to the default with Java SE. I've seen a fair few Java programs work first time on platforms they weren't tested on - as long as it doesn't access the native filesystem with windows-style paths it tends to be fine.
Re:.NET Framework 4.6.2 by blub on Wednesday August 03, 2016 @06:06AM (#12216863)
Amazing that companies that spy on you like Google and nowadays also Microsoft enjoy such a good reputation basically by giving away technology for free.

Meanwhile Oracle could just as well rebrand themselves to Satan.

Re:.NET Framework 4.6.2 by Retric on Wednesday August 03, 2016 @08:32AM (#12217429)
Oracle is not consumer facing. But, they are arguably far worse to their customers.
Re:.NET Framework 4.6.2 by wernercd on Tuesday August 02, 2016 @09:06PM (#12214767)
The force is strong in this one... Come... Come to the dark side. We have cake.
Re:.NET Framework 4.6.2 by yread on Wednesday August 03, 2016 @04:15AM (#12216444)
the IE team used to exchange cakes with Mozilla team on shipping versions. http://www.theverge.com/2012/10/27/3563892/internet-explorer...

But then Mozilla started releasing versions every couple of months

Re:.NET Framework 4.6.2 by perseusprime11 on Tuesday August 02, 2016 @10:48PM (#12215231)
Cake = Mac + VS Code + .Net Core
Re:.NET Framework 4.6.2 by dagmx on Tuesday August 02, 2016 @10:59PM (#12215271)
actually quite literally cake: https://github.com/cake-build/cake (C# Make)
Re:.NET Framework 4.6.2 by perseusprime11 on Tuesday August 02, 2016 @11:02PM (#12215275)
Interesting. You can have the cake and eat it too.
Re:.NET Framework 4.6.2 by abrookewood on Wednesday August 03, 2016 @12:00AM (#12215492)
Can I ask how you find working in this environment - genuinely curious. DId you have to refactor your applications much, or did you start off targetting .Net core?

Years ago I thought people working in mono on Linux were just asking for trouble. Now it seems genuinely feasible to be running .Net on a non-Windows platform.

Re:.NET Framework 4.6.2 by ktRolster on Wednesday August 03, 2016 @02:47AM (#12216098)
I spent some time with Mono/.NET last year. It worked fine, but not everything was implemented. Specifically, we had some members on the team (the architect being one of them) who liked to include cutting edge features from .NET, that didn't work on Mono (he also had decided to write a large chunk of code in Silverlight, but that's a different story).

The short is: if you're going to do Mono, make sure that you're always having at least one person on the team doing Mono, otherwise there's a moderate chance that you'll lose the ability to run on Mono.

Also, stay away from entity framework. Some people might disagree, but we had problems with it and I hate that framework.

Re:.NET Framework 4.6.2 by codingmyway on Wednesday August 03, 2016 @06:18AM (#12216924)
There's plenty of hate for entity framework among full .Net devs too. It's one of Microsoft's quick to get started but crap to enhance and maintain tools.
Re:.NET Framework 4.6.2 by redwards510 on Wednesday August 03, 2016 @01:04PM (#12219519)
I agree that the early versions of EF were very buggy (v1-3). It would work fine and then you would hit a show-stopping bug with no fix. However, the recent releases of EF have solved those problems and works great. I can't imagine not using an ORM at this point, and after witnessing NHibernate's stagnation I would recommend using something officially supported by Microsoft.
Re:.NET Framework 4.6.2 by kidmenot on Wednesday August 03, 2016 @11:23AM (#12218598)
I hate it with a passion. I use Dapper whenever I can and couldn't be happier about it.
Re:.NET Framework 4.6.2 by codingmyway on Friday August 05, 2016 @05:30AM (#12230982)
Yep. Dapper is far simpler. All the relationship navigation and deferred loading of related entities is clever but takes effort to optimize and is too easily abused.

Every large team I've seen use it (EF) ends up with slow horrible queries generated that DBAs see hitting the database thinking WTF?

Re:.NET Framework 4.6.2 by chiph on Wednesday August 03, 2016 @09:15AM (#12217675)
Like a lot of Microsoft's data access technologies, it demos well in front of an audience. :-/ (from someone who still has their ODBC 5-1/4" floppies)
Re:.NET Framework 4.6.2 by tracker1 on Wednesday August 03, 2016 @03:10AM (#12216191)
It depends on the application.. you can try running your assemblies through MoMA (mono's migration tool) to see what gets flagged. A lot of the enterprise classes that are tied to windows obviously don't work... There's also no support for WPF iirc, though there is some Silverlight/Moonlight support, but that's another story.

If you're doing web/api services, then mono/.net core are serviceable. Though I would recommend that you have CI/CD setup to use linux/mono if you are going to target that platform... for the most part if it works in linux its' going to work in windows, not so much the other way around.

Take this with a grain of salt, as I've been mostly node.js for a couple years now, though the progress with .Net core and VS Code have my interest.

Re:.NET Framework 4.6.2 by romanovcode on Wednesday August 03, 2016 @04:31AM (#12216500)
If you have .NET 4.x app and you want to convert it to .NET Core you're going to have a bad time.

However making things from scratch works totally awesome.

Re:.NET Framework 4.6.2 by merpnderp on Wednesday August 03, 2016 @10:37AM (#12218179)
What do you write in .Net Core on a mac? I'm guessing you get paid to do this, and it sounds like an interesting niche.
Re:.NET Framework 4.6.2 by tychuz on Wednesday August 03, 2016 @02:47AM (#12216100)
Replace VS Code with Rider and I'm here.
Re:.NET Framework 4.6.2 by stinos on Wednesday August 03, 2016 @03:07AM (#12216171)
And for once the cake is pretty decent.
Re:.NET Framework 4.6.2 by frik on Wednesday August 03, 2016 @01:00AM (#12215700)
Will there ever be a dotNetFramework 5 ?? Version 4 is from 2012 which was already a minor update from v3 from 2007.

The new dotNetCoreFramework 1.0 just got released. It wouldn't sense to add mayor new features to dotNetFramework 4.6x, legacy is written on the wall.

dotNetFramework 1x from 2002 to 2005 is unsupported for many years and APIs and code ate incompatible with dotNetFramework 2+. Basically dotNetFramework rebooted with v2 and got really popular starting in 2005. All mayor features were available since v3. Though then the development stagnated and little new outstanding new featured were included in newer releases. Plus several APIs turned out to vanish pretty quickly and are dragged along as legacy like WinForms, Silverlight, WPF, Managed C++, ManagedDirectX and its next incompatible iteration, SharePoint APIs, WinFS, etc. Plus the incompatible different API WinRT aka WinRunTime aka UniversalRuntime with various incompatibilities in WinPhone8, Win8 & 10.

So Microsoft now has to maintain Win32 API and its subsystem (the reason why people are still using Windows, dating back to 1995 and source code compatible to Win16 API dating back to Win1 (1985) and Win16 is still supported on 32bit OS (technically it could also run on 64bit, if MS would want that). And UniversalRuntime (former WinRT) based on Win32 subsystem and still a lot less featurefull and little developer support and little apps - MS wants to push it, many hate it and almost all Windows applications continue as Win32 x84/64 applications even most games (Steam is big, the hate on WinStore is rightful). And dotNetFramework 2x+ the legacy big soup infested with dream buildings full of XML. And now dotNetCoreFramework in v1 still pretty rough and unfinished and the usual v1 were you want to wait for service pack 1 or v2.

In comparison Java is source compatible to at least v1.4, but in reality often back to Java 1.1 or 1.2. Sure there are some crufty APIs that got a better alternative that is recommend and several third party frameworks come and are now enterprise/legacy tools and newer things are now popular. While Java stagnated a bit with Oracle at times, it's still a nicer experience than the quickly vanishing and legacy API that Microsoft releases out en mass. And also Google is supporting Java on Android as its main API.

Re:.NET Framework 4.6.2 by thomasz on Wednesday August 03, 2016 @02:09AM (#12215940)
> All mayor features were available since v3. Though then the development stagnated and little new outstanding new featured were included in newer releases.

Are you serious? LINQ (okay, that was 3.5 IIRC), the TPL and async await fundamentally changed how I write C#.

Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @01:35AM (#12215827)
Java might be source compatible, but sometimes it is quite fun to make libraries work across versions.

Specially if they rely on APIs that did break, like JDBC interfaces.

Also Android Java isn't 100% Java as Google cherry picks APIs, which with the increase of Java 8's adoption is increasing the effort to write portable libraries that compile against Java and Android Java.

Also Android Java runtimes don't understand the bytecodes introduced in Java 7 and 8. So you cannot use libraries that make use of them.

This will only get worse with Java 9 modularity and with the value types, reiffed generics and new FFI planned for Java 10.

Re:.NET Framework 4.6.2 by _pmf_ on Wednesday August 03, 2016 @03:35AM (#12216301)
The shithole Google has dug itself and its developers is pretty deep, yet they keep digging instead of partnering with either MS (for C#) or Oracle (for real Java) to get a sane modern language.

But we'll end up with one of the following suboptimal solutions: - half-assedly backported Java 8 features (with buggy bytecode transformers for libraries that are included in binary form) - either Dart, Go or (why not go full retard) JS

Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @04:10AM (#12216421)
When you see their Google IO presentations or interviews, they re-iterate that Java is the only true way on Android, with the NDK just for games and implementation of Java native methods.

Then the usual answer to standard Java support is "What features matter to you? Get in touch with us".

Is it so hard to see that who usually asks that question cares about 100% of the language or at very least the compatibility profiles?

Re:.NET Framework 4.6.2 by 5ersi on Wednesday August 03, 2016 @06:01AM (#12216847)
Re:.NET Framework 4.6.2 by pjmlp on Wednesday August 03, 2016 @06:48AM (#12217043)
That is not 100% accurate.

Android N has partial support for Java 8, it doesn't support all the new Java 8 APIs nor new bytecodes.

Additionally, given that Android M is around 10% after one year, how long do you think Android developers can fully target Android N?

Re:.NET Framework 4.6.2 by ygra on Wednesday August 03, 2016 @02:30AM (#12216028)
Note that .NET Core is, more or less by necessity, much smaller than the full .NET framework. The latter isn't going anywhere or being deprecated. Think of Core as just another subset of APIs that happen to also work really well on other platforms. We had that already with Silverlight, Client Profile, and other things.

Since .NET 4 introduced a new runtime (just as .NET 2 did; due to that I'd also say that 4 was not just a minor upgrade) all subsequent versions so far run on the same runtime and just change the libraries. MS got a bit of complaints for a confusing versioning scheme: .NET 2, 3, 3.5 that all used the same .NET 2 runtime, but had different library capabilities. It seems to me that they are doing this better with .NET 4: Every 4.x version runs on the .NET 4 runtime. .NET 5 will likely do the same again, once it is released.

They also changed another part: All .NET 4.x versions are drop-in replacements for .NET 4.0. That's why, when you look in the C:\Windows\Microsoft.NET\Framework directory, you see v1.0, v1.1, v2.0, v3.0, v3.5, but only a single v4.0, which on my machine is actually 4.6.(probably 1).

All this doesn't mean they cannot iterate on the runtime itself, though. Recently we got a new JIT for example, and I think the GC also got some upgrades. And keep in mind, this is the release announcement for .NET 4.6.2 – a minor upgrade over 4.6.1. Naturally you won't see major new features added.

____________________________

> Plus several APIs turned out to vanish pretty quickly and are dragged along as legacy like WinForms, Silverlight, WPF, Managed C++, ManagedDirectX and its next incompatible iteration, SharePoint APIs, WinFS, etc. Plus the incompatible different API WinRT aka WinRunTime aka UniversalRuntime with various incompatibilities in WinPhone8, Win8 & 10.

Most of those are completely separate products and are not part of the .NET Framework. You can argue that Microsoft is happy to create new APIs and let them die, but the vast majority of those are not in the actual framework.

____________________________

> In comparison Java is source compatible to at least v1.4,but in reality often back to Java 1.1 or 1.2.

Uhm, that very much depends on the features you use. Sure, if you eschew generics, auto-boxing, annotations, enums, foreach loops, and a lot of other language features. Especially 1.5 brought a lot of things that permeate many Java codebases. In 1.1 you'd have to live without collections, XML, regex, and a few other things. I don't doubt Java codebases exist that could meaningfully go back to that compatibility, but I'm not convinced they're that prevalent. (I know, especially in Enterprise, Java version uptake is slow. In my observation this currently amounts to Java 6 being the version usually used. Back when 6 was current, it was usually 1.4 and earlier.)

Re:.NET Framework 4.6.2 by douche on Wednesday August 03, 2016 @06:04AM (#12216856)
Java 1.5 is also twelve years old. A big chunk of that time is the stagnation after 1.6 when Sun was on the ropes and Oracle hadn't stepped up to make any improvements yet.

I was using the same cutting-edge version of Java for my high school AP classes as I was using in my senior year of college, which is sort of unheard of among the other actively supported and developed programming languages.

Re:.NET Framework 4.6.2 by meddlepal on Tuesday August 02, 2016 @11:14PM (#12215317)
I really like what Microsoft is doing with the CLR and .NET but I'm not sure I agree Oracle is sitting on Java and doing nothing. Java 8 was a big deal and Java 9 and 10 are going to have large improvements.

Now if Sun still owned Java that would be a fair assessment. They couldn't figure out what to do with the language.

Re:.NET Framework 4.6.2 by codingmyway on Wednesday August 03, 2016 @06:09AM (#12216876)
I half jokingly suspect Oracle only bought Sun so they could sue Google