Bu animasyonda geogebrada bir ABC üçgeni tanımladım ve her köşedeki iç açıortayları çizdirdim. Bu açıortaylar bir D noktasında kesiştiler. Üçgenin köşelerini hareket ettirip yeni üçgenler oluşturduğumda da açılar ve açıortayla değişse de her seferinde üçü de aynı noktada kesişmeye devam etti. İki doğrunun bir noktada kesişmesi çok normal ama belli bir özellikteki üç doğrunun her zaman aynı noktada kesişmesi bence ilginç bir durum. Bu noktanın başka bir özelliği var mı acaba?
Kategori: Genel
Evrimimiz
Genelde hep diğer canlıların ya da virüslerin mutasyonlarını kafamıza takıyoruz ama acaba bizim mutasyonlarımız neler yapıyor? Acaba ne yöne doğru evrimleştiğimizi düşünüyor muyuz?
Belki şikayet edip durduğumuz şeylerin bir kısmı evrim yolunda atmaya başladığımız bazı adımlardır. Örneğin yeni nesillerin çok dikkatsiz olması, bir şeye konsantre olamaması. Ya son yıllarda aşırı miktarda artan bilgiye karşı ortaya çıkan bazı mutasyonlar gelecek nesilleri aynı anda birden çok şey yapabilmeye yönlendiriyorsa? Mutasyonlar küçük adımlar olduğundan heralde hem bunları tespit etmesi zor oluyordur hem de yönünü anlaması zordur. Ne olursa olsun ilk anda normal karşılanmalarını da beklemiyorum açıkçası. Eğer beynimiz gelişmeye başladığında, mesela konuşmaya başladığımızda doktorlarımız, psikologlarımız olsaydı (daha ilkel versiyonları tabii ki) büyük ihtimalle kelimeleri kullanmaya çalışan ilk insanları hasta ilan ederlerdi.
Aklıma takılan başka bir soru da acaba insanlar arasında başka türler de oluşuyor mudur? Evrim açısından oluşmaması için bir neden yok tabii ki ama bilim insanları dışında böyle bir şeyi beklemiyoruzdur.
Lisede ya da orta okulda türleri öğrenirken aynı türde olma şartlarından birisi üreyebilmekti. Yıllar önce bir çift tanımıştım. Bu ikisi birbirlerinden çocuk sahibi olamıyorlardı. İşin ilginç tarafı ise ikisi de büyük ihtimalle herhangi başka birinden çocuk sahibi olabileceklerdi. Şimdi bu ikisi bu tanıma göre ayri türlerden miydi? Yoksa sadece bir hastalık mıydı? Eğer hastalıksa genetik bir hastalık heralde ve bu durumda ayrı türler olup olmadıklarını anlama kıstasımız nedir acaba?
Bu soruların cevabını çok merak etmedim. Daha doğrusu cevaplamaya çalışmadım çünkü bunlar bence ayrımcı, sınıflayıcı sorular. Bilim insanları tabii ki bu sorularla uğraşacaklar ama ben sosyal alanlarda bu sorular yerine daha kapsayıcı, daha türlerden bağımsız sorularla uğraşılması taraftarıyım. Durup dururken hayvanlara yaptığımız eziyeti bize yakın yeni türlere yapmaya gerek yok. Ya da yeni türlerin bize yapmasına!
Thales (Geogebra)
Çocuklar Thales teoremini öğrenirken bana nasıl oluyor diye sormuşlardı. Ben de lisede öğrendiğim gibi paralel doğrular, üçgenler beklerken birden karşıma çember çıkarmışlardı. Meğer Thales teoremi dedikleri bir çember üzerinde çizilen bir üçgenin bir kenarı çemberin bir çapıysa o üçgen diküçgendir teoremiymiş. Tabii ki ben bununla aynı anlama gelen bir çemberinin üzerinde çemberin bir çapını gören açı dikaçıdır teoremi biliyordum ama bunu Thales adıyla hatırlamıyordum.
Bu sefer de geogebrada bu teoremin animasyonunu yapmaya çalıştım. Kaydırma bileşeniyle çember üzerindeki C noktası kaydırılabiliyor ve her pozisyonda C açısının değeri ölçülüyor. Bu açının her zaman 90 derece olması teoremin de söylediği şeyin gözlemi oluyor.
Java ve skript programlama
Önce çözmeye çalıştığım sorundan bahsedeyim. Şirkette yazdığım program ürettiğimiz makineyi kontrol eden başka programla haberleşiyor ve bazı durumlarda onların ayarlanmasını da düzenliyor. Yalnız çok değişik türlü makineler ürettiğimizden bu makinelerin ayarları da aynı şekilde olmuyor. Örneğin üretim bantı hızı her makinede eşit olmuyor. Dolayısıyla bant üzerindeki ürünü inceleyecek kameranın hızının da bu bant hızına göre ayarlanması gerekiyor. Bunun gibi birbiriyle ilişkili parametreleri program dışından, makineye özel ayarlayabilmek için bir konfigürasyon dosyası kullanmıştım. Bu dosya basit ilişkileri programlamak için yeterliydi.
Zamanla makinelerimiz daha da kompleks olmaya başladı. Artık o konfigürasyon dosyası ihtiyacımız olan ilişkileri tanımlayacak durumda değildi. Yeni ilişkileri tanımlamak da bunları programlamamı gerektirecekti. Bunun yerine başka bir çözüm aramaya başladım.
Sonuçta konfigürasyon dosyası da bir tür program olduğundan, bu iş en kolay bir programlama diliyle çözülür diye düşündüm. Örneğin parametreler arasındaki ilişkileri bir programlama diliyle programlasak ve bu ayarlar yapılırken programın içinde bu dosyayı (yani programı) çalıştırıp o ilişkileri doğru kursak o zaman sorun çözülmüş olabilirdi. Burada tabii ki şöyle bir özelliğe de ihtiyacım var. Bu konfigürasyon dosyası java ile yazdığım programdaki bazı nesnelere erişebilmeliydi. Java programının yapması gereken tek şey bu programı çalıştırmak olacaktı.
Kısa bir araştırma sonucu Java 6 ile gelen JSR-223 yoluyla bu işleri yapabileceğimi öğrendim. Yalnız internette yapmak istediğim şeyi anlatan bir yazıya ya da açıklamaya rastlayamadım. Bunun üzerine okuduğum bazı makalelerden, javadoc sayfalarından yola çıkarak küçük bir örnek program yazdım. Bu sayede istediğim şeyin yapılabileceğini görmüş oldum.
İlk iş olarak yjthon.org sitesinden günce jython sürümünü indirdim ve orada anlatılan şekilde kurdum.
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.script.*;
public class Tutorial {
public static class Configuration {
private Map<String, String> configuration = new HashMap<>();
public String get(String identifier) {
return configuration.get(identifier);
}
public void set(String identifier, String value) {
configuration.put(identifier, value);
}
@Override
public String toString() {
return "Configuration [configuration=" + configuration + "]";
}
}
private static String getScript() {
StringBuilder builder = new StringBuilder();
builder.append("import sys\n");
builder.append("configuration.set(\"id1\", \"234\")\n");
return builder.toString();
}
public static void main(String[] args) throws ScriptException {
System.setProperty("python.home", new File(
System.getProperty("user.home"), "jython2.7.2").getPath()
);
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine engine = scriptEngineManager.getEngineByName("python");
Configuration con = new Configuration();
ScriptContext context = engine.getContext();
context.setAttribute("configuration", con, ScriptContext.GLOBAL_SCOPE);
String script = getScript();
CompiledScript compiledScript = ((Compilable)engine).compile(script);
compiledScript.eval(context);
System.out.println("configuration: " + con.toString());
}
}
Yukarıdaki program denemeyi yaptığım oldukça küçük bir proje. Configuration sınıfı kabaca java programım ile skrip arasındaki haberleşmeyi sağlayacak nesneyi tanımlayacak. Skrip bu nesne aracılığı ile ana programdaki konfigürasyona erişip tanımlanan ilişkiler yardımıyla bu konfigürasyonu güncelleyecek.
getScript metodu örnek olarak minimum python kodunu tanımlıyor. Bu kod java programından gelen configuration nesnesindeki id1 isimli nesneye 234 değerini atıyor. main metodunda ise önce python.home sistem değişkenini tanımladım. Bu değişken jython kurulumunu yaptığım dizini gösteriyor. Ardından ScriptEngineManager ve ScriptEngine tipinden nesneleri yarattım. ScriptEngine nesnesinin kullandığı ScriptContext nesnesini kullanarak yarattığım Configuration nesnesini (con) skripte configuration adı altında global bir şekilde aktaracağımı bildirdim. Bunu yapmak için ScriptContext sınıfının setAttribute metodunu kullandım.
Ardından bu skripti her ayar değişikliğinde tekrar kullanacağımdan sonraki kullanımlarda zamandan kazanmak için ilk seferde derlemeyi denedim. Bunun için
CompiledScript compiledScript = ((Compilable)engine).compile(script);
satırını kullandım. Bu durumda her kullanımda aynı nesneyi kullanmam gerekecek ama bu kolay bir sorun. Ardından bu skripti çalıştırdım ve java programındaki nesnenin içeriğinin değiştiğini gördüm. Tam da istediğim sonuç.
Açıortay (Geogebra)
Bu animasyonda açıortaylarla oynamaya karar verdim. Yani verilen bir EAF açısını iki eşit açıya bölen AD doğrusunu çizdirdim. Daha sonra bu açıortay üzerinde bir D noktası aldım ve bu noktadan açının kolları üzerine düşen dikey DF ve DE doğrularını çizdirdim. Ardından geogebra’ya DE ve DF doğru parçalarının uzunluğunu ölçtürdüm. Ardından da bu D noktasını bir kaydırma bileşeniyle hareket ettirdim. Her yeni D noktası için geogebra DE ve DF uzunluklarını ölçüyor ve bu uzunluklar hep birbirine eşit oluyor. Bu deneyin hedefi de bunu göstermekti.
Bunu geometrik olarak görmek de kolay. ADE ve ADF diküçgenleri birbirine eşit olduklarından bu diker doğru parçalarının da uzunlukları birbirine eşit olmalıdır.
Komşu bütünler açılar
Noel tatilinde Geogebra ile oynamaya devam ettim. Bir şeyi öğrenirken görsel ya da deneysel yaklaşım benim sıkça kullandığım bir yöntemdir. Bana uygun olması başkasına da uygun olacak demek değil ama. Bazı insanlar soyut kavramlarla çok rahat çalışırken de deneyler de çok başarısız olabiliyor. Bu yazıdaki animasyonda geometrideki çok temel bir konuyu görsel bir hale getirip bu görselliğin gerçekten işe yarayıp yaramadığına da bu deneyle bir bakmak istiyorum.
Bu basit animasyonda bütünler açılara bakacağım. Aslında geometrik bir konuyu görsel hale getirmek ne kadar gerekli ya da avantaj sağlar sorusu da sorulabilir öncelikle. Geometri zaten oldukça görsel bir alan değil mi? Elbette öyle ama geogebra ile çok kısa sürede çok fazla deney yapmak mümkün. Bu deneylerde belki dikkatimizi çekecek sonuçlar ya da davranışlar görebiliriz.
Animasyonda açı isimli kaydırma bileşenini kaydırdığımızda doğru C noktası etrafında o açı kadar döndürülüyor ve C noktası etrafında \(\alpha \) ve \(\beta \) açıları oluşuyor. Bu açıların büyüklükleri geogebra tarafından “ölçülüyor”. Aslında hesaplanıyor tabii ki ama bu animasyonda geogebranın rolü bu deneyde bizim iletki ile yapacağımız ölçüm işini yapmak olacak. Bu sayede deneyler hızlanacak.
Animasyona bir de \(\delta = \alpha + \beta \) hesaplamasini ekledim. Bu da bu deneyde aslında dikkatimizi çekmesi gereken özellik. Açı değerini değiştirdikçe bu toplamın değişmediğini görmemiz lazım. Bu özellik ayrıca bütünler açı kavramının da kendisi oluyor.
“Eğer birbirinin bütünleri olan iki açı komşu ise (yani köşeleri ve bir kolları ortak) ortak olmayan kolları bir doğrudur” (wikipedia)
Buraya kadar her şey normal gözüküyor ama ufak bir iki nokta daha var. Örneğin geogebra’nın bu açıları ölçmesine güvenebilir miyiz? Tabii ki yukarıda da dediğim gibi geogebra bu açıları ölçmüyor, hesaplıyor. Öğrenme aşamasındaki bir kişi için bu yeterince güvenilir olacak mı acaba? Peki aynı şekilde bu deneyleri kağıt, kalem ve iletkiyle yapsaydık bu sefer iletkiye güvenecek miydik? O da çok duyarlı ölçümler yapamıyor. Zaten çizdiğimiz doğrular da matematikteki doğru tanımına uyan nesneler değil.
Aslında bu soruyu soyut bir şekilde işlemek büyük ihtimalle çok daha basit bir öğrenme yöntemi ama yine de herkes aynı şekilde aynı kolaylıkla öğrenecek diye bir şart yok. Belki de bu durumda deneysel ve güven tabanlı öğrenmeyi yeğleyecek insanlar vardır. Geogebra bu tür insanlar için oldukça iyi bir araç.
Geogebra
Bu programdan sanırım ilk geçen yıl haberdar olmuştum. Bazı bilmecelerin çözümündeki şekilleri çizmek için kullanmıştım yanlış hatırlamıyorsam. Geçenlerde youtube’da ODTÜ’den Cem Tezer’in çok güzel geometri dersi videolarının birinde bu programdan bahsedince bir daha bakayım dedim. www.geogebra.org adresinden ulaşılıp bedava kullanabilen bir program. Ayrıca programı yüklemeye de gerek yok, tarayıcının içinde doğrudan çalışıyor.
Bu programın sevdiğim tarafı şu oldu. Matematiğin bazı alanlarını çok güzel görselleştiriyor. İyi de matematiği görselleştiren programlar zaten vardı diyebilirsiniz. Bunun farkı nerede peki?
Bunun farkı programda temel nesnelerin basit ilişkiler şeklinde tanımlanabilmesi ve daha sonra şekil üzerinde bu nesneleri hareket ettirirken programın nesnelerin aralarındaki ilişkileri korumaya devam etmesi. Örneğin, tanımlanmış bir fonksiyon üzerinde bir A noktası tanımladığımız zaman program bu noktanın o fonksiyon üzerinde olduğunu biliyor artık. Böylece o noktayı hareket ettirdiğimizde nokta her zaman o fonksiyon üzerinde kalıyor. Bir adım daha ileri gidip o noktadan geçen ve o fonksiyona teğet bir doğru çizdiğimizde program bu teğetlik özelliğini de hatırlıyor ve noktanın her yeni konumu için o konumdaki teğeti çiziyor.
Bu animasyonda yukarıda bahsettiğim örneği programladım. Programlamak da sayılmaz aslında, bir kaç komutla yapılan bir iş. “a” isimli kaydırma bileşeniyle P noktasını fonksiyon üzerinde kaydırıyorum, yani P noktasının x koordinatını a bileşeninden y koordinatını da daha önce tanımladığım fonksiyondan alıyorum. Noktanın her konumu için o noktadaki teğet de çiziliyor. Ayrıca ekranın sağında bu teğetin fonksiyonu ve eğimi de gösteriliyor. Eğimi takip edersek minimum ve maksimum noktalarda değerinin 0 olduğunu, ne zaman arttığını, ne zaman azaldığını görebiliyoruz. Bu şekilde belki orta öğretimde türevi ve minimum maximum noktaları hesapları öğrenirken görsel bir destek olarak kullanılabilir. Sizi bilmem ama ben bununla arada sırada oynamayı düşünüyorum. Ümit henüz buna çok ilgi göstermese de elbet işe yarayacağı günlerin geleceğine inanıyorum.
Bir başka doktor muayenesi
Bu doktor maceralarım beni her zaman güldürmeyi başarıyor. Geçen hafta ürolog randevum vardı. Randevu zamanı geldiğinde muayenehaneye gelmiştim ama bencen önce iki kişi daha vardı. Beklemeye başladım. On dakika sonra sıra bana geldi. İçeri girdim ve hemşireye randevum olduğunu söyledim. Bana idrar tahlili için bir kap verdi. Tuvalete gittim. Tuvalet doluydu. Ben beklerken başka bir hasta geldi ve tuvaletin dolu olduğunu görünce kadınlar tuvaletine girdi. Birazdan erkekler tuvaleti boşaldı. İçeri girdim, kabı elime aldım ve işemeye başladım. Yani başlamak istedim. Birkaç damladan sonrası gelmedi. Bir beş on dakika daha boğuştum ama olmadı. Eser miktarda idrarla kabı geri götürmek de istemedim. Maazallah sırf bu örnek için özel vitrin yaptırıp üzerinde adımın yazılı olduğu bu kabı herkese sergileyebilirlerdi. Kabı tuvaletle laboratuar arasındaki kapağı açıp aradaki bölmeye koydum ve çıktım. Bu sırada hemşire de beni arıyormuş. Kısaca, kabı hemen hemen boş bir şekilde ara bölmeye koyduğumu söyledim ve o da “sorun değil” diyerek beni doktorun yanına gönderdi.
Doktor önce kan tahlili sonuçlarını anlattı. Değerler yine biraz yüksekmiş ama sorun değilmiş. Geçen seneki işlemlerin aynısını yaparız diyerek Ocak ayı için randevu verdi. Ardından bir şikayetimin olup olmadığını sordu. Ben de önce yok dedim ama sonra şikayetsiz gidersem doktora ayıp olur diye işerken hafif bir yanma var dedim. O da “idrar tahlili verdiniz nasıl olsa, orada bakarız” dedi. Ben de durumun düşündüğü gibi olmadığını anlattım. “Hallederiz” dedi. Sonra muayeneye geçti. Şimdi muayenenin detaylarına girmeyeceğim. Doktor yeterince girdi zaten. Ardından “her şey yolunda, Ocak’ta görüşürüz” dedi. “İdrar tahlili ne olacak?” diye sordum. O da “muayene ettim, sorun yok” dedi. İçimden “vay be, gavur ultrasonla yanmayı bile kontrol edebiliyor. Bir de idrar örneği verebilseydim neler neler bulurlardı acaba?” diyerek odadan çıktım.
Doktor randevularında bu hafta
Bu yıl başında yaptırdığım biyopsilerden sonra üroloğa kontrole gittiğimde bana şunu dediğinden eminim: “Sonuçlar iyi. Kanser değil. Bir sonraki kontrolü ekimde yaparız. Aralıkta da ameliyat için randevu alın, geçen sefer yapılan işlemin aynısı yapılacak.”
Yani ben böyle anladım. Sonuçta atipik hücrelere rastlanıldığı için her yıl aynı kontrollerin yapılması da bana hiç anormal gelmedi. Doktor o muayenede bana ameliyat için alt bir kağıt da vermişti. Açıkçası pek dikkat etmedim kağıda, üzerinde anlaşılmaz bir iki kelime ve daha da anlaşılmaz bir imzadan başka bir şey yoktu. Muayenehanedeki hemşirelere bunu gösterdiğimde o kağıdı benden aldılar ve alt kattan ameliyat için randevu almamı söylediler. Hatta geç kalmamamı bile söylediler. Bu bana ilginç gelmişti, çünkü geçen sene randevuyu iki hafta kala çok rahat almıştım. Bu senenin tek özelliği ise korona yılı olmasıydı. Belki daha az ameliyat yapacaklardır diye düşünüp nedenini sormadım.
Yazın bu randevu sorunlarıyla pek ilgilenmedim. Eylül geldiğinde artık şu kontrol muayenesi için randevu alayım bari dedim ama telefonla muayenehaneye ulaşmak bir türlü mümkün olmadı. Sürekli meşgul. O zaman kendime sormaya başladım. Neden muayenehaneler kendilerinde kayıtlı hastalar için online randevu sistemi kurmuyorlar acaba? Telefonun tamamen kalkmasına da gerek yok, bazı hastalar telefonda önce bilgi almak isteyebilir.
Sonunda senelik iznimde muayenehaneye gittim. Haftaya bir randevu aldım. Sonra alt kata inip ameliyat için randevu alayım dedim. Danışmadaki kadın beni dinledi ve sonra bana garipçe baktı ve “randevuyu doktordan alacaksınız” dedi. Bana doktorun altı ay önce böyle söylediğini anlatmama rağmen kadın “biz anestezistiz, ameliyatı doktorunuz yapacak. Randevuyu ondan almalısınız” dedi yine. Açıklama bu açıdan bakınca mantıklı geldi ama peki bana aylar önce muayenehanede neden aksini söylemişlerdi? Muayenehaneye çıkıp bir de oradakilere sorayım dedim. Durumu anlattım ve kayıtlara baktılar. “Sadece kontrol gözüküyor sizde, doktor kontrolde ameliyat gerekip gerekmediğini söyler o zaman randevu alabilirsiniz” dediler. Son geldiğimde aynı insanlar çok farklı şeyler demişlerdi ama. Yoksa ben mi her şeyi yanlış hatırlıyordum? Ben bu düşüncelere dalmışken hemşirenin hayaş meyal “bir hafta filan önceden kan vereceksiniz. Değerlere göre doktor karar verir” dediğini duydum. Yeniden düşünmeye başladım. Bir hafta önce mi? Zaten randevum haftaya, yani bu hafta kan vermem lazım. On dakika önce diğer hemşire bana randevumla beraber bir kağıt daha vermişti, üzerinde kan verme saatleri yazıyordu. O sırada bakmamıştım ama randevu saatimde kan verme şansım olmayabilir bu durumda. Peki o hemşire neden bana bir hafta önce kan vermem gerektiğini söylemedi? Neyse daha fazla bir şeyleri yanlış anlamadan eve gideyim en iyisi.
Dün kan vermeye gittim. Sıra yoktu. Hemen beni içeri aldılar. Kan örneği alındı ve hemşire tamponu yapıştırdı ve buraya bastırın dedi. Diğer hemşire de kanı alan hemşireye “neden onu hemen dışarı atıyorsun ki?” diye sordu. Tipik bir yanlış anlama olmuştu. Kanı alan hemşire de “dışarı atmadım, tamponu bastırmasını söyledim” dedi. Artık benim kafam karışmıştı. İşim bitmişti ama gitmeli miydim kalmalı mıydım? Dört metrekarelik odada oturup bekledim ben de. Beş dakika sonra başka bir hemşire geldi ve “sizin işiniz bitmiş miydi?” diye sordu. İçimden “bilmem” dışımdan ise “evet” dedim. Giyinip kimseye bir şey sormadan çıktım eve gittim. Bakalım haftaya bir şey unutmuş muyum unutmamış mıyım öğrenirim heralde.
Tatil ve programlama dilleri
İki haftalık iznimde birkaç güncel programlama diliyle ilgilenmek istedim. Bu iş için öncelikle şirkette de kullandığım Eclipse program geliştirme ortamını kullanmayı düşündüm. Ne de olsa değişik dillerde programlama yapmak için tasarlanmış bir sistem. Marketplace adı verilen eklenti indirilen yerden doğru eklentileri indirdim. Go dili için Ubuntu altında epey işlem yapmam gerekti ama bunu nedense Eclipse altında çalıştırmayı başaramadım. Bir sürü ayar yapmam gerekti ama projeyi kurduğumda nedense programları acayip yerlerde çalıştırmaya kalktı. Ardından Go için başka bir program geliştirme ortamı aradım ve LiteIDE diye bir programı indirdim ve orada Go eklentisini yükledim ve hemen çalıştı. Büyük projeleri şimdilik düşünmediğim için bana yeterli geldi. Skor eclipse için 0-1 oldu böylece.
Ardından Rust dilini denedim. Yine eclipse için eklentisini yükledim. Bu daha sorunsuzdu ama sıra deneme programını çalıştırmaya geldiğinden yine bazı ayarları yapmam gerektiğini fark ettim ama bunu da beceremedim. Bunun üzerine bunu çok daha önceleri yüklediğim intelliJ Idea programının community versiyonunda deneyeyim dedim. Eklentiyi orada yükledim ve deneme programı hemen çalıştı. Böylece skor Eclipse 0 – Diğerleri 2 oldu.
Üçüncü adayım C++ diliydi. Bunu da 10 yıldır C++ programı yazmadığım için don standardlarda neler olduğunu öğrenmek için istiyordum. Bunun eclipse altında çalıştığından eminim çünkü daha önce de kullanmıştım. Nedense Java için kullandığım eclipse programına C++ eklentisi bulamadım. Bunun üzerine C++ için olan eclipse versiyonunu indirdim ve kurdum. Hemen C++ denemelerine başlayabildim. Sonunda Eclipse bir gol atmayı başarmıştı.
Son olarak da Scala dilini denemek istedim. Bu dil Java platformunda çalıştığı için eclipse sorun olmayacaktı. Eklentiyi ekledim ve deneme programını yazdım ama projeyi bir türlü çalıştıramadım. Bunun üzerine aynı denemeyi intelliJ Idea programında denedim. Eklentiyi yükledikten sonra deneme programı hiçbir ayar yapmaya gerek kalmadan çalıştı. Sonuç Eclipse 1 – Diğerleri 3 şeklindeydi.
Eclipse oldukça başarılı bir program ama benim beklentim de yüksekti. Mesela eklentiyi yükledikten sonra minimum ayarlama yapmak bunlardan biriydi. Bu diller bilgisayardan anlamayan birinin ilk programlama dili olabilir neticede ve bu ortamın böyle ihtimallere hazır olması lazım. Sonuçta intelliJ Idea bunu çok rahat başardı. IntelliJ Idea ile sadece Go dilini kullanamadım çünkü o eklenti sadece tam sürüm için vardı ama. Şimdilik ilgilendiğim diller için çözümler bulduğuma göre artık öğrenmeye başlayabilirim.