Earlier quoted context omitted.
Sure. Like how streams "just arrived" in Java yet C# has had the equivalent for years. No language has every feature. C# is making enormous strides ahead of many of its counterparts.
Scala seems to be vastly more expressive while simultaneously having only 20% of C#'s feature set.
What’s New in C# 7.0
221–230 of 278 posts
Re: What’s New in C# 7.0
#222Will C# ever start to increase type inference to make it less verbose? Local functions are ok. But why not lambda syntax+inference? Probably still because of making quoted code have ambiguous syntax. But this ends up adding noise and increases the barrier on deciding when to put code into a tiny function. When using C# I'm constantly noticing how much extra code there is. It's just frustrating, and I don't feel like…
> how much extra code there is. It's just frustrating, and I don't feel like I'm getting a unique benefit in return (unlike, say, in Rust) Actually you are getting a benefit in return (unlike, say, in Rust) - the libraries. Verbose syntax is less complex in regard to writing the code, so more developers write the code. I have no scientific evidence to provide about the fact, but observations speak for themselves. Com…
Rust was stabilized last year, while Go was released six years ago. It is simply wrong to say that Go has a larger quantity of libraries because it is more verbose. IMHO the Rust ecosystem is surprisingly comprehensive for a language its age.
Re: What’s New in C# 7.0
#223Earlier quoted context omitted.
It maybe wasn't clear, but I was referring to the parent's point about verbosity when using the 'old' Tuple class. using Complex = System.Tuple ; is less verbose than public class Complex { public double i { get; set; } public double j { get; set; } }
Not quite equivalent, since System.Tuple is immutable. So, at minimum: public class Complex { private readonly double _i; private readonly double _j; public double I {get {return _i;}} public double J {get{return _j;}} public Complex(double i, double j){ _i = i; _j = j; } } But System.Tuple is also IComparable, IStructuralComparable, IStructuralEquatable. I haven't had enough coffee yet to add all the boilerplate for…
public class Complex {
public double I { get; }
public double J { get; }
public Complex(double i, double j) {
I = i;
J = j;
}
}Re: What’s New in C# 7.0
#224Earlier quoted context omitted.
So true. Between 1998 and 2000 VB6 was perfect, you could develop Windows GUI applications in a rapid manner. The VB6 IDE, the Windows UI guideline, the VB6 API, everything was great. And PlanetSourceCode.com was what was later SourceForge and nowadays GitHub. When I read about Microsoft's vision for .Net in 1999 about applications running as a service over the internet (that was their original idea), I thought that…
Edit-and-Continue is the greatest productivity feature ever added to a development stack for the real conditions one would encounter in large projects , and it astonishes me even now how misunderstood it's purpose is. Consulting has me moving jobs a lot and I encounter a veritable kaleidoscope of crappy work. Being able to correct minor issues in scope without restarting, while ten form posts deep in an archaic webfo…
I'm not sure about other languages, but with Erlang's hot loading (plus the sync[1] project) I find that aspect to be nearly as good as E&C in Visual Studio.
While it's not quite at the level of 'stop the code from executing, changing something, continue', it's close enough for practical usage - save a file, the underlying module is more-or-less instantly recompiled and loaded.
Re: What’s New in C# 7.0
#225Earlier quoted context omitted.
Compared to what languages ? I always thought of C# as the improved, less verbous Java. I wouldn't compare it with Python or other dynamic languages, but I prefer it to most compiled languages (especially at the times it was created)
When I read their comment I thought of how much annotation of static types you have to do that compilers in other languages are smart enough to figure out on their own. Consider the following snippet in C#: public static IList FindEphraimitesToKill(IList ephraimites) { IList ephraimitesToKill = new List (); foreach (Ephraimite ephraimite in ephraimites) { if (ephraimite.Speak("shibboleth") == "sibboleth") { ephraimit…
public static IList FindEphraimitesToKill(IList ephraimites)
{
var ephraimitesToKill = new List();
foreach (var ephraimite in ephraimites)
if (ephraimite.Speak("shibboleth") == "sibboleth")
ephraimitesToKill.Add(ephraimite);
return ephraimitesToKill;
}
or: public static IList FindEphraimitesToKill(IList ephraimites)
{
return ephraimites.Where(e => e.Speak("shibboleth") == "sibboleth").ToList()
}
is not that verbose.Re: What’s New in C# 7.0
#226Earlier quoted context omitted.
WinForms is a dead end. It doesn't support Windows modern or Mac OS X, and it looks completely out of place on Linux.
> It doesn't support Windows modern That's a good thing. > or Mac OS X "Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default" http://www.mono-project.com/docs/faq/winforms/ > it looks completely out of place on Linux On KDE3? KDE4? KDE Plasma? Gnome2? Gnome3? MATE? Cinnamon? LXDE? LXQt? Xfce? CDE? GnuStep? Unity? Enlightenment? Non-DE X Window System environment - wi…
Re: What’s New in C# 7.0
#227Earlier quoted context omitted.
So true. Between 1998 and 2000 VB6 was perfect, you could develop Windows GUI applications in a rapid manner. The VB6 IDE, the Windows UI guideline, the VB6 API, everything was great. And PlanetSourceCode.com was what was later SourceForge and nowadays GitHub. When I read about Microsoft's vision for .Net in 1999 about applications running as a service over the internet (that was their original idea), I thought that…
Edit-and-Continue is the greatest productivity feature ever added to a development stack for the real conditions one would encounter in large projects , and it astonishes me even now how misunderstood it's purpose is. Consulting has me moving jobs a lot and I encounter a veritable kaleidoscope of crappy work. Being able to correct minor issues in scope without restarting, while ten form posts deep in an archaic webfo…
In Eclipse (for example) you just start typing code, (none of this silly locking the IDE while debugging stuff), and the debugger will update the running program instantly. With jRebel you can even change things structurally without restarting.
Oh how I would love an actually working hot swap feature for .Net.
Re: What’s New in C# 7.0
#228Earlier quoted context omitted.
When I read their comment I thought of how much annotation of static types you have to do that compilers in other languages are smart enough to figure out on their own. Consider the following snippet in C#: public static IList FindEphraimitesToKill(IList ephraimites) { IList ephraimitesToKill = new List (); foreach (Ephraimite ephraimite in ephraimites) { if (ephraimite.Speak("shibboleth") == "sibboleth") { ephraimit…
I'm probably missing your point, but public static IList FindEphraimitesToKill(IList ephraimites) { var ephraimitesToKill = new List (); foreach (var ephraimite in ephraimites) if (ephraimite.Speak("shibboleth") == "sibboleth") ephraimitesToKill.Add(ephraimite); return ephraimitesToKill; } or: public static IList FindEphraimitesToKill(IList ephraimites) { return ephraimites.Where(e => e.Speak("shibboleth") == "sibbol…
The C# style guide of a former employer of mine (an enterprise C# user) forbids both of these snippets because of the unbraced statements in the former and the LINQ and lambdas in the latter. But admittedly I don't know what's common among C# users, so maybe they were in the minority.
Re: What’s New in C# 7.0
#229Earlier quoted context omitted.
WinForms is a dead end. It doesn't support Windows modern or Mac OS X, and it looks completely out of place on Linux.
> It doesn't support Windows modern That's a good thing. > or Mac OS X "Does Winforms run on OSX? Yes, as of Mono 1.9, Winforms has a native OSX driver that it uses by default" http://www.mono-project.com/docs/faq/winforms/ > it looks completely out of place on Linux On KDE3? KDE4? KDE Plasma? Gnome2? Gnome3? MATE? Cinnamon? LXDE? LXQt? Xfce? CDE? GnuStep? Unity? Enlightenment? Non-DE X Window System environment - wi…
> In terms of integrating visually with the desktop, we currently ship with a classic Win32 theme.
That sticks out like a sore thumb everywhere, including every Win32 release since Windows 2000.
Re: What’s New in C# 7.0
#230Earlier quoted context omitted.
It is and it isn't. VB.Net is basically everything from C# with an syntax heavily inspired by VB6. But the similarity ends there. The RAD IDE of VB6 or Delphi are unmatched, and the compatibility is gone. As WinForms is legacy as well, the whole experience is different anyway. People would like to run their Win32 apps on their smartphone, nowadays you have more luck with Android than what Redmond comes up.
> People would like to run their Win32 apps on their smartphone And they did actually. Windows Mobile - the original Windows Mobile, 2000-2012 - had 42% smartphone market share in 2007, a native Win32 API (and .Net Compact Framework for C# and VB.Net too), had WinCE kernel and worked on x86, MIPS, ARM and SuperH CPUs.
All what people like me want is NT kernel, Win classic UI, WinAPI with transparent JIT of x86 exe applications on a mobile device (like WinNT on Mips or DECAlpha or OSX Rosetta). And no nonsense like the metro crap from Win8/10.