>Python on dynaamisesti tyypittävä
>ohjelmointikieli
Ou nou - juuri kun luulin, että niistä ollaan päästy kokonaan eroon. Historia toistaa itseään:)
Python!
16
820
Vastaukset
- kannanotto
muinaismuistolta.
- Jepulis Jeep
Sitten noita vielä suositellaan ohjelmoinnin opetteluun ja porukka ihmettelee kun eivät tajua tietotyypeistä mitään.
- hähhhä
Kertokaas nyt ihmeessä miksi se dynaaminen tyypitys on sitten niin huono?
- Jepulis Jeep
hähhhä kirjoitti:
Kertokaas nyt ihmeessä miksi se dynaaminen tyypitys on sitten niin huono?
Alotetaas siitä, että listaat ne tietokannat joissa käytetään käytännössä pääasiassa tota dynaamista tyypitystä. Sitten voitais kattoa niitten markkinaosuuksia.
- Python rulez!
Jepulis Jeep kirjoitti:
Alotetaas siitä, että listaat ne tietokannat joissa käytetään käytännössä pääasiassa tota dynaamista tyypitystä. Sitten voitais kattoa niitten markkinaosuuksia.
Python on tietokantakieleksi melko uusi, eikä voida olettaa niin uuden kielen vielä tukevan tietotyyppejä.
- hähhäh
Python rulez! kirjoitti:
Python on tietokantakieleksi melko uusi, eikä voida olettaa niin uuden kielen vielä tukevan tietotyyppejä.
Selkeetä trollausta taasen tavattavissa, mutta vastataan nyt kuitenkin että tulee perusasiat selväksi.
Ero dynaamisessa tyypityksessä verrattuna staattiseen on se, että muuttujan tyyppi määräytyy ajon aikana eikä sitä sidota käännösvaiheessa.
Itse muuttuja on vain "nimi", eikä sillä ole mitään tyyppiä. Vain muuttujan kohteella on jokin tyyppi.
Vaikka python onkin dynaamisesti tyypitetty, se
ei tarkoita että se ei olisi vahvasti tyypitetty. Eli esim. seuraava rivi nostaisi virheen koska merkkijonon ja luvun yhteenlasku ei ole määritty:
foo = "12345" 6
Tuossa vielä wikipedia artikkeli joka kertoo dynaamisesta tyypityksestä:
http://fi.wikipedia.org/wiki/Tyyppijärjestelmä - Obviöös
hähhäh kirjoitti:
Selkeetä trollausta taasen tavattavissa, mutta vastataan nyt kuitenkin että tulee perusasiat selväksi.
Ero dynaamisessa tyypityksessä verrattuna staattiseen on se, että muuttujan tyyppi määräytyy ajon aikana eikä sitä sidota käännösvaiheessa.
Itse muuttuja on vain "nimi", eikä sillä ole mitään tyyppiä. Vain muuttujan kohteella on jokin tyyppi.
Vaikka python onkin dynaamisesti tyypitetty, se
ei tarkoita että se ei olisi vahvasti tyypitetty. Eli esim. seuraava rivi nostaisi virheen koska merkkijonon ja luvun yhteenlasku ei ole määritty:
foo = "12345" 6
Tuossa vielä wikipedia artikkeli joka kertoo dynaamisesta tyypityksestä:
http://fi.wikipedia.org/wiki/TyyppijärjestelmäAlkoi tympiä keskustelun suunta. Turhaa lässytystä. Ei kenenkään ole pakko käyttää Pythonia mihinkään. Itse käytän sitä aktiivisesti töissä lukuisten asioiden automatisointiin, ja kodailenpa sillä joskus kotonakin (viimeksi 3D-grafiikkakokeiluja OpenGL:llä). En kuvittelisi käyttäväni jotain Javaa, C :aa, Ceesharppia tai muuta staattisesti tyypitettyä kieltä asioihin, joihin käytän Pythonia.
Kun tietää, mitä tekee, suorituskyky ei ratkaise ja tarvitsee vain saada aikaiseksi, hyvät dynaamisesti tyypitetyt kielet hallitsevat. - Jepulis Jeep
hähhäh kirjoitti:
Selkeetä trollausta taasen tavattavissa, mutta vastataan nyt kuitenkin että tulee perusasiat selväksi.
Ero dynaamisessa tyypityksessä verrattuna staattiseen on se, että muuttujan tyyppi määräytyy ajon aikana eikä sitä sidota käännösvaiheessa.
Itse muuttuja on vain "nimi", eikä sillä ole mitään tyyppiä. Vain muuttujan kohteella on jokin tyyppi.
Vaikka python onkin dynaamisesti tyypitetty, se
ei tarkoita että se ei olisi vahvasti tyypitetty. Eli esim. seuraava rivi nostaisi virheen koska merkkijonon ja luvun yhteenlasku ei ole määritty:
foo = "12345" 6
Tuossa vielä wikipedia artikkeli joka kertoo dynaamisesta tyypityksestä:
http://fi.wikipedia.org/wiki/TyyppijärjestelmäSiitä voi sitten jokanen miettiä ihan itte, miksi samaa ei sovelleta tietokannoissa.
- defun-def
Jepulis Jeep kirjoitti:
Siitä voi sitten jokanen miettiä ihan itte, miksi samaa ei sovelleta tietokannoissa.
Näköjään sovelletaan:
http://gadfly.sourceforge.net/ - Jepulis Jeep
defun-def kirjoitti:
Näköjään sovelletaan:
http://gadfly.sourceforge.net/Tommosista tekijä oppii tekemään paremmin oikeillakin tuotantosysteemeillä.
- defun-def
Jepulis Jeep kirjoitti:
Tommosista tekijä oppii tekemään paremmin oikeillakin tuotantosysteemeillä.
Tuota noin... onko olemassa jokin perustelu että dynaamisesti tyypittävällä kielellä ei voi tehdä tietokantaa tuotantokäyttöön?
- ..............
defun-def kirjoitti:
Tuota noin... onko olemassa jokin perustelu että dynaamisesti tyypittävällä kielellä ei voi tehdä tietokantaa tuotantokäyttöön?
Jepulis Jeep on vakiotrolli. Aikalailla pihalla monestakin asiasta.
- Jepulis Jeep
defun-def kirjoitti:
Tuota noin... onko olemassa jokin perustelu että dynaamisesti tyypittävällä kielellä ei voi tehdä tietokantaa tuotantokäyttöön?
Et nyt vaan oikeen tajunnut kysymystä. Ei se mitään. Eli sanos nyt, että miksi noissa tietokannoissa ei tavata käyttää pahemmin tota dynaamista tyypistystä? Siis MySQL, Oracle, SQL Server.
Jos vaikka selviäisi miksi jotkut tahot tykkäävät välttää sitä ohjelmointikielissä. - defun-def
Jepulis Jeep kirjoitti:
Et nyt vaan oikeen tajunnut kysymystä. Ei se mitään. Eli sanos nyt, että miksi noissa tietokannoissa ei tavata käyttää pahemmin tota dynaamista tyypistystä? Siis MySQL, Oracle, SQL Server.
Jos vaikka selviäisi miksi jotkut tahot tykkäävät välttää sitä ohjelmointikielissä.En keksi mitään syytä dynaamiseen tyypitykseen liittyvää, mutta keksin kyllä syitä miksi väliin ei haluta virtuaalikoneita ym. sälää. Kerro sinä.
- ogma
Jepulis Jeep kirjoitti:
Et nyt vaan oikeen tajunnut kysymystä. Ei se mitään. Eli sanos nyt, että miksi noissa tietokannoissa ei tavata käyttää pahemmin tota dynaamista tyypistystä? Siis MySQL, Oracle, SQL Server.
Jos vaikka selviäisi miksi jotkut tahot tykkäävät välttää sitä ohjelmointikielissä.Vaikka tiedänkin tämän olevan turhaa, niin yritän kuitenkin. Pythonilla ei ole tehty relaatiotietokantoja siksi kun relaatiokantaohjelmiston tekeminen ei ole helppoa ja valmiina on paljon erinomaisia kantaratkaisuja. Toisaalta olemassa olevat ovat saaneet alkunsa parikymmentä vuotta sitten, kun python oli vielä lasten kengissään. Pythonilla voi suorittaa SQL-kyselyjä tietokantoihin, jolloin saatu vastausjoukko tyypittyy sitä mukaa kun vastaus pääsee pythoniin. Esim. ohjelman tekijä ei koodatessaan "tiedä" minkä tyyppistä dataa kysely tuottaa, mutta kyselyn jälkeen "tiedetään", että esim. nimi on merkkijono ja ikä on kokonaisluku. Tietokantaan tallennetaan informaatio aina tyypin kanssa, koska informaatio ilman tyyppiä on bittimössöä ilman merkitystä. Dynaaminen tyypitys ei tarkoita tyypittömyyttä vaan sitä että tyyppi määräytyy informaation mukaan silloin kun informaatio tulee saataville eli yleensä ajon aikana. Dynaaminen tyypitys on hyvin voimissaan myös muualla kuin vain pythonissa. Esim. ECMA-script, Ryby, VBA, VBScript jne. ovat dynaamisesti tyypittyviä kieliä (pari viimeistä ovat Microsoftin hengentuotteita). Web-sovellukset käytännössä pyörivät dynaamisesti tyypittyvien kielien varassa (Ajax, xhtml jne.). Microsoftin Visual Basic aiheutti sen, että COM-tekniikassa on mahdollisuus dynaamiseen tyypitykseen. Dynaaminen tyypitys ei aiheuta ongelmia tietotyyppien kanssa, koska tietotyypit eivät katoa mihinkään. Ne vaan arvontuvat vähän myöhemmin. Ja tästä aiheutuu joskus ikäviä virheitä, koska muuttujan tyyppi selviää vasta pitkällisen ajon jälkeen ja ko. kohdassa tehdään kahden eri tyypin epäyhteensopiva operaatio esim. "5" 5. Python on opetuskielenä ihan yhtä hyvä (tai huono) kuin Java tai C#. Minulle ei kuitenkaan vielä selvinnyt miksi dynaamista tyypitystä pitäisi välttää, koska ilman sitä tämäkin keskustelu voisi olla hankalaa tai jopa mahdotonta. Ota vaikka selaimestasi tämän sivun lähdekoodi näkyviin ja laske montako riviä dynaamisesti tyypittyvää koodia löydät. Toisaalta, tietokannoissa on blob:n käsite, joka taitaa olla bittimössöä ja on kannan suhteen tyypitön. Tyyppi on pultattu sovelluskoodiin. En näe juurikaan mitään estettä käyttää dynaamista tyypitystä tietokantojen yhteydessä, mutta relaatioalgebra ja SQL taitavat vähän sinällään hankaloittaa asioita.
- Jepulis Jeep
ogma kirjoitti:
Vaikka tiedänkin tämän olevan turhaa, niin yritän kuitenkin. Pythonilla ei ole tehty relaatiotietokantoja siksi kun relaatiokantaohjelmiston tekeminen ei ole helppoa ja valmiina on paljon erinomaisia kantaratkaisuja. Toisaalta olemassa olevat ovat saaneet alkunsa parikymmentä vuotta sitten, kun python oli vielä lasten kengissään. Pythonilla voi suorittaa SQL-kyselyjä tietokantoihin, jolloin saatu vastausjoukko tyypittyy sitä mukaa kun vastaus pääsee pythoniin. Esim. ohjelman tekijä ei koodatessaan "tiedä" minkä tyyppistä dataa kysely tuottaa, mutta kyselyn jälkeen "tiedetään", että esim. nimi on merkkijono ja ikä on kokonaisluku. Tietokantaan tallennetaan informaatio aina tyypin kanssa, koska informaatio ilman tyyppiä on bittimössöä ilman merkitystä. Dynaaminen tyypitys ei tarkoita tyypittömyyttä vaan sitä että tyyppi määräytyy informaation mukaan silloin kun informaatio tulee saataville eli yleensä ajon aikana. Dynaaminen tyypitys on hyvin voimissaan myös muualla kuin vain pythonissa. Esim. ECMA-script, Ryby, VBA, VBScript jne. ovat dynaamisesti tyypittyviä kieliä (pari viimeistä ovat Microsoftin hengentuotteita). Web-sovellukset käytännössä pyörivät dynaamisesti tyypittyvien kielien varassa (Ajax, xhtml jne.). Microsoftin Visual Basic aiheutti sen, että COM-tekniikassa on mahdollisuus dynaamiseen tyypitykseen. Dynaaminen tyypitys ei aiheuta ongelmia tietotyyppien kanssa, koska tietotyypit eivät katoa mihinkään. Ne vaan arvontuvat vähän myöhemmin. Ja tästä aiheutuu joskus ikäviä virheitä, koska muuttujan tyyppi selviää vasta pitkällisen ajon jälkeen ja ko. kohdassa tehdään kahden eri tyypin epäyhteensopiva operaatio esim. "5" 5. Python on opetuskielenä ihan yhtä hyvä (tai huono) kuin Java tai C#. Minulle ei kuitenkaan vielä selvinnyt miksi dynaamista tyypitystä pitäisi välttää, koska ilman sitä tämäkin keskustelu voisi olla hankalaa tai jopa mahdotonta. Ota vaikka selaimestasi tämän sivun lähdekoodi näkyviin ja laske montako riviä dynaamisesti tyypittyvää koodia löydät. Toisaalta, tietokannoissa on blob:n käsite, joka taitaa olla bittimössöä ja on kannan suhteen tyypitön. Tyyppi on pultattu sovelluskoodiin. En näe juurikaan mitään estettä käyttää dynaamista tyypitystä tietokantojen yhteydessä, mutta relaatioalgebra ja SQL taitavat vähän sinällään hankaloittaa asioita.
Hyvä asenne sulla. Joo, ohan siellä se tyypitys olemassa. Vaan sitä ei näe koodista vaikka viemällä kursorin tietojäsenen päälle. Kysehän on oikeestaan pitkälti siitä, että miksi tommonen toiminnallisuus on tarpeetonta? Mun mielestä on tavattoman hyödyllistä nähdä tyyppi suoraan em. tavalla. Kannoissa tyypin näkee määrittelyistä koska se on siellä tehokas tapa toimia.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Riikan kukkaronnyöri on umpisolmussa
Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h32711Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar1062481Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv42229Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.441845- 321423
Anteeksipyyntöni
Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska141413- 1761145
Sydämeni valtiaalle
En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden1011114Persu ajoi autoa
Ajoi lapsen yli https://www.iltalehti.fi/kotimaa/a/597a7468-3d1d-455e-bed2-21c1efc31ac1201043Oletko tyytyväinen
Tämän hetkiseen tilanteeseenne? Odotatko, että lähennytte vai yritätkö päästä yli ja eteenpäin?81908