Programmer Forum
Home > LOEKELOE > COMPUTER STUFF > Programmer Forum > [F#]Para programmer F# dan functional programming disini yah :)
Total Views: 1368 Share : Facebook ShareFacebook Twitter ShareTwitter Google+ ShareGoogle+
Page 3 of 4 |  < 1 2 3 4 > 

erilive - 16/10/2012 01:00 AM
#41
Functional programming lanjuuuutt
Quote:
Original Posted By Syinn
^
^
om erilive dan om mnem bahasannya tingkat tinggi kalo udah schema or lisp ane agak ga ngerti nih malus

om erilive, lanjutin bahas monadnya ya? indetity dan reader monad

saya masih nyimak nih... masih penasaran tentang perbedaannya dan implementasinya pada app web /web service

oya, sebelumnya saya ingin tahu penjelasan secara tehnik dari om erilive tentang anggapan bahwa "IO monad is evil" ?


IO monad is evil? apakah dari link ini yah gan:
http://kawagner.blogspot.com/2007/02/why-monads-are-evil.html

Jawabannya IO monad bukan evil kalau di Haskell. Menurut penulis blog, I/O monad adalah evil karena evaluation menjadi masalah imperative dan referential integrity rusak. Pada kenyatannya, behavior Haskell yang termasuk "non strict" alias Lazy evaluation, sehingga gak masalah apakah mau dievaluate kapan.

Dan referential transparency terjaga, karena keberadaan IO tidak melanggar referential transparency, malah Haskell mendisiplinkannya.

Mengapa? Karena I/O adalah side effect, maka secara explisit I/O harus diikutsertakan sebagai penanda dia adalah bagian dari "world" yang disini termasuk pula garbage collection.

Functional programming apalagi yang termasuk "pure" memaksa kita untuk secara sadar dan disiplin berhati-hati dalam menangani side effect seperti I/O, pointer, exception dan lain-lain.

Kalau ane jelaskan disini bisa saja gan \) Tapi ane sarankan lebih enaknya agan lihat tutorial functional programming dari Microsoft:

http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals

Disana agan akan secara lebih jauh mengenal side effect dan mengapa pure atau tidak pure functional itu juga penting \)

Dan ini juga:
http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-Functional-Programming

Selanjutnya, berkenalan dengan Monad:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads

Untuk monad di web development:
http://channel9.msdn.com/Series/C9-Lectures-Greg-Meredith-Monadic-Design-Patterns-for-the-Web

Selanjutnya, State Monad:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-The-Zen-of-Expressing-State-The-State-Monad
part 2nya:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-The-Zen-of-Stateless-State-The-State-Monad-Pa rt-2

Go F# dan functional programming juga! \) Kalau berguna, bagi-bagi cendol yah agan-agan semua \) cendols
jejekndasmu - 16/10/2012 01:41 AM
#42

ada baru lagi ya tgan, baru tau ane ada F#
makin maju aja, nyimak ah
erilive - 16/10/2012 01:54 AM
#43

Quote:
Original Posted By jejekndasmu
ada baru lagi ya tgan, baru tau ane ada F#
makin maju aja, nyimak ah


F# sudah ada sejak lama gan \) Sejak 2005 sudah ada.

Silakan disimak gan, dan jangan lupa komentarnya yah \)
Syinn - 16/10/2012 06:35 AM
#44

Quote:
Original Posted By erilive
IO monad is evil? apakah dari link ini yah gan:
http://kawagner.blogspot.com/2007/02/why-monads-are-evil.html

Jawabannya IO monad bukan evil kalau di Haskell. Menurut penulis blog, I/O monad adalah evil karena evaluation menjadi masalah imperative dan referential integrity rusak. Pada kenyatannya, behavior Haskell yang termasuk "non strict" alias Lazy evaluation, sehingga gak masalah apakah mau dievaluate kapan.

Dan referential transparency terjaga, karena keberadaan IO tidak melanggar referential transparency, malah Haskell mendisiplinkannya.

Mengapa? Karena I/O adalah side effect, maka secara explisit I/O harus diikutsertakan sebagai penanda dia adalah bagian dari "world" yang disini termasuk pula garbage collection.

Functional programming apalagi yang termasuk "pure" memaksa kita untuk secara sadar dan disiplin berhati-hati dalam menangani side effect seperti I/O, pointer, exception dan lain-lain.

Kalau ane jelaskan disini bisa saja gan \) Tapi ane sarankan lebih enaknya agan lihat tutorial functional programming dari Microsoft:

http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals

Disana agan akan secara lebih jauh mengenal side effect dan mengapa pure atau tidak pure functional itu juga penting \)

Dan ini juga:
http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-Functional-Programming

Selanjutnya, berkenalan dengan Monad:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads

Untuk monad di web development:
http://channel9.msdn.com/Series/C9-Lectures-Greg-Meredith-Monadic-Design-Patterns-for-the-Web

Selanjutnya, State Monad:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-The-Zen-of-Expressing-State-The-State-Monad
part 2nya:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-The-Zen-of-Stateless-State-The-State-Monad-Pa rt-2

Go F# dan functional programming juga! \) Kalau berguna, bagi-bagi cendol yah agan-agan semua \) cendols


thx ya om......

nanti saya pelajari dari link2 yang om cantumin di sini + googling kalo memang punya banyak waktu \)

tapi maaf ya om, belum bisa ngasih cendols karena saya belum iso..... jadi sekarang cuma bisa ngasih support trit om ini dulu

functional programming is interesting to learn \)

Goooo !!!! D
erilive - 16/10/2012 06:28 PM
#45
Cobalah F# di browser anda!
Quote:
Original Posted By Syinn
thx ya om......

nanti saya pelajari dari link2 yang om cantumin di sini + googling kalo memang punya banyak waktu \)

tapi maaf ya om, belum bisa ngasih cendols karena saya belum iso..... jadi sekarang cuma bisa ngasih support trit om ini dulu

functional programming is interesting to learn \)

Goooo !!!! D


Pasti banyak waktu gan, tenang aja... Saya juga masi sempat mempelajari F# sejak 2005 \)

Ingin belajar F# dan mencoba tanpa melewati Visual Studio? Bisa langsung lewat web:
http://www.tryfsharp.org/

Penampakannya:
[F#]Para programmer F# dan functional programming disini yah :)
Syinn - 16/10/2012 08:11 PM
#46

Quote:
Original Posted By erilive
Pasti banyak waktu gan, tenang aja... Saya juga masi sempat mempelajari F# sejak 2005 \)

Ingin belajar F# dan mencoba tanpa melewati Visual Studio? Bisa langsung lewat web:
http://www.tryfsharp.org/

Penampakannya:
[F#]Para programmer F# dan functional programming disini yah :)


waw.. belajar F# sejak 2005 matabelo: ... berarti om erilive udah jago banget di F#

oke , makasih semangatnya ya... saya akan berusaha luangin waktu buat mempelajari F#, yang sebelumnya saya sempat jatuh cinta ama Scala yang kemudian patah hati karena ga ada waktu banyak buat memperdalamnya

nanti saya sempatin ke toko buku, siapa tahu nemu buku yang oke tentang F#... (dan kayanya saya perlu belajar juga c# hammer: karena sepemikiran saya, kita kadang butuh akses class C# pake F# bila class di F# tidak memadai seperti class2 java yang bisa di akses pake Groovy (correct me if wrong) dan tolong jelasin dunk tentang hal tersebut dan juga jelasin tentang ada or tidaknya proses mapping pada F# kalo om erilive bersedia ).

or om punya link ebook F# yang oke&mantaf ga buat belajar saya ? Peace: ( lagi banyak maunya nih saya hammer: )

Sebelum dan sesudahnya saya ucapkan terima kasih atas ilmu nya ya om erilive \)
mnemonix - 16/10/2012 08:43 PM
#47

Quote:
Original Posted By Syinn
karena sepemikiran saya, kita kadang butuh akses class C# pake F# bila class di F# tidak memadai seperti class2 java yang bisa di akses pake Groovy (correct me if wrong)


huh?
kalo groovy it running atop of java (buka aja source code RTL-nya, java itu)

kalo F# itu gak jalan di atas C# (F# itu self hosting), bisa akses .NET framework, sama kayak C#, VB.NET, etc etc
Syinn - 16/10/2012 11:24 PM
#48

Quote:
Original Posted By mnemonix
huh?
kalo groovy it running atop of java (buka aja source code RTL-nya, java itu)

kalo F# itu gak jalan di atas C# (F# itu self hosting), bisa akses .NET framework, sama kayak C#, VB.NET, etc etc


hihihi... mod mnem Peace:

thx ya koreksinya \)

berarti saya salah tangkap dengan penjelasan teman tentang class c# yang bisa di akses oleh beberapa bahasa .NET lainnya ( saya tidak mau menyalahkan teman saya or siapapun dalam hal ini)

oya, mod mnem... barusan saya googling, saya dapat ini bingungs

itu salah kaprah or gimana ya mod mnem ? yang tentang "Jd kta bisa aja acess kelas2 c# pake f#. Bagian2 yg butuh pemrosesan paralel ato concurrent bisa pake F#. Sedangkan domain model ttp pake c#.
Salah satu keuntungannya lagi adalah actor based model. Jd model ini sama seperti lightweight messaging"... bisa mod mnem jelasin ngga? Peace:

iya, groovy itu "running atop of java" makanya dipastikan bisa akses class2nya java
mnemonix - 16/10/2012 11:37 PM
#49

Nggak. Blom sempat nyoba2 pemrosesan paralel. Minat gw di FP itu lebih ke arah matematis. Banyak yg bilang functional programming = executable specification.
Makanya FP sering dipake buat automated reasoning
hotcaramel - 16/10/2012 11:42 PM
#50

syinn punya background knowledge bahasa atau framework apa ?
nanti bisa dibantu cari padanan nya.

Windows Application itu seperti java swing
secara IDE visual studio , support c# dan vb

kalau mau pake f# , ada kemungkinan bisa saja develope winform.
tapi harus ketik manual. tidak productive jadi nya karena
feature IDE visual studio jadi tidak dapat digunakan

tapi f# posisi nya di backend , jangan gui.
contoh misal windows phone dengan f#, atau mvc f#


satu project itu satu bahasa.
ketika sudah dicompile , dan menjadi library , baru antar bahasa dot net bisa saling panggil.


Quote:
Original Posted By Syinn
hihihi... mod mnem Peace:

thx ya koreksinya \)

berarti saya salah tangkap dengan penjelasan teman tentang class c# yang bisa di akses oleh beberapa bahasa .NET lainnya ( saya tidak mau menyalahkan teman saya or siapapun dalam hal ini)

oya, mod mnem... barusan saya googling, saya dapat ini bingungs

itu salah kaprah or gimana ya mod mnem ? yang tentang "Jd kta bisa aja acess kelas2 c# pake f#. Bagian2 yg butuh pemrosesan paralel ato concurrent bisa pake F#. Sedangkan domain model ttp pake c#.
Salah satu keuntungannya lagi adalah actor based model. Jd model ini sama seperti lightweight messaging"... bisa mod mnem jelasin ngga? Peace:

iya, groovy itu "running atop of java" makanya dipastikan bisa akses class2nya java
Syinn - 17/10/2012 12:15 AM
#51

Quote:
Original Posted By mnemonix
Nggak. Blom sempat nyoba2 pemrosesan paralel. Minat gw di FP itu lebih ke arah matematis. Banyak yg bilang functional programming = executable specification.
Makanya FP sering dipake buat automated reasoning


ooo oke \)

and thx alot for ur link. it is interesting for learn too \)

Quote:
Original Posted By hotcaramel
syinn punya background knowledge bahasa atau framework apa ?
nanti bisa dibantu cari padanan nya.

Windows Application itu seperti java swing
secara IDE visual studio , support c# dan vb

kalau mau pake f# , ada kemungkinan bisa saja develope winform.
tapi harus ketik manual. tidak productive jadi nya karena
feature IDE visual studio jadi tidak dapat digunakan

tapi f# posisi nya di backend , jangan gui.
contoh misal windows phone dengan f#, atau mvc f#


satu project itu satu bahasa.
ketika sudah dicompile , dan menjadi library , baru antar bahasa dot net bisa saling panggil.


thx alot ya om caramel \)

background saya VB dan java , yang lainnya cuma sekedar belajar2 aja

frameworknya kadang Spring, hibernate dan beberapa lainnya

kalo VB... kadang saya pake IDE VS, kadang VB6 ga tentu deh om saya mah hammer: Peace:
hotcaramel - 17/10/2012 01:56 AM
#52

ooo gini aja nih
anggap di vb6 , add library dll.

dll itu dibuat dengan vb6 juga kan ?
kalau di .net , dll itu bisa dibuat dengan c# , vb.net , f# , iron ruby, iron python , dll.
tapi project nya sendiri sih tetep pake vb.net atau c#
dengan cara ini , programmer itu bisa ngobrol dengan programmer lain tanpa harus BAHASA yang sama

mungkin bro syinn udah tau penjelasan di atas , cuma cerita sekilas saja , untuk menyamakan persepsi \)



Quote:
Original Posted By Syinn
ooo oke \)

and thx alot for ur link. it is interesting for learn too \)



thx alot ya om caramel \)

background saya VB dan java , yang lainnya cuma sekedar belajar2 aja

frameworknya kadang Spring, hibernate dan beberapa lainnya

kalo VB... kadang saya pake IDE VS, kadang VB6 ga tentu deh om saya mah hammer: Peace:
erilive - 17/10/2012 02:28 AM
#53
ebook komunitas F# dan link resourcenya
Quote:
Original Posted By Syinn
waw.. belajar F# sejak 2005 matabelo: ... berarti om erilive udah jago banget di F#

oke , makasih semangatnya ya... saya akan berusaha luangin waktu buat mempelajari F#, yang sebelumnya saya sempat jatuh cinta ama Scala yang kemudian patah hati karena ga ada waktu banyak buat memperdalamnya

nanti saya sempatin ke toko buku, siapa tahu nemu buku yang oke tentang F#... (dan kayanya saya perlu belajar juga c# hammer: karena sepemikiran saya, kita kadang butuh akses class C# pake F# bila class di F# tidak memadai seperti class2 java yang bisa di akses pake Groovy (correct me if wrong) dan tolong jelasin dunk tentang hal tersebut dan juga jelasin tentang ada or tidaknya proses mapping pada F# kalo om erilive bersedia ).

or om punya link ebook F# yang oke&mantaf ga buat belajar saya ? Peace: ( lagi banyak maunya nih saya hammer: )


Jago banget F#? enggak juga gan, hehehe... karena saya termasuk orang yang kalau belajar hal baru agak lama.
Dan saya baru benar-benar mengerti F# setelah 4 bulanan gan, dari latar belakang imperative dan OOP berangkat ke functional lumayan agak lama \)

Quote:
Original Posted By Syinn

dan tolong jelasin dunk tentang hal tersebut dan juga jelasin tentang ada or tidaknya proses mapping pada F# kalo om erilive bersedia ).


Mapping pada F#? Mapping dari apa ke mana gan? Mungkin agan bisa memperjelas pertanyaannya? Saya bersedia menjelaskan \)

Untuk ebook, bisa download ebook dari komunitas:
http://sdrv.ms/RQaWdS

Judul ebook diatas adalah "F# Survival Guide".

Selanjutnya, silakan baca artikel F# Tools and Resources di MSDN Magazine:
http://msdn.microsoft.com/en-us/magazine/gg983483.aspx

Quote:
Original Posted By Syinn

Sebelum dan sesudahnya saya ucapkan terima kasih atas ilmu nya ya om erilive \)


Sama-sama gan, saya senang juga bisa selalu membantu agan-agan semua \)

Go F#! Go Functional!
erilive - 17/10/2012 03:43 AM
#54
Penjelasan domain model
Quote:
Original Posted By Syinn
hihihi... mod mnem Peace:

thx ya koreksinya \)

berarti saya salah tangkap dengan penjelasan teman tentang class c# yang bisa di akses oleh beberapa bahasa .NET lainnya ( saya tidak mau menyalahkan teman saya or siapapun dalam hal ini)

oya, mod mnem... barusan saya googling, saya dapat ini bingungs

itu salah kaprah or gimana ya mod mnem ? yang tentang "Jd kta bisa aja acess kelas2 c# pake f#. Bagian2 yg butuh pemrosesan paralel ato concurrent bisa pake F#. Sedangkan domain model ttp pake c#.
Salah satu keuntungannya lagi adalah actor based model. Jd model ini sama seperti lightweight messaging"... bisa mod mnem jelasin ngga? Peace:

iya, groovy itu "running atop of java" makanya dipastikan bisa akses class2nya java


Saya tertarik dengan pernyataan ini:
"Jd kta bisa aja acess kelas2 c# pake f#. Bagian2 yg butuh pemrosesan paralel ato concurrent bisa pake F#. Sedangkan domain model ttp pake c#.
Salah satu keuntungannya lagi adalah actor based model. Jd model ini sama seperti lightweight messaging"

Sebelumnya akan saya jelaskan apa itu domain model. Domain model adalah suatu pola/pattern yang intinya memetakan object yang ada di dunia nyata menjadi object di OOP.

Contoh: Employee memiliki ciri nama, alamat, kota, jenis kelamin, dan tanggal lahir. Employee juga memiliki behavior yaitu dia dapat MasukKerja, TitipAbsen, dan sebagainya.

Kemudian Employee dimapping/dipetakan menjadi suatu class dengan property:

[*]Nama
[*]Alamat
[*]Kota
[*]JenisKelamin
[*]BornDate


dan behavior dipetakan menjadi method:

[*]MasukKerja
[*]TitipAbsen



Dengan demikian juga nantinya ada penambahan method seperti Resign() maka harus diletakkan di class Employee.

Domain model juga bisa pakai OOP pada F#, karena domain model memakai OOP sebagai pondasi pembuatan domain model.
Tetapi hati-hati dengan pembuatan domain model ini, kalau OOP yang dipakai untuk pembuatan domain model ini dibuat dengan serampangan nanti malah menjadi anemic domain model, dan ini bukan salah programming languagenya, tapi salah programmernya.

Contoh anemic domain model sederhana ada di stackoverflow:
http://stackoverflow.com/questions/2854801/avoiding-anemic-domain-model-a-real-example

Intinya, object hanya taunya propertynya dia sendiri dan semua behavior yang mengubah state harusnya hanya ada di dia, bukan di class lain. Jika ada class lain yang mengubah state atau nilai property di suatu business object atau domain object, jadinya business object yang bersangkutan malah anemia.
Atau bahkan inheritance yang berlebihan malah bisa juga menimbulkan anemia karena mutasi child turunan yang malah mengubah maksud dari object yang bersangkutan.

Jadi saya tidak setuju dengan pernyataan diatas. Domain model itu konsep, tidak ada hubungan dengan programming language apapun.

Actor based model bisa juga diimplementasikan di C#, gak ada masalah dan sama saja di C# dan F#. Tetapi Actor (juga disebut agent) ini kalau diimplementasikan di C# lebih susah, karena untuk benar-benar mengimplemen hal ini harus jangan sampai memblokir jalannya proses.

Jika ingin menerapkan messaging antar actor/agent, maka sebaiknya asynchronous dan recursive. C# di VS 2012 bisa asynchronous tetapi tidak bisa asynchronous di dalam function recursive. Akhirnya pilihan hanya ada di F# untuk saat ini.

Coba lihat ini:
http://www.developerfusion.com/article/139804/an-introduction-to-f-agents/

Go F#! Go functional! \) iloveindonesias
erilive - 17/10/2012 02:13 PM
#55

Quote:
Original Posted By hotcaramel
syinn punya background knowledge bahasa atau framework apa ?
nanti bisa dibantu cari padanan nya.

Windows Application itu seperti java swing
secara IDE visual studio , support c# dan vb

kalau mau pake f# , ada kemungkinan bisa saja develope winform.
tapi harus ketik manual. tidak productive jadi nya karena
feature IDE visual studio jadi tidak dapat digunakan

tapi f# posisi nya di backend , jangan gui.
contoh misal windows phone dengan f#, atau mvc f#



IDE Visual Studio tidak dapat digunakan?? Maksudnya apa gan? \)
Karena IDE adalah Integrated Development Environment, dimana agan bisa develop, debug, compile, dan running di satu lingkungan.
Tidak harus ada designernya. Kalau harus ada designernya, berarti Eclipse bukan IDE dong? \)

Berarti Visual Studio dan Eclipse adalah barang yang masih satu family, yaitu sama-sama IDE walaupun Visual Studio >- .NET/Windows satunya Eclipse >- Java dan PHP.

Maksud saya perlu meluruskan hal ini gan, karena seringkali banyak agan-agan yang salah paham tentang IDE. \)

Contoh: Microsoft Expression Blend 4 (untuk membuat XAML WPF dan Silverlight) bukan IDE, karena kita cuma bisa design UI disitu, tidak bisa debug dan trace error.

F# juga bisa GUI tanpa designer.
Contoh:
http://jyliao.blogspot.com/2007/10/learning-wpf.html

Dan codingnya gak sulit kok. Apalagi kalau WPF bisa open XAML lalu dijalankan secara manual.
Syinn - 17/10/2012 02:15 PM
#56

Quote:
Original Posted By hotcaramel
ooo gini aja nih
anggap di vb6 , add library dll.

dll itu dibuat dengan vb6 juga kan ?
kalau di .net , dll itu bisa dibuat dengan c# , vb.net , f# , iron ruby, iron python , dll.
tapi project nya sendiri sih tetep pake vb.net atau c#
dengan cara ini , programmer itu bisa ngobrol dengan programmer lain tanpa harus BAHASA yang sama

mungkin bro syinn udah tau penjelasan di atas , cuma cerita sekilas saja , untuk menyamakan persepsi \)


ooo ic om caramel ....

jadi maksudnya, dengan adanya library dll (yang bisa dibuat pake salah satu/semua bahasa .net) yang ada pada VB6, memungkinkan sang developer VB berkomunikasi dengan developer F# dan C# via library dll tersebut.

hmm.... dan hal diatas dinamakan lightweight messaging , dimana Komunikasi (antar proses) tersebut dilakukan lewat message passing.
Benarkah demikian ? or bagaimana (ini kalo memang saya salah memahami hammer: ) ?

saya ingin tahu lebih banyak lagi pendapat om caramel yang agak berbeda dengan pendapat om erilive tentang lightweight messaging ini. or saya nya yang salah nangkap hammer: Peace:

harap maklum, om caramel dan om erilive.... saya nubi di functional programming malus

btw, thx alot ya om caramel \)
Syinn - 17/10/2012 02:17 PM
#57

Quote:
Original Posted By erilive
Jago banget F#? enggak juga gan, hehehe... karena saya termasuk orang yang kalau belajar hal baru agak lama.
Dan saya baru benar-benar mengerti F# setelah 4 bulanan gan, dari latar belakang imperative dan OOP berangkat ke functional lumayan agak lama \)



Mapping pada F#? Mapping dari apa ke mana gan? Mungkin agan bisa memperjelas pertanyaannya? Saya bersedia menjelaskan \)

Untuk ebook, bisa download ebook dari komunitas:
http://sdrv.ms/RQaWdS

Judul ebook diatas adalah "F# Survival Guide".

Selanjutnya, silakan baca artikel F# Tools and Resources di MSDN Magazine:
http://msdn.microsoft.com/en-us/magazine/gg983483.aspx



Sama-sama gan, saya senang juga bisa selalu membantu agan-agan semua \)

Go F#! Go Functional!


ooo... ic , om... \) memang rada lama ya kalo background OOP ingin mempelajari/mendalami functional

maksud saya mapping fungsi2 pada class2 yang sama halnya mapping relation objek2 pada class2 kalo dalam bahasa OO (ini mungkin saya agak menyamakan kali ya istilah fungsi2 dengan objek2 hammer: or mungkin dalam functional, tehnik currying dimana fungsi yang diterapkan pada argumen satu per satu, dengan setiap aplikasi mengembalikan fungsi baru yang menerima argumen berikutnya, itu sudah merupakan tehnik tingkat tinggi pada functional or masih ada tehnik yang lebih tinggi lagi?)

dan saya rasa jawaban untuk diatas sudah agak terjawab dengan postingan om erilive dibawah ini, atau om erilive ingin menambahkan jawaban lagi? Peace:

thx alot link dan ebooknya , om erilive \)
nanti saya pelajari dan praktekin jika ada waktu luang, insyaAllah

Quote:
Original Posted By erilive
Saya tertarik dengan pernyataan ini:
"Jd kta bisa aja acess kelas2 c# pake f#. Bagian2 yg butuh pemrosesan paralel ato concurrent bisa pake F#. Sedangkan domain model ttp pake c#.
Salah satu keuntungannya lagi adalah actor based model. Jd model ini sama seperti lightweight messaging"

Sebelumnya akan saya jelaskan apa itu domain model. Domain model adalah suatu pola/pattern yang intinya memetakan object yang ada di dunia nyata menjadi object di OOP.

Contoh: Employee memiliki ciri nama, alamat, kota, jenis kelamin, dan tanggal lahir. Employee juga memiliki behavior yaitu dia dapat MasukKerja, TitipAbsen, dan sebagainya.

Kemudian Employee dimapping/dipetakan menjadi suatu class dengan property:

[*]Nama
[*]Alamat
[*]Kota
[*]JenisKelamin
[*]BornDate


dan behavior dipetakan menjadi method:

[*]MasukKerja
[*]TitipAbsen



Dengan demikian juga nantinya ada penambahan method seperti Resign() maka harus diletakkan di class Employee.

Domain model juga bisa pakai OOP pada F#, karena domain model memakai OOP sebagai pondasi pembuatan domain model.
Tetapi hati-hati dengan pembuatan domain model ini, kalau OOP yang dipakai untuk pembuatan domain model ini dibuat dengan serampangan nanti malah menjadi anemic domain model, dan ini bukan salah programming languagenya, tapi salah programmernya.

Contoh anemic domain model sederhana ada di stackoverflow:
http://stackoverflow.com/questions/2854801/avoiding-anemic-domain-model-a-real-example

Intinya, object hanya taunya propertynya dia sendiri dan semua behavior yang mengubah state harusnya hanya ada di dia, bukan di class lain. Jika ada class lain yang mengubah state atau nilai property di suatu business object atau domain object, jadinya business object yang bersangkutan malah anemia.
Atau bahkan inheritance yang berlebihan malah bisa juga menimbulkan anemia karena mutasi child turunan yang malah mengubah maksud dari object yang bersangkutan.

Jadi saya tidak setuju dengan pernyataan diatas. Domain model itu konsep, tidak ada hubungan dengan programming language apapun.

Actor based model bisa juga diimplementasikan di C#, gak ada masalah dan sama saja di C# dan F#. Tetapi Actor (juga disebut agent) ini kalau diimplementasikan di C# lebih susah, karena untuk benar-benar mengimplemen hal ini harus jangan sampai memblokir jalannya proses.

Jika ingin menerapkan messaging antar actor/agent, maka sebaiknya asynchronous dan recursive. C# di VS 2012 bisa asynchronous tetapi tidak bisa asynchronous di dalam function recursive. Akhirnya pilihan hanya ada di F# untuk saat ini.

Coba lihat ini:
http://www.developerfusion.com/article/139804/an-introduction-to-f-agents/

Go F#! Go functional! \) iloveindonesias
hotcaramel - 17/10/2012 04:03 PM
#58

wah seperti biasa saya membuat argument yang rancu.

seperti yg pa erilive bilang , bukan IDE,
tapi feature designer yang ada di dalam visual studio.

dalam prakteknya , visual studio belum support designer untuk f#.
tidak bisa drag and drop textbox dari toolbar ketika winform project
jadi menurut saya , f# lebih cocok untuk backend

ada beberapa programmer yang terbiasa UI code dengan pure code.
saya tidak biasa dengan itu , harus di awali drag and drop, baru edit property pada code UI.

Quote:
Original Posted By erilive
IDE Visual Studio tidak dapat digunakan?? Maksudnya apa gan? \)
Karena IDE adalah Integrated Development Environment, dimana agan bisa develop, debug, compile, dan running di satu lingkungan.
Tidak harus ada designernya. Kalau harus ada designernya, berarti Eclipse bukan IDE dong? \)

Berarti Visual Studio dan Eclipse adalah barang yang masih satu family, yaitu sama-sama IDE walaupun Visual Studio >- .NET/Windows satunya Eclipse >- Java dan PHP.

Maksud saya perlu meluruskan hal ini gan, karena seringkali banyak agan-agan yang salah paham tentang IDE. \)

Contoh: Microsoft Expression Blend 4 (untuk membuat XAML WPF dan Silverlight) bukan IDE, karena kita cuma bisa design UI disitu, tidak bisa debug dan trace error.

F# juga bisa GUI tanpa designer.
Contoh:
http://jyliao.blogspot.com/2007/10/learning-wpf.html

Dan codingnya gak sulit kok. Apalagi kalau WPF bisa open XAML lalu dijalankan secara manual.
hotcaramel - 17/10/2012 04:17 PM
#59

1. itu benar, tapi vb.net , bukan vb6 ya \)

2. saya menjelaskan feature utama .net , dimana programmer berbeda2 bahasa dapat kerja bareng. hanya contoh simple menggunakan library (add reference), belum sampai lightweight messaging.

3. soal lightweight messaging , saya tidak dapat menjelaskan banyak. tidak kompeten , blum pernah implementasi dalam project2 saya.
tapi ada beberapa clue yg terpikir :
- tidak harus f#
- immutable >- wajib
- functional
- async
- queuing

4. bro , jgn samakan saya dengan pa erilive,
beda skill banget hahaha.
erilive itu calon mvp , saya hanya fans f# ,
yg baru coba hello world f# doank.

tapi saya yakin sekali functional itu meningkatkan produktivitas.
yang sudah saya rasakan adalah c# linq lambda (functional tapi rada banci).
dengan linq, line of code semakin dikit. efisien

cuma saja , ada perbedaan paradigma , bukan syntax ,
jadi process belajar harus pelan2
pindah ke f# , lebih memakan waktu lagi ,
tapi hasil nya pasti lebih baik.



Quote:
Original Posted By Syinn
ooo ic om caramel ....

jadi maksudnya, dengan adanya library dll (yang bisa dibuat pake salah satu/semua bahasa .net) yang ada pada VB6, memungkinkan sang developer VB berkomunikasi dengan developer F# dan C# via library dll tersebut.

hmm.... dan hal diatas dinamakan lightweight messaging , dimana Komunikasi (antar proses) tersebut dilakukan lewat message passing.
Benarkah demikian ? or bagaimana (ini kalo memang saya salah memahami hammer: ) ?

saya ingin tahu lebih banyak lagi pendapat om caramel yang agak berbeda dengan pendapat om erilive tentang lightweight messaging ini. or saya nya yang salah nangkap hammer: Peace:

harap maklum, om caramel dan om erilive.... saya nubi di functional programming malus

btw, thx alot ya om caramel \)
erilive - 17/10/2012 05:15 PM
#60

Quote:
Original Posted By hotcaramel

3. soal lightweight messaging , saya tidak dapat menjelaskan banyak. tidak kompeten , blum pernah implementasi dalam project2 saya.
tapi ada beberapa clue yg terpikir :
- tidak harus f#
- immutable >- wajib
- functional
- async
- queuing



Lightweight messaging sudah saya cobe jelaskan di posting sebelumnya di atas \) Silakan dibaca, gan hotcaramel \)

Quote:
Original Posted By hotcaramel

tapi saya yakin sekali functional itu meningkatkan produktivitas.
yang sudah saya rasakan adalah c# linq lambda (functional tapi rada banci).
dengan linq, line of code semakin dikit. efisien

cuma saja , ada perbedaan paradigma , bukan syntax ,
jadi process belajar harus pelan2
pindah ke f# , lebih memakan waktu lagi ,
tapi hasil nya pasti lebih baik.


Setuju gan! \)b

Masalahnya bukan beda syntax, tapi beda pola pikir. Ini mengapa banyak teman-teman yang belajar functional dari latar belakang OOP dan imperative membutuhkan waktu yang cukup lama.
Setau banyak teman-teman saya membutuhkan lebih dari 3 bulan sampai 6 bulan untuk benar-benar mengerti functional programming dan F#.

Quote:
Original Posted By hotcaramel

tapi saya yakin sekali functional itu meningkatkan produktivitas.
yang sudah saya rasakan adalah c# linq lambda (functional tapi rada banci).
dengan linq, line of code semakin dikit. efisien


Menurut agan hotcaramel, bancinya Lambda Expression di C# dimananya? Saya penasaran gan \)

Quote:
Original Posted By hotcaramel

4. bro , jgn samakan saya dengan pa erilive,
beda skill banget hahaha.
erilive itu calon mvp , saya hanya fans f# ,
yg baru coba hello world f# doank.


Saya jadi MVP? hehhehehhe.. Masih jauh gan..
Amiiin amin amin kalo menurut agan saya cocok jadi MVP, hehe... Saya masih kalah jauuhh dibanding Microsoft MVP Visual F# yang satu ini, yaitu Tomas Petricek:
http://tomasp.net/default.aspx
Dan ini blognya: http://tomasp.net/blog

Kalau level pengetahuan saya sudah sama dengan pak Tomas Petricek, baru saya berani ditunjuk MVP Visual F#, gan \)

Yang penting bagi saya tetap sharing dan berdiskusi sebagai tujuan utama saya. Dan syukur-syukur saya bisa mencapai level mendekati para MVP F# \)

Jadi atau tidak jadi MVP saya tetap sharing, gan! Go F#! Go functional!
:cool
Page 3 of 4 |  < 1 2 3 4 > 
Home > LOEKELOE > COMPUTER STUFF > Programmer Forum > [F#]Para programmer F# dan functional programming disini yah :)