14 ms·
A glimpse into a new programming language under development at Microsoft
- Daishiman 13y agoThis sounds suspiciously similar to Rust.
- hayksaakian 13y agoNo, but this is Microrust It's completely not at all the same, but still familiar to rust programmers. It's but built for the enterprise with advanced patented technology. The yearly license fee will include responsive customer service.
- ABS 13y agowell, if we only look at the language and the "recent" past then C# is both an Ecma and ISO standard. yes, it's only one example among 1000s of opposite ones but things are changing even in Microsoft, very slowly, with lots of setbacks, but they are. They won't transform MS anytime soon and possibly ever but I see saner pockets emerging.
- thirdsight 13y agoYes their technical specifications for protocols and formats are wonderful since they released the open specification promise! Oh no wait, for those of us who have actually used these specs (in my case MSRPC/DCE), it's a hopeless mess of blatantly incomplete documentation obviously written by the lowest bidder. Microsoft haven't changed. They've succeeded in changing their perception only. The company is still predatory sales focused and always will be.
- ajanuary 13y agoTheir language specs are pretty decent and easy to follow. It's almost like they have more than one person who writes specs.
- thirdsight 13y agoSome are, some are not. Some are so bad it's unfunny. Literally someone has read the COM IDL and made up some padding. The core protocols like MSRPC are poorly documented i.e. the interoperability specs. They definitely have more than one person (did I suggest otherwise?) but I suspect the documentation was outsourced for a lot of stuff to people who have no idea how it works
- throwawaykf03 13y agoAnecdotal, but sometimes things seem so dysfunctional within MS that I can't believe they get anything done at all: I once met a professor at a conference who said his grad students were reverse-engineering some of Microsoft's distributed system protocols (not MSRPC). I asked him why he didn't directly contact the team owning that project at Microsoft for help instead, and if I should introduce him to them -- I had met them before and they were pretty friendly and eager to get people to use their stuff. He said he was doing the reverse engineering for Microsoft. When I was like "WTF, why?!", he wouldn't give any details but said in an offhand way that MS needed somebody to document the system. Now, I cannot imagine what unearthly sequence of events led to a snafu where MS had to ask an outside party to reverse engineer their own stuff in order to document it... But that may explain your experience.
- InclinedPlane 13y agoThat's not how languages in the .net ecosystem have worked in the past. C# is an open, ecma standard, as is the specification of the common language infrastructure (the VM/byte-code design for running .net programs). And MS publishes the language specifications for VB and F#. That's why it's possible to run .net code on linux without ever paying MS. There's even an open source F# compiler. Moreover, the .net compilers, library, framework, and run-time are, and have been, provided for free, as is a version of the IDE. All of which can be used to develop commercial applications. The only requirement being that they run on a Windows OS. Even so, you can run all of this from within WINE, again without ever paying MS any money whatsoever. The idea that MS is out to envelope developers by enticing them into a language that requires massive cash outlays or ongoing licensing fees is not supported by reality.
- shadowmint 13y agoThe idea that MS is out to envelope developers by enticing them into a language that requires massive cash outlays or *ongoing licensing fees* is not supported by reality. ... The only requirement being that they run on a Windows OS Mhm. Yes, I suppose you can run some C# on a non-windows machine, but it'll have bugs, break, some libraries won't be supported and there's no tooling support. ...but don't worry, you can happily tell everyone how free and open source it is. That's really important! (by comparison, have a look at go which actually bothered to make a commitment to supporting various platforms; and don't even start with that whole 'xamarin is awesome' stuff; yes it is, but it in no ways acts as a caveat for microsoft's 'we'll make the spec public, that's good enough right?' behaviour)
- melling 13y agoWhy does this need to be explained to C# people every time we have this conversation? Seriously, every time! C# runs great on 90% of desktop computers because Microsoft has had a 20 year desktop monopoly. It's is a walled garden until we can easily move code to other platforms and have it perform at the same level.
- 13y ago
- thomasz 13y agoI'm really appalled by the hostility that's being displayed here. This is Microsoft research in Cambridge, not the Xbox one marketing department. You know, the guys who work on Haskell, ported OCAML to .net and generally do a lot of awesome stuff. What have you created that justifies this kind of an attitude?
- catnaroek 13y ago> You know, the guys who work on Haskell, ported OCAML to .net and generally do a lot of awesome stuff. Not exactly. The guys who developed F# based the core language mostly on OCaml and borrowed some ideas from Haskell, but are not the same as the people who developed Haskell.
- thomasz 13y agohttp://research.microsoft.com/en-us/people/simonpj/ http://research.microsoft.com/en-us/people/simonpj/ Yes, I'm aware that it's not the Haskell core team who is working on this new language. But they probably have their offices across the floor.
- contextfree 13y agoFYI, this isn't really an MSR project. It (the OS project that spawned the language) was run under the "Startup Business Group" until recently, and developed in Redmond.
- codingbinary 13y agoMy thought exactly. Seems like they're just jumping on the same train.
- ewoodrich 13y agocodingbinary, you are hell-banned (your comments are invisible to the vast majority of users). Your comments aren't all "great", but they seem to be in good faith. I feel that a friendly reminder to strive to post substantive and relevant comments [1] would be a far more appropriate remedy than killing your account after your second comment. [1] http://ycombinator.com/newsguidelines.html http://ycombinator.com/newsguidelines.html
- ksk 13y agoYes it does, but IMO only superficially. Rust has a completely different type system model and also Rust is not aimed at high performance applications, while this seems to be. Many(most?) new languages fade away because nobody is interested in implementing compilers/libraries writing documentation/teaching material/etc etc. I'll be impressed if they can ship something next year.
- ehsanu1 13y agoRust aims to match C++ in performance.
- ksk 13y agoSomeone should add that to their FAQ then. https://github.com/mozilla/rust/wiki/Doc-project-FAQ https://github.com/mozilla/rust/wiki/Doc-project-FAQ This is what they state their goal is. (no mention of performance) >To design and implement a safe, concurrent, practical, static systems language. vs (linked article) >high productivity (ease of use, intuitive, high level) AND guaranteed (type)safety AND high execution performance.
- erickt 13y agoYou're right, we should mention it. Thanks for catching this. I filed a bug ticket to add some language about our performance goals: https://github.com/mozilla/rust/issues/11174 https://github.com/mozilla/rust/issues/11174
- kibwen 13y agoNuts to that, I expect that Rust could regularly exceed C++ in performance. Ownership as a core concept means that you get pointer aliasing information for free, which has always been Fortran's biggest advantage over C. And correct me if I'm wrong, but C++'s unique_ptr isn't guaranteed to have zero overhead at runtime, as Rust's unique pointers are.
- pcwalton 13y ago
- keypusher 13y agoSounds great, but I'll wait to see some actual code before getting my hopes up.
- greatsuccess 13y agoC++ does not perform, is not a managed language, and has nothing to offer. What could he possibly be talking about? I read this as MS once again getting it completely wrong. Seriously C++ solving managed languages performance and memory problems? Physician, HEAL THY SELF.
- adamnemecek 13y ago> C++ does not perform,... You sure seem to be an expert on these things.
- matjazmuhic 13y agoComputer games which are impacted by performance the most are written in what language?
- venomsnake 13y agoI doubt that C++ is chosen because of raw performance (both C# and Java are close enough), but mostly because of memory and cpu cycle determinism.
- yeukhon 13y agoDoes it have anything to do with history? Given Java relying on JVM and in the beginning JVM's performance probably wasn't so good, game libraries were probably written in C, C++ and then nobody wanted to rewrite game engines because gaming industry is really fast-pace and very very busy.
- ek 13y agoThe tech report version of the OOPSLA paper Joe mentions, about a type system for side effect understanding, is here: https://research.microsoft.com/apps/pubs/default.aspx?id=170528 https://research.microsoft.com/apps/pubs/default.aspx?id=170...
- riffraff 13y agoalso from MSR, Koka[0] has effect types and a sweet online repl! [0] http://rise4fun.com/koka/tutorial http://rise4fun.com/koka/tutorial
- hackaflocka 13y agoJudging by their track record, I completely trust the geniuses at Microsoft to solve another non-existent problem /s.
- venomsnake 13y agoMS have been very very good on the technical side of the things. It is the business decisions that mess things up. The only really bad technical decision that they have taken is the broken security model of user accounts.
- PhasmaFelis 13y agoDo we really need more languages? Aren't there enough languages already? I suspect I have just outed myself as a substandard hacker. :( But seriously! There's so many!
- _random_ 13y agoThere aren't that many languages backed by a giant corporation (=> tools and docs). And no, we just need C# (multi-paradigm, multi-typed) with better performance - which is what they are doing.
- dsl 13y agoWell really we just need C, now get off my lawn.
- deleted 13y ago[deleted]
- Lerc 13y agoYes, we need more. There are many ideas to explore still. The "do we really need more languages?" argument predates most of my preferred languages(and that probably includes C and Pascal). I like Haxe, Rust is looking like being really good also. I don't like Go but others do, and that is a really important point. You don't have to like, or use the new languages. As long as someone finds them useful they have a place.
- dmpk2k 13y agoI'm a bit leery of that argument, because in my experience the most important component of a language is its ecosystem. By far. I've played with many really nice languages, but never used them seriously because they had no libraries (let alone quality libraries), had poor tooling, poor documentation, buggy runtime, and almost nobody to compare notes with. In my experience, the largest jump in productivity is libraries, not some feature of a language. On the one hand, languages are useful to explore a space. On the other, there's a lot of reinvented wheels going on here. If all languages stuck with the same ABI (e.g. C), it'd be one thing, because then you could use the same libraries and many tools between languages. Unfortunately, they often cannot, and thus you can't. There's some serious opportunity cost going on here. I'm happy using node.js at the moment (ooh, shiny!), but the current situation with a plethora of languages isn't exactly great either.
- qwerta 13y agoI think Microsoft language research is wonderful. But they tools do not run on Linux and MacOS well.
- deleted 13y ago[deleted]
- dmunoz 13y agoI'm going to ramble a little below, so I'll get to the point up front: is there even a new language here? I don't mean in the sense that Rust seems to attempt what is being hand waved about in the submission, but that the linked blog post states > I’ve given a few glimpses into this work over the years. In the months to come, I will start sharing more details. My goal is to eventually open source this thing, but... We'll have to wait and see, I guess. I also found this quote a bit odd > There are other candidates early in their lives, too, most notably Rust and D. But hey, my team works at Microsoft, where there is ample C# talent and community just an arm’s length away. D is hardly early in its life, but there is something about the whole "my team works at Microsoft, where there is ample C# talent" bit that is so very Microsoft, and I don't mean because it mentions Microsoft and C#, but in the sense of how they tend to work there. At least, this is my outside view, based mostly on what they promise vs. actually deliver in the C++ world, and where their interest constantly seem to fall short. Of course, you can't blame Microsoft for being interested in advancing Microsoft. With that out of the way, and being up front that the rest of this comment is unnecessary, I wonder why this is on the front page of Lambda the Ultimate. It's become a favourite site of mine as I've recently become a lot more interested in language implementations. I'm certain the comments on the article will make it worthy, but as it stands, and with my comments above out of the way, I don't see what it offers. It's just hand waving about some ideal language that doesn't (fully) exist yet. The actual answer to my question of why it is on the front page is because Charles Torre can make front page posts, but just be aware that he works at Microsoft and hypes up their behaviour (that I'm admittedly not so pleased with) often. I know he is, like me, actually interested in language implementations, and has made far more worthy contributions on LtU than I ever have, but the front page of LtU is usually a bit more grounded.
- ehudla 13y agoFor the record, Charles didn't post it to the home page. I promoted it there, since I thought (correctly, it turns out) that it might be of wide interest. So all the blame for that goes to me.
- dmunoz 13y agoIt's actually nice to see activity on the LtU front page. The two other posts I would assign to the same category as the submitted one would be xkcd: Functional [0] and The Three Laws of Programming Language Design [1] posts. They both had good discussion, which is where a lot of value at LtU comes from. I even wrote my own little script to make the expanded, threaded list of comments collapsible to consume them more to my liking. To be fair, I was being unjustly negative because of my worry about how Microsoft treats such projects. Admittedly, after sleeping on it, I don't see it to be as big as a deal as I did last night. It'll be interesting to see what Microsoft produces, and we'll still have the open and approachable Rust regardless. I find Charles reply to your comment about the HN thread odd though. He says > It's interesting, though not unexpected, that folks are already comparing this language to D, Rust, and Go which also aim for a nirvana (safe, productive, fast, open) without really having many of the details required to make intelligent comparisons (on reddit, somebody made a post asserting this language is MS's _answer_ to D and Rust... WTF?). Why is this interesting or unexpected? Joe Duffy's blog post mentions D and Rust explicitly. That we don't have "many of the details required to make intelligent comparisons" was my issue with it being hand wavy. There are already conspiracy themed posts about this being because Microsoft wants to lock down patents on these parts of the language [2]. Post the details, and we'll likely see "intelligent comparisons" being made on HN and Reddit. The post is spreading on Reddit as well, if you would like to see others feelings on the matter [3]. [0] http://lambda-the-ultimate.org/node/4816 http://lambda-the-ultimate.org/node/4816 [1] http://lambda-the-ultimate.org/node/4754 http://lambda-the-ultimate.org/node/4754 [2] http://www.reddit.com/r/rust/comments/1tve0m/a_glimpse_into_a_new_general_purpose_programming/cebvl72 http://www.reddit.com/r/rust/comments/1tve0m/a_glimpse_into_... [3] http://www.reddit.com/r/programming/duplicates/1tvic1/the_microsoft_response_to_d_and_rust_m/ http://www.reddit.com/r/programming/duplicates/1tvic1/the_mi...
- jedicoffee 13y agoSweet, in 4 years they can completely remove all support for it and start again!
- moomin 13y agoThis is going to be horribly negative so a bit of context first: I'm a professional C# programmer. I love C#, I think it's a great language. But there's a huge downside: C# only works on Windows. This vastly reduces the number of things you can do with it (yeah, I know about Mono). There's nothing here that suggests that this would have anything other than the same restrictions. So, assuming the language develops into everything that's promised, you're left with something on which you can't do mobile, can't do big data, probably won't work very well for scientific computing. In fact, basically you're still stuck with the same LoB apps and ETL tools that C#'s already great at. And probably the same second rate (not awful, not great) web experience. So the best you can hope for, basically, is a better C#. But not good enough to take on Java. Don't get me wrong, it sounds exciting, but equally I worry that it'll be used as a way to generate patents to prevent the ideas being used elsewhere in environments where, tbh, they'd find more use.
- romanovcode 13y agoC# developer here, also love the language. I completely agree and I only hope that this new thing will be just as good as C# but fully cross-platform. It would be great. >mobile Xamarin is pretty solid, although it costs a lot.
- tluyben2 13y agoXamarin has been nice so far; it's not that expensive compared to any serious project, but it should be cheaper to capture larger audiences. The free version is very crippled even for trivial projects.
- venomsnake 13y agoProject Rotor will be left in the history books as the "Java killer that was never unleashed". I remember using C# back in 2005 and just thinking how far ahead of everything it was. But it was never allowed to leave the shackles of MS.
- thirdsight 13y ago
- romanovcode 13y agoI would imagine that language like that would be one of the best you could hope for. I hope this language will fit all the bullets. - C# syntactic sugar - As fast as C++ - Does not require .NET - Runs on Windows/Linux/Unix with no problems
- leifus 13y agoSounds a lot like D (http://dlang.org/ http://dlang.org/)...
- munchor 13y agoOr Vala (https://wiki.gnome.org/Projects/Vala/Tutorial https://wiki.gnome.org/Projects/Vala/Tutorial).
- thirdsight 13y agoSounds like Java 8!
- deletes 13y agoDoesn't Java still require an instalation of JRE, which is an analogue to .NET? edit: If it somehow didn't need it, I would start considering it as my next language to learn.
- thirdsight 13y agoNo. The JRE can ship with the app. The CLR ships with the OS.
- ben_hall 13y agoC# might be a great language now, but 1.0 was horrible! It was a painful experience to gain adoption within companies and frameworks on top of it (ASP+ for example) still needed to mature. The world is different now. I predict Microsoft will push NodeJS / JavaScript / HTML5 for application development. I'm assuming this will be targeted towards the Go style community and applications. It has a lot of the same properties with Go starting to gain traction I can see why Microsoft would be exploring the space.
- _random_ 13y ago"NodeJS / JavaScript / HTML5" - more likely to be just another option to satisfy everyone. I would rather move to Scala than use JS for anything other than rich GUI. Who wants to support business logic implemented in JS by an average developer?
- tomjakubowski 13y agoWhy give up Scala when you're writing code for the browser? https://github.com/scala-js/scala-js https://github.com/scala-js/scala-js
- ben_hall 13y agoMicrosoft would never promote Scala as it's a JVM language. NodeJS is likely given the recent relationship with Red Gate and effort surrounding Azure support. As for business logic by an average developer - I would say the same thing about every language.
- yeukhon 13y ago> 5) Modern error model. I am pretty excited to see this. Any existing language out there actually does this?
- m_mueller 13y agoIt sounded a lot like Eiffel[1] to me, except they also have traditional Exceptions when you need them. [1] http://en.wikipedia.org/wiki/Eiffel_(programming_language)#Exception_handling http://en.wikipedia.org/wiki/Eiffel_(programming_language)#E...
- klibertp 13y agoRacket, of course! Very sophisticated contract system and exceptions and reified continuations. It's dynamic, JITed language, and it's a Lisp, but I recommend studying it just for the sake of learning various techniques Racket uses. They are frequently very interesting from the language design perspective and their usage is easier to understand than in Haskell :)
- EdwardDiego 13y ago> it’s not uncommon for us to encounter 30-50% time spent in GC Hmm... not sure if that's just C#, or if I should start profiling my Java apps a lot more closely.
- stusmall 13y agoI'd written a JVM project a while ago that also spent an ungodly amount of time in GC. You can create bottlenecks almost anywhere given enough (lack of) effort. Who knows how finely tuned these projects were or what their load was like before a rewrite. A rewrite in a new language gives you more benefits than just the new language , it also gives you the benefit of hindsight. The ability to fix mistakes made in the first implementation can go a long way.
- EdwardDiego 13y ago> Who knows how finely tuned these projects were or what their load was like before a rewrite. A rewrite in a new language gives you more benefits than just the new language , it also gives you the benefit of hindsight. The ability to fix mistakes made in the first implementation can go a long way. That's a very good point with these rewrite stories - you could happen to rewrite some really poor code while porting and boom! Language Y is 50% more performant!
- yarou 13y agoIt's interesting that there is renewed interest in finding a "modern" systems programming language. I'm not entirely sure if the world
- yarou 13y agoIt's interesting that there's renewed interest in a modern systems programming language. However, I feel as though the world doesn't need another ALGOL-like language. C# is very good at what it does, but managed code will always execute at a slight penalty vs native code. Nonetheless this will be an interesting experiment into a modern "safe" systems language.
- molsson 13y agoThe homepage of Joe Duffy says "I’ve been granted 45 patents, with another 33 pending" (see his homepage under /about via google cache since the page is down due to load from HN). Bragging about patents doesn't exactly make me like the guy. Has he been living under a rock, why would he write that on his about page? Anyway, he says explicitly that he cannot reveal any details at this point; i.e. Microsoft has filed patents related to this "new langage" and can't talk about it until they are approved. He also claims to have been working on his "new language" for 5 years already; I wonder what those 33 patents he says he got pending are? Or maybe he patented 33 things related to something he hasn't been working on for the last 5 years? Not likely. Microsoft will get more and more desperate as they continue to be marginalized in terms of market cap, market share and developer mindshare. They have a long track record of simply being dicks (i.e. just look at how they charge royalty for every android phone, and how they created the Rock Star patent troll company etc). It would be better for everyone if Microsoft stayed out of the "perf + productivity" language niche.
- throwawaykf03 13y ago> Bragging about patents doesn't exactly make me like the guy. Has he been living under a rock... No, you've been living in an echo chamber :-) Open source enthusiasts may well want to share their work for free (or statistically more likely, use others' work for free), but that's their prerogative. Most companies will not give away their competitive advantage and will seek to protect it anyway they can, and similarly, they are well within their rights to do so. However, open source seems to be the dominant religion around here. And also you have a lot of Google employees here, and Google is a bit handicapped when it comes to patents at the moment. This is why you hear a disproportionate amount of anti-patent rhetoric. Outside these circles, most engineers are either ignorant about patents or quite proud of their patents.
- thomasahle 13y ago> you have a lot of Google employees here, and Google is a bit handicapped when it comes to patents at the moment. This is why you hear a disproportionate amount of anti-patent rhetoric. Do you actually belive this? > most engineers are either ignorant about patents or quite proud of their patents. Cooperate America seems to be the only echo chamber that belives software patents are a pretty neat idea.
- sergiotapia 13y agoI just hope it's not so heavily tied to an IDE. One of the things I really enjoy about using Go and Ruby is that I can use whatever the heck I want to write code. C# was my first language learning and it took a while to shake off the notion that "everything must be done with an IDE".
- samirahmed 13y agoI couldn't agree more. That said, I think hidden in your last sentence is the fact that working with C# in an IDE with a statically typed language is such a pleasure. For most mundane code (loops, linq, if/else), Resharper will literally autocomplete everything. I really wish other languages offered such tooling at times. I don't think any other language/IDE combo comes close (in my opinion).
- kooshball 13y agoModern Java with IntelliJ is similar.
- EdwardDiego 13y agoTry Intellij IDEA with Java and the various Java frameworks - IDEA is Jetbrains' (developers of Resharper) flagship IDE, they also do slightly more focused variants for Python, Ruby, PHP, and web development (PyCharm, RubyMine, PHPStorm, and WebStorm respectively.)
- laureny 13y agoI am quite disturbed by this claim: > It’s commonly claimed that with type-safety comes an inherent loss of performance If we've learned anything, it's that type safety buys you performance because it enables a lot of compiler optimizations that are not possible in dynamically typed languages. Other than that, the language sounds very interesting but if it's going to be Windows only, it will suffer the same fate as C#: powerful but crippled by its platform boundaries in a way that will make it impossible to compete with Java.
- brandonbloom 13y agoI assumed he meant safety in the general sense or memory safety specifically. Things like array bounds checks, dynamic cast failures throwing exceptions, etc.
- Sssnake 13y agoBut he said type safety, which is entirely compile time and allows you to avoid run time checks, making it faster not slower.
- sanxiyn 13y agoType safety means well-typed programs can't go wrong. Corrupted memory is surely a case of going wrong, so memory safety is a part of type safety. (In this sense, C, C++, etc. are not type safe.) By the way, it is possible and sometimes preferrable to do all type checks in runtime. Haskell provides this option: https://ghc.haskell.org/trac/ghc/wiki/DeferErrorsToRuntime https://ghc.haskell.org/trac/ghc/wiki/DeferErrorsToRuntime
- Sssnake 13y agoContext is cool. With context, you can participate in a conversation, rather than stating an obvious but non-sequitur fact. By definition, type checks are done at compile time. Haskell's defer-type-errors is precisely an example of that. The error is found at compile time, but rather than signal it, the offending code is replaced with an exception.
- sebastianconcpt 13y agoSounds like a lot of effort to pay in exchange of an incremental improvement of C#.
- alco 13y agoYAGPL (yet another general-purpose language). I think we've had enough of those in the past decade. Each one has something new to offer, but at the same time it disperses attention of the programmer crowd and so less effort is put into each language's development. I think we need to experiment more with single-purpose languages. I'm not saying DSLs because those are mostly embedded syntactic constructs in existing languages. By single-purpose I mean an independent language (not just new syntax, but semantics as well, and possibly new runtime) that does one thing and does it well. I believe such a language will have much more luck in becoming the single good enough solution for a particular problem (any problem it chooses to address, but only that one). There is really no hope for any general-purpose language to be a good fit for the whole wide spectrum of problems modern computing needs to solve.
- corysama 13y agoHow about a system for creating single-purpose languages? http://www.vpri.org/pdf/tr2011004_steps11.pdf http://www.vpri.org/pdf/tr2011004_steps11.pdf
- dded 13y agoDo you have any "particular problem" in mind? You don't mention one. I think the trouble with single-purpose languages is that, realistically, their development needs to be motivated by a real problem not satisfactorily addressed by an existing language. And since the people with these problems are not often going to be language designers, most such opportunities will be missed. I'm frankly surprised by the existence of Julia.
- josephcooney 13y agoFetching information from a data store of some kind, and presenting it as a web page would be a good one.
- btbuildem 13y agoSigh.. a Windows-only language? Really? Talk about ivory tower..
- computerslol 13y agoIs this a research project, or something that will be released to the public? As someone that's spent a lot of time learning how to get c# to perform, this sounds fantastic to me. I can't wait to see it.
- pandora99 13y agowho needs another Windows only new programming language?
- stcredzero 13y ago> Part of what my team does is regularly convert C# programs to this new language, and it’s not uncommon for us to encounter 30-50% time spent in GC. For servers, this kills throughput I think a lot of money in computer technology is made off of the cluelessness of application programmers. Then again, sometimes "cluelessness" = "schlepping" = opportunity. Azul systems Zing JVM is an example of this. Instead of arcane tuning, architecture, and optimization, you just put in a pauseless GC VM. ARC with Objective-C shows that one can have automated deterministic memory management that's not only workable in practice, it works about as well as GC. That is, 90% of the time, with gotchas for application programmers not paying enough attention the other 10%. A functional language should enable a "just works" percentage even higher than 90%.
- groovy2shoes 13y agoC# but with better performance? Sounds a bit like Delphi with curly braces.
- forgotAgain 13y agoI think they would be better off porting C# to other platforms. Their long term strategy of keeping developers locked up on Windows has become counter productive. Developers want / need to develop on Apple and Android platforms as well as Windows. Microsoft has great development tools. It would be better for them to hold onto the developers and share them with other platforms rather than losing them completely. By making their development tools multi-platform they would be bringing many developers to Windows who today want little to do with that platform.
- kolev 13y agoNo Linux and Mac, no thank you!
- kolev 13y agoTo clarify, Mono is no Stereo: no first-class support of non-Windows platforms pretty much dooms the language. And it's not about where you develop, it's where you deploy. I'm not gonna switch to Azure or AWS/Windows, because of a fancier language when there are D, Go, and others!
- raptormissle 13y agoJust like Microsoft copied Java with C# they are now trying to copy Go. Always late to the party as usual.
- kevingadd 13y agoIgnoring the fact that the post directly references Rust and D (languages that are actually similar to this effort), they have no reason to copy anything from Go because existing Microsoft libraries and languages already do everything Go does with more mature libraries and a more mature runtime (for example, unlike Go, Microsoft's runtime has a precise garbage collector!)
- Pxtl 13y agoA part of me is very excited by this. C# lives in a very interesting place now - MVC and EF are open-source and Mono is getting mature. There are tons of blind, stupid alleys of bad politics in C#'s library, but MS seems to have worked out the kinks. A new gaming-compatible language that breaks free from the old legacy and purely embraces the new Microsoft platforms and their semi-open development model could be excellent. And with MS offering hardware platforms for gaming, mobile, desktop, and server, there's a lot of space for this language to really shine - a good systems language for XBox and WinPhone would be beautiful. And while I'd cringe at another platform-specific language, Apple has proven that people will suffer through your exotic toolchain if it means getting to develop for a popular platform. The biggest problem historically with C# isn't the windows-specific nature of the platform, it's the heavily Cathedral-oriented community. Developers are married to Microsoft libs, even when they suck, and it doesn't have the kind of open reusable tools that other platforms have. Microsoft has finally started achieving this, but only by creating open-source communities around their existing libs like EF and MVC.
- brianbarker 13y ago"...that a nirvana for a modern general purpose language would be one that satisfies high productivity (ease of use, intuitive, high level) AND guaranteed (type)safety AND high execution performance..." So they're making MS Go. Just like C# is MS Java.