23 ms·
The .NET Language Strategy
- justanotheratom 10y agoMore love for F# please.
- beefydude 10y agoIt is coming! We love F# and it continues to be both an inspiration to other languages at Microsoft, as well as API developers.
- deleted 10y ago[deleted]
- keithnz 10y agothis would be great, with more and more people learning about functional programming techniques, C# with a functional leaning is really nothing compared to F# with support for OO. It's like the premium language from MS but feels not so loved.
- arthurjj 10y agoIt's nice to see their strong continuing support for F#. I'm no longer in the .NET ecosystem but when I was learning F# and using it day to day was some of the most enjoyable paid programming I've done
- MichaelGG 10y agoI wouldn't call it strong continuing support. F#'s been a second class citizen both in resources given and marketing support. Community effort is great, but as long as MS pushes C# as the flagship language instead of giving it the equal-or-lesser footing it deserves, F# can't truly pull ahead. It's good to see C# catching up with the past decades of language research. Maybe it's MS's DNA - they're still heavily pushing C++. Tooling is the only real reason to ever use C# over F# - C# just doesn't do much (anything?) better. That, and legacy/enterprisey dev. Heck, C# 7's tuple support is exactly what F# used to do, but then capitulated to MS's idea of making System.Tuple, a reference (heap allocated) type. Now in C# 7 since they finally got around to being a bit serious, they implement a new value-type tuple. I guess we should be happy for any F# support we get. And indeed, tooling for functional languages is poor in general, so F# certainly leads...
- WorldMaker 10y agoI feel like this was addressed a bit in the linked blog post: the support is getting better and it's now "in the family" as opposed to a primarily community and research-supported "toy". I'm looking for the nearing releases where F# starts to share much more of the same Roslyn platform that C# and VB have been using for a while now. That should be some very interesting tooling to have at F#'s disposal. C# is always going to be the flagship for the same reason that C/C++/Java/et al are still some of the most common programming languages in the world. That doesn't mean that we can't expect good things from F#, though.
- MichaelGG 10y agoF# has shipped with VS for the better part of a decade now though, yet tooling doesn't reflect that. Hopefully this will improve. It's just frustrating seeing C# slowly adopt stuff that was known to be good decades ago...
- DennisP 10y agoWhen I was doing .Net full-time I really wanted to get into F#. But... - I wanted to use it for websites. Sorry, not really supported in MVC. - I thought it'd be great for doing .Net stuff in SQL-Server and SSIS, like you can with VB and C#. But it's not supported there either. They always positioned it as "use F# for the extra hard stuff and C# for everything else," but in the end C# isn't terrible for hard stuff, and if that's what you use all day then for you, C# is probably better.
- jug 10y agoNot even just about web projects. Even standard GUI apps have no ready templates at least in VS 2015. Just Console apps. Even if guides online show how you can easily hack together both GUI apps as well as e.g ASP .NET Web API's! I'd like to see some love there. These simple things introduces needless uncertainty about the language.
- dgudkov 10y ago
- tracker1 10y agoCool to read.. though still somewhat disappointed that DLR languages were pretty much left to die, and the JavaScript DLR implementation stagnated.
- agnsaft 10y agoBring back IronPython!
- nathanaldensr 10y agoGood on Microsoft for writing about their strategy in such a clear, concise way. More of this style of writing, please, Microsoft! C# is, indeed, a real treat. I've been in love with it since 2001 and that shows no signs of changing any time soon.
- hacker_9 10y agoHonestly I wish decent transpilers existed in life so I need never use another language.
- dbrigg 10y ago> We will enable and encourage strong community participation in F# by continuing > to build the necessary infrastructure and tooling to complement community > contributions. We will make F# the best-tooled functional language on the > market, by improving the language and tooling experience, removing road blocks > for contributions, and addressing pain points to narrow the experience gap with > C# and VB. As new language features appear in C#, we will ensure that they also > interoperate well with F#. F# will continue to target platforms that are > important to its community. Reading between the lines this says that further development of F# will be dropped. They're handing it over to the community for plausible deniability. Correct me if I'm wrong but it seems like a very sad day for functional programmers.
- sitharus 10y agoF# has always been a research/community project, that's why the tooling isn't up to scratch with c# and VB. This signals F# is becoming more of a core language with better tool integration, but is keeping its community driven roots.
- Tsarbomb 10y agoI really hope you are right. The tooling around F# is the only reason it doesn't explode in popularity. If Microsoft starts to treat it as a first class citizen with respect to their .NET Core direction, then the future is very bright.
- sitharus 10y agoI hope so as well. I love F# but using it in a corporate environment is hard due to its second tier status.
- hacker_9 10y agoThat's the exact opposite of what it means. Additionally F# already is the best-tooled functional language on the market as far as I can tell, so I look forward to whatever is coming to make it even better.
- frou_dh 10y agoIs PowerShell not considered a first-class .NET language? I thought it was on deck to take over default Windows shell/scripting status from hellish Batch
- olavk 10y agoPowerShell is the recommended shell language. But I don't think it is considered a first-class .net language because Visual Studio does not have built-in support for it.
- pjmlp 10y agoYes, it does. You can even choose it during installation on VS 2015 and VS 17. Still, there is the ISE as well, although not that feature rich.
- simooooo 10y agoI wish we just had c# in a script form instead of powershell
- nu5500 10y agoThere is this: http://scriptcs.net/ http://scriptcs.net/
- smoothdeveloper 10y agoTry fsharp with interactive, with paket it is also very easy to depend on complex graph of nuget dependencies.
- pjmlp 10y agoYou can, just need to have VS 2015 installed and use .csx files.
- nathanaldensr 10y agoUnfortunately, PowerShell lacks support for asynchronous programming. This has been a huge deal for me when trying to interface with newer .NET I/O-related assemblies, some of which only expose their methods as async.
- deleted 10y ago[deleted]
- Analemma_ 10y agoI also want to commend Microsoft for continuing to support VB and not succumbing to the whims of sneering hipster programmers who consider it beneath contempt (see the second comment on that article for a good example, with a classy response from MS). VB is a thing that a lot of people rely on, and some even like, and doesn't deserve to be kicked to the curb.
- throwawaydbfif 10y agoI'm all for maintaining backwards compatibility but I've coded in both and VB is just an inferior language. Sorry :)
- Pica_soO 10y agoIts not for backwards compatibility, is for beginner friendliness of a eco-system. If one had a stroke and lost all knowledge on comp-science- what would you be more likely to drop for overwhelming complexity and missing instant results? C# or VB?
- maxxxxx 10y agoI think VB6 and VB.NET are totally different beasts. VB6 is maybe a good language for beginners but VB.NET is just a weird language in my view. C# is a much more natural fit for the .NET runtime.
- wvenable 10y agoFor a language that has both "And" and "AndAlso" as keywords; I don't think VB.NET should be considered the paragon of beginners languages. It might have "Basic" in it's name but the complexity of smashing old-school VB syntax and semantics with .NET syntax and semantics has not made for a very beginner friendly language. It's more complex than C# (excluding some of the newest C# features). It's just painted over with a more English syntax to appear beginner friendly.
- cm2187 10y ago
- mkozlows 10y agoSo the big change there is to VB, right -- instead of being a language co-equal to C#, they're refocusing it to be beginner-focused, and are explicitly saying it won't have the same capabilities as C#. I think that makes a lot of sense -- it was always weird to have two near-identical languages to choose from -- but at the same time, I wonder if VB.NET isn't already too complex to be an accessible language for beginner-programmers in the way that PHP or VB6 were.
- hacker_9 10y agoI learned on VB.Net maybe ~15 years ago now, and back then all the english like 'end sub' and 'end if' really really helped me understand the code. Honestly languages that used brackets looked like voodoo to me at the time. Of course later when I understood that brackets were faster to write and conveyed the structure just the same, I converted and became a sneering hipster.
- euyyn 10y agoYou've just killed me saying that was 15 years ago :(
- cm2187 10y agoI don't think anyone has ever typed End If in visual studio. The VB IDE always had very proactive statement completion, that the C# IDE only recently matched. All you end up typing is "for i=1 to 10", press enter, not worrying about the casing and the IDE does the rest. To me the quality of the IDE makes 50% of the quality of a language and the VB.net IDE was superb.
- Jaruzel 10y agotsk! :) >> For I as Int32 = 1 to 10 I may be a VB.NET stalwart, but I have evolved to ensure my code is clean and properly declared, and I wish that all my VB.NET colleagues had done the same, then maybe it still wouldn't be seen as C# ugly step-sibling. Why don't I switch to C# ? 1) I don't code professionally these days, only as a hobby. 2) I can't see the point of having to put semi-colons at the end of lines, when you immediately follow them with CRLF anyway. 3) Curly brackets are too easy to miss in the middle of code for these old eyes. Right now, there's almost no app that's written in C# that can't also be written in VB.NET.
- beachbum8029 10y ago>Strategy for Visual Basic Not >Killing it with fire Very disappointing.
- recursive 10y agoWhy are you disappointed? VB is not exactly javascript, meaning it's easy to avoid writing it if you try. And for that matter, what exactly is your complaint about VB?
- velodrome 10y agoMicrosoft has been trying to kill Visual Basic since 2005. It's like a zombie. Credit to Microsoft for keeping customers and users of the language happy.
- ZenoArrow 10y ago>"Microsoft has been trying to kill Visual Basic since 2005" Where do you get that idea from? Perhaps it's because of confusion over the name Visual Basic. Microsoft have deprecated VB, but not VB.NET. The name 'Visual Basic' has been applied to both, but they're not the same language. Microsoft's support for VB.NET is stronger than F#, and second only to C#.
- velodrome 10y agoI know the article was about VB.NET (successor) but I was referring to the predecessor. http://www.tiobe.com/tiobe-index/ http://www.tiobe.com/tiobe-index/ https://web.archive.org/web/20141110003154/http://www.tiobe.com/content/paperinfo/tpci https://web.archive.org/web/20141110003154/http://www.tiobe.... VB actually GREW in popularity in the last two years. By the way, VB is supported until 2024. That should be enough time to switch to VB.NET, right? :)
- mynameisvlad 10y ago> VB is supported until 2024 There will be runtimes for VB until 2024, but that's far from calling it "supported". The last language release was 19 years ago, in '98, and the IDE stopped being supported in 2008, 9 years ago.
- dragonwriter 10y ago> VB actually GREW in popularity in the last two years. Or people have been using the term "VB" to to refer to VB.NET as old-style VB falls out of the general consciousness, distorting Tiobe's web search engine based methodology for generating ratings.
- badsectoracula 10y ago
- ktRolster 10y agoIt's worth mentioning that another reason C# is popular is because of the strong commitment to backwards compatibility. I can write something in C# and be fairly confident that it will still work a decade from now. That kind of reliability makes me willing to invest significant capital into C# development.
- vvanders 10y agoYup, that's always been Microsoft's strength. I remember hearing epic stories from ex-MS coworkers about the internals of CreateFile/Read/etc. All sorts of convolutions to keep back compat with things from the win31 and earlier days. Painful to work on as a developer but great for customers.
- JamesLeonis 10y agoI can sing the praises of Microsoft's backwards compatibility twice! The first is the little graphics library that is abused by µTorrent since the 9x days, and HTML Applications that lets me run Javascript with full system access. That team is the unsung heroes of computing while (IMO) I'm breaking stuff all the time.
- melling 10y agoHow much cruft is in the language because of backwards compatibility? Java couldn't do generics right, for example, because they didn't want to break compatibility. C# seems to be adding a lot of improvements, but would it be better if they could break compatibility?
- beefydude 10y agoLuckily, very little. The reason is that C# had a chance to learn from the experience of others and is still a relatively new language. There is a little bit of cruft here and there. For example, ,NET had good threading support from the start, but the idioms that are used nowadays for concurrent and parallel programming have evolved, and while the old APIs are still there, developers now use APIs that are more up to date.
- Shalhoub 10y agoPardon my confusion, but I thought that some time back Microsoft abandoned the effort to write all their stuff in managed code under .NET ..
- mynameisvlad 10y agoSource? C# and VB have been constantly updated, with a new release practically every VS release.
- WorldMaker 10y agoThat seems like a lot of confusion. Microsoft has always been a polyglot corporation. Just because not all of their code is/will ever be managed code/.NET doesn't mean that Microsoft would abandon all of the good work that has gone into the .NET platform, its languages, managed code, the CLR platform... .NET is still the "third pillar" of modern application development on Windows devices in the UWP and .NET is also more cross-platform than ever with big investments into Xamarin tooling (now a first party part of the Visual Studio team/Developer Division) and the open source, cross-platform .NET Core runtime.
- becarefulyo 10y agoMany of the built-in Windows 10 apps are written in C#.
- kozak 10y agoSo that now you have to wait until Calculator starts?
- becarefulyo 10y agoOpens instantly for me.
- pjmlp 10y agoStarting with Windows 8, they improved the story of AOT compilation to native code. With Windows 10, the native backend introduced on Windows 8.x was replaced by Visual C++'s backend, known as C2. With C2, Microsoft is trying to make a kind of internal LLVM-like stack for their compilers, with clang, .NET and Visual C++.
- testUser69 10y agoMy strategy for .NET: Stay as far away as possible
- vanattab 10y agoYour missing out. C# is a really great and productive language. And with the advent of .Net Core it's cross platform and open source. What's not to love?
- mixedCase 10y agoTooling outside of Windows is really bad. I'm not completely discounting VS Code, they have been doing great work and might improve big time, but currently it's not an option.
- matthewking 10y agoHave you tried Visual Studio Code? Or if you prefer a fuller IDE JetBrains Project Rider?
- mixedCase 10y agoI have tried both. VS Code lacks too many features still that are necessary for dealing with C# comfortably, while Rider is still immature (and isn't free).
- matthewking 10y agoWhat features are you missing? I've been using VS Code for 4 months now on a daily basis and can't say I'm missing anything outside of some Nuget package management tools, but I'm not sure if that's available to me and I just don't know how/where yet.
- mixedCase 10y agoWere you using .Net Core, or .Net 4.X? The latter is all the C# I have to work with (mostly ASP.NET stuff), and that was pretty poorly supported last time I tried it; requiring me to roll a lot of files manually and so on (e.g. no "create new X page" style contextual options, no way to build project from editor and so on).
- vorotato 10y agoF# is the best #
- drivebyops 10y ago2017 type classes, 2018 Higher minded types ;) Both going in at the same time would be better
- louthy 10y agoYou can almost do this in C# now [1]. It's ad-hoc polymorphism rather than full on type-classes, but it does facilitate generic programming in a way that I've not seen used in anger before. For example, here's a definition of a super generic function that takes a functor of string and maps it to a functor of int. public static FB ParseInts<Functor, FA, FB>(FA input) where Functor : struct, Functor<FA, FB, string, int> => default(Functor).Map(input, Int32.Parse); The secret to it working is the constraint that constrains Functor generic argument to be a struct and a Functor<FA, FB, string, int>. The struct bit means I can call default(Functor) and get a valid reference back (because structs can't be null). I can then call it with a List: var list = List("100", "50", "25"); Lst<int> res1 = ParseInts<FLst<string, int>, Lst<string>, Lst<int>>(list); Or an Option: Option<int> res2 = ParseInts<FOption<string, int>, Option<string>, Option<int>>(opt); And it will happily map the bound values. FLst and FOption are essentially the 'class instances'. Functor is the 'type class', it's just a C# interface [2]: public interface Functor<FA, FB, A, B> { FB Map(FA ma, Func<A, B> f); } The key thing is that 'this' won't be used, so the first argument is the value to be mapped. FLst looks like this [3]: public struct FLst<A, B> : Functor<Lst<A>, Lst<B>, A, B> { public Lst<B> Map(Lst<A> ma, Func<A, B> f) => ma.Map(f); } And FOption like so [4]: public struct FOption<A, B> : Functor<Option<A>, Option<B>, A, B>, BiFunctor<Option<A>, Option<B>, Unit, A, B> { public Option<B> BiMap(Option<A> ma, Func<Unit, B> fa, Func<A, B> fb) => ma.IsNone ? fa == null ? Option<B>.None : fa(unit) : fb == null ? Option<B>.None : fb(ma.Value); public Option<B> Map(Option<A> ma, Func<A, B> f) => ma.IsSome && f != null ? Optional(f(ma.Value)) : None; } As you can probably tell, the amount of clutter from specifying generic type-parameters that the compiler could (relatively) easily work out on its own, is pretty annoying. Which limits it's usefulness somewhat. But if you want to write truly generic code, it's doable (with some caveats of course. you'll notice that the Functor type isn't quite as strict say the definition in Haskell). I'm currently updating my language-ext project to add type-classes [5] and class-instances [6], in the hope that the C# team will take pity on me and make this technique a language feature (it's been seriously turning my head inside out trying to make it work with higher-order types like monads). This is already being investigated by some Roslyn team members [7]. I figured this feature was unlikely to move seriously in the near term without some indication of real world need. [1] https://github.com/louthy/language-ext/blob/type-classes/LanguageExt.Tests/TypeClassFunctor.cs#L73 https://github.com/louthy/language-ext/blob/type-classes/Lan... [2] https://github.com/louthy/language-ext/blob/type-classes/LanguageExt.Core/TypeClasses/Functor/Functor.cs https://github.com/louthy/language-ext/blob/type-classes/Lan... [3] https://github.com/louthy/language-ext/blob/type-classes/LanguageExt.Core/ClassInstances/Functor/FLst.cs https://github.com/louthy/language-ext/blob/type-classes/Lan... [4] https://github.com/louthy/language-ext/blob/type-classes/LanguageExt.Core/ClassInstances/Functor/FOption.cs https://github.com/louthy/language-ext/blob/type-classes/Lan... [5] https://github.com/louthy/language-ext/tree/type-classes/LanguageExt.Core/TypeClasses https://github.com/louthy/language-ext/tree/type-classes/Lan... [6] https://github.com/louthy/language-ext/tree/type-classes/LanguageExt.Core/ClassInstances https://github.com/louthy/language-ext/tree/type-classes/Lan... [7] https://github.com/MattWindsor91/roslyn/blob/master/concepts/docs/concepts.md https://github.com/MattWindsor91/roslyn/blob/master/concepts...
- arwhatever 10y agoI hope Microsoft continues to support VB.NET. I don't know what I'd do without XML literals.
- MichaelGG 10y agoGet them to add some sort of macro system so you could plug in arbitrary syntax instead of one document type mapped to a spdicif API?
- cm2187 10y agoAs a heavy VB user, XML literals is the one thing I never found useful. For serialisation, the XML serialiser is easier than doing things by hand.
- jimmcslim 10y agoIt's unlikely, but it would be great if Microsoft would take ownership of the .Net port of Clojure. If there are two official object-oriented languages in the .Net stable; C# and VB.NET, why not two official functional as well; F# and Clojure? Given Arcadia, the Clojure bridge to Unity, and Microsoft's interest in Unity via its Unity Tools, there might be some synergy there.
- nothrabannosir 10y agoC# and vb.Net are not so much two languages as they are two grammars for the same language. Their ASTs are practically equivalent, bar some minor vb idiosyncrasies, holdouts from the VB6 days. I would be surprised if there were any organizational overhead to speak of for MS in maintaining the two. Clojure and F# are fundamentally, semantically different. (not arguing for or against, just giving some background)
- cm2187 10y agoYou seem to completely discount muscle memory. Muscle memory is why microsoft opted for curly brackets for C#, to make it familiar to java and c developers. Muscle memory is raw productivity. It does matter. Particularly for a population where a large part (including me) are not professional developers and do not have the time to learn new languages. The time you spend outside of your job learning new languages, is the time we spend doing some programming outside of our job.
- marssaxman 10y agoI would be surprised if there were any organizational overhead to speak of for MS in maintaining the two. I sure wouldn't, because I worked on the VB.NET compiler team back in 2008-2009, and "organizational overhead" was pretty much the whole game. The VB and C# compilers were completely separate codebases, managed by parallel but non-overlapping teams of engineers. We never touched the C# compiler's codebase, and the C# people never touched VB. (I did once read through a piece of the C# compiler source code, to see how they'd implemented a feature I was supposed to be reimplementing for VB, so I could be sure to use the same semantics: but that was it.) We had lots of meetings, though. Oh, god, so many meetings. So much time burned keeping all those parallel projects in sync. Whatever commonality the languages have occurs through endless soul-crushing hours of almost-pointless meetings sorting out how these two separate pieces of software are both going to be modified to do pretty much the same thing, with almost exactly the same syntax. Every new feature had to be designed twice over, implemented twice over, tested twice over, and documented twice over. They may look like twin languages, but the illusion is maintained via massive, ongoing investment of sheer brute force man-hours. Maybe things have changed since I was there, but it's really difficult to imagine how that could happen. The VB compiler was effectively legacy code, a horrible creaky mess of ancient patched-together bullshit, and nobody wanted to touch it any more than necessary for fear of breaking something. Refactoring was totally out of the question. I cannot imagine an organization as sclerotic as devdiv managing to rally the effort it would take to rewrite it - safely! - such that the VB and C# codebases could be combined far enough that they would no longer need to have a separate VB compiler team.
- snippet22 10y agohttp://www.tiobe.com/tiobe-index/ http://www.tiobe.com/tiobe-index/
- mamcx 10y agoAgain about F#: - F# is poor for relational databases. (Also, I try several ORM-ish/type providers but only "work" for sql server, and in windows). - F# is poor for web projects and - F# is poor for mobile development. I'm sticking with F# because I'm that much against C-based syntax, not because I logically noted that C# is the only language that truly matters in .NET and I waste more time I wish to trying to solve everything with F#. Also, I'm a solo developer. BTW, I use python, F#, swift, obj-c, delphi and have used Visual FoxPro and others languages that are smaller and expected to have limited support. Among all of this, F# is the one that cause more trouble (because tooling and ecosystem). But is just a joy when things work. And the massive reduction in code pay for it. It only need some love to polish around the edges.
- justanotheratom 10y agoI am curious whether you think F# is poor as a language for web/mobile development, or is it the F# tooling for such development that is lacking?
- mamcx 10y agoTooling. And that some stuff (ie: c# centric classes) not interop as nicely (for example, expando objects, if I remember well...).
- enricosada 10y agowell, some options for mobile - xamarin works with f# and support it: https://developer.xamarin.com/guides/cross-platform/fsharp/fsharp_support_overview/ https://developer.xamarin.com/guides/cross-platform/fsharp/f... - use react native (with fable to transpile f# -> js): https://github.com/fable-compiler/fable-react_native-demo https://github.com/fable-compiler/fable-react_native-demo for web you can use: - suave (http://suave.io http://suave.io) - aspnet core (or aspnet core mvc) both works with .NET, .NET Core and Mono
- mamcx 10y agoI'm aware of all that options, and have tested them. In fact, I have tried to use xamarin+f# for mobile for a year. Now is a better (even have F# templates!) but is clearly a second class citizen. -- Is not the case of Core that F# integration is black magic, or this has changed in last release? All apis work now for F#? For web I try like 6 months ago and only suave was more or less usable (however, is hard to find how solve some stuff. NOTHING (in the open source options I test) is close to Flask/django in this case, and asp.net was sub-par when I test it.) -- I also agree that F# need more push from MS. My complaints, like much others, are about things that just need more polish and tooling - and if it get more competitive in performance with C#, better -. So I think is good to see this .NET strategy and think F# have a good future, to the point that F# is the only reason I come back to .NET. Is only, I wish not just a good future. I want a AMAZING future!
- deleted 10y ago[deleted]
- general_ai 10y agoI read this as "we don't really care about VB anymore, but we're contractually obliged to say that we do".
- smacktoward 10y agoI met a programmer from an antique land Who said: Two vast and trunkless legs of code Stand in Redmond. Near them, on the sand, Half sunk, a shattered language lies, whose IDE, And DLLs, and ActiveX controls, Tell that its sculptor well those passions read Which drive market share, stamped on these lifeless things, The server that mocked them and the client that fed: And on the retail box these words appear: 'My name is VISUAL BASIC, king of kings: Look on my works, ye Mighty, and despair!' Nothing beside remains. Round the decay Of that colossal wreck, boundless and bare The lone and level sands stretch far away.
- frik 10y ago.Net language strategy is to have no long term strategy. They just react to the market, and don't care that much about anything else. VB6 was a great eco-system, had most developers in the late 1990s yet they managed to completely fuck it up. dotNet and it's VB.Net was a bad joke until 2003, and after years of announcing and hot air it was incompatible, and the Wizard to convert was a Lite version from a third party vendor. Many stayed VB6 and changed to the web, or also also looked at Java alternative C#. But the RAD development is a day of the past. Nowadays building a UI app is certainly more effort than in VB6 days. Anyway, nowadays web apps and Android and iOS are in, WinPhone is dead and desktop apps are out.
- alkonaut 10y agoTo be fair a lot of the VB6 ecosystem was showing its age in terms of text encoding support etc. It is the Python2.7 of Visual Basic.
- nmeofthestate 10y agoAs a former VB6 programmer I'd say VB6 is the PHP of Visual Basic!
- svick 10y ago> dotNet and it's VB.Net was a bad joke until 2003 Considering that VB.NET was released in 2001 (or 2002, Wikipedia disagrees with itself on this point), it was a "bad joke" for 2 out of the 16 years of its existence so far? That doesn't sound that bad to me.
- alkonaut 10y agoI have been trying to read planning docs, github issues etc and I still can't find if my one pet feature is planned or requested for C#: proper exhaustive pattern matching for records/tuples. Tuples, records, etc are all find and dandy, but what I want is propoer safety when adding a variant, otherwise they don't really help me reason about my code.
- AndrewDucker 10y agoIt didn't make C# 7. Will hopefully be in C# 8: https://www.infoq.com/news/2016/05/csharp7-pattern-matching-removed https://www.infoq.com/news/2016/05/csharp7-pattern-matching-...
- Jaruzel 10y agoSeeing as this is a comment thread all about VB, an anecdote: A few weeks ago, I decided to convert the 300 or data CDs and DVDs to ISOs - there's no point keeping large stacks of discs around these days - especially now that most OSs allow you to natively mount ISOs as virtual drives. I wanted a quick and easy one-click ISO creator (for Windows), so hunted online for one, and couldn't find a good free one, so turned to Visual Studio to knock up my own utility (as I tend to do often). Not wanting to waste too much time on this (after all it's a one-time ripping project) I found some C# and VB.NET partial code examples of how to stream the data byte by byte off the disc, and into an ISO file. Try as I might, I just could not get the code to work. Again not wanting to waste too much time, I remembered I'd also seen some VB6 code snippets during my searches. I fired up a VM that has VB6 installed (as I never use VB6 anymore), and threw in the snippets, and 10 minutes later I had a rough cut of the utility ripping it's first disc to an ISO. People are very quick to decry older technologies, but if they still work, and take less time to use, then where's the harm? Screenshot of the util (that happily converted over 300 random data discs over the space of a few days, without error): http://www.jaruzel.com/files/dvd-to-iso.jpg http://www.jaruzel.com/files/dvd-to-iso.jpg
- acqq 10y agoI agree with you. If I remember correctly there is also a x86 debugger written in VB. And I claim that those who write C++ by using all the "boost" they can in fact just use too much energy to write VB-style in C++ (or Python style, or Java style). And once they achieve that, having a separate allocation for everything, reference counting etc. even the performance converges, once the allocation patterns are similar. All that being said, for the task you needed, have you seen ImgBurn? It's a native application, written in Delphi. There's a button "create the image file from disc." http://imgburn.com/index.php?act=screenshots http://imgburn.com/index.php?act=screenshots
- Jaruzel 10y agoI have ImgBurn installed, and use it a lot, but i needed the 'play a sound when done' and 'eject when done' features - as they really help with bulk rips if you are doing something else at the same time. I also know from experience, that the simpler the UI, the faster repetitive bulk tasks become - years ago I wrote something similar for Audio CDs when I was ripping my (at the time) 500+ music CD collection.
- alrz 10y agoVB for me was the gateway to the modern .NET programming. Back in school, I've started with VB6 and moved to VB afterwards. The transition was somehow seamless and made me understand the .NET ecosystem better. When I was learning C# I had to first write my code in VB and then try to port it to C#. That was just my way of learning things. It happen to be useful since now I'm fluent in both when I need them.
- macca321 10y agoThe best thing Microsoft could do for .NET is give LinqPad away with every copy of Windows. I'm hesitant to suggest they buy it out though.
- svick 10y agoNot sure LinqPad is the right way to go. What I would like to see is a dedicated REPL application (likely based on the scripting dialect of C#) with IntelliSense and support for NuGet packages (if you want to have those features in LinqPad, you have to pay). Kind of similar to Xamarin Workbooks, but better, and without all the "it's for documentation and inspecting applications" cruft.
- gogocats 10y agoNot a dedicated REPL app, but there's an 'interactive window' for c# in VS 2015, it has IntelliSense (but no NuGet support, which might be added in the future.) https://github.com/dotnet/interactive-window https://github.com/dotnet/interactive-window
- omellet 10y agoI guess C++/CLI doesn't count as a .NET language? Shame it gets so little attention, it's a fantastic interop language.
- amelius 10y agoI would recommend Microsoft to name their environments and languages such that you can meaningfully search for them in Google. I could be wrong, but I can't imagine searching for ".net" or "f#" gives any useful results.
- iaskwhy 10y agoIt seems perfectly fine: https://www.google.co.uk/#q=f%23 https://www.google.co.uk/#q=f%23