<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Muhammed Kılıç</title>
    <description>The latest articles on DEV Community by Muhammed Kılıç (@kilic).</description>
    <link>https://dev.to/kilic</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F130816%2F54723f38-4216-441d-b05e-ded429aaea57.JPG</url>
      <title>DEV Community: Muhammed Kılıç</title>
      <link>https://dev.to/kilic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kilic"/>
    <language>en</language>
    <item>
      <title>What will programming look like in 2028?</title>
      <dc:creator>Muhammed Kılıç</dc:creator>
      <pubDate>Wed, 29 Sep 2021 20:36:14 +0000</pubDate>
      <link>https://dev.to/kilic/what-will-programming-look-like-in-2028-1hae</link>
      <guid>https://dev.to/kilic/what-will-programming-look-like-in-2028-1hae</guid>
      <description>&lt;p&gt;I have seen this post from 2012 "&lt;a href="http://lambda-the-ultimate.org/node/4655#comment"&gt;What will programming look like in 2020?&lt;/a&gt;" Now I would like to see your guess for 2028? Or with &lt;a href="https://twitter.com/seanmcdirmid18"&gt;Sean McDirmid&lt;/a&gt;'s words:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Things are too quiet lately, so maybe its time to start a fun thread. I used this question as a lead in to a presentation on live programming I recently gave at a working group, but I thought it would be fun to gather a bunch of predictions if anyone is willing.&lt;/p&gt;

&lt;p&gt;What will programming look like in 2020? Keep in mind that programming in 2012 mostly resembles programming in 2004, so could we even expect any significant changes 8 years from now in the programmer experience? Consider the entire programming stack of language, environment, process, libraries, search technology, and so on.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>programming</category>
      <category>2028</category>
      <category>fun</category>
      <category>guess</category>
    </item>
    <item>
      <title>What is next with C#? </title>
      <dc:creator>Muhammed Kılıç</dc:creator>
      <pubDate>Mon, 30 Aug 2021 16:09:29 +0000</pubDate>
      <link>https://dev.to/kilic/what-is-next-with-c-154m</link>
      <guid>https://dev.to/kilic/what-is-next-with-c-154m</guid>
      <description>&lt;p&gt;Hello Dev Community,&lt;/p&gt;

&lt;p&gt;Until 2 years ago I have never used C#, I was mostly using C and Java but after starting my job with .NET stack, I started to learn C#. I easily learned C# with the help of similarities in syntax with Java.&lt;/p&gt;

&lt;p&gt;Anyway I was searching about C#'s .NET compiler called Roslyn and I have come across with Roslyn team's work in progress &lt;a href="https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md"&gt;documentation&lt;/a&gt;. I wanted to read, understand and tell you people with summarizing it. I want to also note that I don't know either this features will be published in the next version or the next one. Indeed there are people working on these features.&lt;/p&gt;




&lt;h2&gt;
  
  
  1-  Support for method parameter names in nameof()
&lt;/h2&gt;

&lt;p&gt;Author of proposal suggested a usage for nameof method for converting this usage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;TestFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FilterInput&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"testParam"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;TestFilter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;FilterInput&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;nameof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a few comments another user asked about usage when method overload happens and bringing nameof method parameters into the method scope. The author has suggested a usage like below finally and this feature is under development as I see from issues on GitHub repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Methods&lt;/span&gt;
&lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Usage of nameof&lt;/span&gt;

&lt;span class="k"&gt;nameof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "a"&lt;/span&gt;
&lt;span class="k"&gt;nameof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "a"&lt;/span&gt;
&lt;span class="k"&gt;nameof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// "b"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I liked this feature as another user also suggested if we can pass &lt;code&gt;nameof&lt;/code&gt; parameters into method scope, writing tests will be much easier for some cases.&lt;/p&gt;




&lt;h2&gt;
  
  
  2- Simplified parameter null validation code
&lt;/h2&gt;

&lt;p&gt;I think my favorite feature in this list is parameter null-checking. For many times I have written methods like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;testParam&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;ArgumentNullException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;nameof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt; 
  &lt;span class="p"&gt;}&lt;/span&gt; 
  &lt;span class="c1"&gt;// Some logical code maybe?&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;testParam&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Can you guess about passing several objects as parameters to methods. Doing null-checking was a trouble for me. That's why I liked this feature most. If this becomes a feature of C# we will start to use basically like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="nf"&gt;TestMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;!,&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;!){&lt;/span&gt;
  &lt;span class="c1"&gt;// Again some logical code.&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Probably using &lt;code&gt;!&lt;/code&gt; will not be final version for this feature. They already have alternatives for syntax of null-checking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;T p!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;T p!!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;T! p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;checked T p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nonnull T p&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;code&gt;!!&lt;/code&gt; syntax option null-checking may be used for expressions as I read from Language Design Meeting notes.&lt;/p&gt;




&lt;h2&gt;
  
  
  3- Raw string literal
&lt;/h2&gt;

&lt;p&gt;This may look similar to you from Python, Javascript or Java.&lt;br&gt;
In Python triple quotes which are &lt;code&gt;"""&lt;/code&gt; or &lt;code&gt;'''&lt;/code&gt; used for multiline strings, newlines and other special characters. Using &lt;code&gt;r'some raw string'&lt;/code&gt; in Python is another alternative. You don't need to escape from any character. Discussions on raw string feature is very harsh to me. If you are reading this please be kind.&lt;/p&gt;

&lt;p&gt;This feature is still at proposal level so there are questions which need answers. Are starting and ending delimiter will be &lt;code&gt;"""&lt;/code&gt; or &lt;code&gt;""""&lt;/code&gt;? &lt;br&gt;
How interpreter will result with indentations, whitespaces and EOF newlines? How will we pass any variable into this raw string, and what will be the interpolation syntax?&lt;/p&gt;

&lt;p&gt;There are many undecided questions but this syntax would be useful for HTML or XML files for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;htmlElement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"""
&amp;lt;a href="https://dev.to/"&amp;gt;DEV&amp;lt;/a&amp;gt;
"""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4- Allow Generic Attributes
&lt;/h2&gt;

&lt;p&gt;This feature is referenced to type converter example in proposal. Basically you will change and use your attributes from &lt;code&gt;[TypeConverter(typeof(X))]&lt;/code&gt; to &lt;code&gt;[TypeConverter&amp;lt;T&amp;gt;]&lt;/code&gt;. You will directly have type constraints with this type-referencing attribute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyGenericAttribute&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Attribute&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;MyGenericAttribute&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MyGenericClass&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;MyGenericAttribute&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;]&lt;/span&gt;
  &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;MyGenericMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="c1"&gt;// ...&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt; 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Have you ever wanted to use generic attributes in your code? If your answer is yes, then here you go! To mention, this feature is in progress. Only thing I miss is this feature have been developing since 2017.&lt;/p&gt;




&lt;p&gt;There are some other features in Language Feature Status list also. You can check and write your opinions in the comments to keep tidy or I can add into this post.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed my self speech while reading language features. :)&lt;br&gt;
Take care, folks!&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>roslyn</category>
      <category>changelog</category>
    </item>
    <item>
      <title>The Tao of Programming Tranlations</title>
      <dc:creator>Muhammed Kılıç</dc:creator>
      <pubDate>Tue, 29 Jan 2019 05:50:40 +0000</pubDate>
      <link>https://dev.to/kilic/the-tao-of-programming-tranlations-o96</link>
      <guid>https://dev.to/kilic/the-tao-of-programming-tranlations-o96</guid>
      <description>&lt;p&gt;Here I added English and Turkish versions in this &lt;a href="https://github.com/kiliczsh/the-tao-of-programming"&gt;Github Repository&lt;/a&gt;. I wonder is there anyone else know some other languages and can help with translation or find and edit some translations. &lt;/p&gt;

</description>
      <category>help</category>
    </item>
    <item>
      <title>What is Computational Genomics? </title>
      <dc:creator>Muhammed Kılıç</dc:creator>
      <pubDate>Mon, 21 Jan 2019 20:03:49 +0000</pubDate>
      <link>https://dev.to/kilic/what-is-computational-genomics--3cic</link>
      <guid>https://dev.to/kilic/what-is-computational-genomics--3cic</guid>
      <description>&lt;p&gt;I want to learn what is computational genomics and can you share some resources? &lt;/p&gt;

</description>
      <category>explainlikeimfive</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
