Kysmys

Hepomies

Kuinkas hyvä kieli se tämä Delphi oikein on? Miksei sitä käytetä enemmän, jos se on parempi kuin C tai Java?

15

569

    Vastaukset 15

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Entäpä esim. suomen kieli?

      Mietippä miksi joku puhuu suomea? Miksei kaikki puhuisi esim. venäjää tai kiinaa ?

    • keksa

      about 3 tyyppiä. Ne postailee just tänne ja koittaa vakuuttaa kuinka mahtava se on.

      Jos se olis niin upea kieli, niin se varmasti olis laajemmassa käytössä.

      • Näin luulisin

        Olisikohan syy siinä että niin harva täällä on tehnyt mitään suurempaa Pascal- sovellusta. Millaisia Pascal sovelluksia olet tehnyt ? Oletko edes kokeillut (jos et niin kokeile ihmeessä. Voit myöhemmin vaikka palata takaisin tai siirtyä johonkin muuhun kieleen)?


    • voi mitä tahansa

      Tuolla logiikalla kaikki tässä maassa olevat IT-alan ihmiset tekisivät vain Nokian Symbian sovelluksia jos niitäkään (kaikki muu on täällä aivan liian kallista, pienimuotoista "ininää").

    • Mika0800

      Delphi on mainio ja selkeä!

      Hyvä esimerkki selkeydestä:

      C -kielessä on erikseen "logical AND ja Bitwise AND", joita kuvataan symboleilla & sekä && (kumminkohan päin?).

      Delphissä AND on tietenkin AND, ei tarvetta opetella jotain kryptisiä merkkejä.

      Jännää sinänsä, että C -kieltä joskus sanotaan laiteläheiseksi, joskus jopa "korkean tason konekieleksi".

      Assemblerissa (eli symbolisessa konekielessä) on myöskin vain AND, ei sielläkään erotella "bitwise vs. logical" erikseen.

      Ja esim.boolen logiikassa C -kielessä käytetään usein int (kokonaisluku) -tyyppiä, periaatteella 0=epätosi, mikä tahansa muu arvo=tosi.

      Delphissä taas on oma boolean -tyyppi, joka voi saada arvot true tai false.

      muistipaikkatasolla false=0 ja true=1, mutta ohjelmoijan ei tästä yleensä tarvitse välittää.

      Erikoistilanteissa tätäkin tietoa voi toki hyödyntää, esim näin:

      var

      B : Boolean;

      i := Integer;

      begin

      B := JokinBooleanFunktio;

      i := 1 2 *ord(B);

      Tuossa siis i saa arvon 1, jos B=false, ja 3, jos B=true.

      Näin voi välttää hyppykäskyjä, sillä nykyisissä prosessoreissa hyppykäsky johtaa nopeuden menetykseen, koska spekulatiivisesti suoritettujen käskyjen tulokset joudutaan hylkäämään, ja mahdollisesti lukemaan ulkoisesta RAM -muistista kun CPU:n sisäisestä cache -muistista ei löydykään seuraavaksi tarvittavaa dataa.

      "Miksei sitä käytetä enemmän"

      1. siksi, että moni yritys suosii Microsoftin tuotteita,ja Delphin kehittäjähän on kilpaileva Borland. Teknisiä syitä tähän ei ole.

      2. tietämättömyydestä.

      Javaan verrattuna muistinhallinta on parempi: ei automaattista roskienkeruuta,joka jumittaakoko järjestelmän siivousajon ajaksi.

      Delphissä, kun joku muistilohko vapautetaan, se todellakin vapautetaan heti, eikävain merkitä odottamaan erillisen roskienkeruuajon yhteydessä tapahtuvaa vapauttamista.

      javassa objekteille on aina automaattinen "reference count", delphissä oletuksena ei ole, mutta tämänkin saa halutessaan käyttöön näin:

      type
      IOmaObjekti = Interface

      end;

      TOmaObjekti = class(TInterfacedObject, IOmaObjekti)

      end;


      var

      Obj : IOmaObjekti;

      begin

      Obj := TOmaObjekti.Create;

      end; // Obj vapautetaan tässä automaattisesti, jollei siihen ole tehty ulkoisia referenssejä.

      huomaa muuttujamäärittelyssä tyyppi!
      Jos siihen laittaisi:

      Obj : TOmaObjekti;

      niin silloin muisti ei vapaudu automaattisesti, vaan seurauksena on muistivuoto, jos ohjelmoija ei itse ymmärrä vapauttaa muistia esim. näin:

      FreeAndNil(Obj);

      Delphissä on myös joukkotuki (vrt.joukko-oppi).

      esim näin:

      if i in [2,3,5,7] then ShowMessage (IntToStr(i) ' on 10:tä pienempi alkuluku');

      Delphissä Interfacejen osalta on moninperintä, mutta objektien osalta ei ole.

      Delphi -filosofiaan kuuluu se, ettäobjekteissa moninperintä tuottaisi enemmän ongelmia kuin ratkaisisi.

      Sensijaan yksi luokka voi mainiosti toteuttaa useita interfaceja.

      Interfacejen osalta mainittakoon myös delegaatio. Lisätietoa Delphin omasta helpistä hakusanalla implements.

      Myös merkkijonokäsittely on Delphissäselkeää, tehokasta ja turvallista. Goodbye puskurin ylivuoto-ongelmille!

      Delphissä siis:

      var

      A,B,C : String;

      begin

      A := 'moi';

      B := FuntioJokaPalattaaMiljoonaMerkkiaPitkanMerkkijonon;

      C := A B;

      ShowMessage ('merkkijonon C pituus on ' IntToStr(length(C)) ' merkkiä');


      end;

      Ylläoleva koodi EI aiheuta puskurin ylivuotoa, muistivuotoa, eikä muitakaan ongelmia.

      Jos siis merkkijonon B pituus on miljoona merkkiä, niin tuo näyttää dialogboxin,jossa teksti:

      merkkijonon C pituus on 1000003 merkkiä

      Jotta Delphi -ohjelmista voitaisiin käyttää myös C:llä tehtyjä DLL:iä, on Delphissä myös PChar -tyyppi, jota käytetään kuten C:n "char *" -määritystä. Yhteensopivuus C -koodin kanssa on näin taattu, mutta PChar -tyyppiä käytettäessä ohjelmoija on itse vastuussa kaikesta, silloin Delphi ei tee puolestasi muistinvarauksia, -vapautuksia, eikä pituustarkistuksia.

      PChar -tyyppiä käytettäessä on siis syytä olla erityisen tarkkana C-kielen (väärin)käytöstä tuttujen ongelmien, kuten puskurin ylivuotojen välttämiseksi.

      Jos Delphi ei ole ennestään tuttu, käy vaikka kirjastossa lukemassa tai lainaamassa jokin Delphiä alkeista asti käsittelevä kirja.

    • Nopeustesti

      Jos vertailla haluat Pascal:a muihin kieliin niin jotain suuntaa antavaa tietoa kertoo eri kielten nopeustesti:
      http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&xfullcpu=1&xmem=1&xloc=1&binarytrees=1&chameneosredux=1&fannkuch=1&fasta=1&knucleotide=1&mandelbrot=1&meteor=1&nbody=1&nsieve=1&nsievebits=1&partialsums=1&pidigits=1&recursive=1®exdna=1&revcomp=1&spectralnorm=1&hello=1&sumcol=1&threadring=1&calc=Calculate

      Tässä testissä on se hyvä puoli että voit itse laittaa haluamallesi asioille sopivia kertoimia(painotuksia). Lisäksi testissä on hyvää se että mukana on lähdekoodit.

      • Testipä joo

        Heh, klikkaa reset-nappia, niin Pascali tippuu ja nousee C ykköseksi. Hassua.


      • Miten niin hassua!
        Testipä joo kirjoitti:

        Heh, klikkaa reset-nappia, niin Pascali tippuu ja nousee C ykköseksi. Hassua.

        Noissa on silloin eri painotukset!

        Laittamalla sopivia kertoimia erikohtiin testissä niin saa eri kieliä paremmaksi toisiin verrattuna!


      • lokalasse
        Testipä joo kirjoitti:

        Heh, klikkaa reset-nappia, niin Pascali tippuu ja nousee C ykköseksi. Hassua.

        Tietääkö joku tarkemmin mitä kaikkea nuo testit mittaavat ?


    • mies..

      Mistä johtuu tämä Delphin mollaaminen? Mitä sitten jos se ei olekkaan käytetyin kieli? So what! Se on kieli siinä missä muutkin ja sillä saa aikaa vaikka mitä kun siihen paneutuu :) Loppujen lopuksi ei eroa niin paljon esim. C tai Javasta, etteikö hukkaan Delphin opiskelu menisi!

      Itse koodailen työkseni muuten Delphillä, muttei se sitä tarkoita ettenkö voisi tulevaisuudessa koodata siitten muilla kielillä?

      tässä isoin projekti mitä olen tehnyt...

      http://www.knubits.com/imgs/projekti.jpg

      Ja sitten tähän liittyen kuva, mistä kyselinkin tuolla alempana..

      http://www.knubits.com/imgs/editori.jpg

      • kun sulla on

        jotain oikeaa näytettävää, eikä mitään delphi-kurssin käyttöliittymäharjoitustöitä...


      • Voi jees!
        kun sulla on kirjoitti:

        jotain oikeaa näytettävää, eikä mitään delphi-kurssin käyttöliittymäharjoitustöitä...

        Ei tarvi palata!

        Sillä tuotetta on jo myyty ja on myynnissä monille yrityksille :)

        "Delphi-kurrsin käyttöliittymä?" Mistä sä repäsit tämän? Meinaakko että muilla kehitysvälineillä ei saa samaa aikaan? Ohjelma on ihan toimiva ja tarkoitukseen sopiva työkalu, jolla koostetaan ja tulostetaan manuaaleja annettujen attribuutien mukaan. Tätä on väännetty vuodesta 2006 lähtien!

        Olen tosin tehnyt monia omia "komponentteja" Delphiin, se täytyy myöntää!


      • mies..
        kun sulla on kirjoitti:

        jotain oikeaa näytettävää, eikä mitään delphi-kurssin käyttöliittymäharjoitustöitä...

        Näytäs expertti mulle jotain oikeita juttuja sitten!

        odotellaan...


      • poiju-poiju
        kun sulla on kirjoitti:

        jotain oikeaa näytettävää, eikä mitään delphi-kurssin käyttöliittymäharjoitustöitä...

        Kaikki ei ehkäpä ymmärrä että Delphi ja Pascal ovat tosiaan ammattilaisten käytössä oleva kieli ja työkalu!


      • mies..
        poiju-poiju kirjoitti:

        Kaikki ei ehkäpä ymmärrä että Delphi ja Pascal ovat tosiaan ammattilaisten käytössä oleva kieli ja työkalu!

        Sain integroitua uuden tekstinkäsittely editorin TRichEdit-komponentin tilalle ja ohjelma nopeutui yli 10-kertaiseksi :)))) Yihaa!! Nyt alkaa jo softa tuntumaan hyvälle käyttää!!

        Juu, ei Delphi/Pascal varmaan ole yleisin, mutta en ymmärrä sitä, miksi sitä pitäisi hylkiä tämän takia? Tämänkin editorin liittäminen pääohjelmaa oli tosi helppo ja nopee toimenpide olio-ohjelmoinnin ansiosta, kuin olisi liittänyt uuden ja paremman leego-palikan jo olemassa olevaan leego-linnaan :)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mikä sun salaisuus on,kun näytät niin nuorelta..

      Vaikka oot jo noin vanha!?
      Ikävä
      116
      1487
    2. MiltäKaivattusi

      Näyttää? !
      Ikävä
      50
      960
    3. Perhoseni (miehelle)

      Miksi et usko, että mun rakkaus sinuun on aitoa ja vilpitöntä? Tai että se oli jo silloin? Miksi ajattelet, ettet ole r
      Ikävä
      146
      764
    4. Myönnetään, tunnen lämpimiä tunteita kohtaasi

      Vaikutat tosin liian hyvältä ollaksesi totta. Komeita miehiä on maailma pullollaan mutta sinussa on jotain.....
      Ikävä
      50
      746
    5. Mitä meidän välillämme

      On käynyt näiden vuosien aikana?
      Ikävä
      70
      676
    6. Uskaltaisitko

      Tavata kaivattusi tässä tilanteessa?
      Ikävä
      67
      626
    7. Olen tavattavissa

      tänään klo 17-02 siinä ravintolassa. Tulethan sinäkin?
      Ikävä
      53
      617
    8. Halaus juuri sinulle

      Kaikki järjestyy kyllä. Luota vain. ❤️🫶
      Ikävä
      59
      596
    9. Onko Sofia jälleen jätetty?

      Moni asia viittaisi siihen, että hän on jälleen sinkku.
      Kotimaiset julkkisjuorut
      119
      558
    10. Rekat seisovat dieselin hinnan takia . Ala ei kestä tällaista hintatasoa, sanoo yrittäjä .

      EU:n kallein diesel on kova paikka kuljetusalalle. Ajoja on jätetty ajamatta kannattavuus­ongelmien vuoksi, sanoo alan e
      Kajaani
      119
      535
    11. Mies, näetkö minut myös

      Seksuaalisena ihmisenä ja naisena? Haluatko minua seksuaalisesti? Vai olenko mielestäsi tyttönen?
      Ikävä
      20
      500
    12. Kuka se on

      Kuhmon komein aikamies?
      Kuhmo
      5
      488
    13. Voiko se ikinä toimia

      Voiko meistä ikinä tulla mitään? Näin kauan aikaa on kulunut ja mitään ei tapahdu... En usko, että sinä mietit minua het
      Ikävä
      32
      488
    14. Voin tulla

      Sisustamaan sulle 🤭
      Ikävä
      55
      478
    15. Meneekö unohtamis

      Projektisi hyvin??
      Ikävä
      34
      477
    16. Nainen, mitä mieltä olet kodittomista?

      Ja heistä jotka eivät kykene huolehtimaan asioistaan, itsestään eikä terveydestään? Miten heidän kanssaan tulisi toimia?
      Ikävä
      118
      466
    17. Uskallatko paljastaa

      Millä nimellä löydyn puhelimestasi?
      Ikävä
      49
      457
    18. Mitä jos...

      Susta tykätään poikana enemmän, kun tyttönä? Miten asian käsittelet tai otat tiedon vastaan? T nainen gubetellija herät
      Sinkut
      142
      453
    19. Miksi jätit vastaamatta mies

      Silloin kauan sitten 😔
      Ikävä
      42
      420
    20. Kuollut teini Kajaanissa

      Kuulemma sellaista huhua liikkeessä?
      Kajaani
      4
      419
    Aihe