<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>demiryalcin.com</title>
	<atom:link href="https://demiryalcin.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://demiryalcin.com</link>
	<description>Bildiklerimi paylaşıyor bilmediklerimiz sizinle birlikte öğreniyorum</description>
	<lastBuildDate>Tue, 02 Feb 2021 12:32:59 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://demiryalcin.com/wp-content/uploads/2020/11/cropped-favicon-1-32x32.png</url>
	<title>demiryalcin.com</title>
	<link>https://demiryalcin.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">158667225</site>	<item>
		<title>Php Nedir ? Nasıl Çalışır ?</title>
		<link>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/</link>
					<comments>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/#respond</comments>
		
		<dc:creator><![CDATA[yalçın demir]]></dc:creator>
		<pubDate>Sun, 01 Nov 2020 16:30:19 +0000</pubDate>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[eszamanli]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[ngnix]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rasmuslerdorf]]></category>
		<category><![CDATA[yii2]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zeroneed]]></category>
		<guid isPermaLink="false">https://demiryalcin.com/?p=2199</guid>

					<description><![CDATA[Php hakkında bilinmesi gerekenleri bu yazımda derlemeye çalıştım. Nedir ? Nasıl çalışır? Diğer web programlarıyla farkları nelerdir. Bunları birlikte öğrenelim.]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div  class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner "><div class="wpb_wrapper">
	<div class="wpb_video_widget wpb_content_element vc_clearfix   vc_video-aspect-ratio-169 vc_video-el-width-100 vc_video-align-center" >
		<div class="wpb_wrapper">
			
			<div class="wpb_video_wrapper"><iframe title="Php Nedir ? Nasıl Çalışır ?" width="500" height="281" src="https://www.youtube.com/embed/NDxxed1axzE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
		</div>
	</div>
<div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey wpb_content_element  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span>
</div>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p class="has-drop-cap wp-block-paragraph">Kişisel ana sayfa (Personal Home Page) olarak isimlendirilmiş daha sonrasında <strong>H</strong>ypertext <strong>P</strong>reprocessor yani üstünyazı önişlemcisi olarak isim değiştirmiş çok geniş kapsamlı genel kullanıma açık bedik<sup>*</sup> bir yazılım dilidir. İlk olarak 1995 yılında danimarka kökenli kanadalı yazılımcı <a href="https://tr.wikipedia.org/wiki/Rasmus_Lerdorf" target="_blank" rel="noreferrer noopener nofollow"><strong>Rasmus Lerdorf</strong> </a>tarafından geliştirildi. Html olarak hazırlanmış kişisel sitesini static olarak kullanımından dinamik olarak kullanıma geçirebilmek için perl ile geliştirilen CGI betikleri yazmıştır. Rasmus bu betikler yardımıyla özgeçmişini sitede görüntülüyor ve sitenin ziyaretçi trafiğini kaydediyordu. Bir süre sonra web formları ile etkileşime girebilecek, veritabanları ile iletişim kurabilecek ve daha hızlı çalışabilecek şekilde bu betikleri C ile yeniden kodları ve bu uygulamaya <strong>Kişisel Ana Sayfa/Form Yorumlayıcı</strong> (PHP/FI, <em>İngilizce: Personal Home Page/Forms İnterpreter</em>) adını verdi. Sözdizimi genel olarak Perl&#8217;e benzese de daha kısıtlı ve basit ancak daha tutarsızdı. Bir geliştirme takımıyla aylar süren çalışma ve test aşamalarının ardından PHP/FI 2 sürümü 1997 Kasım ayında resmi olarak duyuruldu.</p>
<p></p>
<div class="wp-block-group">
<div class="wp-block-group__inner-container">
<div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<pre class="wp-block-verse">*<strong>Betik dili</strong> (<em>İngilizce:</em> <em>scripting language</em> veya <em>script language</em>), betik yorumlamak için yazılmış özel çalışma-zamanı sistemlerinin (run-time environment) yorumlayabileceği programlama dilleridir. Diğer programlama dilleri ile yazılan kodlar makine koduna çevrilip çıkan program doğrudan çalıştırılırken betik kodları interpreter tarafından doğrudan okunur ve yorumlanarak işlemler interpreter'ın kendisi tarafından yapılır.</pre>
</div>
</div>
</div>
<p><a href="https://tr.wikipedia.org/wiki/Zeev_Suraski" target="_blank" rel="noreferrer noopener nofollow">Zeev Suraski</a> ve <a href="https://tr.wikipedia.org/wiki/Andi_Gutmans" target="_blank" rel="noreferrer noopener nofollow">Andi Gutmans</a> 1997 yılında yorumlayıcıyı baştan yazdılar ve dilin ismini PHP: Hypertext Preprocessor olarak değiştirerek PHP 3&#8217;ün temellerini attılar. Bunu PHP 3 ün herkese açık olan test sürecinin başlaması izledi ve 1998 yılının Haziran ayında PHP 3 resmi olarak duyuruldu. Suraski ve Gutmans bu sürecin ardından PHP&#8217;nin çekirdeğini sil baştan kodlamak suretiyle 1999 yılında Zend Motorunu geliştirdiler ve İsrail&#8217;in Ramat Gan kentinde <a href="https://www.zend.com/" target="_blank" rel="noreferrer noopener nofollow">Zend Technologies</a> isimli bir şirket kurdular.</p>
<p>22 Mayıs 2000 tarihinde temelleri Zend Engine 1.0 ile güçlendirilmiş PHP 4 duyuruldu ve Ağustos 2008 itibariyle 4.4.9 sürümüne ulaşana kadar aktif olarak geliştirildi. Bugün PHP 4 ün geliştirilmesi durdurulmuştur ve güvenlik güncellemeleri dahil olmak üzere üzerinde hiçbir iyileştirme yapılmamaktadır.</p>
<p>13 Temmuz 2004 tarihinde yeni Zend Engine II ile güçlendirilmiş PHP 5 yayınlandı. PHP 5, nesneye yönelik programlama için çok daha fazla olanak sağlıyor, PHP Veri Nesneleri (PDO) eklentisi yardımıyla veritabanlarına erişim için oldukça tutarlı ve hızlı bir arayüz yanında performansa yönelik çok sayıda iyileştirme barındırıyordu. 2008 yılında PHP 4 ün tutarlı sürümünün yayınlanması durduruldu ve PHP 5 geliştirilmesi devam eden tek tutarlı sürümüdür.</p>
<p>ODBC eklentisi ile standartları destekleyen bir bağlantı açmak da oldukça kolay oluyor. Diğer veritabanları için de CouchDB gibi soketler ya da cURL eklentileri kullanılabiliyor. Yönetilebilir küçük web siteleri için de genellikle MySQL veritabanı kullanmak çok daha sağlıklı oluyor. Birkaç PHP komutu ve fonksiyonları kullanarak oldukça hızlı bir bağlantı sağlamak mümkün hale geliyor.</p>
<p>Composer, php için bağımlılık yönetim aracıdır. Projeleriniz de ihtiyaç duyduğunuz kütüphaneleri ve sınıfları sizin için kurmanızı sağlar. Composerda veriler json olarak saklanır ve paketleri oluşturulması json olarak sağlanır. Composer sayesin tüm paketler ve sınıflar kolayca otomatik yüklenir.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Php Nasıl Çalışır ?</h2>
<p></p>
<p class="has-drop-cap wp-block-paragraph">Hepimizin bildiği bir şey varsa oda kullanmış olduğumuz tarayıcımıza bir url girip sonrasında belirtilen domain name yönlendirilmiş olan ip ile sucu istek oluşur. İstek sonucunda bize geri html döndürür ve bunu browser yorumlayarak siteyi gösterir.(Temel anlamda bu şekilde çalışır) Bu aşamaya kadar bilindik bir durum. Peki sunucu da ne olur html nasıl döner. Php burda görevi nedir ve nasıl yorumlanır.</p>
<p>Bu pek çoğumuzun verebileceği bir soru değil maalesef. Hepimiz web sitesi nasıl kurulur biliriz (En azından bilmeliyiz !) . Lakin php nasıl çalıştığını bilmeyiz.</p>
<p>Peki zaten site çalışıyor. İstediğimiz şekilde bize yanıt döndüğünce neden bilmeliyim dediğiniz duyar gibiyim. Evet çalışıyor peki performans iyileştirmesi yapmak için bunu bilmemiz gereklidir. Bunu bilmek için bellek yönetimini anlamalıyız.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Php İstediğinin Ömrü</h2>
<p>Derlenmiş bir dil (Java ve C#) kullandıysanız daha önce php onlarla aynı olmadığını baştan belirteyim. Php yorumlanmış bir dildir. Yani tarayıcıdan gelen her talep için php yorumlayıcısı html den php kodunu ayırarak kodu yorumlar ve geri dönüş sağlar.</p>
<p>Bu işlemi hızlandırmak için önbelleğe almak ve diğer optimize çalışmaları yapabilirsiniz. Ama temel olarak çalışma sistemi bu şekildedir.<img fetchpriority="high" decoding="async" src="https://lh5.googleusercontent.com/UZ86DdGq8IOUTj0U01fbuaFc038MmuQna9iGqUCcMFlZVsD1P8_N9PXR7lBFeTuipYumxep0V6zmGivmR__Y_3xBhWHtTzCYDWXoEfFtHpHGrapGPxh6F5iFG8M8NB8xwMD-uAMb" width="602" height="105" /></p>
<p>Yukarıda diagrama göreceğimiz şekilde istek önce web tarayıcısında başlar. Daha sonrasında web server ulaşır. Web sunucusu daha sonra onu analiz edecek ve onunla ne yapılacağını belirleyecektir.</p>
<p>Web sunucu isteği PHP dosyası olduğunu belirlediğinde,(Bu genellikle index.php) bunu php yorumlayıcısına iletir. PHP yorumlayıcısı php dosyasını okuyacak, onu (ve içerdiği diğer dosyaları)  ayrıştırıp çalıştıracaktır. PHP yorumlayıcı kodu çalıştırmayı bitirdiğinde bir çıktı verir. Bu çıktı web sunucusu web tarayıcısına yanıt olarak döndürür.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">PHP Uygulamaları Sadece Bir Bedik !!!</h2>
<p> PHP isteğinin yaşam döngünü anlatmamın nedeni bu ifadeye ulaşmak içindir. Örneğin projenizde <span style="text-decoration: underline;">Laravel</span> , <span style="text-decoration: underline;">Symfony</span> veya <span style="text-decoration: underline;">zeroneed</span> uygulaması olsun,herhangi bir php uygulamasının ardında yatan gerçek budur.(<span style="text-decoration: underline;">drupal</span> veya <span style="text-decoration: underline;">wordpress</span> gibi CMS de dahil) Bunlar bir kabuk komut dosyalarına benzeyen komut dosyalarından başka birşey değildir.</p>
<p>Bu senaryoda web sunucusu aracı görevi görmektedir. Web tarayıcıdan php istediği geldiğinde web server php betiğini tetikler. Sonucunda bir çıktı varsa bunu tarayıcıya iletir.</p>
<p>Bu, diğer web programlama dillerinde göreceğinizden farklı bir durumdur.Bu web programlama dilleri, daha geleneksel web uygulaması dediğimiz şeyi oluşturur. Bu web programlama dilleri uygulama sunucusu kullanarak çalışır. Bazı bilinen uygulama sunucuları <span style="text-decoration: underline;">java</span> için <span style="text-decoration: underline;">tomcat</span>, .<span style="text-decoration: underline;">net</span> için <span style="text-decoration: underline;">ISS</span> ,<span style="text-decoration: underline;">Python</span> için <span style="text-decoration: underline;">Gunicorn</span> ve <span style="text-decoration: underline;">Ruby</span> için se <span style="text-decoration: underline;">Unicorn</span>.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/RkvqWg19ehLn4_CM_5DQ-LXINPys5jhH2JlYMwRN-1GVUgM8zndT6W_YjqEyVLStR11JrdEFA31rjdEvUc3HDXqfWzgrEXJ6m66GQ2BSXBHRzTtG_-HJGjwIi6iupN5uJGiJRJhY" alt="" /></figure>
<p>Gördüğünüz gibi , web uygulaması sunucu içerisindedir. (Uygulama sunucus başına birden fazla uygulama bile barındırabilir) Bu uygulama sunucu aynı zamanda web sunucusu görevi görmektedir. PHP’de olduğu şekilde bir aracı servis hizmeti sağlamaz.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Diğer Web Uygulamalarından Temel Farkı</h2>
<p>Bir PHP uygulaması ile daha geleneksel web uygulaması arasındaki bu temel fark önemlidir. Bu çerçevede bir çok dinamik değişir. Örneğin, bu nedenle bir sunucuda ki herhangi bir PHP dosyasını değiştirebilir ve değişikliği hemen görebilirsiniz.(Ön belleğe alma şeklinde bir çözümünüz yoksa !)</p>
<p>Ancak geleneksel web uygulamalarında aynı şeyi söylemek pek mümkün değildir. Bu uygulamalarda sadece şablonla ilgili değişiklik yapabilirsiniz. Tabi bu değişiklikleri görüntülemek için sunucuyu yeniden başlatmanız gerekebilir. (Eğer derlenmiş bir dilse durum daha karmaşık bir hal almaktadır.)</p>
<p>Bununla birlikte, bir PHP uygulaması ile geleneksel bir uygulama arasında ki tek fark bu değildir. Bilinmesi gereken diğer farklar şöyledir.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Hafıza Yönetimi</h2>
<p>Hafıza yönetimiyle başlayalım. Bir PHP uygulamasında çalışırken belleği (RAM) nasıl yönetiriz? Cevap şu ki ,bir PHP uygulamasıyla çalışırken çoğumuz belleği yönetmiyoruz.</p>
<p>Sadece bize yetersiz bellek uyarısı verdiğinde, PHP bellek sınırını artırır ve çalışmaya kaldığımız yerden devam ederiz.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Bellek Sızıntısı</h2>
<p>PHP’de hiç bellek sızıntısı ile karşılaştınız mı ? Bellek sızıntısı, bellek yetersizliği durumlarında bellek yönetimi için yapılan hatalar sonucunda meydana gelen durumlardır. Bir uygulamada kullanmış olduğunuz değişkenleri oluşturur kullanır ve bellekten temizlemezseniz. Uygulamanız her çalıştığında yeniden yeniden aynı değişkeni oluşturacağı için bellek boşalmaz ve sürekli dolmasından dolayı bellek yetersizliği meydana gelir. Bunu geleneksel web uygulamaları çöp temizleme (GC Collection) yöntemi ile kontrol sağlanmıştır.</p>
<p>Bu durumda PHP bu durum neredeyse hiç olmaz. Bunun nedeni ,PHP’nin çalışan ve sonra sona eren bedik bir dil olmasıdır. Sonlanan her komut PHP komut dosyası tarafından otomatik olarak silinecektir.Bu nedenle çoğu PHP uygulaması bellek sızıntısı meydana gelmez.</p>
<p>Ancak bu durum geleneksel bir web uygulamasında böyle değildir. Uygulama sunucusu web sunucusunun bir parçası olmasından dolayı, yalnızca web sunucusu yeniden başlatıldığında sona erer.Bu çok sık olan bir durum değildir.(Olmaması lazım!) Bellek yönetimi bu şekilde web uygulamalarında bir gerçekliktir.</p>
<p>Bellek sızıntısın, daha geleneksel bir web uygulamasıyla gerçek sonuçları olur. Uygulama sunucusunu yeniden başlatmalısınız, sunucu hafızası bir noktada biter. Bu olduğunda, web uygulamanız çöker ve erişilmez duruma gelir. Bu duruma “Web Sitesi Çöktü” deriz.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Veri Kalıcılığı</h2>
<p>Peki PHP için neden bellek sızıntısı olmadığını anladık. PHP uygulamamız için iki özdeş isteğimiz olduğunu düşünelim. İlki, PHP betiğimiz üzerinde çalışır ve işlem sırasında verileri bellekte depolar. Bu verilerin hiçbir ikinci talep için mevcut olmayacaktır. Bu, PHP’nin geleneksel web uygulamalarında ki gibi istekler arasında veri paylaşamayacağı anlamına gelir.</p>
<p>Bunun yerine, PHP, istekler arasında veri paylaşmak için diğer sistemlere bağlıdır. Bir depolama yöntemi kullanan oturum (Çerez ve Session) yöntemini kullanabilirsiniz. Bir depolama yönetimi kimi zaman bir dosya bir veri deposu hatta bir veritabanı olabilir.</p>
<p>Bir PHP uygulaması bir veya birden fazla depolama yönetimi kullanımı eğilimindedir. Hangilerini kullanacağınız yapmış olduğunuz projeye göre değişiklik gösterir. Ancak birini seçmeniz gerekliyse bu Redis veya Memcached gibi populer seçenekleri değerlendirebilirsiniz.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Eş Zamanlı Görevler</h2>
<p>Eşzamanlılık, PHP uygulamalarında anlaşılması gereken önemli bir kavramdır. Peki eşzamanlılık nedir ? Bu, yazılımı daha küçük parçalara ayırabileceğimiz fikridir.Daha sonra küçük parçaları aynı anda veya farklı sırayla hiçbir şey sorun meydana gelmeden çalıştırabilirsiniz.</p>
<p>PHP için pek mantıklı bir durum değildir. PHP uygulamalarınız daha küçük parçalara ayrılamaz. PHP birçok istediği aynı anda yorumlaması zaten eşzamanlı çalıştığı anlamına gelir.</p>
<p>Şimdiye kadar gördüğümüz gibi, bir PHP uygulması yapılan her iste diğerinden bağımsızdır. Web sunucusu, isteği PHP uygulamamızın komut dosyası çalışacak olan PHP yorumlayıcısına iletecektir. Bu, PHP yorumlayıcısının aynı anda birden fazla komut dosyasının işlemesinin çok yaygın olduğu anlamına gelir.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/lmPTR7C5bHfVKYlg9FyZdEtRThSrO3PbEofQpBw_gFSHMcdIBGGGqSxQofgBDifen3hm1Vw9K3U47ePZ0OpCVuHyL7wL49POmTXy81RybCLutGfAWx9K2pp-s5WOQ2eDSfYOyCM0" alt="" /></figure>
<p>Yukarıda ki zaman çizelgesi, bir zamanı çizelgesi kullanarak bunu vurgulamaya çalışır. Bir PHP betiğinin aynı anda üç işlemine sahibiz. Farklı zamanlarda başlar ve biter, ancak uygulamaların bazıları çakışır.</p>
<p>Bu nedenle PHP uygulaması çalışırken eşzamanlılığı göz önünde bulundurmalısınız.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Çoklu Görev</h2>
<p>Çoklu görev, bir dizi bilgisayar görevinin aynı anda yapılması demektir. Bu durum işlemlerin daha hızlı gerçekleşeceği fikridir. PHP uygulamaları, yoğun bilgi işlem görevlerini yapmak için bu konsepte çok güvenir.</p>
<p>Bunun nedeni, PHP’de çoklu görev gerçekleştirmenin oldukça kolay olmalısıdır. Daha önce gördüğümüz gibi, PHP yorumlayıcısının aynı anada birden fazla betiği işlemesi mümkündür. Dolayısıyla , çoklu görev, yapmamız gereken bu istekler için ekstra görevler oluşturmamız yeterlidir.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/PddDlc0VKPFhnnlhO0eHrUdpmzhNUU7ILEWZt75YH_TfjtEqLb2GDwgg3xUAlvsmm4t4qwLS6HKgUj0accpYu0t5DevjfWxKfLpszAfEq_QM45PqdMF5w99YRROU1CIxkzDZBt3l" alt="" /></figure>
<p>Bu nasıl oluyor peki ? Yukarıdaki diyagramda bir tane ana isteğimiz var. Bu ana istek alt istekleri oluşturmaktadır. Bu diğer alt talepler yeni uygulama görevlerimizdir. İlk taleple aynı zamanda çalışırlar.</p>
<p>Bu isteklerin genellikle eşzamanlı olarak gönderildiğini belirtmek gerekir. Bir PHP betiği çalıştırılması süresi üzerinden büyük bir etkisi yoktur. Bu, ilk istek sırasında PHP uygulamasının çalışmasını yavaşlatmadıkları anlamına gelir.</p>
<p>PHP uygulamasında çoklu görevin iyi bir örneği, populer PHP CMS’lerinde cron işlemlerini nasıl işlediğidir.Bir CMD’de cron işi, CMS üzerinde ihtiyaç duyduğunuz, gelecekte planladığınız (gelecekte bir gönderiyi yayımlamak gibi) bir görevdir.CMS bir cron talepte bulunulduğunda belirli bir URL için bir istek oluşturur.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Kaynak Sorunu</h2>
<p>Ancak eş zamanlı da sorunsuz değildir. En yaygın sorunu kaynak yetersizliğidir. Eşzamanlı PHP işlemlerinizin çalışması için ihtiyaç duyduğu belleğe sahip olmadığı anlamına gelir.</p>
<p>Daha öncesinden gördüğümüz bellek sızıntısı bir tür bellek yetersizliği olduğunu belirtmek gerekir. Artan bellek sızıntısı, uygulama çalışmayı durduana kadar suncu belleğini yok eder. Anacak, PHP uygulamaları bellek sızıntılarından müzdarip olmadığındani buradaki sorunun kaynağı bu değildir.</p>
<p>Sunucunuzun 500 mb boş belleğe sahip olduğunu düşünelim. PHP uygulamanız çalışırken 100 mb ihtiyac olduğunu varsayalım. Bu durumda sunucunuz yalnızca beş tane eş zamanlı yürütmeyi işleyebileceği anlamına gelir.</p>
<p>Peki sunucunuz bir seferde beşten fazla komut dosyaısı işlemesi gerekiyorsa ne olur ? Bu noktada, ana makinenizin sunucunuzu nasıl yapılandırdığına bağlı. Sadece yavaşlayabilir yada tamamen çökebilir. (Çoğu hizmet DDOS saldırılarının arkasında ki ana fikir budur)</p>
<p>Bu nedenle kaynak açlığı PHP uygulamanız için çok fazla sorun teşkil etmez. Evet, bellek kullanımını azaltabilirsiniz. Ve sonuç olarak ,PHP uygulamanız daha fazla eş zamanlı çalıştırma gerçekleştirebilirsiniz.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">Aynı Anda Çalışma Sorunları</h2>
<p>Eşzamanlı ilgili dikkat edilmesi gereken konulardan biride birlikte çalışmasıdır. Bu durumun anlatılmasında bir örnek anlatılması daha kolay olacaktır. Aynı anda çalışma sorununa örnek olarak, sayfa görüntülemelerin izlenmesi olarak verilebilir.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/35dJGMDg0HF5gl7fu7xwE24_NPHX0YdfT9GuNHykyDtHWM9fsjJhnlHJIG1DJ6D8QlS7BOQJ8gtyTicgNwUsz5Ei8LUB2EkykKMzapZsDGVdAuLgdGvr0F2Gn9azcmgeTflV6C_H" alt="" /></figure>
<p>Yukarıda, sayfa görüntülemelerin izleyen bPHP kodumuzun bir zaman çizelgesi gözükmektedir. Sayfada pembe olarak belirtilen kısım sayfanın görüntülenme sayısını belirten kod yer almaktadır. Şimdiye kadar her şey çok basit bir şekildedir.</p>
<p>Şimdi durumu biraz daha karmaşık hale getirip eş zamanlı çalışmayı ekleyelim. Peki bu durumda ne olur ? Bunu zaman çizelgemizi güncelleyelim ve öğrenelim.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/Qz9NYEdCOoa9kxMhjk0pt5yeldlKfxqptbnbrEmJppO0wOQTeMKrLbK2bPwliMgXzTs_ppkZZCWzhFMSZWSIGbKEG6oJIBE4aRhk8sSqSlPgTLp1fUDfbypbdrOtWp9U8E0HdpwQ" alt="" /></figure>
<p>Bu zaman çizelgesinde de her şey yolunda gözüküyor. PHP kodumuzun birden fazla çalıştırılması var, ancak pembe çubukların hiçbiri çakışmıyor. Her yürütme, geçerli sayfa görüntüleme sayısını getirebilir, bir artabilir ve ardından tekrar kaydedebilir.</p>
<p class="wp-block-paragraph"></p>
<h4 class="wp-block-heading">Gerçek Uygulamarda Aynı Anda Çalışma Durumu</h4>
<p>Ancak PHP kodumuzun birden fazla çalışması çakışması durumunda ne olur ? Sonuçta, çalışan kodların her zaman bu şekilde birbirini izleyen şekilde çalışması ve tamamlanması gerçekci bir durum değildir. İşte işlerin karışmaya başladığı nokta burasıdır.</p>
<p class="wp-block-paragraph"></p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/MSgndNPGQ3VoRG8wQUrrwjPF4ms62dxzaX3AzMNEiaNyyo7hLDegot73uIKN7M8R2R7bDdKNoaXhedsETkKyCdtbMCfSE-QirWxhC1RIRx0IFIeSMzT7_Zf4RpmTWWhOWdKfRZAn" alt="" /></figure>
<p>İşte üç işlemimizin zaman içinde birbirine daha yakın olduğu bir zaman çizelgesi. Gördüğünüz gibi, PHP kodunu takip eden sayfa görüntüleme sayfamızın çalışması şimdi çakışıyor.</p>
<p>Bu nedenle, ikinci işlemin sayfa görünümü artışı yanlıştır. Bunun nedeni, ilk işlem onu ​​geri kaydetmeden önce sayfa görüntüleme sayısını getirmesidir. Bu nedenle, ilk işlem olarak aynı sayıda sayfa görüntülemesini sayar.</p>
<p>Ama bu da sonu değil! Yarış durumu nedeniyle, üçüncü işlem ayrıca ikinci işlem tarafından kaydedilen sayfa görüntülemelerinin sayısının üzerine yazar. Daha fazla eşzamanlı işlemimiz olsaydı, bu yarış durumunun neden olduğu sorunları daha da karmaşık hale getirirdi.</p>
<p>Sonuç, sayfa görüntülemelerinin sayısının hatalı bir şekilde izlenmesidir. Sayfa görüntüleme izleme kodumuz, üç sayması gerekirken yalnızca iki sayfa görüntülemesi saydı. Böyle bir sistem tasarlamaya zahmet ettiyseniz bu ciddi bir problemdir.</p>
<p class="wp-block-paragraph"></p>
<h4 class="wp-block-heading">Durumunun Düzeltilmesi</h4>
<p>Bu durumu düzeltmenin bariz çözümü bu şekilde yapmamak veya Google Analytics gibi harici bir hizmet kullanmaktır. Tabi bu durumda bu gibi eşzamalı sorunlarını çözmeyi öğrenemeyiz.</p>
<p>Bu durumun düzeltilmesinde anahtar kelime karşılıklı dışlamadır. Bu karşılıklı dışlamanın kendisi eşzamanlı kontrolü adı verilir. Ve eşzamanlı kontrolünün amacı, eşzamanlı işlemlerin (sayfa görüntülemelerin izlenmesi gibi) doğru sonuçların üretilmesini sağlar.</p>
<p>Şimdi karşılıklı dışlamaya dönelim. Karşılıklı dışlama, bir seferde yalnızca bir yürütmenin kritik bir kod parçasına gireceği fikridir.Bu durumda ziyaretci sayısını hesaplayan kod bir sefer çalışacak ve bitiminde yeniden çalışarak doğru izleme sayısını verecektir.</p>
<p class="wp-block-paragraph"></p>
<h2 class="wp-block-heading">PHP’nin Avantajları Nelerdir?</h2>
<p> PHP ile web sitesi sorun yaşamadan yönetilebilir ve geliştirilebilir.  Günümüzde yaygın olarak kullanılmasının ve tercih edilmesinin başlıca nedenleri aşağıda listelenmiştir.</p>
<p class="wp-block-paragraph"></p>
<ul class="wp-block-list">
<li>PHP web siteleri için gereken tüm araçları ve çözümleri ücretsiz olarak sunan açık kaynaklı bir dildir.</li>
</ul>
<p></p>
<ul class="wp-block-list">
<li>Açık kaynaklı olması sebebiyle yaygın biçimde kullanılır ve PHP gelişimine herkes katkıda bulunur, sürekli geliştirilir. PHP dilinde kod yazarken herhangi bir sorun karşılaşılırsa internette yapılacak kısa bir arama ile soruna yönelik çok sayıda cevap bularak hızlı bir şekilde destek bulunabilir.</li>
<li>Açık kaynak kodlu ve ücretsiz olmasının avantajlarından biri de PHP dosyalarına çevrimiçi olarak kolayca erişmenin mümkün olmasıdır.</li>
<li>PHP’nin sunduğu diğer bir özgürlük ise açık kaynak kodlu olduğu için Notepad gibi basit bir editör ya da Notebook ++,Sublime Text, jEdit, Emacs ve Bluefish,Phpstorm,Visual Studio Code, gibi daha gelişmiş editörler ile kullanılabilir.</li>
<li>PHP birden fazla işletim sisteminde, Linux, Unix türevi, Microsoft Windows, Mac OS X, RISC OS dâhil olmak üzere çok çeşitli platformda çalışabilir.</li>
<li>PHP, farklı hizmetlerle LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM ve daha sayısız protokol aracılığıyla iletişim kurabilecek bir altyapıya sahiptir.</li>
<li>Java nesnelerinin oluşturulabilmesi ve şeffaf biçimde PHP nesneleri olarak kullanılabilme leri önemli bir diğer özelliktir.</li>
<li>Diğer bir avantaj, ileri seviyede özelliklere sahip olmasına rağmen kolay kullanımlı bir programlama dilidir bu durum PHP’nin öğrenilmesini oldukça kolaylaştırıyor ve PHP dilinin tercih edilmesini sağlıyor.</li>
<li>Çok fazla sistem kaynağı gerektirdiğinden, PHP diğer dillere kıyasla çok daha hızlıdır. Farklı yazılımlarla çalıştığında bile diğer işlemleri yavaşlatmaz.</li>
<li>Diğer dillere nazaran oldukça hızlı, güvenli ve ölçeklendirilebilir dir. Siteleri saldırılardan, tehditlerden ve virüslerden korumanın en güvenli yollarını sunar.</li>
<li>Modüler sistemiyle XML ve daha pek çok kütüphaneyle entegre edilebildiği için her işletmeye özgü özel ihtiyaçları karşılayabilir.</li>
<li>PHP çekirdek fonksiyonlarını genişletecek sayısız uzantıyı da içerir. Kullanıcının kaynak kodunu XML manipülasyonu ile kontrol edebilmesini sağlar. Bu özellik sayesinde her türlü uzantı ayarıyla entegre edilebilir.</li>
<li>Çok fazla trafiği olan web sitelerinde sorunsuz bir şekilde çalışır.</li>
<li>PHP hem Frond-End hem de Backend web geliştirmede kullanılabilir.</li>
<li>PHP nin en güçlü ve en çok üstünde durulan özelliklerinden biri, sahip olduğu geniş ve gelişmiş veri tabanı desteğidir. Bunlar MySQL, Oracle, Sybase, DB2, vb. şekilde çeşitlendirilebilir.</li>
<li>Yardımcı sınıflar sayesinde birçok dosya formatını okuma ve üzerinde işlemler yapılabilmesine imkân tanır.</li>
<li>PHP sunucu taraflı iletişimler için yaratılmış bir programlama dilidir. Bu nedenle form verisi toplamak, sunucuda dosya yönetmek, veri tabanlarını düzenlemek vb. gibi çeşitli sunucu taraflı fonksiyonları yapabilir.</li>
</ul>
<p></p>
<h5 class="wp-block-heading"><strong>Kullanılacak Frameworkler</strong></h5>
<p></p>
<ul class="wp-block-list">
<li><a href="https://framework.zend.com/" target="_blank" rel="noreferrer noopener nofollow">Zend</a></li>
<li><a href="https://laravel.com/" target="_blank" rel="noreferrer noopener nofollow">Laravel</a></li>
<li><a href="https://symfony.com/" target="_blank" rel="noreferrer noopener nofollow">Symfony</a></li>
<li><a href="https://codeigniter.com/" target="_blank" rel="noreferrer noopener nofollow">Codeigniter</a></li>
<li><a href="https://www.znframework.com/" target="_blank" rel="noreferrer noopener nofollow">Zeroneed</a> (Türk Php Çatı Yazılımı)</li>
<li><a href="https://www.yiiframework.com/" target="_blank" rel="noreferrer noopener nofollow">Yii2</a></li>
</ul>
<p></p>
<h5 class="wp-block-heading"><strong>Web Sunucusu</strong></h5>
<p></p>
<ul class="wp-block-list">
<li><a href="https://httpd.apache.org/" target="_blank" rel="noreferrer noopener nofollow">Apache</a></li>
<li><a href="https://www.nginx.com/" target="_blank" rel="noreferrer noopener nofollow">Nginx</a></li>
</ul>

		</div>
	</div>
</div></div></div></div><div  class="vc_row wpb_row vc_row-fluid"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner "><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element wpb_animate_when_almost_visible wpb_bounceIn bounceIn" >
		<div class="wpb_wrapper">
			<p>I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.</p>

		</div>
	</div>
</div></div></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://demiryalcin.com/2020/11/01/php-nedir-nasil-calisir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2199</post-id>	</item>
		<item>
		<title>GNU / LINUX</title>
		<link>https://demiryalcin.com/2020/06/05/gnu-linux/</link>
					<comments>https://demiryalcin.com/2020/06/05/gnu-linux/#respond</comments>
		
		<dc:creator><![CDATA[yalçın demir]]></dc:creator>
		<pubDate>Thu, 04 Jun 2020 21:44:57 +0000</pubDate>
				<category><![CDATA[GNU / Linux]]></category>
		<category><![CDATA[compyleft]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://demiryalcin.com/?p=2189</guid>

					<description><![CDATA[Özgürlük sizce nedir ? Sadece insanlar ve hayvanlar için kullanılan bir kavram mıdır. Yoksa başka şeyler için de özgürlük kullanabilir miyiz. Emin olun bunu ilk düşünen siz değilsiniz. 1970’lerde MIT yapay zeka laboratuvarında sistem hacker* olarak görev yapan Richard Stallman o&#8217;zamanlar ofislerinde kullanmış oldukları yazıcılarının istedikleri özellikleri teknik olarak karşılayabileceği lakin yazılımsal olarak yetersiz olduğunu [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Özgür Yazılım Nedir ?" width="500" height="281" src="https://www.youtube.com/embed/X2PLVufiu4Q?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Özgürlük sizce nedir ? Sadece insanlar ve hayvanlar için kullanılan bir kavram mıdır. Yoksa başka şeyler için de özgürlük kullanabilir miyiz.</p>



<p class="wp-block-paragraph">Emin olun bunu ilk düşünen siz değilsiniz. 1970’lerde MIT yapay zeka laboratuvarında sistem hacker* olarak görev yapan Richard Stallman o&#8217;zamanlar ofislerinde kullanmış oldukları yazıcılarının istedikleri özellikleri teknik olarak karşılayabileceği lakin yazılımsal olarak yetersiz olduğunu düşünmektedir. Bunun üzerine yazıcının kaynak kodunu istemiştir. Lakin bu kaynak kodunun gizlilik anlaşması olduğunu paylaşamayacağını söylemişlerdir. Tabi bu o&#8217;zamanlar için oldukça nadir rastlanan bir durum. İnternet altyapısının dünyada yaygın olmadığı programcılar geliştirdikleri kodları birbiriyle takas ettikleri yazdıkları kodları kendi kutuphanelerinde tuttukları yıllardan bahsediyoruz. O zamanlar programcılar kendilerini geliştirmek için yazılan bir programın derlenmemiş “source code” haliyle birlikte vermekteydi. Bu hem programcıları geliştirmekte hemde programın eksik veya ek özellik eklemek istediğinde kolayca müdahale edilmesini sağlamaktadır.&nbsp;</p>



<p class="wp-block-paragraph">1980’lerin başlarında YZ Laboratuvar kullanılan PDP-10 sisteminin yetersiz kalmasıyla 1982 yılında yeni bir PDP-10 satın alınmış. Lakin bu satın alınan PDP-10 ITS zaman paylaşım sistemi yerine sahipli bir zaman paylaşım sistemi kullanmaya karar vermiş. Bu tabi bu sahipli yazılımı kullanmak için bir gizlilik sözleşmesi imzalamak gereklidir. Bu, bir bilgisayarı kullanımında ki ilk şartın komşunuza yardım etmemek anlamına geliyordu. Özel mülk yazılım sahiplerinin ortaya koydukları şart şuydu:” Komşu İle bilgi paylaşırsanız siz bir korsansınız.Herhangi bir değişiklik isterseniz, bu değişikliği yapılmasını bizden rica edin.”</p>



<p class="wp-block-paragraph">Bunun üzerine Richard bu gizlilik sözleşmesini imzalamanın daha önce yazıcıyla ilgili kaynak kodu istediğinde yaşamış olduğu durumun başka yazılımcılara yapan kişi olacağını düşündü. Bunun üzerine yapılacak iki şey vardı. Bir bu sözleşmeyi kabul edip kod geliştirmeye devam edecek lakin mesleğine ve kendine olan saygısını yitirecektir. Diğer seçenek ise kod geliştirmeyi bırakıp farklı bir mesleğe yöneliktir. Buda bilgilerini yine kendine saklamak olacaktır. Bundan başka ne yapabileceğini düşünmeye başladı. Yapılacak bir şeylerin daha olması gerekmektedir. Bunun üzerine yeni bir işletim sistemi yazıp bunu diğer yazılımcılarla paylaşıp bir topluluk elde etmeye karar verdi. Bu sayede insanlar yazdıkları programları istedikleri gibi kullanabilecek eğer isterlerse diğer kişilerle paylaşabilecekler. Bunun üzerine geliştirilecek sistemin UNIX benzeri bir yapıya sahip olması gerekmekteydi. Çünkü unix sistemleri kullanan birileri rahatlıkla bu yeni işletim sistemine geçebilirdi. Bunun üzerine hacker geleneğine bağlı olarak GNU ismini koydu. GNU’s Not Unix</p>



<p class="wp-block-paragraph">Ve aklına şu sözler geldi.</p>



<p class="wp-block-paragraph">“Ben kendim için değilsem, benim için olacak kimdir? Ben yalnızca kendim içinsem, ben neyim? Şimdi değilse, ne zaman?”</p>



<h3 class="wp-block-heading">Açık Kaynak ve Özgür Yazılım Fark</h3>



<p class="wp-block-paragraph">İngilizcede “FREE” kelimesinin yaklaşık 20 anlamı yer almaktadır. Bu anlamlardan sadece bir tanesi “ÜCRET” anlamına gelirken diğer kelimeler “ÖZGÜRLÜĞÜ” ifade etmektedir. Bu nedenle olacaktır ki insanlar özgür yazılım dediğinde ücretsiz yazılım anlamaktadır. Ve bu ingilizce için büyük bir anlam karışıklığına yol açmaktadır. Lakin türkçe de bu şekilde bir anlam ifade etmemektedir.İki terim neredeyse yazılımın aynı kategorisini tanımlamaktadır, ancak temel olarak farklı değerleri taban alan farklı görüşlere dayanırlar. Özgür yazılım hareketi için, özgür yazılım etik bir zorunluluktur, çünkü sadece özgür yazılım kullanıcıların özgürlüğüne saygı duyar. Farklı olarak, açık kaynak felsefesi sadece pratik anlamda yazılım nasıl daha “iyi” yapabiliriz konusunu önemser. Özgür olmayan yazılımın eldeki pratik problem için değersiz bir çözüm olduğunu söyler.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>“Özgür yazılım” ve “açık kaynak” terimi neredeyse aynı program aralığını ifade eder. Ancak bu programlar hakkında farklı değerlere dayalı derinden farklı şeyler söylüyorlar. Özgür yazılım hareketi, bilgisayar kullanıcıları için özgürlük için kampanyalar; özgürlük ve adalet için bir harekettir. Aksine açık kaynak fikri temel olarak pratik avantajlara değer verir ve ilkeler için kampanya yapmaz. Bu nedenle açık kaynak ile aynı fikirde değiliz ve bu terimi kullanmıyoruz.</p><cite>Richard Stallman</cite></blockquote>



<p class="wp-block-paragraph"></p>



<h3 class="wp-block-heading">Özgür Yazılım İlkeleri</h3>



<p class="wp-block-paragraph">“Özgür yazılım”, kullanıcıların özgürlüğüne ve topluluğa saygı duyan yazılım demektir. Kabataslak, <strong>kullanıcıların bir yazılımı çalıştırma, kopyalama, dağıtma, çalışma, değiştirme ve geliştirme özgürlüğüne sahip olduğu</strong> anlamına gelir.</p>



<ul class="wp-block-list"><li>Herhangi bir amaç için, istediğiniz şekilde yazılımı çalıştırma özgürlüğü (0 numaralı özgürlük).</li><li>Her ne istiyorsanız onu yaptırmak için programın nasıl çalıştığını öğrenmek ve onu değiştirme özgürlüğü (1 numaralı özgürlük). Yazılımın kaynak koduna ulaşmak, bu iş için ön koşuldur.</li><li>Kopyaları dağıtma özgürlüğü, böylece başkalarına yardım edebilirsiniz (2 numaralı özgürlük).</li><li>Değiştirilmiş sürümlerinizin kopyalarını dağıtma özgürlüğü (3 numaralı özgürlük). Böylece değişikliklerinizden yararlanması için tüm topluma bir şans vermiş olursunuz. Kaynak koduna erişmek, bunun için bir ön koşuldur.</li></ul>



<h3 class="wp-block-heading">Projenin Başlatılması Ve İlk Adımlar</h3>



<p class="wp-block-paragraph">1984 yılında MIT görevinden istifa eder. Çünkü MIT çatısında çalışırken geliştirdiği işletim sistemi teknik olarak MIT ait olabilirdi. Buda özgür yazılım fikrini ilk aşamada baltalamak anlamına gelmekteydi. İşten ayrılırken o zamanlar MIT yöneticisi olan profesör Winston üstü kapalı bir şekilde burda çalışırken de geliştirebileceğini söyler lakin bunu kabul etmeyip ayrılır. Projeyi yazmaya başlar. İlk zamanlar insanlardan bir band ve SASE gönderin size içersine yeni yazdığım Emacs olacak şekilde geri göndereyim der. Lakin bu sürede işsiz olmasından dolayı projenin finanse edilmesi gerekmektedir. Bunun üzerine isteyen kişilerden 150 dolar karşılığında gönderebileceğini belirtir. Bunun üzerine özgür yazılım dağıtım işine başlamıştır.</p>



<h3 class="wp-block-heading">Copyleft ve GNU GPL</h3>



<p class="wp-block-paragraph">GNU’nun hedefi yalnızca populer bir yazılım olmak değil kullanıcılara özgürlük sağlamaktadır. Bu nedenle özel mülk yazılımına dönüştürülmesine karşın bir dağıtım terimi kullanılması gerekmektedir. Kullanılan yöntem copyleft yöntemidir.</p>



<p class="wp-block-paragraph">Copyleft, telif hakkı kanununu kullanır ancak genel amacının tersine hizmet etmesi için tersine çevirir: Yazılımı özel hale getirmek yerine, yazılımı özgür tutmanın bir yolu haline gelir. Copyleft’in temel fikri, herkese programı çalıştırma, değiştirme, değiştirilmiş sürümleri dağıtma hakkını vermek, ancak özel kısıtlamalar ekleme iznini vermemektir. Bu nedenle, “özgür yazılımı” tanımlayan önemli özgürlükler, yazılımın kopyasına sahip herkes için mevcuttur; bu geri alınamaz bir haktır. Etkin bir copyleft için, değiştirilmiş sürümler de özgür olmalıdır. Bu, yayınlanırsa, bizimkileri esas alan çalışmaların, topluluğumuz için erişilebilir olmasını sağlar. Programcı olarak çalışan kimseler GNU yazılımını değiştirmek için gönüllü olduklarında copyleft, “Bu değişiklikleri paylaşamazsın çünkü programın özel mülk sürümünü&nbsp; oluşturmak için bu değişiklikleri kullanacağım” denmesini önler.&nbsp;</p>



<p class="wp-block-paragraph">Microsoft başkan yardımcısı Craig Mundie bir açıklamasında; &#8220;GPL&#8217;nin bu viral yönü, onu kullanan herhangi bir kuruluşun fikri mülkiyeti için bir tehdit oluşturuyor.&#8221; ifadesini kullanmıştır.</p>



<h3 class="wp-block-heading">Beklenmedik Durumlar</h3>



<p class="wp-block-paragraph">Projeye başlanıldığında topluluktaki insanların belirli bir modul geliştirmesi gerekliydi.Buda sağladılar lakin sistem ozaman UNIX sisteminde gerçekleştirildiği için tam bir sistem değildi. İnsanlar geliştirdiğimiz sistemleri kullanmak yerine ellerindeki sistemi bizim yazdığımız programlarla genişletmek için kullanılmaya başladı. Mevcut programcılar yeni modul geliştirmek için harcaması gereken zamanı mevcut modüllerin üzerine ek özellikler ve hataları geliştirmek için kullanıldı. Bu nedenle kısa zamanda tam bir sistem olması gerekmektedir.&nbsp;</p>



<h3 class="wp-block-heading">GNU/LINUX</h3>



<p class="wp-block-paragraph">1991 yılına gelindiğinde GNU sistemi hemen hemen tamamlanmıştı. Lakin ellerinde çalışır durumda bir çekirdek yoktu. Bunun üzerine çekirdek arayışına girdiler.</p>



<h3 class="wp-block-heading">Linux Çekirdeği Nasıl Doğdu</h3>



<p class="wp-block-paragraph">Linus Benedict Torvalds 28 Aralık 1969’da Finlandiya’nın başkenti ve en büyük şehri olan Helsinki’de dünyaya geldi. Ailesi ona ünlü fizik kimyager ve Nobel Ödülü sahibi olan Linus Pauling’in adını verdi. Babası bir radyo gazetecisi annesi ise bir çevirmendi.</p>



<p class="wp-block-paragraph">Linus, 1988 yılında ailesinin izinden giderek Finlandiya’nın en kaliteli eğitim kurumu olan Helsinki Üniversitesi‘ne kayıt yaptırdı. O zamana kadar bilgisayar programcılığıyla uğraştığı için doğal olarak bilgisayar mühendisliği/bilimleri branşını seçti. Üniversitedeyken çok ciddi yazılım projelerinde görevler aldı. Daha sonraları Linux işletim sisteminin çekirdeğini (kernel) yazacağı C programlama diliyle 1990 yılında tanıştı. 1991 yılında 33Mhz Intel 386 işlemci kullanan ve 4MB’lık hafızaya sahip yeni bir IBM aldı. Bu işlemci, Intel’in önceki çiplerine kıyaslandığında daha iyi bir işlemci ailesinin bir temsilcisiydi. Linus donanımdan memnun olmasına rağmen, bir süre sonra bilgisayarla birlikte gelen MS-DOS işletim sistemi yüzünden hayal kırıklığına uğramıştı. Çünkü bu işletim sistemi 386 çiplerinin gelişmiş yeteneklerini kullanabilmek için yeterince gelişmiş değildi. Daha sonra kendi bilgisayarına üniversitenin bilgisayarlarından aşina olduğu Unix tabanlı bir işletim sistemi kurmaya karar verdi. Fakat aradığı sürümler çok pahalıydı ve aradığını bulamadı. En sonunda MINIX‘i tercih etti.</p>



<p class="wp-block-paragraph">MINIX, işletim sistemi uzmanı Andrew Tanenbaum tarafından Hollanda’daki üniversite öğrencilerine UNIX’i öğretmek amacıyla yazılmış bir işletim sistemiydi. MINIX kullanmaya başlayan Linus Torvalds, üniversitenin UNIX sistemine ve internete bağlanmak için kullandığı terminal 17 Eylül 1991 tarihinde, Linux’un ilk sürümü olan 0.01’i internette yayınladı. Linus Torvalds geliştirmekte olduğu bu işletim sistemine önceleri Linux (Linus’un Minix’i) adını vermeyi düşündü fakat bunun çok egoist bir davranış olacağına karar vererek sonradan free (özgür), freak (garip, acayip) ve Minix’in karışımından oluşan bir kelime olan Freax’ta karar kıldı. Fakat arkadaşı Lemmke, FTP’de Linux adı altında bir dizin oluşturmuştu bile. Bu yüzden sistemin adı Linux olarak yayıldı.</p>



<p class="wp-block-paragraph">Lakin Linux yazmış olduğu sistemin bir lisans olması gerektiğinin farkındaydı bu nedenle lisan için GNU GPL lisans dağıtmaya karar verdi. 1992 yılında GNU ile Linux çekirdeğinin birleşmesiyle tam bir sistem halini almıştır. Şuan yaygın olarak kullanılan “Linux” tabiri yalnıştır. Eğer bir CD-ROM dağıtıcı olsanız sistemi oluşturan kodların %28’nin tekil kullanıcı guruplarının oluşturduğunu görmektesiniz. Bunun sadece %3 lük dilimin linux çekirdeğinin olduğunu görebilirsiniz.Bu nedenle GNU / Linux olarak ifade etmek daha doğrudur.</p>



<h3 class="wp-block-heading">Niçin Bilgisayar Kullanıcıları Karda Olacaktır</h3>



<p class="wp-block-paragraph">Yazılımlara GPL lisansı altında sahip olabileceklerdir. Yazılımla ilgili yardıma ihtiyac duyduklarinda sadece bir firmanın tekelinde olmaktan kurtulmuş olacaklardır. İstedikleri değişikliği kendi veya bir programcıya yapılabilecektir. Buda yazılımın hava gibi ücretsiz bir şekilde kullanılmasını sağlayacaktır.</p>



<h2 class="wp-block-heading">Nihayi Hedef</h2>



<p class="wp-block-paragraph"><strong>Nihai hedef; bilgisayar kullanıcılarının yapmak istediği tüm işleri yapması için özgür yazılım sağlamak, ve böylece özel mülk yazılımı geçmişte bırakmaktır.</strong></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Richard Stallman - Özgür Yazılım HQ Türkçe Altyazılı" width="500" height="375" src="https://www.youtube.com/embed/_St4bC9fcfA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Kaynaklar</h2>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" href="https://tekrei.gitlab.io/other/2009_OYOT.pdf" target="_blank">https://tekrei.gitlab.io/other/2009_OYOT.pdf</a></li><li><a href="https://www.gnu.org/gnu/byte-interview.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/gnu/byte-interview.html</a></li><li><a href="https://tr.wikipedia.org/wiki/%C3%96zg%C3%BCr_yaz%C4%B1l%C4%B1m" target="_blank" rel="noreferrer noopener">https://tr.wikipedia.org/wiki/%C3%96zg%C3%BCr_yaz%C4%B1l%C4%B1m</a></li><li><a href="https://tr.wikipedia.org/wiki/Copyleft" target="_blank" rel="noreferrer noopener">https://tr.wikipedia.org/wiki/Copyleft</a></li><li><a href="https://www.gnu.org/philosophy/open-source-misses-the-point.tr.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/philosophy/open-source-misses-the-point.tr.html</a></li><li><a href="https://www.kadinyazilimci.com/richard-stallman/" target="_blank" rel="noreferrer noopener">https://www.kadinyazilimci.com/richard-stallman/</a></li><li><a href="https://www.gnu.org/philosophy/words-to-avoid.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/philosophy/words-to-avoid.html</a></li><li><a href="https://www.gnu.org/gnu/why-programs-should-be-shared.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/gnu/why-programs-should-be-shared.html</a></li><li><a href="https://www.gnu.org/gnu/gnu.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/gnu/gnu.html</a></li><li><a href="https://www.gnu.org/gnu/thegnuproject.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/gnu/thegnuproject.html</a></li><li><a href="https://www.gnu.org/gnu/linux-and-gnu.html" target="_blank" rel="noreferrer noopener">https://www.gnu.org/gnu/linux-and-gnu.html</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://demiryalcin.com/2020/06/05/gnu-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2189</post-id>	</item>
		<item>
		<title>Nedir Bu Python ?</title>
		<link>https://demiryalcin.com/2020/04/29/nedir-bu-python/</link>
					<comments>https://demiryalcin.com/2020/04/29/nedir-bu-python/#respond</comments>
		
		<dc:creator><![CDATA[yalçın demir]]></dc:creator>
		<pubDate>Wed, 29 Apr 2020 14:25:04 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[nedirbupaython]]></category>
		<category><![CDATA[netflix]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[yapayzeka]]></category>
		<guid isPermaLink="false">https://demiryalcin.com/?p=2116</guid>

					<description><![CDATA[2003 yılından itibaren 10 popüler yazılım dilleri arasına sıkı bir giriş yapan ve gün geçtikçe popülerliği artan yazılım dilinin artıları eksileri ve bu kadar çok kullanılmasının sebepleri nelerdir bunlar üzerinde duralım.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">2003 yılından itibaren 10 popüler yazılım dilleri arasına sıkı bir giriş yapan ve gün geçtikçe popülerliği artan yazılım dilinin artıları eksileri ve bu kadar çok kullanılmasının sebepleri nelerdir bunlar üzerinde duralım.</p>



<h2 class="wp-block-heading">Tarihcesi</h2>



<p class="has-drop-cap wp-block-paragraph">Python 90’li yıllarının başlarında Amsterdamlı yazılımcı Guido Van Rossum tarafından geliştirilmeye başlanmıştır. Herkesin bildiğinin aksine bu yazılım dili piton yılanından değil “<strong>Mounty Python’s Flying Circus</strong>” adlı tv programından almaktadır.Python ilk versiyonu olan <strong>1.0 Ocak 1994</strong> yılında yayınlanmıştır. Bundan yaklaşık 6 yıl sonra yani <strong>16 ekim 2000</strong> yılında 2.0 versiyonu yayınlamıştır. 8 yılın ardından yani <strong>3 Aralık 2008</strong>’de 3.0 yayınlamıştır. Şu Anda kullanılmakta olan 2 versiyonu vardır. Bunlardan 2.x sürümü “miras” olarak geçmektedir. Peki neden 2 sürüm halinde versiyon çıkarıldığına gelmek gerekirse versiyon 3.x ile versiyon 2.x arasında çok büyük güncelleme farkları vardır. Bunlardan başlıcaları iyi eş zamanlı kontroller ve daha verimli bir derleme sistemidir. Şuan birçok firmada halen 2.x sürümü kullanılmaktadır. Birçok python kitaplığı yalnızca python 2’yi desteklemektedir. Üçüncü sınıf kütüphanelerin python 3’ü desteklemesi biraz yavaş olarak ilerlemektedir. Buda doğrudan geçişi zaman alıcı bir hale getirmektedir. Bu nedenle firmalar şu an kullanmakta oldukları yapıları 2.x’den 3.x almaya devam etmektedir. Lakin 2000 yılında çıkan 2.x versiyonu <strong>2020 </strong>yılında topluluk desteğini almaya devam edecektir. Ancak son birkaç yılda python 2’i destekleyen kütüphaneler azaldı. Bunun karşılığında yeni yazılan kütüphaneler artık python 3’e göre yapılmaktadır. Bundan dolayıdır ki ileriki bir tarihte python 3 python 2 tarih sahnesinden kaldıracaktır.</p>



<h2 class="wp-block-heading">Python’un Yükselişi</h2>



<p class="has-drop-cap wp-block-paragraph">Van Rossum 2003 yılında google başlamasıyla birlikte python 10 programlama dilinin arasına sıkı bir giriş yapıyor. Popülerliği doğrusal bir şekilde artmaya başladı. Tabi bunun en büyük nedeni google gibi bir yazılım devinin projelerinde python kullanmaya başlaması büyük etki yapmıştır. Google’den başka Wikipedia,Yahoo,Cern,Nasa python ile geliştirme yapmıştır.Ayrıca günümüzde birçok popüler sosyal medya ağı alt yapısında python kullanmaktadır. Bunlar Instagram,reddit(Tamamı),facebook.Eve kapandığımız bu günlerde Netflix gibi internet üzerinden video kiralama hizmeti sunan firmaların alt yapısında kullanılmaktadır.</p>



<p class="wp-block-paragraph">Python oldukca genel bir programlama dilidir. Web servis uygulamalarından , büyük veri işleme(BIG DATA),yapay zeka uygulamalarından,bilimsel hesaplama ,nesnelerinin interneti(IOT) ve network sistemlerine kadar birçok sistemde kullanılmaktadır.&nbsp;</p>



<p class="wp-block-paragraph">Haziran 2014 yapılan bir araştırmada Amerika’da bileşim bilimi bölümlerinde öğrencilerin başlangıç programlama dili olarak python tercih ettiği görülmektedir. Amerikada yer alan ilk 10 üniversitenin %80 bir kısmıda ,39 üniversitenin’de %27’si python programlamaya giriş dili olarak belirlemiştir. Ülkemizde ITU Fizik Mühendisi bölümünden Berlin Malkoç “Temel Bilimler ve Mühendislik Eğitiminde Programlama Dili Olarak Python” adında bir bildiri yayınlamıştır(<a href="https://ab.org.tr/ab12/kitap/malkoc_AB12.pdf" target="_blank" rel="noopener">Url</a>).Python R programlama dilinden sonra veri madenciliğinde kullanılan 2’ci yazılım dilidir. Python Githup en çok kullanılan 4. yazılım dili stackoverflow en büyük 5. topluluğa sahipken meetup’ta 3 en büyük topluluğa sahip yazılım dilidir.</p>



<p class="wp-block-paragraph">Alt kısımda PYPL (popularity of a programming language index)&nbsp; index sonuçlarının oluşturduğu grafiği görebilirsiniz. PYPL elde edilen verileri google trends üzerinden temin ettiğini belirtiyor.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="796" height="724" src="https://demiryalcin.com/wp-content/uploads/2020/04/pypl.png" alt="" class="wp-image-2128" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/pypl.png 796w, https://demiryalcin.com/wp-content/uploads/2020/04/pypl-300x273.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/pypl-768x699.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<p class="wp-block-paragraph">Programlama dillerinin popülaritesi inceleyen bir diğer kaynak olan TIOBE sonuçları alt kısımda yer almaktadır.Tabi burda da ivme sürekli yukarı yönde ilerlemektedir.TIOBE birçok kaynaktan veri sağlar bunlar dünya genelinde uzmanlaşmış mühendis sayısı.Bir dilde uzmanlaşan yazılıcının artması o dilin populerlik ve iş potansiyelinin olduğu anlamına gelir.Programlamlama dilinde eğitim içeriklerinin adedi artması o dile ait öğrenme ve talibin olduğu anlamına gelir.Son olarakta internet üzerinde yapılan aralama ve tıklamalar o dilin halk arasında populerliğinin olduğu anlamına gelir.Yalnız dikkat edilmesi gereken husus en iyi programlama dili veya en çok kod yazılan dil şeklinde olmadığıdır.</p>



<p class="wp-block-paragraph">Ayrıca yazılım camiasının sıklıkla kaynak veya bilgi paylaşım mecrası olarak kullanmış olduğu stackoverflow sitesinin yapmış olduğu 2013 ve 2017 yılları arasındaki ankette %21’lerden %32’lere çıktığı görülmektedir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="796" height="724" src="https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow.png" alt="" class="wp-image-2129" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow.png 796w, https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow-300x273.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/stackoverflow-768x699.png 768w" sizes="(max-width: 796px) 100vw, 796px" /></figure>



<h2 class="wp-block-heading">Python IDE Nelerdir ?</h2>



<p class="wp-block-paragraph">Python için bir çok IDE (Integrated Development Environment) mevcuttur. Türkce adıyla söylemek gerekirse “Tümleşik Geliştirme Ortamı” olarak türkçeye çevrilmektedir.Bu IDE’ler kullanılan yere ve işletim sistemine göre tercih edilmektedir.&nbsp;</p>



<h4 class="wp-block-heading">Online Compiler</h4>



<p class="wp-block-paragraph">Bu IDE online ortamda kod yapmamıza olanak sağlamaktadır. Yani bilgisayarınıza herhangi bir uygulama kurmadan internetinizin olduğu her yerden kod geliştirmesi yapabilirsiniz.Kullanımı tamamen ücretsizdir. Bu <a href="https://www.onlinegdb.com/online_python_compiler" target="_blank" rel="noopener">URL den</a> erişim sağlayabilirsiniz.</p>



<figure class="wp-block-image"><img decoding="async" width="300" height="205" src="https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-300x205.png" alt="" class="wp-image-2118" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-300x205.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-1024x701.png 1024w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-768x525.png 768w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler-1080x739.png 1080w, https://demiryalcin.com/wp-content/uploads/2020/04/Online-Compiler.png 1200w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Jupyter Notebook</h4>



<p class="wp-block-paragraph">Aldığınız notları ve kodları bir arada tutabileceğiniz oldukça faydalı bir IDE’dir. Browser üzerinden çalışan bu IDE tek başına kurulum yapılabildiği gibi Anaconda dağıtımının içerisinde yer almaktadır. Benim tavsiyem Anaconda kurulumu yapmanız yönündedir. Eğer bilmiyorsanız Anaconda veri bilimi ve makine öğrenimi için oldukça popüler bir dağıtımdır.Anaconda Numpy,Pandas,Matplotlib ve benzeri yüzlerce kütüphane içerisinde barındırır.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="232" src="https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook-300x232.png" alt="" class="wp-image-2119" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook-300x232.png 300w, https://demiryalcin.com/wp-content/uploads/2020/04/jupyter-notebook.png 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">IDLE</h4>



<p class="wp-block-paragraph">Python kurulum ile birlikte gelen default IDE’dir. Herhangi bir Python sürümünü kurul yapmanız halinde bilgisayarına kurulmaktadır.&nbsp;</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="202" src="https://demiryalcin.com/wp-content/uploads/2020/04/IDLE-300x202.jpeg" alt="" class="wp-image-2120" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/IDLE-300x202.jpeg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/IDLE.jpeg 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



</p>
<p class="wp-block-paragraph">&nbsp;</p>
<p>



</p>
<h4 class="wp-block-heading">Sublime Text 3</h4>
<p>



</p>
<p class="wp-block-paragraph">Başlangıç ve ileri düzey programcılara yönelik bir IDE dir. Ücretli bir uygulamadır. Türkiye&#8217;de ve dünyada bir çok yazılımcının kullanmakta oldukça hoşnut olduğu bir programdır.</p>
<p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="234" src="https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3-300x234.jpg" alt="" class="wp-image-2121" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3-300x234.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Sublime-Text-3.jpg 650w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Atom</h4>



<p class="wp-block-paragraph">Open source bir programdır. Github üzerinden kodlarına erişim sağlayabilirsiniz.Oldukça popüler bir IDE’dir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="227" src="https://demiryalcin.com/wp-content/uploads/2020/04/Atom-300x227.jpg" alt="" class="wp-image-2122" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Atom-300x227.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Atom.jpg 654w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Thonny</h4>



<p class="wp-block-paragraph">Başlangıç düzeyinde ki kişilerin genelde tercih ettiği bir IDE’dir. Oldukça popüler özellikleri vardır.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="229" src="https://demiryalcin.com/wp-content/uploads/2020/04/Thonny-300x229.jpg" alt="" class="wp-image-2123" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Thonny-300x229.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Thonny.jpg 668w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Pycharm</h4>



<p class="wp-block-paragraph">Hem başlangıç seviyesinde olan hemde profesyonel yazılımcılara hitap eden bir IDE’dir. Bu nedenle hem lisanslı sürümü hemde free open source sürümleri mevcuttur.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="202" src="https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm-300x202.jpg" alt="" class="wp-image-2124" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm-300x202.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/PyCharm.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Visual Studio Code</h4>



<p class="wp-block-paragraph">Kullanımı daha çok profesyonellere yönelik olsada yeni başlayanlar için de tavsiye edebileceğim editörler arasında yer almaktadır. Extra modüllerinin olması onu diğer editörlerden bir adım daha ileri taşımaktadır. Tamamen ücretsiz olarak kullanılabilir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="208" src="https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code-300x208.jpg" alt="" class="wp-image-2125" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code-300x208.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Visual-Studio-Code.jpg 647w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



</p>
<h4 class="wp-block-heading">Vim</h4>
<p>



<p class="wp-block-paragraph">Unix ve macOS içerisinde default olarak gelen bir yazı editörüdür. Lakin windows için daha sonra kurulum gerekmektedir. Eğer Unix sistemlerden aşına iseniz bu IDE üzerinden kolayca kod yazmaya başlayabilirsiniz. Bazı geliştiriciler Vim kısa yollarına aşina olduğundan dolayı kullanımını tercih etmektedir. Lakin ilk kez duyuyorsanız kısa yollarına alışmanız biraz zaman alabilir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="300" height="193" src="https://demiryalcin.com/wp-content/uploads/2020/04/Vim-300x193.jpg" alt="" class="wp-image-2126" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Vim-300x193.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Vim.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<h4 class="wp-block-heading">Spyder</h4>



<p class="wp-block-paragraph">Genellikle bilimsel gelişim için kullanılan açık kaynak kodlu bir IDE’dir. Spyder ile çalışmaya başlamanın en kolay yolu Anaconda dağıtımını kurmaktır.</p>



<figure class="wp-block-image"><img decoding="async" width="300" height="242" src="https://demiryalcin.com/wp-content/uploads/2020/04/Spyder-300x242.jpg" alt="" class="wp-image-2127" srcset="https://demiryalcin.com/wp-content/uploads/2020/04/Spyder-300x242.jpg 300w, https://demiryalcin.com/wp-content/uploads/2020/04/Spyder.jpg 660w" sizes="(max-width: 300px) 100vw, 300px" /></figure>



<div class="wp-block-image">
<figure class="aligncenter size-large"></figure>
</div>



<h2 class="wp-block-heading">Python Üst Seviyeli Bir Yazılım Dilidir</h2>



<p class="wp-block-paragraph">Python nesne yönelimli ,yorumsal ,modüler ve etkileşimli yüksek seviyeli bir dildir. Bilmeyenler için yüksek seviyeli diller olan c#,php ve java ile düşük</p>



<p class="wp-block-paragraph">&nbsp;seviyeli diller olan makine ve assembly örnek olarak gösterilebilir. Peki arasında ki fark nedir derseniz yüksek seviyeli diller insanların anlayacağı şekle ne kadar yaklaşırsa o kadar yüksek seviyeli dil olarak tanımlanırken bilgisayarın anlayacağı ve yorumlamada hız kazanacağı dille yaklaşırsa düşük seviyeli dil olarak adlandırılır. Buda bir dil yazılı zorlaştıkça bilgisayarın anlaması o&#8217;kadar kolay hale ge</p>



<p class="wp-block-paragraph">lmekte ve daha hızlı çalışabilmektedir. Lakin insanların anlayabileceği yazım şekline yaklaştıkça daha kolay uygulama geliştirilmekte lakin bu seferde bilgisayarın derlemesi uzun süreceğinden dolayı daha yavaş ç</p>



<p class="wp-block-paragraph">alışmaktadır.</p>



<p class="wp-block-paragraph">Ayrıca son zamanlarda derleme zamanı ipucu desteği eklenmiştir. Buda yazma anında yazılımcıya bilgi vermektedir.</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/PORFYYSOX8nz5qzs1SEDsz5bUU7jYPNIip05q0b8HsiSJIcYcYK3-pkXxS6Q3jyLAgUCYu__rU2aqAvrXz2oTbeD0wdbMifUNG2JLdhGhrlleGyTcQPIZPTWytKCT9pFBvKn1mTl" alt=""/></figure>



<h2 class="wp-block-heading">Python Alt Seviyeli Dillere Yaklaştıran Özellikler</h2>



<p class="wp-block-paragraph">Java,c#,GO programlama dilleri gibi bellek yönetimine sahiptir. Yani yazmış olduğumuz nesneleri izlemek ve kullanılmadığı durumlarda bellekten silmek için yazılımcının kod yazmasına gerek duymaksızın programlama dilinin kendiliğinden ayarlama yapabilmesi demektir. Lakin diğer dillerden farklı olarak python bunu kısmı olarak veya tamamen yazılımcı denetimine bırakmayı sağlayabilmektedir. Bu geliştirmiş olduğunuz bir projede yapılmış olan iyileştirmeyi daha stabil hale getirmek için ihtiyaç duyabileceğiniz bir durumdur.</p>



<p class="wp-block-paragraph">Python “significant whitespace” denilen boşluklar kullanılarak kod geliştirilmesi yapılmaktadır.Bu en iyi yönü ve en kötü özelliklerinden biri olarak değerlendirilebilir. İyi olmasının nedeni çok daha okunaklı olması diğer dillerde olan “{}” parantezlerinin veya “;” kullanılmaması yazılımcının hata yapmasını engellerken kodların derlenmesi de yavaş çalışmasına neden olur. Buda c veya java’dan daha yavaş çalışmasına neden olur.</p>



<p class="wp-block-paragraph">Python Yapışkan Kod (Glue Code) olarak adlandırılan takma ismini, C dilinin kütüphanesi kodları ortaklaşa kullanarak daha spesifik programlar yazmaya olanak sağlamasından dolayı almıştır.</p>



<h2 class="wp-block-heading">Python Yavaş Bir Dil Mi ?</h2>



<p class="wp-block-paragraph">Python ilgili duyabileceğiniz negatif yorumlardan biri C,C++ ve Java göre daha yavaş olduğuna yöneliktir. Genel olarak değerlendirmek gerekirse EVET yavaştır. Bunun nedeni nesneler kullanıldığı kodlar aracılığıyla belirlendiği için, derlendiğinde bile diğer yazılım dillerine oranla bir tık daha yavaş olabilir.</p>



<h2 class="wp-block-heading">Peki Hızlandırılabilir Mi ?</h2>



<p class="wp-block-paragraph">Evet tabiki hızlandırılabilir. Bunun için üçüncü taraf kütüphanelerinin seçimine dikkat etmek gerekmektedir. Çünkü yavaşlık üçüncü part kütüphanelerin içiri aktarımında yaşanan sorunlardan kaynaklanmaktadır. Örneğin NumPy ve Pandas gibi kütüphaneleri kullanarak matematik ve istatistik işlemleri muazzam bir şekilde yaptırabilirsiniz.</p>



<p class="wp-block-paragraph">Yazılımcılar arasında bir söz vardır. Programın %90 işlevsellik %10 program kodlarından oluşur.Siz %10’luk kısmını optimize ettiğinizde oldukça başarılı sonuçlar alabilirsiniz. Örneğin Cyhon ve Bumba gibi projeleri kullanarak C hatta Assembly dönüştürebilirsiniz. Lakin ortaya çıkan sonuç C göre biraz daha yavaş olabilir.Burda da C’nin micro yönetimi göz ardı edildiğinde yarışacak düzeyde performans sağlayabilirsiniz.</p>



<h2 class="wp-block-heading">Geliştirme Süresi Makine Süresini Yener</h2>



<p class="wp-block-paragraph">Evet programın geliştirildiği süre ile programın çalışma hızı değerlendirildiğinde herkes geliştirilme süresinin daha kısa olmasını tercih edecektir.Örneğin C dilinde yazılan bir kod ile Python yazılan bir kod değerlendirildiğinde C dilinde yazılan kod 1 sn çalışırken Python bu süre 6 sn olabilmektedir. Lakin kod yazımında harcana&nbsp; süre değerlendirildiğinde Python çok daha idealdir.</p>



<p class="wp-block-paragraph">Fakat bu bir ticari uygulama geliştirilmesinde yüksek verimlilik ,düşük eş zamanlılık gerektiren bir projede daha az doğru bir durumdur. Ancak birçok sıradan program yazımında ve makine öğrenimi gibi konularda hızlı olduğu aşikardır.</p>



<h2 class="wp-block-heading">Python İle Uygulama Programlama</h2>



<p class="wp-block-paragraph">Python ile bir çok GUI uygulamaları yazabilirsiniz. Lakin diğer dillerde olduğu şekilde kurulum dosyası yapamazsınız. Bunu CX_Freeze ve PyInstaller kullanarak mümkün kılabilirsiniz.</p>



<h2 class="wp-block-heading">Veri Bilimi ve Makine Öğrenimindeki Yeri</h2>



<p class="wp-block-paragraph">Veri analizi günümüzde IT için önemli konulardan biri halini almıştır. Python geniş kutuphanesi sayesinde çok az kod ile çok rahat sonuç alınabilmektedir.Tabi bu durum Makine öğrenimi için geçerli olmaktadır.</p>



<h2 class="wp-block-heading">Python Programlama Dilinin Kullanım Alanları</h2>



<p class="wp-block-paragraph">Web Geliştirme</p>



<ol class="wp-block-list"><li><strong>Django</strong> ve <strong>Pyramid</strong> gibi web frameworkları</li><li><strong>Flask</strong> ve <strong>Bottle</strong> gibi micro-framework’ler</li><li><strong>Plone</strong> ve <strong>django CMS</strong> gibi İleri seviye içeri yönetimi istemleri</li></ol>



<p class="wp-block-paragraph">İnternet Protokolleri</p>



<ol class="wp-block-list"><li>HTML ve XML, JSON, E-mail processing, FTP, IMAP ve diğer Internet protokolleri</li><li>Socket programlama ara yüzü oldukça kolaydır.</li><li>Ayrıca paketlerde daha kullanışlı kütüphaneler mevcuttur:</li><li><strong>Requests</strong> gibi güçlü http istemci kütüphanesi</li><li><strong>BeautifulSoup</strong> gibi HTML parse(ayrışımı)</li><li><strong>Feedparser</strong> gibi RSS besleme kütüphanesi</li><li><strong>Paramiko</strong> gibi SSH2 protokolünü adapte etme</li><li><strong>Twisted Python</strong> Asenkron ağ programlama kütüphanesi</li></ol>



<p class="wp-block-paragraph">Bilimsel Hesaplama Ve Matamatik Alanında&nbsp;</p>



<ol class="wp-block-list"><li><strong>SciPy</strong></li><li><strong>NumPy</strong></li><li><strong>Matplotlib</strong></li><li><strong>SageMath</strong></li></ol>



<p class="wp-block-paragraph">Yapay Zeka Uygulamaları</p>



<ol class="wp-block-list"><li><strong>Deepy</strong></li><li><strong>Caffe</strong></li><li><strong>OpenCV</strong></li><li><strong>&nbsp;Theano</strong></li><li><strong>TensorFlow</strong></li><li><strong>Sci-kit Learn</strong></li><li><strong>&nbsp;mlpy(Machine Learning Python)</strong></li><li><strong>NLTK (Natural Language Toolkit)</strong></li><li><strong>&nbsp;NeuroLab</strong></li><li><strong>&nbsp;PyMC</strong></li></ol>



<p class="wp-block-paragraph">Nesnelerin İnterneti (IOT)</p>



<ol class="wp-block-list"><li><strong>Raspberry Pi için temel programlama dili olarak belirlenmiştir.</strong></li><li><strong>MQTT Makineler arası bağlantı protokolü</strong></li><li><strong>Zerynth IoT ve Endüstri 4.0 uygulamalarına sahip framework</strong></li></ol>



<p class="wp-block-paragraph">Veri Madenciliği (Data Mining) Uygulamaları</p>



<ol class="wp-block-list"><li><strong>Orange Veri analizi ve görselleştirme</strong></li><li><strong>PyData Python Veri Analiz Kütüphanesi</strong></li><li><strong>Pandas veri analizi ve modelleme</strong></li></ol>


<p></p>]]></content:encoded>
					
					<wfw:commentRss>https://demiryalcin.com/2020/04/29/nedir-bu-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2116</post-id>	</item>
	</channel>
</rss>
