IoT İçin Hangi Programlama Dili ve IDE Tercih Edilmeli?
Günümüzde yazılımla ilgisi bulunan herkesin bileceği bir husus vardır; IDE. Türkçe karşılığı ile “Tümleşik Geliştirme Ortamı” olarak bilinen IDE’ler, yazılımcılar için büyük avantajlar sağlamaktadır. Sunduğu bu artı özelliklerin en başında “zamandan kazanım” gelmektedir diyebiliriz. Çünkü bir yazılımcı için en önemli başarı anahtarının “hız” olduğunu göz ardı etmemek gerekir. Peki, bu hızı kazanmak için IDE’ler ne sağlıyor olabilir? Derleyici ve yorumlayıcı özellikler. Bu cevabın fazlasıyla yeterli olacağını düşünüyorum. Eğer siz de bir yazılımcıysanız ya da yazılımcı bir tanıdığınız varsa şu gibi sitemlere yabancılık çekmeyeceksinizdir. “Saatlerdir bakındığım hata, noktalı virgül mü? Bir tab boşluk bırakmayı unutmuşum…” Yabancı gelmiyor değil mi? Tahmin edebiliyorum… IDE’lerin ne olduğu, ne işe yaradığı ile ilgili içeriğimizi ziyaret edebilirsiniz.
Bu içeriğimizde ise nesnelerin interneti(IoT) ile bağıntılı programlama dilleri ve IDE’leri ele alacağız. Fakat bu konuya detaylı bir şekilde değinmeden önce IoT’nin ne olduğunu kavramak gerekiyor. Böylece eğer siz de nesnelerin interneti ile ilgileniyorsanız ve buna yönelik projeler geliştirmeyi düşünüyorsanız, hangi IoT programlama dilinin ve IDE’sinin sizin için biçilmiş kaftan olduğunu tespit edebilirsiniz. Öyleyse keşfetmeye başlayalım…
IoT Nedir?
Bundan yaklaşık 10-15 sene evvel teknolojik bir gelişme olduğunda, üstelik bu gelişme günlük hayatta herkes tarafından kullanılabilir bir potansiyele sahip olduğunda şaşkınlığımızı gizleyemezdik. Peki, bu hayranlıkla karışık şaşkınlık duygusunu günümüzde de yaşıyor muyuz dersiniz? Aslına bakarsanız her geçen gün hatta her geçen saat yeni ürünler ya da hizmetler kişisel ve iş yaşantımıza entegre oluyor. Eh tabii durum böyleyken de şaşırma duygumuzun körelmesi normaldir. Peki, nesnelerin interneti nasıl oluyor da hayatımızın neredeyse her anına nüfuz edebiliyor?
Bu sorunun yanıtını çevremize şöyle bir göz atarak da kendi zihnimizde cevaplayabiliriz. Ancak yine de buna biraz açıklık getirelim. İnternetin geliştirilmesi ile beraber birçok sektörde ve hayatta devrim niteliğinde değişimler yaşandı. Bunların temelinde ise insan hayatının, iş süreçlerinin ve sarf edilen çabanın minimalize edilmesi, kolaylaştırılması yatıyor. Öyle ki, nesnelerin interneti sayesinde internete bağlı olan nesnelerin, diğer nesneler ile veri alışverişi yapması, koordinasyonunun sağlanması ve organize edilmesi gibi hususlar gerçekleşir. Tabii bu gerçekleşen süreçlerin büyük bir çoğunluğunda da “insan” faktörü bulunmamaktadır. Bu da doğal olarak zamandan ve işten kazanımı arttırır.
Tüm bunlarla birlikte IoT, endüstriyel alanda da büyük kazanımlar sağlamaktadır. Üretimi sağlayan makinelerin koordine edilmesine bağıl olarak süreç, kesintisiz olarak devam eder. Olası herhangi bir problemde ise durumu, kontrolleri sağlayan görevli kişiye/cihaza ileterek anlık olarak bildiri sağlayabilmektedir. Bu da üretimin çok daha verimli ve hızlı işlemesine olanak tanıyan, IoT’nin başka bir avantajıdır.
IoT temelinde 4 bileşeni barındırır. Bunlar;
- Nesne Bileşeni,
- Veri Bileşeni,
- Süreç Bileşeni,
- İnsan Bileşeni
Şeklindedir. Nesnelerin internetinin günümüzde birçok farklı alan ve sektörde kullanıldığından söz ettik. Bunlardan bazıları;
- Lojistik yönetimi,
- Akıllı şehir uygulamaları,
- Bilgi teknolojileri,
- Sağlık uygulamaları,
- Ticaret yönetimi(akıllı mağazalar gibi),
- Pazarlama faaliyetleri(müşteri deneyimini iyileştirmek vb.),
- İmalat kapasitesini yükseltmek ve çalışan verimliliğini arttırmak,
- Kâr marjını arttırmak isteyen kurum ve kuruluşlar(zamandan ve işten kazanım),
- Analiz ve vizyon planlamalarında(veriler doğrultusunda açık ve net bilgiler sunmasından)…
Gibi ve daha fazlasında IoT, kilometre taşı niteliğindedir.
IoT Projeleri İçin Kullanılması Gereken Programlama Dilleri
Burada bahsedeceğim programlama dilleri, kendi içerisinde farklı projelerin gerçekleştirilmesine olanak tanımaktadır. Öte yandan IoT’nin de uygulama yelpazesi çok geniş olduğundan konunun detaylıca araştırılmasını ve tek bir kaynağa bağlı kalınmadan karar verilmesi gerekir. Böylece akıllardaki flu görüntünün şeffaflaşmasını sağlayabilirsiniz. Konusu açılmışken söylemeden olmaz. Programlama dilleri ve kullanım alanları ile ilgili içeriğimize de mutlaka göz atmanızı tavsiye ederim. Peki, nedir bu IoT için kullanılabilecek programlama dilleri?
1- C
Yazılımla uzaktan yakından ilgiliyseniz, C programlama dilini muhakkak duymuşsunuzdur. En azından bunun hakkında az da olsa bilgi sahibisinizdir. Özellikle üniversitelerin bilgisayar, yazılım mühendisliği veya bilgisayar programcılığı gibi bölümlerinde ders olarak ilk verilen programlama dillerinden biridir. Çünkü C, yapısı itibari ile hem algoritmaya hitap eden hem de çok çeşitli fonksiyonları ile yazılım mimarisinin yapısını kavratan bir programlama dilidir. Öte yandan yalnızca nesneye yönelik değil, aynı zamanda makineye de yönelik yazılımlar geliştirilmesi mümkündür. Öyle ki, işletim sistemlerinin altyapısında C programlama dilinin de kullanıldığını öğrendiğinizde tepkiniz ne olur? Evet; Windows, Linux, Android, iOS işletim sistemlerinde C dili kullanılmıştır. Peki, bu programlama dili ile başka neler yapabilirsiniz?
- Grafik yazılımları üretebilirsiniz,
- Sürücüler(Driver) geliştirebilirsiniz,
- Robotik kodlamada kullanabilirsiniz,
- Oyun geliştirmede kullanabilirsiniz,
- Yeni bir programlama dili dahi oluşturabilirsiniz.
Yukarıda bahsettiğim maddelere ek olarak daha birçok yeniliğe imza atmanız sizin ellerinizdedir.
2- C++
C programlama dilinin devamı niteliğindedir. Aslına bakarsanız onun güçlendirilmiş versiyonu da diyebiliriz. Bunun en büyük sebebi ise C++ dilinin tam anlamıyla nesne yönelimli bir programlama dili olmasından kaynaklanıyor. Hatta ufkumuzu biraz daha genişletelim. C ile yazılan her bir proje aynı zamanda C++ projesi de sayılabilir. Yani C dilini, C++’nın bir alt kümesi olarak değerlendirebilirsiniz. Ancak C++ ile geliştirilebilecek projeler çok daha kapsamlı ve son kullanıcıya da yönelik olduğundan aralarında belirgin farklar vardır. Bu programlama dili ile Antivirüs programlarından işletim sistemlerine, internet tarayıcılarından oyunlara değin birçok proje gerçekleştirebilirsiniz. Google Chrome tarayıcısının da bu dil ile geliştirildiğini biliyor muydunuz?
3- JAVA
Bir programlama dilinden çok daha fazlası… Java, 1995 yılında piyasa ilk çıktığında ne için kullanılıyordu dersiniz? Kablolu televizyon endüstrisi için. Yani televizyon için. Fakat o zaman dahi televizyonlar için çok gelişmiş olarak nitelendirildi. Akabinde Java’nın mimari olan James Gosling, bu programlama dilini C ve C++ harmanlamasıyla yeniden tasarladı. Her yazılımcının göz bebeği niteliğinde olan bu dil, beraberinde birçok soruna da çözüm sağlamıştır. Ayrıca kullandığınızdan bilgisayardan akıllı telefonlara, 125 milyon televizyondan çevrenizdeki birçok cihaza değin içerisinde Java dilini barındırmaktadır.
Keza yalnızca nesne yönelimli değil, aynı zamanda gömülü sistemlerde de kullanılmaktadır. Ayrıca ek bir bilgi olarak Java, dünyadaki en çok kullanılan programlama dilidir. Sizce bu kadar insan yanılıyor olabilir mi? Sanmam. Sağladığı avantajlar ve kullanım alan skalasının çok yüksek olmasından ve hatta öğrenimi de kolay bir dil olduğundan tercih edilebilirliğini maksimuma taşıyor diyebiliriz.
4- Python
1990’lı yıllarda Python, destekleyici bir programlama dili niteliğindeydi. Öyle ki, gereksiz veya anlamı olmayan programları otomatikleştirmesiyle biliniyordu. Fakat taşıdığı bu ‘gereksiz’ unvanını kısa süre içerisinde üzerinden attı. Python’da yapılan geliştirmelerle birlikte birçok alanda bambaşka amaçlar için kullanılmaktadır. Üstelik öğrenilmesi en kolay dillerin başında gelmektedir. Python’ın özellikle kullanıldığı alanlardan bazıları şu şekildedir;
- Yapay zeka ve robotik uygulamalar,
- Makine öğrenmesi,
- Derin öğrenme,
- Veri analizi,
- Oyun geliştirme.
Hatta Python’ın ne kadar işlevsel ve popüler bir nesne yönelimli programlama dili olduğunu kanıtlarla açıklayalım. Instagram, YouTube, Spotify, Google gibi milyarlarca kullanıcıya hitap edenlerde Python programlama dilini kullanmaktadır.
5- JavaScript
Özellikle web ve mobil projeler geliştirmeyi planlıyorsanız Javascript sizin en yakın yol arkadaşınız olacaktır. Hız, basitlik, çok yönlülük(diğer programlama dillerinden ayrılan en keskin özelliği), sunucu yükünü hafifletmesi, hem sunucu hem istemci tarafında çalışabilmesi bu programlama dilinin tercih edilebilirliğini yükselten avantajlar arasındadır. Her ne kadar mobil ve web projelerine yönelik bir dil olsa da farklı oyun geliştirme gibi farklı nesneye yönelik programlamalarda da kullanılmaktadır.
IoT Programlama İçin Tercih Edilebilir IDE’ler
Nesnelerin internetinin ve nesneye yönelik programlamanın günümüzde ne kadar önemli olduğu yadsınamaz bir gerçek. Peki, bu alanlarda yazılım geliştirmek için hangi IDE(ler) tercih edilmeli? Aslına bakarsanız bu sorunun yanıtını kendi çıkarlarınız doğrultusunda siz de bulabilirsiniz. Ancak yine de en çok tercih edilen ve bünyesinde birçok kolaylığa imkan sağlayan 3 farklı IDE’yi sizler için derledim. Aklınızdaki fikirlerin yeşermesine yardımcı olacağına inanıyorum.
Visual Studio Code
Microsoft tarafından geliştirilen tümleşik geliştirme ortamıdır. Microsoft’un geliştirmesi sizi yanıltmasın. Çünkü Windows’un yanı sıra Linux ve MacOS işletim sistemlerinde de bu IDE kullanılabilir. Visual Studio Code’yi diğer IDE’lerden farklı kılan en büyük özelliği, birden fazla programlama dilinde çalışma ortamı sağlamasıdır. Visual Studio Code’de ‘eklentiler’ aracılığı ile kullanabileceğiniz programlama dillerinden bazıları şunlardır;
- Python
- C ve C++
- C#
- JavaScript
- Node JS
Sizce de harika değil mi? Üstelik tamamen ücretsiz. Ayrıca basit bir arayüze sahip olması kullanıcı deneyimini iyileştirmektedir. Öte yandan hata ayıklayıcı, tamamlayıcı, yardımcı özellikleri ile de yazılımcıların vazgeçilmezidir.
PyCharm
İsminin ilk iki harfinden de çağrıştıracağı üzere Python için tasarlanmış bir tümleşik geliştirme ortamıdır. Daha çok öğrencilerin ama aynı zamanda uzmanların da kullandığı PyCharm Community ve profesyonellerin kullandığı, gelişmiş özellikleri olan PyCharm Professional Edition sürümleri bulunmaktadır. Ayrıca topluluk için bulunan bir sürümü daha vardır. Topluluk ve eğitim amaçlı olan sürümleri, profesyonel ve ticari sürümüne nazaran daha az özellikler barındırır. Amaç, Python’u temel yapısı ile öğrenmek ve uygulamasına yardımcı olmaktadır. Profesyonel sürümünde doğal olarak daha fazla özellik bulunur fakat ticari bir ödemeye de tabi tutulur. PyCharm Windows, Linux ve MacOS işletim sistemlerinde kullanılabilmektedir.
NetBeans
Java geliştiricilerinin en çok tercih ettiği IDE diyebiliriz. Hatta NetBeans de Java diliyle yazılmıştır. Ancak bu sizi yanıltmasın. Bu tümleşik geliştirme ortamında Java’nın yanı sıra PHP, C, C++ dillerini de kullanmanız mümkün. Programcılar kodlarını yazarken hatalarla karşılaşabilir fakat doğru IDE’yi kullanıyorsanız hatanın ne olduğunu keşfetmeniz hiç de uzun sürmeyecektir. Ayrıca nesneye yönelik yazılımlar geliştirmek için de gönül rahatlığıyla tercih edilebilir bir IDE’dir. Performans yönetimi ve daha az bellek tüketimi gibi özellikleri ile de çok büyük projelerde dahi bilgisayarınızı daha verimli kullanmanıza olanak tanır. Yine MacOS, Linux, Windows ortamlarında kullanılabilmesinin yanı sıra Oracle’nin geliştirdiği Solaris işletim sisteminde de çalışabilmektedir.
Tüm bu öğrendiklerinizden sonra siz IoT için hangi programlama dilini ve IDE’sini tercih edeceksiniz? Başarılı projelere imza atmanız temennisiyle…