There's so much that's great about C#, and that results from really smart, pragmatic, forward-looking language design, that I find it surprising how many aspects of C# development are hampered by really bad design. Specifically, the backwards compatibility story of the standard library is a mess (all the different .NET Framework versions, or wait, do I mean .NET Standard, or WinRT, or...?) and the package manager (Nu…
There is a pretty promising answer to the current package management problems called OneGet: https://github.com/OneGet/oneget Unfortunately it looks like the original creator/designer was moved off the project and it seems like it has suffered from some internal political issues. Development is happening on it but it looks pretty slow.
Anders Hejlsberg on Modern Compiler Construction (2016) [video]
31–40 of 45 posts
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#32Earlier quoted context omitted.
You are definitely right with the library shism (Silverlight to blame). But, on the other hand, it also shows how adaptive this environment is. And not only the language but also the base class library, which independent of actual Factorings (like Silverlight, WinRT, Framework, Mono whatever) allowed a familiar environment to program in. Java had also its moments (mobile Java, ee java, Android/Google Java, or Microso…
Hmm, I don't think Java has had it nearly as bad historically (possibly apart from the old mobile Java profiles, which I agree were quite painful). Any code using the core classes (math, collections, basic I/O) would always work fine on any JVM, including Android. Porting pure Java code to Android has always been very easy, as it should be. Whereas I've found with C# that even perfectly innocuous-looking functions wo…
The Core API factoring was focused to remove deprecated API. When not using "deprecated" framework API, the porting is pretty easy.
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#33I must admit I fantasize that this great mind will one day return to his Turbo Pascal roots and “rescue” the Delphi project! (More wishful thinking than imagining DT admitting climate change, I know.)
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#34I must admit I fantasize that this great mind will one day return to his Turbo Pascal roots and “rescue” the Delphi project! (More wishful thinking than imagining DT admitting climate change, I know.)
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#35Original author of Turbo Pascal, chief architect of Delphi, lead architect of C#, creator of TypeScript. Does anyone else in language design have as many accolades as this or designed languages on which trillions of dollars of commerce depend?
Guy Steele comes to mind. He hasn't been as successful with the languages he co-created (most importantly scheme and to a lesser extent Common Lisp; Fortress was stillborn) but he's also been involved with the Javascript, C, Fortran (as a standards committee member) and Java (as a specification author). And he's been tremendously influential as a profound thinker on language design; I'm not sure anyone else understan…
Arhictect/implementor of IDE's (TurboPascal, Delphi, VS - all immensely influential).
If you haven't had the joy of programming in Delphi, you'll feel at home if you ever used VS/C#.. in Delphi 2.0 of the mid-90's.
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#36Original author of Turbo Pascal, chief architect of Delphi, lead architect of C#, creator of TypeScript. Does anyone else in language design have as many accolades as this or designed languages on which trillions of dollars of commerce depend?
I don't think anyone can beat Dennis Ritchie on the "designed languages on which trillions of dollars of commerce depend" metric, especially when we consider the many languages which are themselves implemented in C.
https://en.m.wikipedia.org/wiki/Martin_Richards_(computer_sc...
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#37Original author of Turbo Pascal, chief architect of Delphi, lead architect of C#, creator of TypeScript. Does anyone else in language design have as many accolades as this or designed languages on which trillions of dollars of commerce depend?
Martin Odersky, created Turbo Modula-2 for Borland, member of the Pizza language whose design lead to Java generics implementation, designer of the Scala language. Erik Meyer, member of GHC design team and Haskell community, responsible for LINQ design bringing FP to the masses, reactive extensions in .NET which lead to the RX model adopted by Netflix, nowadays contributing back to Haskell at FB (if I am not mistaken…
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#38Earlier quoted context omitted.
Stirred lots of controversy for having lopsided equality tables (ambiguity intended)
true == 1 === true What's ambiguous about that? :-P
typeof(true) is of type 'Boolean' and typeof(1) is of type 'number'.
Do they compare to the same type? Nope, therefore is false in both cases.
Try the following:
let foo = true;
true === foo === true; // returns true.Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#39I must admit I fantasize that this great mind will one day return to his Turbo Pascal roots and “rescue” the Delphi project! (More wishful thinking than imagining DT admitting climate change, I know.)
I really, really want a Turbo Pascal 5.5 with objects for linux.
TP 5.5 with objects was a really clunky object system though (designed by Apple, IIRC). Object slicing by default. Vtable pointer added on definition of first virtual method in object hierarchy, like C++. And to invoke a constructor on a new heap-allocated object, you had to pass it as an argument to New(), with this weird syntax - "New(myObjPtr, Init(...))". Delphi's object system was far superior.
See some examples: http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Web...
Re: Anders Hejlsberg on Modern Compiler Construction (2016) [video]
#40Earlier quoted context omitted.
true == 1 === true What's ambiguous about that? :-P
Of course this would not work. typeof(true) is of type 'Boolean' and typeof(1) is of type 'number'. Do they compare to the same type? Nope, therefore is false in both cases. Try the following: let foo = true; true === foo === true; // returns true.
You might mean it shouldn't work? but alas it does (because of 'lopsided equality tables'). Try the following: open the console of your browser, type the following:
true == 1 === true
and press enter - tada! You can also check out this SO answer if you are sufficiently flabbergasted: https://stackoverflow.com/a/12236341