
Designing C# 7 [video] - mikevm
http://www.infoq.com/presentations/design-c-sharp-7
======
egemen
I really wonder, as an OOP developer should I move to functional programming
or not.

~~~
ChristianGeek
I would definitely consider it if the IDE tooling was stronger. Visual Studio
and F# is ok, but not nearly as strong as for C#.

~~~
virmundi
One my active questions in this area is "does FP need an IDE as much as OOP?"
I don't know. When done properly FP decomposes into smaller, easier to thing
about functions. They often get glued together in a piper->filter way. As a
result, the glue logic doesn't really require much introspection.

Where an IDE could be helpful is in refactoring and code generation. If your
code does't require much generation due to its simplicity, you might need
half-an-IDE. If you can get decent refactoring by having higher-level
functions as the default, maybe you end only needing a quarter of an IDE?

That's why I keep bouncing between LightTable and Counterclockwise (nope hate
IntelliJ and Cursives, but that is a taste thing). I'm more comfortable with
Eclipse than Light Table. I just don't know how much of it I need.

One caveat is debugging. I do fallback on that. I think that might be a sign
of me failing to breakdown my code into isolated units. Regardless, I haven't
figured out how to do debugging in LightTable.

------
Rapzid
It would be fantastic if C# could see language support for channels sooner
than 8. I've done quite a bit in Go and C# async/await and find channels much
nicer to work with than BlockingCollections and the like..

------
sklogic
Still no signs of understanding the value of static metaprogramming. C# used
to be promising.

~~~
SideburnsOfDoom
Could you elaborate on what you mean by "static metaprogramming" ? Google
isn't helping me here.

Perhaps an example of a program or language that does this.

I see you talk about Lisp and ML a lot - are you referring to macros(1) to
extend the language?

1) [http://stackoverflow.com/questions/267862/what-makes-lisp-
ma...](http://stackoverflow.com/questions/267862/what-makes-lisp-macros-so-
special)

~~~
sclangdon
I think he's talking about C++ templates.

[https://en.wikipedia.org/wiki/Template_metaprogramming](https://en.wikipedia.org/wiki/Template_metaprogramming)

~~~
SideburnsOfDoom
Is C++ template metaprogramming really the most desirable feature to add to
the C# programming language? I really hope not.

I occasionally wish there were ways to get at the compiler features that add
"yield return" and "async ... await" to the C# language and use them for your
own extensions, but the hacks that make c++ templates turing-complete
definitely don't seem to be a desirable way to do it.

