What’s New in C# 7.0
201–210 of 278 posts
Re: What’s New in C# 7.0
#202Earlier quoted context omitted.
"WinForms" is "language tooling"? "XAML" is "language tooling"? By what definition? I can write server-side C# in vim (without omnisharp) just fine, actually. Maybe the tools became "indispensable" because they add value? I refactor my code in vim but it would probably be faster in VSCode. That doesn't make C# a bad language.
C# has (had? I'm still a couple of versions behind) so much syntactical overhead that writing code without a visual studio seems painful at the very least. The var keyword was the first time it was even possible to write C# without tooling. It has definitely made it possible for me to use Vim for editing C# code. Newer features, such as lambda expressions, and some of the much nicer property syntax makes me feel that…
Re: What’s New in C# 7.0
#203Earlier quoted context omitted.
That type of programming never went away. That is what I was doing on Windows 3.x and have done while coding in Mac OS X and Windows. Also the reason I never quite adapted to UNIX mentally of VI/Emacs. Even though I have spent enough years coding for UNIX that me and Emacs are quite old acquainted with each other.
There's a Vi plugin for almost everything. Highly recommend VsVim for visual studio.
I know the essential for when Emacs isn't available which is quite common on commercial UNIX installations, learned back when Xenix was still being sold and don't intend to learn more than that.
Thanks anyway, I know you had good intentions.
Re: What’s New in C# 7.0
#204What's the point of GetCoordinates(out var x, out var y) over destructuring assignment like var x, var y = GetCoordinates(); the former looks completely backwards.
IMO fishing parameters back from functions is one of the things I do not miss from old C.
Anyone has anything to add to masklinn's explanation?
Edit:
found CyrusNajmabadi's comment here: https://news.ycombinator.com/user?id=CyrusNajmabadi
Re: What’s New in C# 7.0
#205Earlier 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…
VB.net development is not that different from VB6. It is a way more sophisticated language and therefore can do more complex things. But the basic things take pretty much the same syntax than they were in VB6.
Re: What’s New in C# 7.0
#206Earlier 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.
Java's a pretty extreme outlier for late or non-adoption of modern features, but it is true that Java is the closest direct competitor/peer to C# in terms of usage/marketshare. C# seems to be steadily shifting from being a language which initially (v1.0) looked like Java to one which looks increasingly like Scala (e.g. addition of pattern matching, tuples, local methods etc.).
Re: What’s New in C# 7.0
#207Earlier quoted context omitted.
The most productive I've been as a developer was 20 years ago when I was creating VB6 apps and components...
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…
In the end, I found it hard to do maintenable code for complex applications. And it was not specifically because of the IDE but more because of the way you have to organize the code.
But I did not spend more than some months on it so maybe I'm wrong.
Re: What’s New in C# 7.0
#208Earlier quoted context omitted.
Why not winforms? Very convenient, and mostly works in mono
WinForms is a dead end. It doesn't support Windows modern or Mac OS X, and it looks completely out of place on Linux.
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 - with which Window Manager, with which theme?
Re: What’s New in C# 7.0
#209Earlier quoted context omitted.
> But is C# really a language you want if that is important to you. C# is used by hundreds if not thousands of games by ways of Unity and is therefore demonstrably good enough in this scenario. Furthermore, just because a language is not C++ does not mean you shouldn't take every opportunity to give programmers tools to write fast code - at the end of the day I doubt anyone would be interested in a language that is p…
While it's used for game development, I'm not convinced that it automatically means features should cater specifically to that audience. Compared to everything non-performance critical the language is used for, the performance crowd is dwarfed. I'm not against it, I personally have been in situations where it would have been useful, I'm just not convinced it's beneficial for the language to implement it.
> Computation is innovated thanks to gamers.
The same effect might benefit programming languages.
Re: What’s New in C# 7.0
#210I wish they did not call it pattern matching. Instead this is more like Destructuring combined with Switch. the guarantees are different
"Full" pattern matching, as one would expect from F# for example, wouldn't be something I could expect from C#. For example: type Tree = Empty | Node of 'a * Tree * Tree There is no way to express this directly in C#. Thus, I am "locked out" of a whole class of Pattern Matching that I would get with F#. But that doesn't mean that C#-style pattern matching (really, Is-patterns and a Type Switch) don't fall under the u…