Loading ...
Sorry, an error occurred while loading the content.

Re: [id-ruby] Perkenalan

Expand Messages
  • Hendy Irawan
    ... Ya. As requested. 1. Ruby bahasa yang OOP-capable. Rails adalah framework yang Object-oriented juga meski banyak teknik implementasi dan fitur Rails secara
    Message 1 of 21 , Sep 30, 2007
    • 0 Attachment
      Aditya Agustyana wrote:
      > salam kenal juga ^_^
      >
      > Ruby = OOP (atau lebih tepatnya True OOP) karena di ruby semuanya dipandang
      > sbg objek
      >
      > eg,
      > "blah".split(2)
      >
      > jd Rails yg dibikin based on Ruby, ya OTOMATIS jd OOP juga...
      >
      > eniwei pengertian RAILS sendiri di sitenya adalah
      >
      > "Rails is a full-stack framework for developing database-backed web
      > applications according to the Model-View-Control (MVC) pattern. From the
      > Ajax in the view, to the request and response in the controller, to the
      > domain model wrapping the database, Rails gives you a pure-Ruby development
      > environment. To go live, all you need to add is a database and a web server"
      >
      > kata kuncinya adalah MVC, dan sy lebih menyukai kalo menyebut Rails sbg
      > Framework yg MVC banget he he ....
      >
      > CMIIW
      >
      >
      Ya. As requested.

      1. Ruby bahasa yang OOP-capable. Rails adalah framework yang
      Object-oriented juga meski banyak teknik implementasi dan fitur Rails
      secara internal yang "goes beyond OOP" dalam artian awam.
      2. Menggunakan bahasa dengan kemampuan OOP tidak secara *otomatis*
      membuat aplikasi tersebut objek-oriented. Kebetulan, Rails object
      oriented. Tapi bisa saja Anda memprogram sesuatu di Ruby yang tidak
      objek-oriented.
      3. Anda bisa juga mengimplementasikan OOP dengan bahasa yang "tidak
      objek oriented", misalnya C.
      4. Menurut father of OOP sendiri (Alan Kay), definisi OOP yang
      "originale" sebenarnya cukup berbeda secara signifikan dengan pengertian
      OOP yang dikenal "masyarakat"......

      Let's see: (
      http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht20Ht/doc_kay_oop_en )

      OOP to me means only messaging, local retention and protection and

      hiding of state-process, and extreme late-binding of all things. It

      can be done in Smalltalk and in LISP. There are possibly other

      systems in which this is possible, but I'm not aware of them.


      Sebagian orang (developers) mungkin membayangkan C++ atau Java kalo
      denger OOP. Sayangnya, bukan itu yang dimaksud Mister Alan Kay. Almost
      the contrary:

      (I'm not against types, but I don't know of any type systems that

      aren't a complete pain, so I still like dynamic typing.)


      Dari beberapa kriteria yang disebutkan Mr. Kay, salah dua-nya adalah
      'dynamic typing' dan 'late-binding'...... dan keduanya tidak secara
      natural ada dalam bahasa pemrograman C++, Java, maupun C# (yang
      ketiganya sering2 disebut sebagai bahasa OOP). Possible, but probably
      painful.

      So balik lagi ke Boby Ert sang penanya, jika masih tertarik membahasnya,
      yang bagaimana yang Anda maksud dengan "OOP bgt"? Salam kenal juga :-)

      > On 9/29/07, boby_ert <boby_ert@...> wrote:
      >
      >> Salam ruby :)
      >>
      >> Saya tertarik belajar Ruby On Rails. Katanya yang OOP bgt. salam
      >> kanal semua buat semua pecinta ruby.
      >>

      --
      Hendy Irawan
      www.hendyirawan.com
    • Yohanes Santoso
      ... Dan dua tahun sebelum Alan Kay s message, Jonathan Rees s[1]: http://mumble.net/~jar/articles/oo.html JR bukan yang membuat phrase Object Oriented ,
      Message 2 of 21 , Oct 2, 2007
      • 0 Attachment
        Hendy Irawan <hendy@...> writes:

        > Let's see: (
        > http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht20Ht/doc_kay_oop_en )
        > OOP to me means only messaging, local retention and protection and
        > hiding of state-process, and extreme late-binding of all things. It
        > can be done in Smalltalk and in LISP. There are possibly other
        > systems in which this is possible, but I'm not aware of them.

        Dan dua tahun sebelum Alan Kay's message, Jonathan Rees's[1]:
        http://mumble.net/~jar/articles/oo.html

        JR bukan yang membuat phrase 'Object Oriented', jadinya dia tidak bisa
        bilang 'OOP seharusnya begini' seperti AK. Apa yang JR lakukan adalah
        dia menguraikan komponent dari languages yang mengaku atau dianggap
        sebagai OOL.


        YS.

        Footnotes:

        [1] Siapa dia? Kalau anda pernah memakai bahasa dengan lexical scoping
        (Java, C, Ruby, hampir semua bahasa modern), anda berhutang budi
        kepada dia karena dia adalah orang pertama yang membuktikan bahwa
        lexical scoping bisa di-implementasi dengan effisien sehingga sekarang
        diadopsi oleh hampir semua bahasa modern. Google for 'history of T'.
      • Andry S Huzain
        ... Apa hubungannya dynamic typing dan late-binding dengan OOP? Ndak mudeng saya. -- http://andryshuzain.com [Non-text portions of this message have been
        Message 3 of 21 , Oct 2, 2007
        • 0 Attachment
          >
          > On 10/1/07, Hendy Irawan <hendy@...> wrote: Aditya Agustyana
          > wrote:
          >
          >
          > Dari beberapa kriteria yang disebutkan Mr. Kay, salah dua-nya adalah
          > 'dynamic typing' dan 'late-binding'...... dan keduanya tidak secara
          > natural ada dalam bahasa pemrograman C++, Java, maupun C# (yang
          > ketiganya sering2 disebut sebagai bahasa OOP). Possible, but probably
          > painful.


          Apa hubungannya "dynamic typing" dan "late-binding" dengan OOP?

          Ndak mudeng saya.




          --
          http://andryshuzain.com


          [Non-text portions of this message have been removed]
        • Yohanes Santoso
          ... Jawaban paling gampang adalah karena Alan Kay bilang begitu. Karena dia yang menciptakan phrase OO , dia berhak mengdefinisikan itu semaunya dia. Jawaban
          Message 4 of 21 , Oct 2, 2007
          • 0 Attachment
            "Andry S Huzain" <andryshuzain@...> writes:

            >>
            >> On 10/1/07, Hendy Irawan <hendy@...> wrote: Aditya Agustyana
            >> wrote:
            >>
            >>
            >> Dari beberapa kriteria yang disebutkan Mr. Kay, salah dua-nya adalah
            >> 'dynamic typing' dan 'late-binding'...... dan keduanya tidak secara
            >> natural ada dalam bahasa pemrograman C++, Java, maupun C# (yang
            >> ketiganya sering2 disebut sebagai bahasa OOP). Possible, but probably
            >> painful.
            >
            > Apa hubungannya "dynamic typing" dan "late-binding" dengan OOP?

            Jawaban paling gampang adalah karena Alan Kay bilang begitu. Karena
            dia yang menciptakan phrase 'OO', dia berhak mengdefinisikan itu
            semaunya dia.

            Jawaban lainnya adalah:

            dynamic typing -- dia tidak bilang bahwa dynamic typing dibutuhkan,
            hanya saja dia suka dynamic typing.

            "I'm not against types, but I don't know of any type systems that
            aren't a complete pain, so I still like dynamic typing."

            Jadi memang tidak berhubungan dengan OO selain perasaannya dia.


            late-binding -- ini memungkinkan polymorphism.


            YS.
          • Hendy Irawan
            ... Saya juga ndak mudeng. Wong yang bilang Dr. Kay bukan saya :-) Interpretasi saya, OOP is about sending messages to objects . Jadi konsep-konsep seperti
            Message 5 of 21 , Oct 2, 2007
            • 0 Attachment
              Andry S Huzain wrote:
              >> On 10/1/07, Hendy Irawan <hendy@...> wrote: Aditya Agustyana
              >> wrote:
              >>
              >>
              >> Dari beberapa kriteria yang disebutkan Mr. Kay, salah dua-nya adalah
              >> 'dynamic typing' dan 'late-binding'...... dan keduanya tidak secara
              >> natural ada dalam bahasa pemrograman C++, Java, maupun C# (yang
              >> ketiganya sering2 disebut sebagai bahasa OOP). Possible, but probably
              >> painful.
              >>
              >
              >
              > Apa hubungannya "dynamic typing" dan "late-binding" dengan OOP?
              >
              > Ndak mudeng saya.
              >
              >
              Saya juga ndak mudeng. Wong yang bilang Dr. Kay bukan saya :-)

              Interpretasi saya, OOP is about "sending messages to objects". Jadi
              konsep-konsep seperti "interface" dan "contract" tidak terlalu "ada" di
              sini.

              Karena yang dihadapi adalah message, bukan 'function call', maka
              compiler/interpreter hanya bertugas sebagai penyampai pesan, bukan
              pemeriksa pesan.

              Apakah objek A akan mengirim pesan yang invalid atau valid kepada objek
              B, itu adalah urusan objek B... bukan urusan compiler/interpreter atau VM.

              Kalau pun objek B ternyata 'tidak suka' alias 'menolak' pesan
              tersebut..... kan masih ada 'method_missing' :-)

              Kalo objek A ingin tau apakah objek B "kira-kira" bisa menerima pesan
              tersebut.... ya tinggal panggil .respond_to? :-)

              sarah.respond_to?(:love) ==> UnbelievableDreamException raised

              :-P

              Satu lagi interpretasi saya adalah 'message' belum tentu harus terdiri
              dari 'method name' dan 'parameters', seperti yang biasanya ada di
              bahasa2 pemrograman. Mungkin kebetulan banyak bahasa pemrograman yang
              seperti itu.

              Ini agak menyulitkan, karena misalnya di Ruby, respond_to? hanya bisa
              menerima nama method...

              Bagaimana jika saya ingin mengirim message berupa objek? Saya harus
              menentukan dulu method yang akan menerima objek tersebut....

              So, rather than:

              my_love = Love.new(:from => hendy)
              sarah.respond_to?(my_love)

              I need to do

              sarah.respond_to?(:receive_love) # INCORRECT!

              Yang tidak sesuai dengan apa yang saya inginkan..... saya bukannya ingin
              memanggil method receive_love... tapi saya ingin mengirim objek my_love
              tersebut kepada sarah...

              Akhirnya terpaksa ada workaround:

              sarah.receive_love(my_love) if sarah.can_receive_love?(my_love)

              yang akhirnya mem-violate prinsip encapsulation.... karena saya harus
              menggunakan dua method yang terpaksa dibuat karena objek tidak mempunyai
              kemampuan basic untuk menerima message seperti yang diinginkan oleh Dr.
              Alan Kay.
            • pipit haryadi
              Hallo members, Saya baru mengenal Ruby 1 bulan yang lalu, saya ingin mengenal lebih jauh tentang Ruby, apa saja kelebihannya. apakah Ruby hanya untuk aplikasi
              Message 6 of 21 , Oct 11, 2007
              • 0 Attachment
                Hallo members,

                Saya baru mengenal Ruby 1 bulan yang lalu, saya ingin mengenal lebih jauh tentang Ruby, apa saja kelebihannya.
                apakah Ruby hanya untuk aplikasi web saja? apakah ada fungsi lainnya? apa harus ada tambahan program untuk semisal membuat database?
                Maaf apabila pertanyaannya agak mendasar.

                Pipit



                Send instant messages to your online friends http://uk.messenger.yahoo.com
              • Arie Kusuma Atmaja
                ... hallo pipit :-D salam kenal juga. (saya cuma pengen bilang salam kenal juga aja kok, maap kalo pertanyaannya ga saya jawab) -- Arie |
                Message 7 of 21 , Oct 11, 2007
                • 0 Attachment
                  pipit haryadi wrote:

                  > Hallo members,

                  hallo pipit :-D

                  salam kenal juga. (saya cuma pengen bilang salam kenal juga aja kok, maap kalo
                  pertanyaannya ga saya jawab)

                  --
                  Arie | http://www.linkedin.com/in/ariekeren
                  http://ariekusumaatmaja.wordpress.com | http://groups.yahoo.com/groups/id-ruby
                  Oops!
                • Andry S Huzain
                  ... Bisa juga untuk aplikasi dekstop diatas bermacam GUI toolkit. Bisa juga untuk script-script administrasi (seperti *.bat atau bash scripting). Bisa untuk
                  Message 8 of 21 , Oct 11, 2007
                  • 0 Attachment
                    >
                    > On 10/11/07, pipit haryadi <pipit_h@...> wrote: Hallo members,
                    >
                    > Saya baru mengenal Ruby 1 bulan yang lalu, saya ingin mengenal lebih jauh
                    > tentang Ruby, apa saja kelebihannya.
                    > apakah Ruby hanya untuk aplikasi web saja?


                    Bisa juga untuk aplikasi dekstop diatas bermacam GUI toolkit.
                    Bisa juga untuk script-script administrasi (seperti *.bat atau bash
                    scripting).
                    Bisa untuk "plugin" aplikasi lain yang ditulis pake bahasa non-ruby (misal
                    song popularity script untuk Amarok).
                    Bisa mengeksekusi bahasa low-level seperti C dengan inline ruby.

                    Bisa macem-macem sih. Coba tanya "apa yang nggak bisa saja" deh lain kali
                    hehe...


                    apakah ada fungsi lainnya? apa harus ada tambahan program untuk semisal
                    > membuat database?


                    Nggak ada. Cukup pake library saja: ActiveRecord atau ruby-dbi. Dengan
                    menjalankan Ruby diatas JVM (Java Virtual Machine), dikenal juga dg nama
                    JRuby, kita bisa juga pakai ActiveRecord-JDBC.

                    Paket-paket library ini lebih dikenal dengan nama rubygems. Instalasi
                    rubygem bisa menggunakan utilitas "gem".

                    Maaf apabila pertanyaannya agak mendasar.


                    Ada baiknya sebelum bertanya untuk mencari tahu/membaca terlebih dahulu. Ada
                    banyak sumber di internet. Teman-teman malah sudah memiliki versi Indonesia
                    untuk situs resmi Ruby. Googling dulu deh :)

                    Kalau menemui kesulitan baru silahkan lempar ke milis.

                    Tentang kelebihan (dan kelemahan) Ruby sendiri, sudah sering dibahas panjang
                    lebar di milis ini. Silahkan "search" arsip-arsip milis.




                    --
                    http://andryshuzain.com


                    [Non-text portions of this message have been removed]
                  • Arie Kusuma Atmaja
                    sori tukang oot lewat. ... nah, menarik. (1) komunitas ruby saat ini bahkan baru/masih ngebahas rbehave, gimana dengan jbehave (java) sudah matangkah? itu baru
                    Message 9 of 21 , Oct 11, 2007
                    • 0 Attachment
                      sori tukang oot lewat.

                      Andry S Huzain wrote:

                      > Bisa macem-macem sih. Coba tanya "apa yang nggak bisa saja" deh lain kali
                      > hehe...

                      nah, menarik.

                      (1)

                      komunitas ruby saat ini bahkan baru/masih ngebahas rbehave, gimana dengan jbehave
                      (java) sudah matangkah?

                      itu baru satu, dan itu level-level tinggi dan "dodol" alias fasilitas TODO doang
                      gw bisa ngomong, kalo low-low level gw gak berani takut dibego'bego'in gw.

                      mis.

                      (2)

                      symbol di ruby belum di GC di ruby sekarang. Lah terus? memangnya kalo uda di GC
                      ataupun belum => kenapa?

                      (3)
                      ruby gak ada/pake pointer! Lah terus? memangnya mau penyelesaian pakai pointer di
                      ruby masalahnya mau yang seperti apa? <<<bingung abis gitu mo kasi contoh sulit ga
                      sempet2x mulu biar yg nanya balik puwas/kapok mck alah! sejenis gitu kok bisa2nya
                      puwas>>> gimana caranya bikin program dengan dinamika/requirement seperti sewaktu
                      coding pakai C, bikin program sederhana ini dengan maksimal size 4 KB, tidak boleh
                      lebih! gimana melakukan itu di ruby?!

                      > Silahkan "search" arsip-arsip milis.

                      contoh screenshotnya bisa diklik di:

                      http://flickr.com/photo_zoom.gne?id=1544170190&size=o

                      have fun! :-D

                      --
                      Arie | http://www.linkedin.com/in/ariekeren
                      http://ariekusumaatmaja.wordpress.com | http://groups.yahoo.com/groups/id-ruby
                      Oops!
                    Your message has been successfully submitted and would be delivered to recipients shortly.