1

Konu: Neden Go ?

Neden olmasin smile

Saka bir yana Go son yillarda en cok ilgimi ceken dil. Henuz yeni ogrendigimden ahkam kesmeye kalkmiyorum ama yeni bir seyler ogrenmeye vaktiniz oldugunda mutlaka bir goz atin.

Dil Google icindeki Go takimindan geliyor ve cok genc (2009 Kasim cikisli). Open source.

Statik olarak derlenen dillerden ancak derlenmesi alisilmadik olcude hizli oldugundan VFP gibi interpretation ile calisan dinamik dil hissi veriyor.

En guclu ozelliklerinden birisi de, daha dogustan multicore CPU'larin oldugu bir dunyayi goz onunde bulundurmasi.

Kolay ve guclu bir dil.

Tabii en onemli ozelliklerinden bir digeri yazdiginiz kodu sadece windows icin degil bircok platform icin derleyebilmeniz (windows makinenizde windows yani sira Mac'te, linuxta da calisan executable).

Google'dan geldigi icin network ve web islerinde ne kadar guclu olabilecegi malum. Birkac satirla kendinize web server yapabilirsiniz.

Dilin kendisine girmek istemiyorum burada ama carpici ozelliklerinden birisi oldugu icin deginmeden gecmek istemedim: Fonksiyonlar sadece cok sayida parametre almiyor, ayni zamanda cok sayida deger dondurebiliyor smile

Google App engine desteklenen dillerden.

Kendi sitesinden dili indirebilir, ya da indirmeden oradaki kod penceresinde kodunuzu yazip calistirabilirsiniz (tour tusuna basarak browserda 75 adimlik dil ogretimini de gorebilirsiniz - oradaki kodlari edit ederek calistirabilirsiniz).

Adresi:
http://golang.org

2

Re: Neden Go ?

Çetin bir soru. Grafik (3d) kabiliyeti nasıl ? Bir fikrin var mı?

3

Re: Neden Go ?

Dogrudan ben bilmiyordum ama ogrendigim, genc de olsa simdiden arkasi saglam, bir suru open source destek aliyor. Ne ararsan cikiyor. Sen sorunca baktim:

https://github.com/ungerik/go3d

Package go3d is a performance oriented vector and matrix math package for 2D and 3D graphics.


http://go-ngine.com/

OpenGL 3D engine. Go ile yazilmis. Yine Go ile yazilmis GoGL kullaniyor ( https://github.com/chsc/gogl )

https://code.google.com/p/azul3d/
Go ile yazilmis 3D game engine

Go'nun bir suru go ile yazilmis lib yaninda C ile yazilmis (veya basla bir dil) kutuphanelere baglantilari da var (http://go-lang.cat-v.org/). Oradan daha once gordugum orneklerden birisi QML baglantisi:

http://www.youtube.com/watch?v=FVQlMrPa7lI

Youtube'a bakman sorunlu olursa:
http://blog.labix.org/2013/12/23/qml-components-with-go-and-opengl

ya da:

https://github.com/go-qml/qml

4

Re: Neden Go ?

Aramızda almanca bilenler için:
http://helmbold.de/artikel/pro-contra-go
http://www.admin-magazin.de/Das-Heft/20 … ren-mit-Go

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

5

Re: Neden Go ?

back end ne öneriyorsun ?
(SQLde baya data var ise / veya yok ise)

VFP9 SP2

6 Son düzenleyen, Mehmet K (04.04.2014 09:49:30)

Re: Neden Go ?

Benim şahsi fikrim: go mainstream programlama lisanlar arasında yer alamiyacak.
Bir veya 2 sene evvel biraz go'ya göz atmışdım; ama syntax nedeniyle bana çok çekici gelmedi. Elbette insan herşeye alışdığı gibi bunada alışır; ama işimi bana daha sempatik lisanlar ile çözebildikce, go'ya yatırım yapmaya ihtiyaç görmedim.
O günden beri arada bir go ile yapılan yorumları izliyorum ama bakış açımı değiştirmek için bir neden henüz göremedim.

En çok beyendiğim özelliği: tüm kütüphaneleri exe'nin içine dahil ediyor ve installasyon esnasında tek bir dosya ile işi bitiriyorsun. Yani Delphi gibi.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

7

Re: Neden Go ?

Mehmet,
Ozellikle ilk makalenin "negative" kismi biraz zorlama olmus:) Yani illa bir kusur arayan birisinin yazdigi bir makale gibi geldi.

8 Son düzenleyen, Mehmet K (04.04.2014 12:42:49)

Re: Neden Go ?

Çetin, daha evvelde görüşmelerimizde sana hep demişimdir: sen farklı bir lig'de oynuyorsun.
Örneğin senin hep övdüğün veritabanı MongoDB. Eminim 4/4 bir veritabanı. Ama benim işime yaramıyacağını bildiğim için, oraya göz bile atmadım.
Sen bunu nasıl beceriyorsun bilmiyorum: sen akademisyen çalışma yapabiliyorsun. Benim yıllardır böyle bir şansım yok. Bekleyen müşteriler ile son aylardır kuyruk oluşdu. Ve ben şimdi onlara "projeler biraz uzuyacak, çünkü programlama lisanı değiştiriyorum. Belkide bu lisan umduğum lisan değil. O zaman biraz daha uzuyucak, çünkü "sil başdan" yapmak zorunda kalacam ... eminim aralarında anlaşırlar ve beni dövmeye gelirler.

Ben pragmatik olmak zorundayım. Yeni birşey net bir biçimde işimi kolaylaştırmiyacaksa oraya ben yatırım yapamam. Çok isterdim, ve açıkca söyleyim: seni bu konuda kesinlikle kıskanıyorum.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

9

Re: Neden Go ?

konuka yazdı:

back end ne öneriyorsun ?
(SQLde baya data var ise / veya yok ise)

ODBC binding var. Yani SQL server kullanabilirsin istersen ya da herhangi bir ODBC database.

Onun disinda, SQLite, PostgreSQL, MongoDb, MySQL, Tokyo tyrant, cabinet, Sophia, ... gibi databaseler icin bindingler de var.  Dogrudan Go ile yazilmis databaseler bile mevcutmus.
Ben sahsen, PostgreSQL ya da MongoDb tercih ederdim. MySQL'de bir baskasi (Go ile yapilan projelerden birisi de Vitess - youtube'un MySQL datasinin olceklenebilir hali, Yine Go kullanan Dropbox galiba MongoDB kullaniyor).

https://code.google.com/p/go-wiki/wiki/SQLDrivers

10gen (MongoDb'nin sahibi) Go kulanicilari arasinda ve onlarin blog yazisi:

http://blog.mongodb.org/post/51643994762/go-agent-go

Not: Baya data derken, VFP'ye gore mi "baya" yoksa hakikaten mi "baya" data? VFP'ye gore ise, digerleri icin buyuk sayilmiyor smile

10

Re: Neden Go ?

cetinbasoz yazdı:

Not: Baya data derken, VFP'ye gore mi "baya" yoksa hakikaten mi "baya" data? VFP'ye gore ise, digerleri icin buyuk sayilmiyor smile

ÇOk anlamında - 20 yıldır DB4 - Fox5 ... fox9 üstünden dbase - sonra (sen ittirdikten sonra - şaka biryana iyi oldu) şimdi hepsi sqlde. Muhtemelen 5 Milyon + satır kayıt.

data transferinde import export yapmayıp, entegrasyon sağlaması olarak kodla transferi yeğliyorum. Bu da stres oluyor.

VFP9 SP2

11

Re: Neden Go ?

5 milyon kucuk rakam.

Kodla nasil yapiyorsun? sbcHelper ile mi?

12

Re: Neden Go ?

vfp ile- sonuçta programın data beslediği kodları adım adım diğer tarafa giriyorum, özellikle pivot dosyaların tutarlı olması için gerekiyor.

VFP9 SP2

13

Re: Neden Go ?

ABi VFP ile de, sbcHelper kullaniyor musun diye sormustum. Eger cok sayida kayit aktariyorsan hizli, aklinda bulunsun.

14 Son düzenleyen, Mehmet K (24.06.2014 22:24:45)

Re: Neden Go ?

<silent provocation>
    Çetin, merakla gelişmelerin devamını bekliyorum!
</silent provocation>
wink

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

15

Re: Neden Go ?

Hangi gelismenin?

16

Re: Neden Go ?

<innocent look>
  Yani nasıl desem. Bandıra bandıra bir giriş yaptın. Soykan "gelecek diller" diye bir konu başlık açtı ... insan ister istemez bir beklenti içine giriyor. Devamı gelmeyince,  endişenlemeye başladım: acaba olan biten bir saman yangınından ötesine gitmedimi diye. Bu nedenle kendimi senin sanal kapının sanal zilini çalmak ve "Çetin, merakla gelişmelerin devamını bekliyorum!" diye seslenmek zorunda hissetim.
</innocent look>
wink

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

17

Re: Neden Go ?

Go nasil diyorsan, Go is running smile Hakikaten cok begendim begenmesine ama benim de gunluk devam etmesi gereken islerim cok. Yaz bekariyim, aksamlari bakiyorum ama acikcasi sicaklardan ben de tembellik ediyorum. Baktikca, olumsuz yanini goremiyorum (o verdigin linkteki olumsuzluklarindan birisi character meselesi ornegin, icine girdikce, bilmeden birisi elestirmek istemis, dilin ekstra Unicode yetenegini + yerine - puan olarak gostermis diye dusunuyorum). En buyuk tembelligim de UI icin kolay bir seyler bulmak ile ilgli. O konuda VFP ve VS'in eline su dokebilen gormedim desem yeridir (ne Netbeans, ne eclipse, swift, lime ..., tabii belki de tamamen tercih ve aliskanlik meselesi). Yuzde yuz kendi isin olmayinca da, takdir edersin, ben suna karar verdim sununla yapacagim da diyemiyorsun. Senin icin eminim Go kolay bir dil olacaktir. Sadece bir hafta sonunda bos vaktini (kim kaybetti dersen haklisin) ayir ve online Go turuna cik:

http://tour.golang.org/#1

Dogrudan browserda 74 adimda Go. Her bir adim ortalama 1-2dkni alsa 3 saate kalmaz kabaca Go ogrenmis olursun. Ozellikle de goroutine'leri gorunce beni neyin hasta ettigini anlarsin smile

18

Re: Neden Go ?

Merhaba Çetin, arada bir taciz etmeye devam ederim smile  smile
Öbür yandan ama gerçekden ilerlemelerini merak ediyorum.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

19

Re: Neden Go ?

Çetin, birkaç takıldığım yabancı forum'larda "go" çok hararetli fikir beyanlara yol açmiyor. Zaten seviye o kadar yüksek ki, bazı argümanları anlamiyorum bile.
Oralarda ama sık sık "Rust" ve "Nimrod" gündeme geliyor.
Hayır, kesinlikle burda bir değerlendirme ve/veya "go" ile karşılaştırma yapmiyorum: bu konuda tartışacak bilgim yetersiz. Sadece "yanlış at" üzerine bahse girmeni istemem.
Sanki "go" daha çok server tarafı yazılım için uygunmuş gibi bir fikir hakim.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

20

Re: Neden Go ?

Go, Rust, Nimrod, Swift, Vala, Kotlin ... Sanirim ben bu gidisle C#'ta takilacagim smile

21

Re: Neden Go ?

"Julia" unutun!
http://en.wikipedia.org/wiki/Julia_%28p … anguage%29

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

22 Son düzenleyen, altun (08.03.2015 13:02:51)

Re: Neden Go ?

Çetin bey, merhaba

Go ile uğrattığınız günlerde  VFP tablolarına oledb veya odbc driverları üzerinden hiç bağlantı gerçekleştirdiniz mi ? Bağlantı gerçekleştirdiğiniz ise bununla ilgili kullanıldığınız kodları paylaşıma açma imkanı olabilir mi ?

Saygılarımla

Ali Altun

23

Re: Neden Go ?

Hayir VFP tablolarina hic erismedim, dogrusu Go ile ODBC uzerinden  bir database kullanmayi bile dusunmedim.

24

Re: Neden Go ?

Merhaba Çetin. GO ile devam ediyorsan: şu GUI için ne tür çözümler var? Yanı ncurses hariç smile

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

25 Son düzenleyen, cetinbasoz (31.05.2016 15:50:01)

Re: Neden Go ?

ncurses ne bilmiyorum zaten smile

GUI cozumu N tane. Nasil yaklasmak istedigine bagli. Hala illaki desktop olacak dersen, Qt, QML, Gtk, tc\Tkl, google/gxui, sdl2 ... var. Web bazli arayuzler her yerde yukseliste, Go'da da http template muthis gelismis. virtual fileserver da kullanabiliyorsun,  ozetle "sky is the limit".

Eger, herhangi bir browseri arayuz olarak kullanmak ters gelmiyorsa, bu "hello world":

Visual Fox Pro
package main

 
import (
    "fmt"
    "net/http"
)
 
func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello World")
    })
    http.ListenAndServe(":8080", nil)
}

Tamami bu kadar. go build ile exe yap, al sana port 8080'de web server:) Dedigim gibi cok yetenekli bir template engine'i ve http, http/2 paketleri var.

Tabii built-in net/http uzerine gelistirilmis hazir frameworkleri kullanmak istersen, cok sayida var Gin, Revel, ...

Bu arada, bu da daha once denemedigim ODBC ile VFP baglantisi, calisiyor (32 bit derlenince):

Visual Fox Pro
package main

 
import (
    "fmt"
    "github.com/jmoiron/sqlx"
    _ "github.com/mattn/go-adodb"
    "log"
)
 
type Customer struct {
    CustomerID string    `db:"cust_id"`
    CompanyName string `db:"company"`
    ContactName string `db:"contact"`
    Country string `db:"country"`
}
 
func main() {
    dbPath := `C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\Data`
    db, err := sqlx.Open("adodb", `Provider=VFPOLEDB;Data Source=`+dbPath)
 
    if err != nil {
        fmt.Println("Could not connect")
        log.Fatal(err)
    }
 
 
    customers := []Customer{}
    err = db.Select(&customers, "select Cust_id, Company, Contact, Country from Customer")
    if err != nil {
        fmt.Println(err)
        return
    }
    for i := range customers {
        fmt.Printf("%#v", customers[i])
    }
}

Ciktisi:

Visual Fox Pro
H:\GoProjects\src\Sandbox>VFPRead.exe

main.Customer{CustomerID:"ALFKI ", CompanyName:"Alfreds Futterkiste                     ", ContactName:"Maria Anders                  ", Country:"Germany        "}main.Customer{CustomerID:"ANATR ", CompanyName:"Ana Trujillo Emparedados y heladosx     ", ContactName:"Ana Trujillo                  ", Country:"Mexico         "}main.Customer{CustomerID:"A
NTON "
, CompanyName:"Antonio Moreno Taquería                 ", ContactName:"Antonio Moreno                ", Country:"Mexico         "}main.Customer{CustomerID:"AROUT ", CompanyName:"Around the Horn                         ", ContactName:"Thomas Hardy                  ", Country:"UK             "}main.Customer{CustomerID:"BERGS ", CompanyName:"Berglu
nds snabbköp                 ...

Not: Su anda Go 1.6.2.  Versiyon 1.5'tan beri Go, Go ile yaziliyor smile