C# 7’nin Ayak Sesleri
Henüz C# 6.0 sürümü resmen kullanıma sürülmemişken geçtiğimiz haftalarda Microsoft’un Github hesabında yayınladığı habere göre C# dilinin 7. sürümü ile ilgili kolları sıvadığı anlaşıldı. Önem ve ihtiyaç durumuna göre gruplandırılan birçok özelliğin yer aldığı yazıya bu linkten ulaşabilirsiniz. Listede yer alan özelliklerin resmi olarak 7 sürümüyle birlikte geleceği kesin değil tabii ki, sadece niyetimiz ve yol haritamız bu şekilde, sizlerin görüşleri nedir, var mı bir isteğiniz… tarzında yazılım geliştiricilerin kulağına hoş gelen bir hareket gerçekleştirmiş durumda Microsoft.
Yazılım geliştirmek için kullandığımız diller zaman içerisinde gelişiyor, yeni özellikler kazanıyor ve biz yazılım geliştiricilere birçok kolaylık sağlıyor. Özellikle sosyal medyanın gelişimiyle birlikte dünyanın yazılım devleri artık ürünlerini geliştirirken kullanıcılardan ve profesyonellerden ciddi katkılar almaya başladı. Microsoft’un da son zamanlarda bazı ürünlerini açık kaynaklı hale getirmesi bu gelişmelerin bir sonucu diyebiliriz. https://github.com/dotnet adresinde göreceğiniz üzere Microsoft .NET tabanlı birçok kütüphaneyi açık kaynaklı hale getirmiş ve yazılım geliştiricilerden geri dönüşler almayı bekler durumda. İşte buna paralel olarak .NET platformunun ana dili olan C# dilinin 7.0 sürümünde getirilecek özellikler için de yazılımcı geliştiricilerin fikirlerini almayı istiyorlar.
Github’da yer alan haberdeki listeye göz attığınız zaman en üstündeki “Strong Interest” kısmında Microsoft daha çok veri yönetimine, performansa ve güvenliğe önem verdiğini görmekteyiz. Bu geliştirmeler başarıyla tamamlanırsa yazılım geliştiriciler açısından kodların yönetilebilirliği daha rahat ve performanslı olacaktır. “Some Interest” kısmında ise liste oldukça kalabalık. List ve dictionary tipleri, nesne tanımları ve parametre geçiş yöntemleri ile ilgili birçok maddenin olduğu bu kısımdaki tüm özellikler 7 sürümüyle gelir mi yoksa ilerleyen sürümlere mi kalır bunu zaman içerisinde göreceğiz. Ben Github’daki linke tıklamayanlar için listelenen özellikleri aşağıya iliştiriyorum.
Not: Listedeki özelliklerin yanında yer alan #347 şeklindeki linklere tıklayarak yeni gelecek özelliklerin ne şekilde kullanılacağına dair yapılan ön çalışmaları ve kullanıcıların bu konulardaki yorumlarını görebilirsiniz.
Strong interest
- Tuples (Planlanan kullanım: #347)
- Pattern matching (Planlanan kullanım: #206)
- Records / algebraic data types (Planlanan kullanım: #206)
- Nullability tracking (Planlanan kullanım: #227)
- Async streams and disposal (Planlanan kullanımlar: #114, #261)
Some interest
- Covariant return types (Planlanan kullanım: #357)
- More support for expression trees (statements, more expressions) (Planlanan kullanım: #2060)
- Syntax for lists
- Syntax for dictionaries
- Serialization and data binding support for records (see #1303)
- Deterministic disposal (Planlanan kullanım: #161)
- Immutable types (Planlanan kullanım: #159)
- Type providers
- Existing or other ways of adding attributes (cross-assembly?)
- Scripting features back into mainline language
- Ref locals and ref returns (Planlanan kullanım: #118)
- readonly parameters and locals (Planlanan kullanım: #115)
- Attributes on lambdas (Planlanan kullanım: #117)
- Method contracts (requires and ensures) (Planlanan kullanım: #119)
- Extension members (#112 et al)
- Compile-time attributes (ability to disappear in IL or at runtime. Could be more expressive)
- Attributes in more places (persistable and non-)
- Supersedes
Small but useful
- Allow extension methods in non-static classes
- More betterness (generic constraints, static vs instance) (Planlanan kullanım: #250)
- params IEnumerable (Planlanan kullanım #36)
- Binary literals (Planlanan kullanım: #215)
- Digit separators (Planlanan kullanım: #216)
Interesting but require CLR support
- Additional generic constraints (some may not need CLR) (see also #129, #154, #158, #262).
- interfaces that can only be implemented internally
- default implementations in interfaces (see #73, #258)
- Array slicing syntax (Planlanan kullanım: #120)
- Static interface members
Probably not this time
- “Metaprogramming”
- Hooks on object initializers
- Safe fixed-size buffers (Planlanan kullanım: #126)
- Lambda capture lists (Planlanan kullanım: #117)
1 Comment
Akif Yanbak
26 Mayıs 2015 at 22:44Geliştiricileri dinleyen bir MS. Bu da mı gol değil!