Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not really, it is a great development experience, but so is the Java ecosystem, note the stress on ecosystem and not language grammar.

Also LINQ that so many on the thread are salivating about, were already present in Smalltalk and Common Lisp collections, were influenced by ML languages and the time Erik Meijer from Haskell fame was part of Visual Basic team.

See "Confessions of a Used language Salesman: Getting the Masses Hooked on Haskell".

Nowadays busy with Scala and Kotlin.

And since I made the reference, Java and .NET IDEs, still don't offer everything that Smalltalk or Common Lisp/Lisp Machines/Interlisp-D were capable of, and yes they also offer stuff that wasn't possible back then.



> Also LINQ that so many on the thread are salivating about, were already present in Smalltalk and Common Lisp collections

I think that it's clear that C# in particular was never intending to originate new programming concepts; it was never a research language. It is a commercial language, and aims to take and popularise the best ideas from such research languages, and package them for coders who work in businesses. As such, there has to be some evidence for that idea already. It must be demonstrated to be effective.

You can assume that any good idea in C# already existed somewhere else beforehand, even if not well known. It's not there to break conceptual ground or be in the first segment of the innovation curve.


> I think that it's clear that C# in particular was never intending to originate new programming concepts; it was never a research language.

This is meaningless.


Wasn't c# the first to introduce the async() concept though?


I think it was the first language to specifically introduce the async and await keywords, but it wasn't even the first language on the .NET platform to support the programming model - that honor goes to F#. See https://tomasp.net/academic/papers/async/async.pdf


> Wasn't c# the first to introduce the async() concept

The first google hit for this is https://dev.to/maxarshinov/a-brief-history-of-asyncawait-264...

> Despite that C# was the first mainstream language that popularised the async/await keywords, it wasn’t the language that invented the concept. F# added asynchronous workflows with await points in version 2.0 in 2007 (5 years before C#).

Which is exactly my point about c# mainstreaming and popularising concepts that already exist, even if they exist in less-known or less polished versions.

See also the usual reference: https://en.wikipedia.org/wiki/Async/await


Keywords yes, the concept as such no, besides FP languages, CLU, Active Oberon and Modula-2 are some languages that explored the idea.


What C# has that Kotlin doesn't is the ability to write perfromant code.

Sure, if you really care you probably will go for something lower level, but if you don't want to abandon all the nice things that high lvl language offer, C# still exposes some tools to get your hand dirty every now and then. (Unsafe, stack allocation etc.)

Kotlin meanwhile goes even further then java and completely removes the distinction between stack and heap, slamming every single type into an object. Painful.


Did I mention Kotlin?


Yes?

> Nowadays busy with Scala and Kotlin.

Perhaps not a reference to Kotlin being a good replacement for C#, but you did mention it in a post pushing Java.


Referring to what Erik Mejier is doing professionally, after Microsoft.

English comprehension skills, on a sentence whose context follows from previous paragraph.


Smalltalk and Haskell with a with a great development experience? That's the highest endorsement possible. Sour grapes about older languages not getting critical mass isn't a valid point against .NET.


Try to hot reload on both environments, edit-and-continue or a REPL.



It is still not the same experience as Smalltalk and Common Lisp, where everything is accessible, in a graphical based environment.

Maybe one day when CLR gets rid of the remaining C++ and COM stuff that is still around.


Come on, aren't you the "guest language" guy?


Even if we take Kotlin, Groovy, Clojure, Scala, out of the picture, there are:

- A GUI toolkit that is available everywhere, not just on some platforms, needed 3rd parties for others.

- Two major implementations with Real Time GC, and bare metal support.

- A compiler toolkit, that even handles LLVM IR.

- A couple of bootstrapped versions

- Several implementations for various kinds of deployment workloads, specially when taken beyond the desktop

- An almost compatible ecosystem that powers 80% of the global phone market

- Three IDEs, written on the language, portable across the three major ecosystems, freely available and with access to their source code

Just a quick overview beyond guest languages stuff, don't want to bother with all the stuff.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: