Live data from Hacker News

A glimpse into a new programming language under development at Microsoft

lambda-the-ultimate.org

121–130 of 230 posts

Re: A glimpse into a new programming language under development at Microsoft

#121
post #109
post #97

Earlier quoted context omitted.

Kotlin seems nice but when's Kotlin going to be "for real"? What I mean by that is, when will it go 1.0? When will we see a major project from Jetbrains implemented in it? Kotlin has been around for a couple of years now and Jetbrains still won't answer these questions as far as I can see[1]. [1] - http://devnet.jetbrains.com/message/5490337?tstart=0

You can start with the latest build. It is that good. There is no need to wait for the 1.0 version.

I'm sure it's good. It's just not for real yet.

* If you read the link, there is no guarantee of backwards compatibility to the current point within future releases. This is why they're still in milestones.

* Jetbrains has yet to show us that they are, themselves, committed to Kotlin by implementing something major in it.

* They won't provide a timeline for 1.0.

I love thinking about and toying with new languages, but when it comes to sitting down and doing stuff, I need to know the environment has enough commitment such that I don't have immediate code rot.

Re: A glimpse into a new programming language under development at Microsoft

#122
YAGPL (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.

Re: A glimpse into a new programming language under development at Microsoft

#123

Earlier quoted context omitted.

Their language specs are pretty decent and easy to follow. It's almost like they have more than one person who writes specs.

Some 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

Anecdotal, 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.

Re: A glimpse into a new programming language under development at Microsoft

#124
post #31

This 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 int…

It is a systems language. The competitors are c, c++, go, and D. Within Microsoft it's just c and c++. Competition with Java is irrelevant, c# already occupies that space. Microsoft has enough need and scale that a systems language that picks up internal use is justified. The use case is making platforms, not crossing them.

Go, a systems language? I would not be so sure. Stop-the-world garbage collection and dynamically typed interfaces seem like a poor fit for this niche.

Re: A glimpse into a new programming language under development at Microsoft

#126
post #78

Earlier quoted context omitted.

> (yeah, I know about Mono) Mono solves everything you complain about and that's the only mention it gets?

It's like saying "Java only works on old Nokia phones (yeah I know about all other ports of JVM)".

Not really. We've tried running several C# programs on mono, and as of a few months ago, the effort to port them so they will work on mono was pretty intense, and the performance was lacking.

C# (especially when developed in VS) is a nice language and environment, but cross-platform is not one of it's strengths.

Re: A glimpse into a new programming language under development at Microsoft

#127
post #66

This sounds suspiciously similar to Rust.

Yes 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.

> Rust has a completely different type system model

What are the differences? It sounds pretty similar to Rust—"rvalue references, move semantics, destruction, references / borrowing" are straight out of Rust's playbook.

Granted, if it's based on C#, it sounds like it'll be more object-oriented than Rust is, which is a difference. Rust has some object-oriented features, but they're much more minimalist than what C# offers; idiomatic Rust prefers composition over inheritance, etc.

> Rust is not aimed at high performance applications

This week has been bizarro week for weird things people are saying about Rust. :)

Rust is about zero-cost abstractions, period. It's right there on the Wikipedia page: "Performance of safe code is expected to be slower than C++ if performance is the only consideration, but to be comparable (and sometimes faster) than C++ code that manually takes precautions comparable to what the Rust language mandates." http://en.wikipedia.org/wiki/Rust_%28programming_language%29

Mozilla is explicitly investing in Rust in order to build the fastest browser engine around and has been from day one…

Re: A glimpse into a new programming language under development at Microsoft

#128
post #80
post #66

Earlier quoted context omitted.

Yes 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.

Rust aims to match C++ in performance.

Nuts 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.

Re: A glimpse into a new programming language under development at Microsoft

#129

> 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.

I'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.

Re: A glimpse into a new programming language under development at Microsoft

#130
post #128
post #80

Earlier quoted context omitted.

Rust aims to match C++ in performance.

Nuts 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.

unique_ptr should have similar performance to Rust as designed right now, but the upcoming changes to eliminate zeroing out of moved values should give Rust's unique pointers an edge over those of C++ in 1.0.
Post reply on HN