SlideShare une entreprise Scribd logo
1  sur  17
Script Tabanlı Dillerin
Önemi ve Geleceği
Burak Selim Şenyurt
www.buraksenyurt.com
ING Bank – Kıdemli Yazılım Danışmanı
Scripting
• Yorumlayıcı eşliğinde, özel çalışma
ortamlarında işletilebilen betik temelli
programlama biçimi.
OS shell
Embedded
Devices
Web Pages
Software
Applications
DSL
Game
Systems
Read Eval
Print
Loop
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine( "Hello" );
}
}
}
puts ‘Hello World’
Farklı Bir Senaryo
public int getNumFromFile () {
return Integer.parseInt(BufferedReader.readLine());
}
public String executeSQL (int c ) {
return SQL(“select ... “);
}
public void executeCommand (string cmd) {
Runtime.exec(cmd);
}
read –r var1 < commands.txt
while $var1 –ne “”
do
echo “select cmd from table
where cmd=“$var1 > query.txt
mysql < query.txt > cmd
read –r var2 < cmd
exec $var2
read –r var1 < commands.txt
done
Temel Özellikleri
Öğrenilmesi
Kolay Karmaşık
Görevlerde
BasitlikDynamic
Types
Interpretted
Meta
Programming
DSL
Platform
Bağımsızlık
Glue
Job
Control
GUI
App
Specific
Extension
Embeded
Ruby
Python
Perl
Php
VbScript
Earlang
JScript
Javascript
Windows
Powershell
XSLT
AppleScript
IBM’s JCL
Macros
QuakeC
EMACS Lisp
ECMAScript
Adobe
ActionScript
MEL
(Autodesk
Maya 3D)
Lua
AngelScript
Squirrel
Python
Javascript
Ruby
PHP
http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2016
Perl
Kaynak :
Görkem Özdoğan’ın
Data Vinci serisinden
Script
Diller
Derlemeli
Diller
Eksiler
Tip güvenliği
Performans
Eş Zamanlılık
Ölçeklenebilirlik
Bakım
Eksiler
Aşırı Kurumsallık
Ağır geliştirme süreleri
Çok fazla özellik
Muhammed Cuma
Tahiroğlu’nun Damdan Düşenler
yazısında belirttiği üzere,
“İnsanlar script dillerinin
basitliğini seviyor ama kodun
artmasıyla ortaya çıkan
cehennem ateşinden endişeliler.”
Gelecek Tahmini(m)
• Gençlerin/çocukların programlama eğitimlerinde,
• Endüstüri 4.0’ın göz bebeklerinden IoT alanında,
• Cloud çözümlerde(Azure-Powershell)
• Microservice geliştirilmesinde
• Makine öğrenmesi algoritmalarında
• legacy sistemlerde
• Yeni istemci/sunucu framework’ lerde
Sorusu olan yoksa…

Contenu connexe

Plus de Burak Selim Şenyurt (16)

SOA Gerçekleri
SOA GerçekleriSOA Gerçekleri
SOA Gerçekleri
 
Finans Sektöründe Verimli Yazılımcı Olabilmek
Finans Sektöründe Verimli Yazılımcı OlabilmekFinans Sektöründe Verimli Yazılımcı Olabilmek
Finans Sektöründe Verimli Yazılımcı Olabilmek
 
Enterprise Applications
Enterprise ApplicationsEnterprise Applications
Enterprise Applications
 
NoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı BakışıylaNoSQL - Yazılımcı Bakışıyla
NoSQL - Yazılımcı Bakışıyla
 
Gizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatternsGizli Tehlike : AntiPatterns
Gizli Tehlike : AntiPatterns
 
Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
C# Akademi 2005
C# Akademi 2005C# Akademi 2005
C# Akademi 2005
 
Netron Techweek 2007 WCF
Netron Techweek 2007 WCFNetron Techweek 2007 WCF
Netron Techweek 2007 WCF
 
Yazilim Zirvesi 2008
Yazilim Zirvesi 2008Yazilim Zirvesi 2008
Yazilim Zirvesi 2008
 
Ready to Rock
Ready to RockReady to Rock
Ready to Rock
 
C# 4.0 new features - innova
C# 4.0   new features - innovaC# 4.0   new features - innova
C# 4.0 new features - innova
 
Bankacılık ve SOA
Bankacılık ve SOABankacılık ve SOA
Bankacılık ve SOA
 
Trakya Üniversitesi Workshop
Trakya Üniversitesi WorkshopTrakya Üniversitesi Workshop
Trakya Üniversitesi Workshop
 
Kariyerini Çiz
Kariyerini ÇizKariyerini Çiz
Kariyerini Çiz
 
Geleceğin Programıcısı
Geleceğin ProgramıcısıGeleceğin Programıcısı
Geleceğin Programıcısı
 
Tfs ile duzenli proje gelistirme
Tfs ile duzenli proje gelistirmeTfs ile duzenli proje gelistirme
Tfs ile duzenli proje gelistirme
 

Script Tabanlı Dillerin Önemi ve Geleceği

Notes de l'éditeur

  1. Geçtiğimiz günlerde klasik asp ile yazılmış kodların olduğu bir prod sunucusunda bug-fix yapmak zorunda kaldım. ASPnin kullandığı .net 1.1 ile yazılmış bir dll vardı. Kaynak kodlarınu buldum ama derlenip global assembly cache’e atılmalıydı. Makinede gacutil yüklü değildi. Ne var ki powershell script kullanarak ilgili .Net assembly’ları yardımıyla bu işi yapabildim. Anlık komut satırında bir betik kodu yardımıyla. Başka örnek kullanım alanları. TFS de Powershell ile script desteği mevcut. Cloud sistemlerinden olan Azure’da da Powershell script desteği mevcut. Hatta artık bir drone’u Node.js sayesinde web arayuzunden uçurmak da mümkün. Powershell de müzik bile çalabilirsiniz. https://social.technet.microsoft.com/wiki/contents/articles/20989.music-from-the-command-line-performed-by-powershell.aspx#The_Imperial_March_Star_Wars [console]::beep(440,500) [console]::beep(440,500) [console]::beep(440,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,1000) [console]::beep(659,500) [console]::beep(659,500) [console]::beep(659,500) [console]::beep(698,350) [console]::beep(523,150) [console]::beep(415,500) [console]::beep(349,350) [console]::beep(523,150) [console]::beep(440,1000) [console]::beep(37,1)
  2. Script diller uygulamalarda(VB for Microsoft Office vb), web tarayıcılarındaki sayfalarda(javascript vb), işletim sistemlerine ait kabuklarda(shell – Unix BASH, Windows Powershell vb), gömülü cihazlarda, DSL tarafında (Lua gibi), oyun sistemlerinde(Second Life Virtual World) karşımıza çıkar
  3. Öğrenilmesi kolay, hızlı çalışan az sayıda kod ifadesi etkileşimli ile sonuç almamızı sağlayan temel bir modeli esas alır.
  4. Klasik bir derleme yaklaşımında en bilinen örnek ‘Hello World’ ü deneyimleyelim. Bu kadar yeterli değil. Derlemek ve çalıştırmak lazım.
  5. Ancak betik bir dilde kodu derlemeye gerek yoktur. Main gibi bir deklarasyon yoktur.
  6. Senaryoyu zenginleştirelim. Her bir satırında kayıt bilgisi içeren bir sistem dosyasını satır satır okuyup her bir satır için veritabanına parametre bazlı SQL sorgusu göndermek istediğimizi ve geriye bir dönüş almayı beklediğimizi düşünelim. JAVA tarafında kaba taslak yukarıdaki gibi bir senaryo söz konusu olur. Sıkıntı JAVA gibi derlemeli dillerin stres etkisi olmasıdır. Bakımları(Maintanance) gerekir. Çalışmadan önce derlenmeleri(compile) de şarttır. Belli bir tip sistemine(type system) bağlıdırlar. Integer, floating point number, char, array vb...
  7. Aynı örneği Unix tabanlı bir sistemde bash script’leri ile de gerçekleştirebiliriz. Bash Script ile aynı örneğin yazılması. Tabii bu tip bir çalışma modelinin de sıkıntıları vardır.
  8. Kod yazan kodlara destekleri güçlüdür(Meta Programming) Daha çok dynamic type sistemini kullanırlar(Duck Typing ön plandadır) Yorumlamalıdırlar ve hemen reaksiyon verirler. Yani bir değişiklik sonrası kodu tekrar derleyip taşımamıza gerek yoktur. Bu aynı zamanda dikkatli olunmasını da gerektirir. Yorumlayıcıların olduğu her mimari platformda çalışabilirler.
  9. Popüler script dilleri. IEEE istatistiklerine göre.
  10. 2016 yılındaki Stackoverflow developer anketine göreyse… Bana bu bilgiyi kazandırdığı için Da Vinci Görkem Özdoğan’a çok teşekkür ederim. http://gorkemozdogan.net/javascript/data-vinci-8-javascript/
  11. Script Diller vs Derlemeli Diller     Derlenmiş Diller Aşırı Kurumsallık Ağır geliştirme süreleri Çok fazla özellik(Günlük hayata fazla)
  12. Muhammed Cuma Tahiroğlu diyor ki
  13. TFS de Powershell ile script desteği mevcut. Cloud sistemlerinden olan Azure’da da Powershell script desteği mevcut.