Live data from Hacker News

A glimpse into a new programming language under development at Microsoft

lambda-the-ultimate.org

181–190 of 230 posts

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

#181
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…

C# only works on Windows. This vastly reduces the number of things you can do with it (yeah, I know about Mono). Speaking of Mono, does anyone know of a good resource for C#/.NET devs to learn how to port their Windows apps to Linux/Mac relatively easily? I did a writeup a month ago about my first impressions of Mono: https://news.ycombinator.com/item?id=6744622 In short, there don't seem to be very many "Here's how…

I'm in the market of cross-platform desktop application as well and I've been monitoring Mono/Ximian for a while until last night when I was searching for a .NET Oauth 2.0 library and came across of a project called DotNetOAuth which after further digging does not work on Mono.

I'm a Java developer and I would write the software using Java if only Java isn't stigmatized by "bad software" in the desktop market. It's too bad because so far only Java that provide some of the solutions for me in a few areas to tackle in the cross-platform desktop market, namely: dealing with dependencies, rich 3rd-party libraries (and most of them are FOSS) and a packaging tool for Mac App-Store!.

I wouldn't mind writing 3 different UI code as long as I can share the back-end part and that shareable code works consistently across platform (i.e.: something that communicate with an embedded database like SQLite).

Can anyone share their experience using Mono for cross-platform desktop application that requires DB connection and potentially deal with Service API (i.e.: Twitter, Dropbox, etc)?

My requirements are as follow:

1. Installer/Packager

Something that can help me to generate installer for Windows 7, Mac AppStore, Ubuntu software center (or .deb). RPM would be nice but I can live with writing shell script.

2. Build+Dependency management (don't know if NuGet works flawlessly or not in Linux/Mac)

Maven spoiled me (people who dislike Maven please close your eyes...). I've read that Mono has xbuild but the documentation seems... lacking.

3. Unit-testing

Something where I can run unit-tests through the IDE so I can debug directly from my unit-tests when bugs are found.

4. Good enough 3rd-party libraries

I'm down writing missing libraries if needed but my first priority is the app itself.

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

#182
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…

> But there's a huge downside: C# only works on Windows. Not true. And, even if it were, how is that in any way a downside from Microsoft's point of view? As a Linux user myself, the main reason why I switched from Windows is that all the exciting advances in programming languages are happening in * nix-land, mainly Haskell and Rust. If there were some super-duper-awesome language for which Windows were the first-cla…

>I would much rather be locked into a single platform for which there is an awesome language.

So you would rather be locked into a single crappy platform with a crappy language that only works on that single crappy platform?

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

#184

Earlier quoted context omitted.

I have been building GUI applications with Java and Swing for some time. I am willing to go on-the-record and state that Swing provides a reliable and thorough cross-platform GUI toolkit. Once you put the work in, you really can build an application that looks native-ish and does the same thing on Windows, Linux/GTK and Mac OSX. Unfortunately the learning curve is quite steep, many things are more complicated then th…

> I have been building GUI applications with Java and Swing for some time. I am willing to go on-the-record and state that Swing provides a reliable and thorough cross-platform GUI toolkit. Swing is used by two kinds of people: developers, because the tools that use it are just too good to go elsewhere (IntelliJ etc) and enterprise users that have it forced upon them. I don't think anybody is using Swing willingly --…

It may be over-engineered, but it's easily available, at hand, when you need it.

The only cross-platform GUI toolkit that I loved working with and that does a much better job than Swing is Qt. Unfortunately Qt is C++ and it's not even standard C++. So language bindings are hard to build and (compared with Gtk) working with C++/Qt is not so painful. The bindings for Mono are dead. Trolltech released at some point Qt Jambi, the Java bindings, which were awesome, unfortunately the Java community hasn't been interested in it, so Qt Jambi also died after Nokia acquired Trolltech - for the moment at least (the wonderful thing about open-source stuff is that it can be revived with enough interest). The only well maintained language bindings for Qt is PyQt.

And yes, building the UI using the platforms native stuff yields better results, but it's also more expensive to do so. We're all moving in that direction anyway, given the emerging mobile platforms. Sometimes I'm thinking that for desktop apps it's just better to embed a web browser and build the UI with HTML/CSS and JS.

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

#185

Just like Microsoft copied Java with C# they are now trying to copy Go. Always late to the party as usual.

Ignoring 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!)

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

#186
post #159

Earlier quoted context omitted.

It looks like you have a very narrow perspective on C#. I've never tried running .net on a non-windows platform, so I can't comment in that space. I'll leave that to someone else. As someone who's built bespoke big data applications, scientific computing (if we're both talking about large scale computation for analytics), desktop applications, server applications/services, and web sites (one of which is within the US…

I think you're missing my point, it's about sweet spots. C# has a sweet spot on windows desktop and ETL style data processing. You could have written all of those things in C++, Java or Python. But the ecosystem isn't there. There's no Hadoop, SciPy, Django or Rails. For crying out loud, just running a less compiler on Windows required someone to sit down and rewrite it from scratch. (The node story has improved on w…

You're right. I am completely missing your point.

I can't speak for all .net shops, but in my experience you roll your own. You sit down, discover your problem, and write a solution for whatever you need from scratch specifically tailored to your need and performance requirements. Afterward, you understand the code (and the intent behind it) very very well.

I don't lament the lack of third party frameworks. I take them as an inspiration when I find interesting ones, and I know my toolset well enough to re-work their solutions and make them my own in pretty good time.

For me, as long as whatever it is is meant to run on windows (and doesn't require native performance), C#'s sweet spot is whatever I decide it needs to be.

Having a C#-like language in which I can write code with performance comparable to native will put some icing on my cake.

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

#187
post #160

Earlier quoted context omitted.

For the record, top rated comment here, and I do a fair bit of C++ as well as C# and am fully aware of how awesome have proper control over allocations would be. My frustration is that once they've finished, I don't believe it would be any more use than C# in practice. (There's a nice language struggling to get out of C++14.) However, Rust exists and is unlikely to be as encumbered as what Microsoft produces.

Perhaps you are right that I am painting HN with too broad a brush. I do see some good points made scatteringly in this discussion, such as yours. On Rust, and also this project (I believe the following point is mentioned elsewhere in this thread as well): There's one thing I don't get about the whole thing. People who want a low-level language with lots of control have C and C++. People who want a high-level languag…

I can only speak for Rust, but Rust does actually give you the flexibility and unsafety of C, but this is an escape hatch; you can write most of your program with the memory and data race safety that Rust provides, only dropping down to the super-low-level C-like code when absolutely necessary.

I.e. you can rely on the compiler to verify most of your code, only the explicit `unsafe` blocks (which are normally very rare, especially with some considered abstractions that keep all the unsafety in one place) absolutely need auditing for things like buffer overflow and use-after-free (unlike C/C++ where any code in the whole codebase can have these problems).

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

#188
post #110
post #67

Earlier quoted context omitted.

Also, Mono's own ecosystem of additional libraries works better on Windows than on Linux. A while ago, I used a project that used an SQLite binding from the Mono project. They decided to discontinue development of this library in favour of a newer alternative, and it was then totally broken by subsequent Mono updates - but it continued to work fine on Windows with .Net. So any projects that still use this library are…

Quite funny that you try to generalize a statement from what appears to be just one single example (note: mono developer here and this is the first news I have about a fuckup like this).

It comes with the territory, I'm afraid. Some users will try something once, find a bug or limitation, decide the platform sucks and never touch it again (and if the platform is worthless, why bother filing a bug report.) I've been guilty of it myself quite a few times. First impressions count for a lot, and they can be difficult to control.

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

#189
post #64

Earlier quoted context omitted.

>So the best you can hope for, basically, is a better C#. But not good enough to take on Java. From the linked material - What are you basing this statement on?

C# itself is better than Java, so the new language must be 2x better than Java

The language is better, but the backend and ecosystem are not.

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

#190

Earlier quoted context omitted.

> But there's a huge downside: C# only works on Windows. Not true. And, even if it were, how is that in any way a downside from Microsoft's point of view? As a Linux user myself, the main reason why I switched from Windows is that all the exciting advances in programming languages are happening in * nix-land, mainly Haskell and Rust. If there were some super-duper-awesome language for which Windows were the first-cla…

>I would much rather be locked into a single platform for which there is an awesome language. So you would rather be locked into a single crappy platform with a crappy language that only works on that single crappy platform?

> So you would rather be locked into a single crappy platform with a crappy language that only works on that single crappy platform?

Please explain how you arrived at that conclusion.

Post reply on HN